diff --git a/assets/circuitjs/COPYING.txt b/assets/circuitjs/COPYING.txt new file mode 100644 index 0000000..d159169 --- /dev/null +++ b/assets/circuitjs/COPYING.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/assets/circuitjs/README.upstream.md b/assets/circuitjs/README.upstream.md new file mode 100644 index 0000000..34d647e --- /dev/null +++ b/assets/circuitjs/README.upstream.md @@ -0,0 +1,233 @@ +# CircuitJS1 + +

+ CircuitJS1 logo +
+ Electronic Circuit Simulator in the Browser +

+ +## Introduction + +CircuitJS1 is an electronic circuit simulator that runs in the browser. It was originally written by Paul Falstad as a Java Applet. It was adapted by Iain Sharp to run in the browser using GWT. + +For a hosted version of the application see: + +* Paul's Page: [http://www.falstad.com/circuit/](http://www.falstad.com/circuit/) +* Iain's Page: [http://lushprojects.com/circuitjs/](http://lushprojects.com/circuitjs/) +* Development Branch Version: [https://pfalstad.github.io/circuitjs1/circuitjs.html](https://pfalstad.github.io/circuitjs1/circuitjs.html) + +Thanks to: Edward Calver for 15 new components and other improvements; Rodrigo Hausen for file import/export and many other UI improvements; J. Mike Rollins for the Zener diode code; Julius Schmidt for the spark gap code and some examples; Dustin Soodak for help with the user interface improvements; Jacob Calvert for the T Flip Flop; Ben Hayden for scope spectrum; Thomas Reitinger, Krystian Sławiński, Usevalad Khatkevich, Lucio Sciamanna, Mauro Hemerly Gazzani, J. Miguel Silva, and Franck Viard for translations; Andre Adrian for improved emitter coupled oscillator; Felthry for many examples; Colin Howell for code improvements. LZString (c) 2013 pieroxy. + +## Building the web application + +The web application can be compiled and run locally using Eclipse, or in a cloud development container like Github Codespaces or gitpod.io. Both of these services provide a number of free usage hours every month. You can also use the cloud tools from `./dev.sh` on your local Linux machine or in a local docker container. + +### Development using Eclipse + +The tools you will need to build the project are: + +* Eclipse, Oxygen version. +* GWT plugin for Eclipse. + +Install "Eclipse for Java developers" from [here](https://www.eclipse.org/downloads/packages/). To add the GWT plugin for Eclipse follow the instructions [here](https://gwt-plugins.github.io/documentation/gwt-eclipse-plugin/Download.html). + +This repository is a project folder for your Eclipse project space. Once you have a local copy you can then build and run in development mode or build for deployment. Running in super development mode is done by clicking on the "run" icon on the toolbar and choosing http://127.0.0.1:8888/circuitjs.html from the "Development Mode" tab which appears. Building for deployment is done by selecting the project root node and using the GWT button on the Eclipse taskbar and choosing "GWT Compile Project...". + +GWT will build its output in to the "war" directory. In the "war" directory the file "iframe.html" is loaded as an iFrame in to the spare space at the bottom of the right hand pannel. It can be used for branding etc. + +### Development using cloud containers + +1. Install [Visual Studio Code](https://code.visualstudio.com/) and the appropriate remote extension: either [Gitpod Extension](https://marketplace.visualstudio.com/items?itemName=gitpod.gitpod-desktop) or [Codespaces Extension](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces). +2. Open your fork of the `circuitjs1` repository in your chosen provider's dev container. +3. This should open a new tab in your browser showing VS Code. Click in the green button in the bottom left corner, then select "Open in VS Code Desktop" in the popup menu that opened. Click "Allow" in all URL popups and authenticate using github if asked. + +Once you have successfully connected your local VS Code to the remote workspace, you should be able to see the content of the remote container in your local VS Code. You can now continue with the setup: + +4. Open a shell inside the dev container by pressing `Ctrl+Backtick` or pressing `F1` and typing "Create new Terminal". +5. Make sure you are in the folder `/workspaces/circuitjs1` inside the container (necessary only once per newly created container). +6. Run `./dev.sh setup` to install all development dependencies, including GWT and Java. +7. Run `./dev.sh start` to start the web server and the GWT code server. This will start two services: http://localhost:8000 and http://localhost:9876. +8. Make sure both port and 8000 and 9876 are forwarded in the "Ports" tab (next to "Terminal"). +9. If you edit a Java file in VS Code and reload http://localhost:8000, it should recompile the file automatically. It will then load the compiled JavaScript and the corresponding source map from the code server running on http://localhost:9876. You should be able to see the your changes in the web application. + +> ***Note:*** When running the web application server inside a remote dev container, port forwarding is necessary in order to access the remote server from your own computer. This port forwarding is provided by Visual Studio Code running on your local computer. +> +> Theoretically, it would be possible to use the browser-based VS Code interface. However, both Gitpod and Codespaces map forwarded ports to different domain names instead of different ports, which confuses the GWT code loader. It is possible to fix this by live-patching the `serverUrl` variable in `circuitjs1.nocache.js` using a custom HTTP server, but it also requires setting the port visibility to "Public" to avoid CORS errors due to redirects. Using a local installation of VS Code is much simpler. + +### Development using Gradle + +To build the application using gradle, do the following: + +```bash +# 1. Run Gradle build with verbose output: +gradle compileGwt --console verbose --info +# 2. Create the web-site directory from the build files: +gradle makeSite --console verbose --info +``` + +Now, just open `site/circuitjs.html` with your browser and enjoy! + +You can do the same thing inside GitHub Codespaces. Then after creating the site directory, you can create a web server using: + +```bash +cd site +python3 -m http.server +``` + +Then go to the Ports tab, hover over the "Forwarded Address" and click "Follow Link". Then click `circuitjs.html` to view the application. + +### Quick local test + +The included `test.sh` script compiles, builds the site, and starts a local server in one step: + +```bash +./test.sh # builds and serves on port 8000 +./test.sh 9000 # use a custom port +``` + +This opens `http://localhost:8000/circuitjs.html` in your browser automatically (macOS). The script finds Gradle via the wrapper (`./gradlew`), the system PATH, or `/tmp/gradle-8.7/`. Requires Python 3 for the HTTP server. + +> **Note:** Gradle 8.7 is required (GWT plugin is incompatible with Gradle 9.x). If you don't have it installed, you can download it with: +> ```bash +> curl -sL https://services.gradle.org/distributions/gradle-8.7-bin.zip -o /tmp/g.zip && unzip -qo /tmp/g.zip -d /tmp +> ``` + +## Deployment of the web application + +* "GWT Compile Project..." as explained above or run `./dev.sh compile`. This will put the outputs in to the "war" directory in the Eclipse project folder. You then need to copy everything in the "war" directory, except the "WEB-INF" directory, on to your web server. +* Customize the header of the file "circuitjs1.html" to include your tracking, favicon etc. +* Customize the "iframe.html" file to include any branding you want in the right hand panel of the application +* The optional file "shortrelay.php" is a server-side script to act as a relay to a URL shortening service to avoid cross-origin problems with a purely client solution. You may want to customize this for your site. If you don't want to use this feature edit the circuitjs1.java file before compiling. +* If you wish to enable dropbox loading and saving a dropbox API app-key is needed. This should be edited in to the circuitjs.html file where needed. If this is not included the relevant features will be disabled. + + +The link for the full-page version of the application is now: +`http:////circuitjs1.html` +(you can rename the "circuitjs1.html" file if you want too though you should also update "shortrelay.php" if you do). + +Just for reference the files should look like this + +``` +-+ Directory containing the front page (eg "circuitjs") + +- circuitjs.html - full page version of application + +- iframe.html - see notes above + +- shortrelay.php - see notes above + ++ circuitjs1 (directory) + +- various files built by GWT + +- circuits (directory, containing example circuits) + +- setuplist.txt (index in to example circuit directory) +``` + +## Docker/podman containers + +### Building and Running Circuitjs in docker containers + +*(replace the podman command with docker if you prefere docker)* + +- To build Docker image using podman: + +``` +podman build -f circuitjs1.Containerfile -t circuitjs1:latest +``` + +- To then run Docker image using podman: + +``` +podman run --name=circuitjs1 --rm -d -p 8000:8000 circuitjs1:latest +``` + +CircuitJS1 should be accessable at: http://localhost:8000/circuitjs.html + + +### Development using docker containers + +(replace the podman command with docker if you prefere docker) + +- To build the development Docker image using podman: + +``` +podman build -f dev-start.Containerfile -t circuitjs1-dev:latest +``` + +- To then run the development Docker image using podman: + +``` +podman run --rm -it -p 127.0.0.1:8000:8000/tcp -p 127.0.0.1:9876:9876/tcp circuitjs1-dev:latest +``` + +CircuitJS1 should be accessable at: http://localhost:8000/circuitjs.html + +If you need to modify the files while the container is running (using the gwt auto-build method): + +``` +podman run --rm -it -v $(pwd):/src:Z -p 127.0.0.1:8000:8000/tcp -p 127.0.0.1:9876:9876/tcp circuitjs1-dev:latest +``` + +This will use the current directory inside the container. + + + +## Embedding + +You can link to the full page version of the application using the link shown above. + +If you want to embed the application in another page then use an iframe with the src being the full-page version. + +You can add query parameters to link to change the applications startup behaviour. The following are supported: +``` +.../circuitjs.html?cct= // Load the circuit from the URL (like the # in the Java version) +.../circuitjs.html?ctz= // Load the circuit from compressed data in the URL +.../circuitjs.html?startCircuit= // Loads the circuit named "filename" from the "Circuits" directory +.../circuitjs.html?startCircuitLink= // Loads the circuit from the specified URL. CURRENTLY THE URL MUST BE A DROPBOX SHARED FILE OR ANOTHER URL THAT SUPPORTS CORS ACCESS FROM THE CLIENT +.../circuitjs.html?euroResistors=true // Set to true to force "Euro" style resistors. If not specified the resistor style will be based on the user's browser's language preferences +.../circuitjs.html?IECGates=true // Set to true to force IEC logic gates. If not specified the gate style will be based on the user's browser's language preferences +.../circuitjs.html?usResistors=true // Set to true to force "US" style resistors. If not specified the resistor style will be based on the user's browser's language preferences +.../circuitjs.html?whiteBackground= +.../circuitjs.html?conventionalCurrent= +.../circuitjs.html?running= // Start the app without the simulation running, default true +.../circuitjs.html?hideSidebar= // Hide the sidebar, default false +.../circuitjs.html?hideMenu= // Hide the menu, default false +.../circuitjs.html?editable= // Allow circuit editing, default true +.../circuitjs.html?positiveColor=%2300ff00 // change positive voltage color (rrggbb) +.../circuitjs.html?negativeColor=%23ff0000 // change negative voltage color +.../circuitjs.html?selectColor=%2300ffff // change selection color +.../circuitjs.html?currentColor=%23ffff00 // change current color +.../circuitjs.html?mouseWheelEdit= // allow changing of values by mouse wheel +.../circuitjs.html?mouseMode= // set the initial mouse mode. can also initially perform other UI actions, such as opening the 'about' menu, running 'importfromlocalfile', etc. +.../circuitjs.html?hideInfoBox= +``` +The simulator can also interface with your javascript code. See [war/jsinterface.html](http://www.falstad.com/circuit/jsinterface.html) for an example. + +## Building an Electron application + +The [Electron](https://electronjs.org/) project allows web applications to be distributed as local executables for a variety of platforms. This repository contains the additional files needed to build circuitJS1 as an Electron application. + +The general approach to building an Electron application for a particular platform is documented [here](https://electronjs.org/docs/tutorial/application-distribution). The following instructions apply this approach to circuit JS. + +To build the Electron application: +* Compile the application using GWT, as above. +* Download and unpack a [pre-built Electron binary directory](https://github.com/electron/electron/releases) version 9.3.2 for the target platform. +* Copy the "app" directory from this repository to the location specified [here](https://electronjs.org/docs/tutorial/application-distribution) in the Electron binary directory structure. +* Copy the "war" directory, containing the compiled CircuitJS1 application, in to the "app" directory the Electron binary directory structure. +* Run the "Electron" executable file. It should automatically load CircuitJS1. + +Known limitations of the Electron application: +* "Create short URL" on "Export as URL" doesn't work as it relies on server support. + +Thanks to @Immortalin for the initial work in applying Electron to CircuitJS1. + +## License + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. diff --git a/assets/circuitjs/about.html b/assets/circuitjs/about.html new file mode 100644 index 0000000..d79966b --- /dev/null +++ b/assets/circuitjs/about.html @@ -0,0 +1,63 @@ + + +
+

Circuit Simulator version .

+

Original by Paul Falstad.
http://www.falstad.com/

+

JavaScript conversion by Iain Sharp.
http://lushprojects.com/

+

GitHub link to report issues and view source code: https://github.com/pfalstad/circuitjs1

+

Thanks to: Edward Calver for 15 new components and other improvements; +Rodrigo Hausen for file import/export and many other UI improvements; +J. Mike Rollins for the Zener diode code; +Julius Schmidt for the spark gap code and some examples; +Dustin Soodak for help with the user interface improvements; +Jacob Calvert for the T Flip Flop; Ben Hayden for scope spectrum; +Francisco Campos for the DC Motor; +Bill Collis for the thermistor and LDR; +Mark McGarry for AVR8js support; Uri Shaked for AVR8js; +Johannes Bauer for WebSocket support; +Thomas Reitinger, Krystian Sławiński, Usevalad Khatkevich, Lucio Sciamanna, Mauro Hemerly Gazzani, J. Miguel Silva, Kristian Keilen, Linhart Jiří, Karel Kupa, Franck Viard, David Chen, Taisuke Fukuno, 肖国栋 (Gordon Shaw), 王逸伦, Pablo Sanz Martin for translations; +Andre Adrian for improved emitter coupled oscillator; Felthry for many examples; Colin Howell for code improvements. LZString (c) 2013 pieroxy.

+

This program uses free icons. For more information, please read the list of authors and licenses of these icons and webfonts.

+

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.

+

This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

+

For details of licensing see http://www.gnu.org/licenses/.

+

Source code (Paul):https://github.com/pfalstad/circuitjs1

+

Source code (Iain):https://github.com/sharpie7/circuitjs1

+

+Copyright (c) 1985-1991 The Regents of the University of California. +All rights reserved.

+

IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF +CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+

THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN +"AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE +MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. +

canvas2svg: Copyright (c) 2014 Gliffy Inc.

+ +

+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/assets/circuitjs/circuitjs.html b/assets/circuitjs/circuitjs.html new file mode 100644 index 0000000..59bb5ed --- /dev/null +++ b/assets/circuitjs/circuitjs.html @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/circuitjs/circuitjs1/51DA24461737C50588189FA6B0A94F38.cache.js b/assets/circuitjs/circuitjs1/51DA24461737C50588189FA6B0A94F38.cache.js new file mode 100644 index 0000000..14e8f13 --- /dev/null +++ b/assets/circuitjs/circuitjs1/51DA24461737C50588189FA6B0A94F38.cache.js @@ -0,0 +1,60106 @@ +var $wnd = $wnd || window.parent; +var __gwtModuleFunction = $wnd.circuitjs1; +var $sendStats = __gwtModuleFunction.__sendStats; +$sendStats('moduleStartup', 'moduleEvalStart'); +var $gwt_version = "2.8.2"; +var $strongName = '51DA24461737C50588189FA6B0A94F38'; +var $gwt = {}; +var $doc = $wnd.document; +var $moduleName, $moduleBase; +function __gwtStartLoadingFragment(frag) { +var fragFile = 'deferredjs/' + $strongName + '/' + frag + '.cache.js'; +return __gwtModuleFunction.__startLoadingFragment(fragFile); +} +function __gwtInstallCode(code) {return __gwtModuleFunction.__installRunAsyncCode(code);} +function __gwt_isKnownPropertyValue(propName, propValue) { +return __gwtModuleFunction.__gwt_isKnownPropertyValue(propName, propValue); +} +function __gwt_getMetaProperty(name) { +return __gwtModuleFunction.__gwt_getMetaProperty(name); +} +var $stats = $wnd.__gwtStatsEvent ? function(a) { +return $wnd.__gwtStatsEvent && $wnd.__gwtStatsEvent(a); +} : null; +var $sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null; +var $intern_0 = 2147483647, $intern_1 = 3.141592653589793, $intern_2 = 6.283185307179586, $intern_3 = {3:1, 4:1, 6:1}, $intern_4 = {23:1, 21:1}, $intern_5 = {29:1, 26:1, 28:1, 23:1, 30:1, 21:1, 25:1}, $intern_6 = {3:1, 39:1}, $intern_7 = {3:1, 13:1, 39:1}, $intern_8 = {143:1, 24:1, 3:1, 16:1, 15:1}, $intern_9 = {46:1, 24:1, 3:1, 16:1, 15:1}, $intern_10 = {45:1, 24:1, 3:1, 16:1, 15:1}, $intern_11 = {155:1, 24:1, 3:1, 16:1, 15:1}, $intern_12 = {24:1, 156:1, 3:1, 16:1, 15:1}, $intern_13 = {24:1, 157:1, 3:1, 16:1, 15:1}, $intern_14 = {24:1, 158:1, 3:1, 16:1, 15:1}, $intern_15 = {82:1, 3:1, 16:1, 15:1}, $intern_16 = {24:1, 207:1, 3:1, 16:1, 15:1}, $intern_17 = {24:1, 144:1, 3:1, 16:1, 15:1}, $intern_18 = 65535, $intern_19 = {206:1, 3:1, 13:1, 39:1}, $intern_20 = {149:1, 3:1, 13:1, 39:1}, $intern_21 = {3:1, 4:1}, $intern_22 = 1000, $intern_23 = {3:1, 4:1, 6:1, 40:1}, $intern_24 = 1024, $intern_25 = {17:1, 3:1, 4:1}, $intern_26 = Infinity, $intern_27 = 4194303, $intern_28 = 1048575, $intern_29 = 524288, $intern_30 = 4194304, $intern_31 = 17592186044416, $intern_32 = 1000000000, $intern_33 = -17592186044416, $intern_34 = 0.01, $intern_35 = {448:1, 3:1}, $intern_36 = 0.02, $intern_37 = {934:1, 11:1}, $intern_38 = {935:1, 11:1}, $intern_39 = {936:1, 11:1}, $intern_40 = {11:1, 931:1}, $intern_41 = {276:1, 11:1}, $intern_42 = 4096, $intern_43 = 2048, $intern_44 = 32768, $intern_45 = 16384, $intern_46 = 65536, $intern_47 = 131072, $intern_48 = 262144, $intern_49 = 1048576, $intern_50 = 2097152, $intern_51 = 16777216, $intern_52 = 67108864, $intern_53 = {29:1, 26:1, 28:1, 23:1, 44:1, 30:1, 21:1, 25:1, 35:1}, $intern_54 = {180:1, 72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 200:1, 26:1, 133:1, 58:1, 28:1, 221:1, 184:1, 162:1, 81:1, 118:1, 241:1, 218:1, 104:1, 117:1, 57:1, 138:1, 51:1, 220:1, 23:1, 198:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}, $intern_55 = {38:1, 11:1}, $intern_56 = {29:1, 64:1, 26:1, 28:1, 68:1, 23:1, 44:1, 30:1, 56:1, 21:1, 25:1, 35:1}, $intern_57 = {29:1, 64:1, 26:1, 58:1, 28:1, 68:1, 57:1, 51:1, 23:1, 44:1, 30:1, 56:1, 21:1, 25:1, 35:1, 108:1}, $intern_58 = {180:1, 72:1, 95:1, 86:1, 99:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 97:1, 98:1, 96:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 26:1, 133:1, 58:1, 28:1, 241:1, 218:1, 57:1, 51:1, 23:1, 198:1, 30:1, 36:1, 93:1, 94:1, 21:1, 25:1}, $intern_59 = {29:1, 26:1, 28:1, 23:1, 44:1, 30:1, 199:1, 21:1, 25:1, 35:1}, $intern_60 = {72:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 29:1, 26:1, 28:1, 23:1, 44:1, 30:1, 21:1, 25:1, 35:1}, $intern_61 = {72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 26:1, 133:1, 28:1, 81:1, 118:1, 104:1, 117:1, 138:1, 23:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}, $intern_62 = {978:1, 11:1}, $intern_63 = {58:1, 104:1, 57:1, 51:1, 23:1, 41:1, 21:1}, $intern_64 = {132:1, 11:1}, $intern_65 = {29:1, 26:1, 28:1, 23:1, 44:1, 30:1, 285:1, 21:1, 25:1, 35:1}, $intern_66 = {180:1, 72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 200:1, 26:1, 133:1, 28:1, 221:1, 81:1, 118:1, 104:1, 117:1, 138:1, 51:1, 220:1, 23:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}, $intern_67 = {148:1, 11:1}, $intern_68 = {164:1, 3:1, 16:1, 15:1}, $intern_69 = {35:1}, $intern_70 = {114:1}, $intern_71 = {981:1, 114:1}, $intern_72 = {12:1, 3:1, 4:1}, $intern_73 = 0.48, $intern_74 = {65:1, 3:1, 4:1, 6:1}, $intern_75 = 1.0E-14, $intern_76 = 1.0E-9, $intern_77 = 1000000000000, $intern_78 = 1.0E-6, $intern_79 = 0.001, $intern_80 = 1000000, $intern_81 = {8:1, 10:1}, $intern_82 = 0.6366197723675814, $intern_83 = 1.0E-4, $intern_84 = 10000, $intern_85 = 1.5707963267948966, $intern_86 = 0.15915494309189535, $intern_87 = {8:1, 10:1, 54:1}, $intern_88 = {8:1, 10:1, 47:1, 54:1}, $intern_89 = 1.7976931348623157E308, $intern_90 = 10000000000, $intern_91 = {22:1, 3:1, 4:1}, $intern_92 = -1.5707963267948966, $intern_93 = 100000000, $intern_94 = 4294901760, $intern_95 = {8:1, 10:1, 135:1}, $intern_96 = {8:1, 10:1, 61:1}, $intern_97 = -1.0E-6, $intern_98 = 1.0E-12, $intern_99 = {167:1, 8:1, 10:1}, $intern_100 = -30000, $intern_101 = {8:1, 195:1, 10:1}, $intern_102 = 1.0471975511965976, $intern_103 = 2.0943951023931953, $intern_104 = 38.662284941040014, $intern_105 = 0.025865, $intern_106 = {8:1, 147:1, 10:1}, $intern_107 = 1.7143528192808883E-7, $intern_108 = 1.0E-8, $intern_109 = -2147483648, $intern_110 = 1.0E-15, $intern_111 = {242:1, 11:1}, $intern_112 = {190:1, 11:1}, $intern_113 = {148:1, 72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 11:1, 26:1, 28:1, 81:1, 118:1, 104:1, 117:1, 138:1, 23:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}, $intern_114 = 0.3333, $intern_115 = 0.6666, $intern_116 = 100000, $intern_117 = {139:1, 11:1, 8:1, 10:1, 115:1}, $intern_118 = 0.16666666666666666, $intern_119 = {139:1, 11:1, 8:1, 10:1, 179:1, 115:1}, $intern_120 = 0.0099, $intern_121 = {139:1, 11:1, 8:1, 10:1}, $intern_122 = {139:1, 11:1, 8:1, 10:1, 166:1}, $intern_123 = 0.8297872340425532, $intern_124 = 0.0231, $intern_125 = 0.005, $intern_126 = 0.0625, $intern_127 = {219:1, 11:1}, $intern_128 = 3.7E-4, $intern_129 = 0.0047, $intern_130 = -20.192307692307693, $intern_131 = 4294967295, $intern_132 = {8:1, 10:1, 189:1}, $intern_133 = {16:1, 201:1}, $intern_134 = {35:1, 142:1, 169:1}, $intern_135 = {35:1, 142:1, 169:1, 309:1}, $intern_136 = {240:1}, $intern_137 = 15525485, $intern_138 = 5.9604644775390625E-8; +var _, prototypesByTypeId_0, initFnList_0, permutationId = -1; +function setGwtProperty(propertyName, propertyValue){ + typeof window === 'object' && typeof window['$gwt'] === 'object' && (window['$gwt'][propertyName] = propertyValue); +} + +function gwtOnLoad_0(errFn, modName, modBase, softPermutationId){ + ensureModuleInit(); + var initFnList = initFnList_0; + $moduleName = modName; + $moduleBase = modBase; + permutationId = softPermutationId; + function initializeModules(){ + for (var i = 0; i < initFnList.length; i++) { + initFnList[i](); + } + } + + if (errFn) { + try { + $entry(initializeModules)(); + } + catch (e) { + errFn(modName, e); + } + } + else { + $entry(initializeModules)(); + } +} + +function ensureModuleInit(){ + initFnList_0 == null && (initFnList_0 = []); +} + +function addInitFunctions(){ + ensureModuleInit(); + var initFnList = initFnList_0; + for (var i = 0; i < arguments.length; i++) { + initFnList.push(arguments[i]); + } +} + +function typeMarkerFn(){ +} + +function toString_9(object){ + var number; + if (Array.isArray(object) && object.typeMarker === typeMarkerFn) { + return $getName(getClass__Ljava_lang_Class___devirtual$(object)) + '@' + (number = hashCode__I__devirtual$(object) >>> 0 , number.toString(16)); + } + return object.toString(); +} + +function portableObjCreate(obj){ + function F(){ + } + + ; + F.prototype = obj || {}; + return new F; +} + +function emptyMethod(){ +} + +function defineClass(typeId, superTypeIdOrPrototype, castableTypeMap){ + var prototypesByTypeId = prototypesByTypeId_0, superPrototype; + var prototype_0 = prototypesByTypeId[typeId]; + var clazz = prototype_0 instanceof Array?prototype_0[0]:null; + if (prototype_0 && !clazz) { + _ = prototype_0; + } + else { + _ = (superPrototype = superTypeIdOrPrototype && superTypeIdOrPrototype.prototype , !superPrototype && (superPrototype = prototypesByTypeId_0[superTypeIdOrPrototype]) , portableObjCreate(superPrototype)); + _.castableTypeMap = castableTypeMap; + !superTypeIdOrPrototype && (_.typeMarker = typeMarkerFn); + prototypesByTypeId[typeId] = _; + } + for (var i = 3; i < arguments.length; ++i) { + arguments[i].prototype = _; + } + clazz && (_.___clazz = clazz); +} + +function bootstrap(){ + prototypesByTypeId_0 = {}; + !Array.isArray && (Array.isArray = function(vArg){ + return Object.prototype.toString.call(vArg) === '[object Array]'; + } + ); + function now_0(){ + return (new Date).getTime(); + } + + !Date.now && (Date.now = now_0); +} + +bootstrap(); +function Object_0(){ +} + +function equals_Ljava_lang_Object__Z__devirtual$(this$static, other){ + return instanceOfString(this$static)?$equals_1(this$static, other):instanceOfDouble(this$static)?(checkCriticalNotNull(this$static) , this$static === other):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static === other):hasJavaObjectVirtualDispatch(this$static)?this$static.equals_0(other):isJavaArray(this$static)?this$static === other:!!this$static && !!this$static.equals?this$static.equals(other):maskUndefined(this$static) === maskUndefined(other); +} + +function getClass__Ljava_lang_Class___devirtual$(this$static){ + return instanceOfString(this$static)?Ljava_lang_String_2_classLit:instanceOfDouble(this$static)?Ljava_lang_Double_2_classLit:instanceOfBoolean(this$static)?Ljava_lang_Boolean_2_classLit:hasJavaObjectVirtualDispatch(this$static)?this$static.___clazz:isJavaArray(this$static)?this$static.___clazz:this$static.___clazz || Array.isArray(this$static) && getClassLiteralForArray(Lcom_google_gwt_core_client_JavaScriptObject_2_classLit, 1) || Lcom_google_gwt_core_client_JavaScriptObject_2_classLit; +} + +function hashCode__I__devirtual$(this$static){ + return instanceOfString(this$static)?getHashCode_0(this$static):instanceOfDouble(this$static)?round_int((checkCriticalNotNull(this$static) , this$static)):instanceOfBoolean(this$static)?(checkCriticalNotNull(this$static) , this$static)?1231:1237:hasJavaObjectVirtualDispatch(this$static)?this$static.hashCode_0():isJavaArray(this$static)?getHashCode(this$static):$hashCode(this$static); +} + +defineClass(1, null, {}, Object_0); +_.equals_0 = function equals(other){ + return this === other; +} +; +_.getClass_0 = function getClass_0(){ + return this.___clazz; +} +; +_.hashCode_0 = function hashCode_0(){ + return getHashCode(this); +} +; +_.toString_0 = function toString_0(){ + var number; + return $getName(getClass__Ljava_lang_Class___devirtual$(this)) + '@' + (number = hashCode__I__devirtual$(this) >>> 0 , number.toString(16)); +} +; +_.equals = function(other){ + return this.equals_0(other); +} +; +_.hashCode = function(){ + return this.hashCode_0(); +} +; +_.toString = function(){ + return this.toString_0(); +} +; +function canCast(src_0, dstId){ + if (instanceOfString(src_0)) { + return !!stringCastMap[dstId]; + } + else if (src_0.castableTypeMap) { + return !!src_0.castableTypeMap[dstId]; + } + else if (instanceOfDouble(src_0)) { + return !!doubleCastMap[dstId]; + } + else if (instanceOfBoolean(src_0)) { + return !!booleanCastMap[dstId]; + } + return false; +} + +function charToString(x_0){ + return String.fromCharCode(x_0); +} + +function hasJavaObjectVirtualDispatch(src_0){ + return !Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function instanceOf(src_0, dstId){ + return src_0 != null && canCast(src_0, dstId); +} + +function instanceOfBoolean(src_0){ + return typeof src_0 === 'boolean'; +} + +function instanceOfDouble(src_0){ + return typeof src_0 === 'number'; +} + +function instanceOfJso(src_0){ + return src_0 != null && (typeof src_0 === 'object' || typeof src_0 === 'function') && !(src_0.typeMarker === typeMarkerFn); +} + +function instanceOfString(src_0){ + return typeof src_0 === 'string'; +} + +function maskUndefined(src_0){ + return src_0 == null?null:src_0; +} + +function round_int(x_0){ + return Math.max(Math.min(x_0, $intern_0), -2147483648) | 0; +} + +var booleanCastMap, doubleCastMap, stringCastMap; +function $ensureNamesAreInitialized(this$static){ + if (this$static.typeName != null) { + return; + } + initializeNames(this$static); +} + +function $getName(this$static){ + $ensureNamesAreInitialized(this$static); + return this$static.typeName; +} + +function $getSimpleName(this$static){ + $ensureNamesAreInitialized(this$static); + return this$static.simpleName; +} + +function Class(){ + ++nextSequentialId; + this.typeName = null; + this.simpleName = null; + this.packageName = null; + this.compoundName = null; + this.canonicalName = null; + this.typeId = null; + this.arrayLiterals = null; +} + +function createClassObject(packageName, compoundClassName){ + var clazz; + clazz = new Class; + clazz.packageName = packageName; + clazz.compoundName = compoundClassName; + return clazz; +} + +function createForClass(packageName, compoundClassName, typeId){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + return clazz; +} + +function createForEnum(packageName, compoundClassName, typeId, enumConstantsFunc){ + var clazz; + clazz = createClassObject(packageName, compoundClassName); + maybeSetClassLiteral(typeId, clazz); + clazz.modifiers = enumConstantsFunc?8:0; + return clazz; +} + +function createForPrimitive(className, primitiveTypeId){ + var clazz; + clazz = createClassObject('', className); + clazz.typeId = primitiveTypeId; + clazz.modifiers = 1; + return clazz; +} + +function getClassLiteralForArray_0(leafClass, dimensions){ + var arrayLiterals = leafClass.arrayLiterals = leafClass.arrayLiterals || []; + return arrayLiterals[dimensions] || (arrayLiterals[dimensions] = leafClass.createClassLiteralForArray(dimensions)); +} + +function getPrototypeForClass(clazz){ + if (clazz.isPrimitive()) { + return null; + } + var typeId = clazz.typeId; + return prototypesByTypeId_0[typeId]; +} + +function initializeNames(clazz){ + if (clazz.isArray_0()) { + var componentType = clazz.componentType; + componentType.isPrimitive()?(clazz.typeName = '[' + componentType.typeId):!componentType.isArray_0()?(clazz.typeName = '[L' + componentType.getName_0() + ';'):(clazz.typeName = '[' + componentType.getName_0()); + clazz.canonicalName = componentType.getCanonicalName() + '[]'; + clazz.simpleName = componentType.getSimpleName() + '[]'; + return; + } + var packageName = clazz.packageName; + var compoundName = clazz.compoundName; + compoundName = compoundName.split('/'); + clazz.typeName = join_0('.', [packageName, join_0('$', compoundName)]); + clazz.canonicalName = join_0('.', [packageName, join_0('.', compoundName)]); + clazz.simpleName = compoundName[compoundName.length - 1]; +} + +function join_0(separator, strings){ + var i = 0; + while (!strings[i] || strings[i] == '') { + i++; + } + var result = strings[i++]; + for (; i < strings.length; i++) { + if (!strings[i] || strings[i] == '') { + continue; + } + result += separator + strings[i]; + } + return result; +} + +function maybeSetClassLiteral(typeId, clazz){ + var proto; + if (!typeId) { + return; + } + clazz.typeId = typeId; + var prototype_0 = getPrototypeForClass(clazz); + if (!prototype_0) { + prototypesByTypeId_0[typeId] = [clazz]; + return; + } + prototype_0.___clazz = clazz; +} + +defineClass(312, 1, {}, Class); +_.createClassLiteralForArray = function createClassLiteralForArray(dimensions){ + var clazz; + clazz = new Class; + clazz.modifiers = 4; + dimensions > 1?(clazz.componentType = getClassLiteralForArray_0(this, dimensions - 1)):(clazz.componentType = this); + return clazz; +} +; +_.getCanonicalName = function getCanonicalName(){ + $ensureNamesAreInitialized(this); + return this.canonicalName; +} +; +_.getName_0 = function getName_0(){ + return $getName(this); +} +; +_.getSimpleName = function getSimpleName(){ + return $getSimpleName(this); +} +; +_.isArray_0 = function isArray(){ + return (this.modifiers & 4) != 0; +} +; +_.isPrimitive = function isPrimitive(){ + return (this.modifiers & 1) != 0; +} +; +_.toString_0 = function toString_25(){ + return ((this.modifiers & 2) != 0?'interface ':(this.modifiers & 1) != 0?'':'class ') + ($ensureNamesAreInitialized(this) , this.typeName); +} +; +_.modifiers = 0; +var nextSequentialId = 1; +var Ljava_lang_Object_2_classLit = createForClass('java.lang', 'Object', 1); +var Ljava_lang_Class_2_classLit = createForClass('java.lang', 'Class', 312); +function $cancel(this$static){ + if (!this$static.isRunning_0) { + return; + } + this$static.wasStarted = this$static.isStarted; + this$static.element = null; + this$static.isRunning_0 = false; + this$static.isStarted = false; + if (this$static.requestHandle) { + this$static.requestHandle.cancel(); + this$static.requestHandle = null; + } + this$static.onCancel(); +} + +function $run(this$static, duration, startTime, element){ + $cancel(this$static); + this$static.isRunning_0 = true; + this$static.isStarted = false; + this$static.duration = duration; + this$static.startTime = startTime; + this$static.element = element; + ++this$static.runId; + $execute(this$static.callback, now_1()); +} + +function $run_0(this$static, duration, element){ + $run(this$static, duration, now_1(), element); +} + +function $update(this$static, curTime){ + var curRunId, finished, progress; + curRunId = this$static.runId; + finished = curTime >= this$static.startTime + this$static.duration; + if (this$static.isStarted && !finished) { + progress = (curTime - this$static.startTime) / this$static.duration; + this$static.onUpdate((1 + $wnd.Math.cos($intern_1 + progress * $intern_1)) / 2); + return this$static.isRunning_0 && this$static.runId == curRunId; + } + if (!this$static.isStarted && curTime >= this$static.startTime) { + this$static.isStarted = true; + this$static.onStart(); + if (!(this$static.isRunning_0 && this$static.runId == curRunId)) { + return false; + } + } + if (finished) { + this$static.isRunning_0 = false; + this$static.isStarted = false; + this$static.onComplete(); + return false; + } + return true; +} + +function Animation(){ + Animation_0.call(this, (!instance && (instance = !!$wnd.requestAnimationFrame && !!$wnd.cancelAnimationFrame?new AnimationSchedulerImplStandard:new AnimationSchedulerImplTimer) , instance)); +} + +function Animation_0(scheduler){ + this.callback = new Animation$1(this); + this.scheduler = scheduler; +} + +defineClass(283, 1, {}); +_.onCancel = function onCancel(){ + this.wasStarted && this.onComplete(); +} +; +_.onComplete = function onComplete(){ + this.onUpdate((1 + $wnd.Math.cos($intern_2)) / 2); +} +; +_.onStart = function onStart(){ + this.onUpdate((1 + $wnd.Math.cos($intern_1)) / 2); +} +; +_.duration = -1; +_.isRunning_0 = false; +_.isStarted = false; +_.runId = -1; +_.startTime = -1; +_.wasStarted = false; +var Lcom_google_gwt_animation_client_Animation_2_classLit = createForClass('com.google.gwt.animation.client', 'Animation', 283); +function $execute(this$static, timestamp){ + $update(this$static.this$01, timestamp)?(this$static.this$01.requestHandle = this$static.this$01.scheduler.requestAnimationFrame_0(this$static.this$01.callback, this$static.this$01.element)):(this$static.this$01.requestHandle = null); +} + +function Animation$1(this$0){ + this.this$01 = this$0; +} + +defineClass(516, 1, {}, Animation$1); +_.execute = function execute(timestamp){ + $execute(this, timestamp); +} +; +var Lcom_google_gwt_animation_client_Animation$1_2_classLit = createForClass('com.google.gwt.animation.client', 'Animation/1', 516); +defineClass(976, 1, {}); +var instance; +var Lcom_google_gwt_animation_client_AnimationScheduler_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationScheduler', 976); +defineClass(307, 1, {307:1}); +var Lcom_google_gwt_animation_client_AnimationScheduler$AnimationHandle_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationScheduler/AnimationHandle', 307); +function AnimationSchedulerImplStandard(){ +} + +function cancelImpl(holder){ + $wnd.cancelAnimationFrame(holder.id); +} + +function requestImpl(cb, element){ + var callback = $entry(function(){ + var time = now_1(); + cb.execute(time); + } + ); + var handle = $wnd.requestAnimationFrame(callback, element); + return {id:handle}; +} + +defineClass(917, 976, {}, AnimationSchedulerImplStandard); +_.requestAnimationFrame_0 = function requestAnimationFrame_0(callback, element){ + var handle; + handle = requestImpl(callback, element); + return new AnimationSchedulerImplStandard$1(handle); +} +; +var Lcom_google_gwt_animation_client_AnimationSchedulerImplStandard_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationSchedulerImplStandard', 917); +function AnimationSchedulerImplStandard$1(val$handle){ + this.val$handle2 = val$handle; +} + +defineClass(918, 307, {307:1}, AnimationSchedulerImplStandard$1); +_.cancel = function cancel(){ + cancelImpl(this.val$handle2); +} +; +var Lcom_google_gwt_animation_client_AnimationSchedulerImplStandard$1_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationSchedulerImplStandard/1', 918); +function $cancelAnimationFrame(this$static, requestId){ + $remove_13(this$static.animationRequests, requestId); + this$static.animationRequests.array.length == 0 && $cancel_0(this$static.timer); +} + +function $updateAnimations(this$static){ + var curAnimations, duration, requestId, requestId$index, requestId$max; + curAnimations = initUnidimensionalArray(Lcom_google_gwt_animation_client_AnimationSchedulerImplTimer$AnimationHandleImpl_2_classLit, {982:1, 3:1, 4:1, 6:1}, 308, this$static.animationRequests.array.length, 0, 1); + curAnimations = $toArray_0(this$static.animationRequests, curAnimations); + duration = new Duration; + for (requestId$index = 0 , requestId$max = curAnimations.length; requestId$index < requestId$max; ++requestId$index) { + requestId = curAnimations[requestId$index]; + $remove_13(this$static.animationRequests, requestId); + $execute(requestId.callback, duration.start_0); + } + this$static.animationRequests.array.length > 0 && $schedule(this$static.timer, $wnd.Math.max(5, 16 - (now_1() - duration.start_0))); +} + +function AnimationSchedulerImplTimer(){ + this.animationRequests = new ArrayList; + this.timer = new AnimationSchedulerImplTimer$1(this); +} + +defineClass(919, 976, {}, AnimationSchedulerImplTimer); +_.requestAnimationFrame_0 = function requestAnimationFrame_1(callback, element){ + var requestId; + requestId = new AnimationSchedulerImplTimer$AnimationHandleImpl(this, callback); + $add_8(this.animationRequests, requestId); + this.animationRequests.array.length == 1 && $schedule(this.timer, 16); + return requestId; +} +; +var Lcom_google_gwt_animation_client_AnimationSchedulerImplTimer_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationSchedulerImplTimer', 919); +function $cancel_0(this$static){ + if (!this$static.timerId) { + return; + } + ++this$static.cancelCounter; + this$static.isRepeating?clearInterval_0(this$static.timerId.value_0):clearTimeout_0(this$static.timerId.value_0); + this$static.timerId = null; +} + +function $schedule(this$static, delayMillis){ + if (delayMillis < 0) { + throw toJs(new IllegalArgumentException_0('must be non-negative')); + } + !!this$static.timerId && $cancel_0(this$static); + this$static.isRepeating = false; + this$static.timerId = valueOf_0(setTimeout_0(createCallback(this$static, this$static.cancelCounter), delayMillis)); +} + +function $scheduleRepeating(this$static, periodMillis){ + if (periodMillis <= 0) { + throw toJs(new IllegalArgumentException_0('must be positive')); + } + !!this$static.timerId && $cancel_0(this$static); + this$static.isRepeating = true; + this$static.timerId = valueOf_0(setInterval_0(createCallback(this$static, this$static.cancelCounter), periodMillis)); +} + +function Timer(){ +} + +function clearInterval_0(timerId){ + $wnd.clearInterval(timerId); +} + +function clearTimeout_0(timerId){ + $wnd.clearTimeout(timerId); +} + +function createCallback(timer, cancelCounter){ + return $entry(function(){ + timer.fire(cancelCounter); + } + ); +} + +function setInterval_0(func, time){ + return $wnd.setInterval(func, time); +} + +function setTimeout_0(func, time){ + return $wnd.setTimeout(func, time); +} + +defineClass(202, 1, {}); +_.fire = function fire(scheduleCancelCounter){ + if (scheduleCancelCounter != this.cancelCounter) { + return; + } + this.isRepeating || (this.timerId = null); + this.run(); +} +; +_.cancelCounter = 0; +_.isRepeating = false; +_.timerId = null; +var Lcom_google_gwt_user_client_Timer_2_classLit = createForClass('com.google.gwt.user.client', 'Timer', 202); +function AnimationSchedulerImplTimer$1(this$0){ + this.this$01 = this$0; + Timer.call(this); +} + +defineClass(920, 202, {}, AnimationSchedulerImplTimer$1); +_.run = function run_0(){ + $updateAnimations(this.this$01); +} +; +var Lcom_google_gwt_animation_client_AnimationSchedulerImplTimer$1_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationSchedulerImplTimer/1', 920); +function AnimationSchedulerImplTimer$AnimationHandleImpl(this$0, callback){ + this.this$01 = this$0; + this.callback = callback; +} + +defineClass(308, 307, {307:1, 308:1}, AnimationSchedulerImplTimer$AnimationHandleImpl); +_.cancel = function cancel_0(){ + $cancelAnimationFrame(this.this$01, this); +} +; +var Lcom_google_gwt_animation_client_AnimationSchedulerImplTimer$AnimationHandleImpl_2_classLit = createForClass('com.google.gwt.animation.client', 'AnimationSchedulerImplTimer/AnimationHandleImpl', 308); +function $set(this$static, element){ + $setAttribute(element, 'role', this$static.roleName); +} + +function $setAriaHaspopupProperty(element, value_0){ + $set_0(($clinit_Property() , HASPOPUP), element, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Boolean_2_classLit, 1), $intern_3, 277, 8, [($clinit_Boolean() , value_0?true:false)])); +} + +function RoleImpl(roleName){ + this.roleName = roleName; +} + +defineClass(34, 1, {}); +var Lcom_google_gwt_aria_client_RoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RoleImpl', 34); +function AlertRoleImpl(){ + RoleImpl.call(this, 'alert'); +} + +defineClass(812, 34, {}, AlertRoleImpl); +var Lcom_google_gwt_aria_client_AlertRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'AlertRoleImpl', 812); +function AlertdialogRoleImpl(){ + RoleImpl.call(this, 'alertdialog'); +} + +defineClass(811, 34, {}, AlertdialogRoleImpl); +var Lcom_google_gwt_aria_client_AlertdialogRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'AlertdialogRoleImpl', 811); +function ApplicationRoleImpl(){ + RoleImpl.call(this, 'application'); +} + +defineClass(813, 34, {}, ApplicationRoleImpl); +var Lcom_google_gwt_aria_client_ApplicationRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ApplicationRoleImpl', 813); +function $getAriaValue(this$static, value_0){ + var buf, item_0, item$index, item$max; + buf = new StringBuilder; + for (item$index = 0 , item$max = value_0.length; item$index < item$max; ++item$index) { + item_0 = value_0[item$index]; + $append_4($append_4(buf, this$static.getSingleValue(item_0)), ' '); + } + return $trim(buf.string); +} + +function $set_0(this$static, element, values){ + $setAttribute(element, this$static.name_0, $getAriaValue(this$static, values)); +} + +function Attribute(name_0){ + this.name_0 = name_0; +} + +defineClass(440, 1, {}); +var Lcom_google_gwt_aria_client_Attribute_2_classLit = createForClass('com.google.gwt.aria.client', 'Attribute', 440); +function AriaValueAttribute(name_0){ + Attribute.call(this, name_0); +} + +defineClass(106, 440, {}, AriaValueAttribute); +_.getSingleValue = function getSingleValue(value_0){ + return value_0.id_0; +} +; +var Lcom_google_gwt_aria_client_AriaValueAttribute_2_classLit = createForClass('com.google.gwt.aria.client', 'AriaValueAttribute', 106); +function ArticleRoleImpl(){ + RoleImpl.call(this, 'article'); +} + +defineClass(814, 34, {}, ArticleRoleImpl); +var Lcom_google_gwt_aria_client_ArticleRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ArticleRoleImpl', 814); +function BannerRoleImpl(){ + RoleImpl.call(this, 'banner'); +} + +defineClass(815, 34, {}, BannerRoleImpl); +var Lcom_google_gwt_aria_client_BannerRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'BannerRoleImpl', 815); +function ButtonRoleImpl(){ + RoleImpl.call(this, 'button'); +} + +defineClass(816, 34, {}, ButtonRoleImpl); +var Lcom_google_gwt_aria_client_ButtonRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ButtonRoleImpl', 816); +function CheckboxRoleImpl(){ + RoleImpl.call(this, 'checkbox'); +} + +defineClass(817, 34, {}, CheckboxRoleImpl); +var Lcom_google_gwt_aria_client_CheckboxRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'CheckboxRoleImpl', 817); +function ColumnheaderRoleImpl(){ + RoleImpl.call(this, 'columnheader'); +} + +defineClass(818, 34, {}, ColumnheaderRoleImpl); +var Lcom_google_gwt_aria_client_ColumnheaderRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ColumnheaderRoleImpl', 818); +function ComboboxRoleImpl(){ + RoleImpl.call(this, 'combobox'); +} + +defineClass(819, 34, {}, ComboboxRoleImpl); +var Lcom_google_gwt_aria_client_ComboboxRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ComboboxRoleImpl', 819); +function ComplementaryRoleImpl(){ + RoleImpl.call(this, 'complementary'); +} + +defineClass(820, 34, {}, ComplementaryRoleImpl); +var Lcom_google_gwt_aria_client_ComplementaryRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ComplementaryRoleImpl', 820); +function ContentinfoRoleImpl(){ + RoleImpl.call(this, 'contentinfo'); +} + +defineClass(821, 34, {}, ContentinfoRoleImpl); +var Lcom_google_gwt_aria_client_ContentinfoRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ContentinfoRoleImpl', 821); +function DefinitionRoleImpl(){ + RoleImpl.call(this, 'definition'); +} + +defineClass(822, 34, {}, DefinitionRoleImpl); +var Lcom_google_gwt_aria_client_DefinitionRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'DefinitionRoleImpl', 822); +function DialogRoleImpl(){ + RoleImpl.call(this, 'dialog'); +} + +defineClass(823, 34, {}, DialogRoleImpl); +var Lcom_google_gwt_aria_client_DialogRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'DialogRoleImpl', 823); +function DirectoryRoleImpl(){ + RoleImpl.call(this, 'directory'); +} + +defineClass(824, 34, {}, DirectoryRoleImpl); +var Lcom_google_gwt_aria_client_DirectoryRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'DirectoryRoleImpl', 824); +function DocumentRoleImpl(){ + RoleImpl.call(this, 'document'); +} + +defineClass(825, 34, {}, DocumentRoleImpl); +var Lcom_google_gwt_aria_client_DocumentRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'DocumentRoleImpl', 825); +function FormRoleImpl(){ + RoleImpl.call(this, 'form'); +} + +defineClass(826, 34, {}, FormRoleImpl); +var Lcom_google_gwt_aria_client_FormRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'FormRoleImpl', 826); +function GridRoleImpl(){ + RoleImpl.call(this, 'grid'); +} + +defineClass(828, 34, {}, GridRoleImpl); +var Lcom_google_gwt_aria_client_GridRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'GridRoleImpl', 828); +function GridcellRoleImpl(){ + RoleImpl.call(this, 'gridcell'); +} + +defineClass(827, 34, {}, GridcellRoleImpl); +var Lcom_google_gwt_aria_client_GridcellRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'GridcellRoleImpl', 827); +function GroupRoleImpl(){ + RoleImpl.call(this, 'group'); +} + +defineClass(829, 34, {}, GroupRoleImpl); +var Lcom_google_gwt_aria_client_GroupRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'GroupRoleImpl', 829); +function HeadingRoleImpl(){ + RoleImpl.call(this, 'heading'); +} + +defineClass(830, 34, {}, HeadingRoleImpl); +var Lcom_google_gwt_aria_client_HeadingRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'HeadingRoleImpl', 830); +function $init(this$static, elementId){ + this$static.id_0 = elementId; +} + +function Id(element){ + $init(this, element.id); +} + +defineClass(298, 1, {996:1, 298:1}, Id); +var Lcom_google_gwt_aria_client_Id_2_classLit = createForClass('com.google.gwt.aria.client', 'Id', 298); +function ImgRoleImpl(){ + RoleImpl.call(this, 'img'); +} + +defineClass(831, 34, {}, ImgRoleImpl); +var Lcom_google_gwt_aria_client_ImgRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ImgRoleImpl', 831); +function LinkRoleImpl(){ + RoleImpl.call(this, 'link'); +} + +defineClass(832, 34, {}, LinkRoleImpl); +var Lcom_google_gwt_aria_client_LinkRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'LinkRoleImpl', 832); +function ListRoleImpl(){ + RoleImpl.call(this, 'list'); +} + +defineClass(835, 34, {}, ListRoleImpl); +var Lcom_google_gwt_aria_client_ListRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ListRoleImpl', 835); +function ListboxRoleImpl(){ + RoleImpl.call(this, 'listbox'); +} + +defineClass(833, 34, {}, ListboxRoleImpl); +var Lcom_google_gwt_aria_client_ListboxRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ListboxRoleImpl', 833); +function ListitemRoleImpl(){ + RoleImpl.call(this, 'listitem'); +} + +defineClass(834, 34, {}, ListitemRoleImpl); +var Lcom_google_gwt_aria_client_ListitemRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ListitemRoleImpl', 834); +function LogRoleImpl(){ + RoleImpl.call(this, 'log'); +} + +defineClass(836, 34, {}, LogRoleImpl); +var Lcom_google_gwt_aria_client_LogRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'LogRoleImpl', 836); +function MainRoleImpl(){ + RoleImpl.call(this, 'main'); +} + +defineClass(837, 34, {}, MainRoleImpl); +var Lcom_google_gwt_aria_client_MainRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MainRoleImpl', 837); +function MarqueeRoleImpl(){ + RoleImpl.call(this, 'marquee'); +} + +defineClass(838, 34, {}, MarqueeRoleImpl); +var Lcom_google_gwt_aria_client_MarqueeRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MarqueeRoleImpl', 838); +function MathRoleImpl(){ + RoleImpl.call(this, 'math'); +} + +defineClass(839, 34, {}, MathRoleImpl); +var Lcom_google_gwt_aria_client_MathRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MathRoleImpl', 839); +function MenuRoleImpl(){ + RoleImpl.call(this, 'menu'); +} + +defineClass(844, 34, {}, MenuRoleImpl); +var Lcom_google_gwt_aria_client_MenuRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MenuRoleImpl', 844); +function $setAriaActivedescendantProperty(element, value_0){ + $set_0(($clinit_Property() , ACTIVEDESCENDANT), element, stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_aria_client_Id_2_classLit, 1), $intern_3, 298, 0, [value_0])); +} + +function MenubarRoleImpl(){ + RoleImpl.call(this, 'menubar'); +} + +defineClass(840, 34, {}, MenubarRoleImpl); +var Lcom_google_gwt_aria_client_MenubarRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MenubarRoleImpl', 840); +function MenuitemRoleImpl(){ + RoleImpl.call(this, 'menuitem'); +} + +defineClass(843, 34, {}, MenuitemRoleImpl); +var Lcom_google_gwt_aria_client_MenuitemRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MenuitemRoleImpl', 843); +function MenuitemcheckboxRoleImpl(){ + RoleImpl.call(this, 'menuitemcheckbox'); +} + +defineClass(841, 34, {}, MenuitemcheckboxRoleImpl); +var Lcom_google_gwt_aria_client_MenuitemcheckboxRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MenuitemcheckboxRoleImpl', 841); +function MenuitemradioRoleImpl(){ + RoleImpl.call(this, 'menuitemradio'); +} + +defineClass(842, 34, {}, MenuitemradioRoleImpl); +var Lcom_google_gwt_aria_client_MenuitemradioRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'MenuitemradioRoleImpl', 842); +function NavigationRoleImpl(){ + RoleImpl.call(this, 'navigation'); +} + +defineClass(845, 34, {}, NavigationRoleImpl); +var Lcom_google_gwt_aria_client_NavigationRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'NavigationRoleImpl', 845); +function NoteRoleImpl(){ + RoleImpl.call(this, 'note'); +} + +defineClass(846, 34, {}, NoteRoleImpl); +var Lcom_google_gwt_aria_client_NoteRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'NoteRoleImpl', 846); +function OptionRoleImpl(){ + RoleImpl.call(this, 'option'); +} + +defineClass(847, 34, {}, OptionRoleImpl); +var Lcom_google_gwt_aria_client_OptionRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'OptionRoleImpl', 847); +function PresentationRoleImpl(){ + RoleImpl.call(this, 'presentation'); +} + +defineClass(848, 34, {}, PresentationRoleImpl); +var Lcom_google_gwt_aria_client_PresentationRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'PresentationRoleImpl', 848); +function PrimitiveValueAttribute(name_0){ + Attribute.call(this, name_0); +} + +defineClass(112, 440, {}, PrimitiveValueAttribute); +_.getSingleValue = function getSingleValue_0(value_0){ + return value_0 == null?'null':toString_9(value_0); +} +; +var Lcom_google_gwt_aria_client_PrimitiveValueAttribute_2_classLit = createForClass('com.google.gwt.aria.client', 'PrimitiveValueAttribute', 112); +function ProgressbarRoleImpl(){ + RoleImpl.call(this, 'progressbar'); +} + +defineClass(849, 34, {}, ProgressbarRoleImpl); +var Lcom_google_gwt_aria_client_ProgressbarRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ProgressbarRoleImpl', 849); +function $clinit_Property(){ + $clinit_Property = emptyMethod; + ACTIVEDESCENDANT = new AriaValueAttribute('aria-activedescendant'); + new PrimitiveValueAttribute('aria-atomic'); + new AriaValueAttribute('aria-autocomplete'); + new AriaValueAttribute('aria-controls'); + new AriaValueAttribute('aria-describedby'); + new AriaValueAttribute('aria-dropeffect'); + new AriaValueAttribute('aria-flowto'); + HASPOPUP = new PrimitiveValueAttribute('aria-haspopup'); + new PrimitiveValueAttribute('aria-label'); + new AriaValueAttribute('aria-labelledby'); + new PrimitiveValueAttribute('aria-level'); + new AriaValueAttribute('aria-live'); + new PrimitiveValueAttribute('aria-multiline'); + new PrimitiveValueAttribute('aria-multiselectable'); + new AriaValueAttribute('aria-orientation'); + new AriaValueAttribute('aria-owns'); + new PrimitiveValueAttribute('aria-posinset'); + new PrimitiveValueAttribute('aria-readonly'); + new AriaValueAttribute('aria-relevant'); + new PrimitiveValueAttribute('aria-required'); + new PrimitiveValueAttribute('aria-setsize'); + new AriaValueAttribute('aria-sort'); + new PrimitiveValueAttribute('aria-valuemax'); + new PrimitiveValueAttribute('aria-valuemin'); + new PrimitiveValueAttribute('aria-valuenow'); + new PrimitiveValueAttribute('aria-valuetext'); +} + +var ACTIVEDESCENDANT, HASPOPUP; +function RadioRoleImpl(){ + RoleImpl.call(this, 'radio'); +} + +defineClass(851, 34, {}, RadioRoleImpl); +var Lcom_google_gwt_aria_client_RadioRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RadioRoleImpl', 851); +function RadiogroupRoleImpl(){ + RoleImpl.call(this, 'radiogroup'); +} + +defineClass(850, 34, {}, RadiogroupRoleImpl); +var Lcom_google_gwt_aria_client_RadiogroupRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RadiogroupRoleImpl', 850); +function RegionRoleImpl(){ + RoleImpl.call(this, 'region'); +} + +defineClass(852, 34, {}, RegionRoleImpl); +var Lcom_google_gwt_aria_client_RegionRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RegionRoleImpl', 852); +function $clinit_Roles(){ + $clinit_Roles = emptyMethod; + ALERTDIALOG = new AlertdialogRoleImpl; + ALERT = new AlertRoleImpl; + APPLICATION = new ApplicationRoleImpl; + ARTICLE = new ArticleRoleImpl; + BANNER = new BannerRoleImpl; + BUTTON = new ButtonRoleImpl; + CHECKBOX = new CheckboxRoleImpl; + COLUMNHEADER = new ColumnheaderRoleImpl; + COMBOBOX = new ComboboxRoleImpl; + COMPLEMENTARY = new ComplementaryRoleImpl; + CONTENTINFO = new ContentinfoRoleImpl; + DEFINITION = new DefinitionRoleImpl; + DIALOG = new DialogRoleImpl; + DIRECTORY = new DirectoryRoleImpl; + DOCUMENT = new DocumentRoleImpl; + FORM = new FormRoleImpl; + GRIDCELL = new GridcellRoleImpl; + GRID = new GridRoleImpl; + GROUP = new GroupRoleImpl; + HEADING = new HeadingRoleImpl; + IMG = new ImgRoleImpl; + LINK = new LinkRoleImpl; + LISTBOX = new ListboxRoleImpl; + LISTITEM = new ListitemRoleImpl; + LIST = new ListRoleImpl; + LOG = new LogRoleImpl; + MAIN = new MainRoleImpl; + MARQUEE = new MarqueeRoleImpl; + MATH = new MathRoleImpl; + MENUBAR = new MenubarRoleImpl; + MENUITEMCHECKBOX = new MenuitemcheckboxRoleImpl; + MENUITEMRADIO = new MenuitemradioRoleImpl; + MENUITEM = new MenuitemRoleImpl; + MENU = new MenuRoleImpl; + NAVIGATION = new NavigationRoleImpl; + NOTE = new NoteRoleImpl; + OPTION = new OptionRoleImpl; + PRESENTATION = new PresentationRoleImpl; + PROGRESSBAR = new ProgressbarRoleImpl; + RADIOGROUP = new RadiogroupRoleImpl; + RADIO = new RadioRoleImpl; + REGION = new RegionRoleImpl; + ROWGROUP = new RowgroupRoleImpl; + ROWHEADER = new RowheaderRoleImpl; + ROW = new RowRoleImpl; + SCROLLBAR = new ScrollbarRoleImpl; + SEARCH = new SearchRoleImpl; + SEPARATOR = new SeparatorRoleImpl; + SLIDER = new SliderRoleImpl; + SPINBUTTON = new SpinbuttonRoleImpl; + STATUS = new StatusRoleImpl; + TABLIST = new TablistRoleImpl; + TABPANEL = new TabpanelRoleImpl; + TAB = new TabRoleImpl; + TEXTBOX = new TextboxRoleImpl; + TIMER = new TimerRoleImpl; + TOOLBAR = new ToolbarRoleImpl; + TOOLTIP = new TooltipRoleImpl; + TREEGRID = new TreegridRoleImpl; + TREEITEM = new TreeitemRoleImpl; + TREE = new TreeRoleImpl; + ROLES_MAP = new HashMap; + $putStringValue(ROLES_MAP, 'region', REGION); + $putStringValue(ROLES_MAP, 'alert', ALERT); + $putStringValue(ROLES_MAP, 'dialog', DIALOG); + $putStringValue(ROLES_MAP, 'alertdialog', ALERTDIALOG); + $putStringValue(ROLES_MAP, 'application', APPLICATION); + $putStringValue(ROLES_MAP, 'document', DOCUMENT); + $putStringValue(ROLES_MAP, 'article', ARTICLE); + $putStringValue(ROLES_MAP, 'banner', BANNER); + $putStringValue(ROLES_MAP, 'button', BUTTON); + $putStringValue(ROLES_MAP, 'checkbox', CHECKBOX); + $putStringValue(ROLES_MAP, 'gridcell', GRIDCELL); + $putStringValue(ROLES_MAP, 'columnheader', COLUMNHEADER); + $putStringValue(ROLES_MAP, 'group', GROUP); + $putStringValue(ROLES_MAP, 'combobox', COMBOBOX); + $putStringValue(ROLES_MAP, 'complementary', COMPLEMENTARY); + $putStringValue(ROLES_MAP, 'contentinfo', CONTENTINFO); + $putStringValue(ROLES_MAP, 'definition', DEFINITION); + $putStringValue(ROLES_MAP, 'list', LIST); + $putStringValue(ROLES_MAP, 'directory', DIRECTORY); + $putStringValue(ROLES_MAP, 'form', FORM); + $putStringValue(ROLES_MAP, 'grid', GRID); + $putStringValue(ROLES_MAP, 'heading', HEADING); + $putStringValue(ROLES_MAP, 'img', IMG); + $putStringValue(ROLES_MAP, 'link', LINK); + $putStringValue(ROLES_MAP, 'listbox', LISTBOX); + $putStringValue(ROLES_MAP, 'listitem', LISTITEM); + $putStringValue(ROLES_MAP, 'log', LOG); + $putStringValue(ROLES_MAP, 'main', MAIN); + $putStringValue(ROLES_MAP, 'marquee', MARQUEE); + $putStringValue(ROLES_MAP, 'math', MATH); + $putStringValue(ROLES_MAP, 'menu', MENU); + $putStringValue(ROLES_MAP, 'menubar', MENUBAR); + $putStringValue(ROLES_MAP, 'menuitem', MENUITEM); + $putStringValue(ROLES_MAP, 'menuitemcheckbox', MENUITEMCHECKBOX); + $putStringValue(ROLES_MAP, 'option', OPTION); + $putStringValue(ROLES_MAP, 'radio', RADIO); + $putStringValue(ROLES_MAP, 'menuitemradio', MENUITEMRADIO); + $putStringValue(ROLES_MAP, 'navigation', NAVIGATION); + $putStringValue(ROLES_MAP, 'note', NOTE); + $putStringValue(ROLES_MAP, 'presentation', PRESENTATION); + $putStringValue(ROLES_MAP, 'progressbar', PROGRESSBAR); + $putStringValue(ROLES_MAP, 'radiogroup', RADIOGROUP); + $putStringValue(ROLES_MAP, 'row', ROW); + $putStringValue(ROLES_MAP, 'rowgroup', ROWGROUP); + $putStringValue(ROLES_MAP, 'rowheader', ROWHEADER); + $putStringValue(ROLES_MAP, 'search', SEARCH); + $putStringValue(ROLES_MAP, 'separator', SEPARATOR); + $putStringValue(ROLES_MAP, 'scrollbar', SCROLLBAR); + $putStringValue(ROLES_MAP, 'slider', SLIDER); + $putStringValue(ROLES_MAP, 'spinbutton', SPINBUTTON); + $putStringValue(ROLES_MAP, 'status', STATUS); + $putStringValue(ROLES_MAP, 'tab', TAB); + $putStringValue(ROLES_MAP, 'tablist', TABLIST); + $putStringValue(ROLES_MAP, 'tabpanel', TABPANEL); + $putStringValue(ROLES_MAP, 'textbox', TEXTBOX); + $putStringValue(ROLES_MAP, 'timer', TIMER); + $putStringValue(ROLES_MAP, 'toolbar', TOOLBAR); + $putStringValue(ROLES_MAP, 'tooltip', TOOLTIP); + $putStringValue(ROLES_MAP, 'tree', TREE); + $putStringValue(ROLES_MAP, 'treegrid', TREEGRID); + $putStringValue(ROLES_MAP, 'treeitem', TREEITEM); +} + +var ALERT, ALERTDIALOG, APPLICATION, ARTICLE, BANNER, BUTTON, CHECKBOX, COLUMNHEADER, COMBOBOX, COMPLEMENTARY, CONTENTINFO, DEFINITION, DIALOG, DIRECTORY, DOCUMENT, FORM, GRID, GRIDCELL, GROUP, HEADING, IMG, LINK, LIST, LISTBOX, LISTITEM, LOG, MAIN, MARQUEE, MATH, MENU, MENUBAR, MENUITEM, MENUITEMCHECKBOX, MENUITEMRADIO, NAVIGATION, NOTE, OPTION, PRESENTATION, PROGRESSBAR, RADIO, RADIOGROUP, REGION, ROLES_MAP, ROW, ROWGROUP, ROWHEADER, SCROLLBAR, SEARCH, SEPARATOR, SLIDER, SPINBUTTON, STATUS, TAB, TABLIST, TABPANEL, TEXTBOX, TIMER, TOOLBAR, TOOLTIP, TREE, TREEGRID, TREEITEM; +function RowRoleImpl(){ + RoleImpl.call(this, 'row'); +} + +defineClass(855, 34, {}, RowRoleImpl); +var Lcom_google_gwt_aria_client_RowRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RowRoleImpl', 855); +function RowgroupRoleImpl(){ + RoleImpl.call(this, 'rowgroup'); +} + +defineClass(853, 34, {}, RowgroupRoleImpl); +var Lcom_google_gwt_aria_client_RowgroupRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RowgroupRoleImpl', 853); +function RowheaderRoleImpl(){ + RoleImpl.call(this, 'rowheader'); +} + +defineClass(854, 34, {}, RowheaderRoleImpl); +var Lcom_google_gwt_aria_client_RowheaderRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'RowheaderRoleImpl', 854); +function ScrollbarRoleImpl(){ + RoleImpl.call(this, 'scrollbar'); +} + +defineClass(856, 34, {}, ScrollbarRoleImpl); +var Lcom_google_gwt_aria_client_ScrollbarRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ScrollbarRoleImpl', 856); +function SearchRoleImpl(){ + RoleImpl.call(this, 'search'); +} + +defineClass(857, 34, {}, SearchRoleImpl); +var Lcom_google_gwt_aria_client_SearchRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'SearchRoleImpl', 857); +function SeparatorRoleImpl(){ + RoleImpl.call(this, 'separator'); +} + +defineClass(858, 34, {}, SeparatorRoleImpl); +var Lcom_google_gwt_aria_client_SeparatorRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'SeparatorRoleImpl', 858); +function SliderRoleImpl(){ + RoleImpl.call(this, 'slider'); +} + +defineClass(859, 34, {}, SliderRoleImpl); +var Lcom_google_gwt_aria_client_SliderRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'SliderRoleImpl', 859); +function SpinbuttonRoleImpl(){ + RoleImpl.call(this, 'spinbutton'); +} + +defineClass(860, 34, {}, SpinbuttonRoleImpl); +var Lcom_google_gwt_aria_client_SpinbuttonRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'SpinbuttonRoleImpl', 860); +function $clinit_State(){ + $clinit_State = emptyMethod; + new PrimitiveValueAttribute('aria-busy'); + new AriaValueAttribute('aria-checked'); + new PrimitiveValueAttribute('aria-disabled'); + new AriaValueAttribute('aria-expanded'); + new AriaValueAttribute('aria-grabbed'); + HIDDEN = new PrimitiveValueAttribute('aria-hidden'); + new AriaValueAttribute('aria-invalid'); + new AriaValueAttribute('aria-pressed'); + new AriaValueAttribute('aria-selected'); +} + +var HIDDEN; +function StatusRoleImpl(){ + RoleImpl.call(this, 'status'); +} + +defineClass(861, 34, {}, StatusRoleImpl); +var Lcom_google_gwt_aria_client_StatusRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'StatusRoleImpl', 861); +function TabRoleImpl(){ + RoleImpl.call(this, 'tab'); +} + +defineClass(864, 34, {}, TabRoleImpl); +var Lcom_google_gwt_aria_client_TabRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TabRoleImpl', 864); +function TablistRoleImpl(){ + RoleImpl.call(this, 'tablist'); +} + +defineClass(862, 34, {}, TablistRoleImpl); +var Lcom_google_gwt_aria_client_TablistRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TablistRoleImpl', 862); +function TabpanelRoleImpl(){ + RoleImpl.call(this, 'tabpanel'); +} + +defineClass(863, 34, {}, TabpanelRoleImpl); +var Lcom_google_gwt_aria_client_TabpanelRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TabpanelRoleImpl', 863); +function TextboxRoleImpl(){ + RoleImpl.call(this, 'textbox'); +} + +defineClass(865, 34, {}, TextboxRoleImpl); +var Lcom_google_gwt_aria_client_TextboxRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TextboxRoleImpl', 865); +function TimerRoleImpl(){ + RoleImpl.call(this, 'timer'); +} + +defineClass(866, 34, {}, TimerRoleImpl); +var Lcom_google_gwt_aria_client_TimerRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TimerRoleImpl', 866); +function ToolbarRoleImpl(){ + RoleImpl.call(this, 'toolbar'); +} + +defineClass(867, 34, {}, ToolbarRoleImpl); +var Lcom_google_gwt_aria_client_ToolbarRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'ToolbarRoleImpl', 867); +function TooltipRoleImpl(){ + RoleImpl.call(this, 'tooltip'); +} + +defineClass(868, 34, {}, TooltipRoleImpl); +var Lcom_google_gwt_aria_client_TooltipRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TooltipRoleImpl', 868); +function TreeRoleImpl(){ + RoleImpl.call(this, 'tree'); +} + +defineClass(871, 34, {}, TreeRoleImpl); +var Lcom_google_gwt_aria_client_TreeRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TreeRoleImpl', 871); +function TreegridRoleImpl(){ + RoleImpl.call(this, 'treegrid'); +} + +defineClass(869, 34, {}, TreegridRoleImpl); +var Lcom_google_gwt_aria_client_TreegridRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TreegridRoleImpl', 869); +function TreeitemRoleImpl(){ + RoleImpl.call(this, 'treeitem'); +} + +defineClass(870, 34, {}, TreeitemRoleImpl); +var Lcom_google_gwt_aria_client_TreeitemRoleImpl_2_classLit = createForClass('com.google.gwt.aria.client', 'TreeitemRoleImpl', 870); +function $addStyleDependentName(this$static){ + $setStyleName_0(this$static, getStylePrimaryName(this$static.element) + '-' + 'selected', true); +} + +function $addStyleName(this$static, style){ + setStyleName(this$static.getStyleElement(), style, true); +} + +function $getAbsoluteTop(this$static){ + return $getAbsoluteTop_0(this$static.element); +} + +function $getOffsetHeight(this$static){ + return $getPropertyInt(this$static.element, 'offsetHeight'); +} + +function $getOffsetWidth(this$static){ + return $getPropertyInt(this$static.element, 'offsetWidth'); +} + +function $removeStyleName(this$static){ + setStyleName(this$static.element, 'chsel', false); +} + +function $resolvePotentialElement(){ + throw toJs(new UnsupportedOperationException); +} + +function $setElement(this$static, elem){ + $setElement_0(this$static, elem); +} + +function $setElement_0(this$static, elem){ + this$static.element = elem; +} + +function $setHeight(this$static, height){ + this$static.element.style['height'] = height; +} + +function $setStyleName(this$static, style){ + $setClassName(this$static.getStyleElement(), style); +} + +function $setStyleName_0(this$static, style, add_0){ + setStyleName(this$static.getStyleElement(), style, add_0); +} + +function $setStylePrimaryName(this$static){ + setStylePrimaryName(this$static.element, 'topButton'); +} + +function $setTitle(this$static, title_0){ + title_0 == null || title_0.length == 0?(this$static.element.removeAttribute('title') , undefined):$setAttribute(this$static.element, 'title', title_0); +} + +function $setVisible(this$static, visible){ + setVisible(this$static.element, visible); +} + +function $setWidth(this$static, width_0){ + this$static.element.style['width'] = width_0; +} + +function getStylePrimaryName(elem){ + var fullClassName, spaceIdx; + fullClassName = elem.className || ''; + spaceIdx = $indexOf_1(fullClassName, fromCodePoint(32)); + if (spaceIdx >= 0) { + return fullClassName.substr(0, spaceIdx); + } + return fullClassName; +} + +function setStyleName(elem, style, add_0){ + if (!elem) { + throw toJs(new RuntimeException_0('Null widget handle. If you are creating a composite, ensure that initWidget() has been called.')); + } + style = $trim(style); + if (style.length == 0) { + throw toJs(new IllegalArgumentException_0('Style names cannot be empty')); + } + add_0?$addClassName(elem, style):$removeClassName(elem, style); +} + +function setStylePrimaryName(elem, style){ + if (!elem) { + throw toJs(new RuntimeException_0('Null widget handle. If you are creating a composite, ensure that initWidget() has been called.')); + } + style = $trim(style); + if (style.length == 0) { + throw toJs(new IllegalArgumentException_0('Style names cannot be empty')); + } + updatePrimaryAndDependentStyleNames(elem, style); +} + +function setVisible(elem, visible){ + elem.style.display = visible?'':'none'; + visible?elem.removeAttribute('aria-hidden'):elem.setAttribute('aria-hidden', 'true'); +} + +function updatePrimaryAndDependentStyleNames(elem, newPrimaryStyle){ + var classes = (elem.className || '').split(/\s+/); + if (!classes) { + return; + } + var oldPrimaryStyle = classes[0]; + var oldPrimaryStyleLen = oldPrimaryStyle.length; + classes[0] = newPrimaryStyle; + for (var i = 1, n = classes.length; i < n; i++) { + var name_0 = classes[i]; + name_0.length > oldPrimaryStyleLen && name_0.charAt(oldPrimaryStyleLen) == '-' && name_0.indexOf(oldPrimaryStyle) == 0 && (classes[i] = newPrimaryStyle + name_0.substring(oldPrimaryStyleLen)); + } + elem.className = classes.join(' '); +} + +defineClass(21, 1, $intern_4); +_.getStyleElement = function getStyleElement(){ + return this.element; +} +; +_.resolvePotentialElement = function resolvePotentialElement(){ + return $resolvePotentialElement(); +} +; +_.setHeight_0 = function setHeight(height){ + $setHeight(this, height); +} +; +_.setWidth_0 = function setWidth(width_0){ + $setWidth(this, width_0); +} +; +_.toString_0 = function toString_1(){ + if (!this.element) { + return '(null handle)'; + } + return this.element.outerHTML; +} +; +var Lcom_google_gwt_user_client_ui_UIObject_2_classLit = createForClass('com.google.gwt.user.client.ui', 'UIObject', 21); +function $addDomHandler(this$static, handler, type_0){ + var typeInt; + typeInt = getTypeInt(type_0.name_0); + typeInt == -1?null:this$static.sinkEvents(typeInt); + return $addHandler_0(!this$static.handlerManager?(this$static.handlerManager = new HandlerManager(this$static)):this$static.handlerManager, type_0, handler); +} + +function $addHandler(this$static, handler, type_0){ + return $addHandler_0(!this$static.handlerManager?(this$static.handlerManager = new HandlerManager(this$static)):this$static.handlerManager, type_0, handler); +} + +function $fireEvent(this$static, event_0){ + !!this$static.handlerManager && $fireEvent_0(this$static.handlerManager, event_0); +} + +function $onAttach(this$static){ + var bitsToAdd; + if (this$static.isAttached()) { + throw toJs(new IllegalStateException_0("Should only call onAttach when the widget is detached from the browser's document")); + } + this$static.attached = true; + setEventListener(this$static.element, this$static); + bitsToAdd = this$static.eventsToSink; + this$static.eventsToSink = -1; + bitsToAdd > 0 && this$static.sinkEvents(bitsToAdd); + this$static.doAttachChildren(); + this$static.onLoad(); + fire_0(this$static, true); +} + +function $onBrowserEvent(this$static, event_0){ + var related; + switch ($eventGetTypeInt(event_0.type)) { + case 16: + case 32: + related = event_0.relatedTarget || (event_0.type == 'mouseout'?event_0.toElement:event_0.fromElement); + if (!!related && isOrHasChildImpl(this$static.element, related)) { + return; + } + + } + fireNativeEvent(event_0, this$static, this$static.element); +} + +function $onDetach(this$static){ + if (!this$static.isAttached()) { + throw toJs(new IllegalStateException_0("Should only call onDetach when the widget is attached to the browser's document")); + } + try { + this$static.onUnload(); + fire_0(this$static, false); + } + finally { + try { + this$static.doDetachChildren(); + } + finally { + this$static.element.__listener = null; + this$static.attached = false; + } + } +} + +function $removeFromParent(this$static){ + if (!this$static.parent_0) { + $clinit_RootPanel(); + $contains_2(widgetsToDetach, this$static) && detachNow(this$static); + } + else if (instanceOf(this$static.parent_0, 44)) { + this$static.parent_0.remove_0(this$static); + } + else if (this$static.parent_0) { + throw toJs(new IllegalStateException_0("This widget's parent does not implement HasWidgets")); + } +} + +function $setParent(this$static, parent_0){ + var oldParent; + oldParent = this$static.parent_0; + if (!parent_0) { + try { + !!oldParent && oldParent.isAttached() && this$static.onDetach(); + } + finally { + this$static.parent_0 = null; + } + } + else { + if (oldParent) { + throw toJs(new IllegalStateException_0('Cannot set a new parent without first clearing the old parent')); + } + this$static.parent_0 = parent_0; + parent_0.isAttached() && this$static.onAttach(); + } +} + +function $sinkEvents(this$static, eventBitsToAdd){ + this$static.eventsToSink == -1?sinkEvents_0(this$static.element, eventBitsToAdd | (this$static.element.__eventBits || 0)):(this$static.eventsToSink |= eventBitsToAdd); +} + +defineClass(25, 21, $intern_5); +_.doAttachChildren = function doAttachChildren(){ +} +; +_.doDetachChildren = function doDetachChildren(){ +} +; +_.fireEvent_0 = function fireEvent(event_0){ + $fireEvent(this, event_0); +} +; +_.isAttached = function isAttached(){ + return this.attached; +} +; +_.onAttach = function onAttach(){ + $onAttach(this); +} +; +_.onBrowserEvent = function onBrowserEvent(event_0){ + $onBrowserEvent(this, event_0); +} +; +_.onDetach = function onDetach(){ + $onDetach(this); +} +; +_.onLoad = function onLoad(){ +} +; +_.onUnload = function onUnload(){ +} +; +_.sinkEvents = function sinkEvents(eventBitsToAdd){ + $sinkEvents(this, eventBitsToAdd); +} +; +_.attached = false; +_.eventsToSink = 0; +var Lcom_google_gwt_user_client_ui_Widget_2_classLit = createForClass('com.google.gwt.user.client.ui', 'Widget', 25); +function $setEnabled(this$static, enabled){ + this$static.element['disabled'] = !enabled; +} + +function $setFocus(this$static){ + $focus(this$static.element); +} + +function FocusWidget(elem){ + $setElement_0(this, elem); +} + +defineClass(81, 25, {72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 26:1, 28:1, 81:1, 118:1, 104:1, 117:1, 23:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}); +_.getTabIndex = function getTabIndex(){ + return this.element.tabIndex; +} +; +_.onAttach = function onAttach_0(){ + var tabIndex; + $onAttach(this); + tabIndex = this.getTabIndex(); + -1 == tabIndex && this.setTabIndex(0); +} +; +_.setTabIndex = function setTabIndex(index_0){ + $setTabIndex(this.element, index_0); +} +; +var Lcom_google_gwt_user_client_ui_FocusWidget_2_classLit = createForClass('com.google.gwt.user.client.ui', 'FocusWidget', 81); +var detector; +defineClass(959, 1, {}); +var Lcom_google_gwt_canvas_client_Canvas$CanvasElementSupportDetector_2_classLit = createForClass('com.google.gwt.canvas.client', 'Canvas/CanvasElementSupportDetector', 959); +function Canvas$CanvasElementSupportDetectedNo(){ +} + +defineClass(232, 959, {}, Canvas$CanvasElementSupportDetectedNo); +var Lcom_google_gwt_canvas_client_Canvas$CanvasElementSupportDetectedNo_2_classLit = createForClass('com.google.gwt.canvas.client', 'Canvas/CanvasElementSupportDetectedNo', 232); +function $hashCode(this$static){ + return !!this$static && !!this$static.hashCode?this$static.hashCode():getHashCode(this$static); +} + +var Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptObject$', 0); +function $addColorStop(this$static, offset, color_0){ + this$static.addColorStop(offset, color_0); +} + +function $arc(this$static, x_0, y_0, radius, startAngle, endAngle){ + this$static.arc(x_0, y_0, radius, startAngle, endAngle, false); +} + +function $arc_0(this$static, x_0, y_0, radius, startAngle, endAngle, anticlockwise){ + this$static.arc(x_0, y_0, radius, startAngle, endAngle, anticlockwise); +} + +function $bezierCurveTo(this$static, cp1x, cp1y, cp2x, cp2y, x_0, y_0){ + this$static.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x_0, y_0); +} + +function $createLinearGradient(this$static, x0, y0, x1, y1){ + return this$static.createLinearGradient(x0, y0, x1, y1); +} + +function $fillRect(this$static, x_0, y_0, w, h){ + this$static.fillRect(x_0, y_0, w, h); +} + +function $fillText(this$static, text_0, x_0, y_0){ + this$static.fillText && this$static.fillText(text_0, x_0, y_0); +} + +function $lineTo(this$static, x_0, y_0){ + this$static.lineTo(x_0, y_0); +} + +function $measureText(this$static, text_0){ + return this$static.measureText(text_0); +} + +function $moveTo(this$static, x_0, y_0){ + this$static.moveTo(x_0, y_0); +} + +function $rect(this$static, x_0, y_0, w, h){ + this$static.rect(x_0, y_0, w, h); +} + +function $scale(this$static, x_0, y_0){ + this$static.scale(x_0, y_0); +} + +function $setFillStyleWeb(this$static, fillStyle){ + this$static.fillStyle = fillStyle; +} + +function $setFont(this$static, f){ + this$static.font = f; +} + +function $setLineCap(this$static, lineCap){ + this$static.lineCap = lineCap; +} + +function $setLineWidth(this$static, lineWidth){ + this$static.lineWidth = lineWidth; +} + +function $setStrokeStyleWeb(this$static, strokeStyle){ + this$static.strokeStyle = strokeStyle; +} + +function $strokeRect(this$static, x_0, y_0, w, h){ + this$static.strokeRect(x_0, y_0, w, h); +} + +function $transform(this$static, m11, m12, m21, m22, dx, dy){ + this$static.transform(m11, m12, m21, m22, dx, dy); +} + +function $translate(this$static, x_0, y_0){ + this$static.translate(x_0, y_0); +} + +function Enum(name_0, ordinal){ + this.name_0 = name_0; + this.ordinal = ordinal; +} + +defineClass(15, 1, {3:1, 16:1, 15:1}); +_.compareTo = function compareTo(other){ + return this.ordinal - other.ordinal; +} +; +_.equals_0 = function equals_0(other){ + return this === other; +} +; +_.hashCode_0 = function hashCode_1(){ + return getHashCode(this); +} +; +_.toString_0 = function toString_2(){ + return this.name_0 != null?this.name_0:'' + this.ordinal; +} +; +_.ordinal = 0; +var Ljava_lang_Enum_2_classLit = createForClass('java.lang', 'Enum', 15); +function $clinit_Context2d$LineCap(){ + $clinit_Context2d$LineCap = emptyMethod; + BUTT = new Context2d$LineCap('BUTT', 0, 'butt'); + ROUND = new Context2d$LineCap('ROUND', 1, 'round'); + SQUARE = new Context2d$LineCap('SQUARE', 2, 'square'); +} + +function Context2d$LineCap(enum$name, enum$ordinal, value_0){ + Enum.call(this, enum$name, enum$ordinal); + this.value_0 = value_0; +} + +function values_0(){ + $clinit_Context2d$LineCap(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_canvas_dom_client_Context2d$LineCap_2_classLit, 1), $intern_3, 233, 0, [BUTT, ROUND, SQUARE]); +} + +defineClass(233, 15, {233:1, 3:1, 16:1, 15:1}, Context2d$LineCap); +var BUTT, ROUND, SQUARE; +var Lcom_google_gwt_canvas_dom_client_Context2d$LineCap_2_classLit = createForEnum('com.google.gwt.canvas.dom.client', 'Context2d/LineCap', 233, values_0); +function $$init(this$static){ + this$static.stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_3, 181, 0, 0, 1); +} + +function $addSuppressed(this$static, exception){ + checkCriticalNotNull_0(exception, 'Cannot suppress a null exception.'); + checkCriticalArgument_0(exception != this$static, 'Exception can not suppress itself.'); + if (this$static.disableSuppression) { + return; + } + this$static.suppressedExceptions == null?(this$static.suppressedExceptions = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Throwable_2_classLit, 1), $intern_3, 39, 0, [exception])):(this$static.suppressedExceptions[this$static.suppressedExceptions.length] = exception); +} + +function $fillInStackTrace(this$static){ + if (this$static.writetableStackTrace) { + this$static.backingJsObject !== '__noinit__' && this$static.initializeBackingError(); + this$static.stackTrace = null; + } + return this$static; +} + +function $initCause(this$static, cause){ + checkCriticalState_0(!this$static.cause, "Can't overwrite cause"); + checkCriticalArgument_0(cause != this$static, 'Self-causation not permitted'); + this$static.cause = cause; + return this$static; +} + +function $printStackTraceImpl(this$static, out, ident){ + var t, t$array, t$index, t$max, theCause; + $printStackTraceItems(this$static); + for (t$array = (this$static.suppressedExceptions == null && (this$static.suppressedExceptions = initUnidimensionalArray(Ljava_lang_Throwable_2_classLit, $intern_3, 39, 0, 0, 1)) , this$static.suppressedExceptions) , t$index = 0 , t$max = t$array.length; t$index < t$max; ++t$index) { + t = t$array[t$index]; + $printStackTraceImpl(t, out, '\t' + ident); + } + theCause = this$static.cause; + !!theCause && $printStackTraceImpl(theCause, out, ident); +} + +function $printStackTraceItems(this$static){ + var element$array, element$index, element$max, stackTrace; + for (element$array = (this$static.stackTrace == null && (this$static.stackTrace = ($clinit_StackTraceCreator() , stackTrace = collector.getStackTrace(this$static) , dropInternalFrames(stackTrace))) , this$static.stackTrace) , element$index = 0 , element$max = element$array.length; element$index < element$max; ++element$index) + ; +} + +function $setBackingJsObject(this$static, backingJsObject){ + this$static.backingJsObject = backingJsObject; + backingJsObject != null && setPropertySafe(backingJsObject, '__java$exception', this$static); +} + +function $toString(this$static, message){ + var className; + className = $getName(this$static.___clazz); + return message == null?className:className + ': ' + message; +} + +function Throwable(message, cause){ + $$init(this); + this.cause = cause; + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function fixIE(e){ + if (!('stack' in e)) { + try { + throw e; + } + catch (ignored) { + } + } + return e; +} + +defineClass(39, 1, $intern_6); +_.createError = function createError(msg){ + return new Error(msg); +} +; +_.getMessage = function getMessage(){ + return this.detailMessage; +} +; +_.initializeBackingError = function initializeBackingError(){ + var className, errorMessage, message; + message = this.detailMessage == null?null:this.detailMessage.replace(new RegExp('\n', 'g'), ' '); + errorMessage = (className = $getName(this.___clazz) , message == null?className:className + ': ' + message); + $setBackingJsObject(this, fixIE(this.createError(errorMessage))); + captureStackTrace(this); +} +; +_.toString_0 = function toString_3(){ + return $toString(this, this.getMessage()); +} +; +_.backingJsObject = '__noinit__'; +_.disableSuppression = false; +_.writetableStackTrace = true; +var Ljava_lang_Throwable_2_classLit = createForClass('java.lang', 'Throwable', 39); +function Exception(message){ + $$init(this); + this.detailMessage = message; + $fillInStackTrace(this); + this.initializeBackingError(); +} + +defineClass(13, 39, $intern_7); +var Ljava_lang_Exception_2_classLit = createForClass('java.lang', 'Exception', 13); +function RuntimeException(){ + $$init(this); + $fillInStackTrace(this); + this.initializeBackingError(); +} + +function RuntimeException_0(message){ + Exception.call(this, message); +} + +function RuntimeException_1(message, cause){ + Throwable.call(this, message, cause); +} + +defineClass(80, 13, $intern_7, RuntimeException_0); +var Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang', 'RuntimeException', 80); +function CodeDownloadException(message){ + RuntimeException_0.call(this, message); +} + +defineClass(971, 80, $intern_7, CodeDownloadException); +var Lcom_google_gwt_core_client_CodeDownloadException_2_classLit = createForClass('com.google.gwt.core.client', 'CodeDownloadException', 971); +function $elapsedMillis(this$static){ + return now_1() - this$static.start_0; +} + +function Duration(){ + this.start_0 = now_1(); +} + +defineClass(280, 1, {}, Duration); +_.start_0 = 0; +var Lcom_google_gwt_core_client_Duration_2_classLit = createForClass('com.google.gwt.core.client', 'Duration', 280); +defineClass(278, 80, $intern_7); +var Ljava_lang_JsException_2_classLit = createForClass('java.lang', 'JsException', 278); +defineClass(457, 278, $intern_7); +var Lcom_google_gwt_core_client_impl_JavaScriptExceptionBase_2_classLit = createForClass('com.google.gwt.core.client.impl', 'JavaScriptExceptionBase', 457); +function $clinit_JavaScriptException(){ + $clinit_JavaScriptException = emptyMethod; + NOT_SET = new Object_0; +} + +function $ensureInit(this$static){ + var exception; + if (this$static.message_0 == null) { + exception = maskUndefined(this$static.e) === maskUndefined(NOT_SET)?null:this$static.e; + this$static.name_0 = exception == null?'null':instanceOfJso(exception)?exception == null?null:exception.name:instanceOfString(exception)?'String':$getName(getClass__Ljava_lang_Class___devirtual$(exception)); + this$static.description = this$static.description + ': ' + (instanceOfJso(exception)?exception == null?null:exception.message:exception + ''); + this$static.message_0 = '(' + this$static.name_0 + ') ' + this$static.description; + } +} + +function JavaScriptException(e){ + $clinit_JavaScriptException(); + $$init(this); + $fillInStackTrace(this); + this.backingJsObject = e; + e != null && setPropertySafe(e, '__java$exception', this); + this.detailMessage = e == null?'null':toString_9(e); + this.description = ''; + this.e = e; + this.description = ''; +} + +defineClass(129, 457, {129:1, 3:1, 13:1, 39:1}, JavaScriptException); +_.getMessage = function getMessage_0(){ + return $ensureInit(this) , this.message_0; +} +; +_.getThrown = function getThrown(){ + return maskUndefined(this.e) === maskUndefined(NOT_SET)?null:this.e; +} +; +var NOT_SET; +var Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client', 'JavaScriptException', 129); +function now_1(){ + if (Date.now) { + return Date.now(); + } + return (new Date).getTime(); +} + +defineClass(937, 1, {}); +var Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client', 'Scheduler', 937); +function $clinit_ScriptInjector(){ + $clinit_ScriptInjector = emptyMethod; +} + +function attachListeners(scriptElement, callback, removeTag){ + $clinit_ScriptInjector(); + function clearCallbacks(){ + scriptElement.onerror = scriptElement.onreadystatechange = scriptElement.onload = null; + removeTag && nativeRemove(scriptElement); + } + + scriptElement.onload = $entry(function(){ + clearCallbacks(); + callback && callback.onSuccess(null); + } + ); + scriptElement.onerror = $entry(function(){ + clearCallbacks(); + if (callback) { + var ex = new CodeDownloadException('onerror() called.'); + callback.onFailure(ex); + } + } + ); + scriptElement.onreadystatechange = $entry(function(){ + /loaded|complete/.test(scriptElement.readyState) && scriptElement.onload(); + } + ); +} + +function nativeRemove(scriptElement){ + scriptElement.parentNode.removeChild(scriptElement); +} + +function nativeSetSrc(element, url_0){ + $clinit_ScriptInjector(); + element.src = url_0; +} + +function $inject(this$static){ + var doc, scriptElement, wnd; + wnd = ($clinit_ScriptInjector() , window); + doc = wnd.document; + scriptElement = doc.createElement('script'); + !!this$static.callback && attachListeners(scriptElement, this$static.callback, false); + nativeSetSrc(scriptElement, this$static.scriptUrl); + (doc.head || doc.getElementsByTagName('head')[0]).appendChild(scriptElement); + return scriptElement; +} + +function $setCallback(this$static, callback){ + this$static.callback = callback; + return this$static; +} + +function ScriptInjector$FromUrl(){ + this.scriptUrl = 'canvas2svg.js'; +} + +defineClass(772, 1, {}, ScriptInjector$FromUrl); +var Lcom_google_gwt_core_client_ScriptInjector$FromUrl_2_classLit = createForClass('com.google.gwt.core.client', 'ScriptInjector/FromUrl', 772); +function $clinit_Impl(){ + $clinit_Impl = emptyMethod; + !!($clinit_StackTraceCreator() , collector); +} + +function apply_0(jsFunction, thisObj, args){ + return jsFunction.apply(thisObj, args); + var __0; +} + +function enter(){ + var now_0; + if (entryDepth != 0) { + now_0 = now_1(); + if (now_0 - watchdogEntryDepthLastScheduled > 2000) { + watchdogEntryDepthLastScheduled = now_0; + watchdogEntryDepthTimerId = $wnd.setTimeout(watchdogEntryDepthRun, 10); + } + } + if (entryDepth++ == 0) { + $flushEntryCommands(($clinit_SchedulerImpl() , INSTANCE)); + return true; + } + return false; +} + +function entry_0(jsFunction){ + $clinit_Impl(); + return function(){ + return entry0_0(jsFunction, this, arguments); + var __0; + } + ; +} + +function entry0_0(jsFunction, thisObj, args){ + var initialEntry; + initialEntry = enter(); + try { + return apply_0(jsFunction, thisObj, args); + } + finally { + exit(initialEntry); + } +} + +function exit(initialEntry){ + initialEntry && $flushFinallyCommands(($clinit_SchedulerImpl() , INSTANCE)); + --entryDepth; + if (initialEntry) { + if (watchdogEntryDepthTimerId != -1) { + watchdogEntryDepthCancel(watchdogEntryDepthTimerId); + watchdogEntryDepthTimerId = -1; + } + } +} + +function getModuleBaseURL(){ + $clinit_Impl(); + var key = '__gwtDevModeHook:' + $moduleName + ':moduleBase'; + var global = $wnd || self; + return global[key] || $moduleBase; +} + +function reportToBrowser(e){ + $clinit_Impl(); + $wnd.setTimeout(function(){ + throw e; + } + , 0); +} + +function watchdogEntryDepthCancel(timerId){ + $wnd.clearTimeout(timerId); +} + +function watchdogEntryDepthRun(){ + entryDepth != 0 && (entryDepth = 0); + watchdogEntryDepthTimerId = -1; +} + +var entryDepth = 0, watchdogEntryDepthLastScheduled = 0, watchdogEntryDepthTimerId = -1; +function $clinit_SchedulerImpl(){ + $clinit_SchedulerImpl = emptyMethod; + INSTANCE = new SchedulerImpl; +} + +function $flushEntryCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.entryCommands) { + rescheduled = null; + do { + oldQueue = this$static.entryCommands; + this$static.entryCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.entryCommands); + this$static.entryCommands = rescheduled; + } +} + +function $flushFinallyCommands(this$static){ + var oldQueue, rescheduled; + if (this$static.finallyCommands) { + rescheduled = null; + do { + oldQueue = this$static.finallyCommands; + this$static.finallyCommands = null; + rescheduled = runScheduledTasks(oldQueue, rescheduled); + } + while (this$static.finallyCommands); + this$static.finallyCommands = rescheduled; + } +} + +function $flushPostEventPumpCommands(this$static){ + var oldDeferred; + if (this$static.deferredCommands) { + oldDeferred = this$static.deferredCommands; + this$static.deferredCommands = null; + !this$static.incrementalCommands && (this$static.incrementalCommands = []); + runScheduledTasks(oldDeferred, this$static.incrementalCommands); + } + !!this$static.incrementalCommands && (this$static.incrementalCommands = $runRepeatingTasks(this$static.incrementalCommands)); +} + +function $isWorkQueued(this$static){ + return !!this$static.deferredCommands || !!this$static.incrementalCommands; +} + +function $maybeSchedulePostEventPumpCommands(this$static){ + if (!this$static.shouldBeRunning) { + this$static.shouldBeRunning = true; + !this$static.flusher && (this$static.flusher = new SchedulerImpl$Flusher(this$static)); + scheduleFixedDelayImpl(this$static.flusher, 1); + !this$static.rescue && (this$static.rescue = new SchedulerImpl$Rescuer(this$static)); + scheduleFixedDelayImpl(this$static.rescue, 50); + } +} + +function $runRepeatingTasks(tasks){ + var canceledSomeTasks, duration, executedSomeTask, i, length_0, newTasks, t; + length_0 = tasks.length; + if (length_0 == 0) { + return null; + } + canceledSomeTasks = false; + duration = new Duration; + while (now_1() - duration.start_0 < 16) { + executedSomeTask = false; + for (i = 0; i < length_0; i++) { + t = tasks[i]; + if (!t) { + continue; + } + executedSomeTask = true; + if (!t[0].execute_0()) { + tasks[i] = null; + canceledSomeTasks = true; + } + } + if (!executedSomeTask) { + break; + } + } + if (canceledSomeTasks) { + newTasks = []; + for (i = 0; i < length_0; i++) { + !!tasks[i] && (newTasks[newTasks.length] = tasks[i] , undefined); + } + return newTasks.length == 0?null:newTasks; + } + else { + return tasks; + } +} + +function $scheduleDeferred(this$static, cmd){ + this$static.deferredCommands = push_0(this$static.deferredCommands, [cmd, false]); + $maybeSchedulePostEventPumpCommands(this$static); +} + +function $scheduleFinally(this$static, cmd){ + this$static.finallyCommands = push_0(this$static.finallyCommands, [cmd, false]); +} + +function SchedulerImpl(){ +} + +function execute_0(cmd){ + return cmd.execute_0(); +} + +function push_0(queue, task){ + !queue && (queue = []); + queue[queue.length] = task; + return queue; +} + +function runScheduledTasks(tasks, rescheduled){ + var e, i, j, t; + for (i = 0 , j = tasks.length; i < j; i++) { + t = tasks[i]; + try { + t[1]?t[0].execute_0() && (rescheduled = push_0(rescheduled, t)):t[0].execute_1(); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 39)) { + e = $e0; + $clinit_Impl(); + reportToBrowser(instanceOf(e, 129)?e.getThrown():e); + } + else + throw toJs($e0); + } + } + return rescheduled; +} + +function scheduleFixedDelayImpl(cmd, delayMs){ + $clinit_SchedulerImpl(); + function callback(){ + var ret = $entry(execute_0)(cmd); + ret && $wnd.setTimeout(callback, delayMs); + } + + $wnd.setTimeout(callback, delayMs); +} + +defineClass(470, 937, {}, SchedulerImpl); +_.flushRunning = false; +_.shouldBeRunning = false; +var INSTANCE; +var Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl', 470); +function SchedulerImpl$Flusher(this$0){ + this.this$01 = this$0; +} + +defineClass(471, 1, {}, SchedulerImpl$Flusher); +_.execute_0 = function execute_1(){ + this.this$01.flushRunning = true; + $flushPostEventPumpCommands(this.this$01); + this.this$01.flushRunning = false; + return this.this$01.shouldBeRunning = $isWorkQueued(this.this$01); +} +; +var Lcom_google_gwt_core_client_impl_SchedulerImpl$Flusher_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl/Flusher', 471); +function SchedulerImpl$Rescuer(this$0){ + this.this$01 = this$0; +} + +defineClass(472, 1, {}, SchedulerImpl$Rescuer); +_.execute_0 = function execute_2(){ + this.this$01.flushRunning && scheduleFixedDelayImpl(this.this$01.flusher, 1); + return this.this$01.shouldBeRunning; +} +; +var Lcom_google_gwt_core_client_impl_SchedulerImpl$Rescuer_2_classLit = createForClass('com.google.gwt.core.client.impl', 'SchedulerImpl/Rescuer', 472); +function $clinit_StackTraceCreator(){ + $clinit_StackTraceCreator = emptyMethod; + var c, enforceLegacy; + enforceLegacy = !supportsErrorStack(); + c = new StackTraceCreator$CollectorModernNoSourceMap; + collector = enforceLegacy?new StackTraceCreator$CollectorLegacy:c; +} + +function captureStackTrace(error){ + $clinit_StackTraceCreator(); + collector.collect(error); +} + +function dropInternalFrames(stackTrace){ + var dropFrameUntilFnName, dropFrameUntilFnName2, i, numberOfFramesToSearch; + dropFrameUntilFnName = 'captureStackTrace'; + dropFrameUntilFnName2 = 'initializeBackingError'; + numberOfFramesToSearch = $wnd.Math.min(stackTrace.length, 5); + for (i = numberOfFramesToSearch - 1; i >= 0; i--) { + if ($equals_1(stackTrace[i].methodName, dropFrameUntilFnName) || $equals_1(stackTrace[i].methodName, dropFrameUntilFnName2)) { + stackTrace.length >= i + 1 && stackTrace.splice(0, i + 1); + break; + } + } + return stackTrace; +} + +function extractFunctionName(fnName){ + var fnRE = /function(?:\s+([\w$]+))?\s*\(/; + var match_0 = fnRE.exec(fnName); + return match_0 && match_0[1] || 'anonymous'; +} + +function parseInt_0(number){ + $clinit_StackTraceCreator(); + return parseInt(number) || -1; +} + +function supportsErrorStack(){ + if (Error.stackTraceLimit > 0) { + $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64; + return true; + } + return 'stack' in new Error; +} + +var collector; +defineClass(947, 1, {}); +var Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/Collector', 947); +function StackTraceCreator$CollectorLegacy(){ +} + +defineClass(458, 947, {}, StackTraceCreator$CollectorLegacy); +_.collect = function collect(error){ + var seen = {}, name_1; + var fnStack = []; + error['fnStack'] = fnStack; + var callee = arguments.callee.caller; + while (callee) { + var name_0 = ($clinit_StackTraceCreator() , callee.name || (callee.name = extractFunctionName(callee.toString()))); + fnStack.push(name_0); + var keyName = ':' + name_0; + var withThisName = seen[keyName]; + if (withThisName) { + var i, j; + for (i = 0 , j = withThisName.length; i < j; i++) { + if (withThisName[i] === callee) { + return; + } + } + } + (withThisName || (seen[keyName] = [])).push(callee); + callee = callee.caller; + } +} +; +_.getStackTrace = function getStackTrace(t){ + var i, length_0, stack_0, stackTrace; + stack_0 = ($clinit_StackTraceCreator() , t && t['fnStack']?t['fnStack']:[]); + length_0 = stack_0.length; + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_3, 181, length_0, 0, 1); + for (i = 0; i < length_0; i++) { + stackTrace[i] = new StackTraceElement(stack_0[i], null, -1); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorLegacy_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorLegacy', 458); +function $parse(this$static, stString){ + var closeParen, col, endFileUrlIndex, fileName, index_0, lastColonIndex, line, location_0, toReturn; + if (stString.length == 0) { + return this$static.createSte('Unknown', 'anonymous', -1, -1); + } + toReturn = $trim(stString); + $equals_1(toReturn.substr(0, 3), 'at ') && (toReturn = toReturn.substr(3)); + toReturn = toReturn.replace(/\[.*?\]/g, ''); + index_0 = toReturn.indexOf('('); + if (index_0 == -1) { + index_0 = toReturn.indexOf('@'); + if (index_0 == -1) { + location_0 = toReturn; + toReturn = ''; + } + else { + location_0 = $trim(toReturn.substr(index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + } + else { + closeParen = toReturn.indexOf(')', index_0); + location_0 = toReturn.substr(index_0 + 1, closeParen - (index_0 + 1)); + toReturn = $trim(toReturn.substr(0, index_0)); + } + index_0 = $indexOf_1(toReturn, fromCodePoint(46)); + index_0 != -1 && (toReturn = toReturn.substr(index_0 + 1)); + (toReturn.length == 0 || $equals_1(toReturn, 'Anonymous function')) && (toReturn = 'anonymous'); + lastColonIndex = $lastIndexOf(location_0, fromCodePoint(58)); + endFileUrlIndex = $lastIndexOf_0(location_0, fromCodePoint(58), lastColonIndex - 1); + line = -1; + col = -1; + fileName = 'Unknown'; + if (lastColonIndex != -1 && endFileUrlIndex != -1) { + fileName = location_0.substr(0, endFileUrlIndex); + line = parseInt_0(location_0.substr(endFileUrlIndex + 1, lastColonIndex - (endFileUrlIndex + 1))); + col = parseInt_0(location_0.substr(lastColonIndex + 1)); + } + return this$static.createSte(fileName, toReturn, line, col); +} + +defineClass(948, 947, {}); +_.collect = function collect_0(error){ +} +; +_.createSte = function createSte(fileName, method, line, col){ + return new StackTraceElement(method, fileName + '@' + col, line < 0?-1:line); +} +; +_.getStackTrace = function getStackTrace_0(t){ + var addIndex, i, length_0, stack_0, stackTrace, ste, e; + stack_0 = ($clinit_StackTraceCreator() , e = t.backingJsObject , e && e.stack?e.stack.split('\n'):[]); + stackTrace = initUnidimensionalArray(Ljava_lang_StackTraceElement_2_classLit, $intern_3, 181, 0, 0, 1); + addIndex = 0; + length_0 = stack_0.length; + if (length_0 == 0) { + return stackTrace; + } + ste = $parse(this, stack_0[0]); + $equals_1(ste.methodName, 'anonymous') || (stackTrace[addIndex++] = ste); + for (i = 1; i < length_0; i++) { + stackTrace[addIndex++] = $parse(this, stack_0[i]); + } + return stackTrace; +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModern_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModern', 948); +function StackTraceCreator$CollectorModernNoSourceMap(){ +} + +defineClass(459, 948, {}, StackTraceCreator$CollectorModernNoSourceMap); +_.createSte = function createSte_0(fileName, method, line, col){ + return new StackTraceElement(method, fileName, -1); +} +; +var Lcom_google_gwt_core_client_impl_StackTraceCreator$CollectorModernNoSourceMap_2_classLit = createForClass('com.google.gwt.core.client.impl', 'StackTraceCreator/CollectorModernNoSourceMap', 459); +function $appendChild(this$static, newChild){ + return this$static.appendChild(newChild); +} + +function $insertBefore(this$static, newChild, refChild){ + return this$static.insertBefore(newChild, refChild); +} + +function $insertFirst(this$static, child){ + return $insertBefore(this$static, child, this$static.firstChild); +} + +function $removeChild(this$static, oldChild){ + return this$static.removeChild(oldChild); +} + +function is(o){ + try { + return !!o && !!o.nodeType; + } + catch (e) { + return false; + } +} + +function $addClassName(this$static, className){ + var idx, oldClassName; + className = trimClassName(className); + oldClassName = this$static.className || ''; + idx = indexOfName(oldClassName, className); + if (idx == -1) { + oldClassName.length > 0?(this$static.className = oldClassName + ' ' + className || '' , undefined):(this$static.className = className || '' , undefined); + return true; + } + return false; +} + +function $getAbsoluteLeft(this$static){ + var doc, scrollingElement; + return doc = this$static.ownerDocument , $getBoundingClientRectLeft(this$static) + $getScrollLeft((scrollingElement = $equals_1(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body , scrollingElement?scrollingElement:doc.documentElement)); +} + +function $getAbsoluteTop_0(this$static){ + var doc, scrollingElement; + return doc = this$static.ownerDocument , $getBoundingClientRectTop(this$static) + (((scrollingElement = $equals_1(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body , scrollingElement?scrollingElement:doc.documentElement).scrollTop || 0) | 0); +} + +function $getPropertyInt(this$static, name_0){ + return parseInt(this$static[name_0]) | 0; +} + +function $getPropertyString(this$static, name_0){ + return this$static[name_0] == null?null:String(this$static[name_0]); +} + +function $removeClassName(this$static, className){ + var begin, end, idx, newClassName, oldStyle; + className = trimClassName(className); + oldStyle = this$static.className || ''; + idx = indexOfName(oldStyle, className); + if (idx != -1) { + begin = $trim(oldStyle.substr(0, idx)); + end = $trim($substring(oldStyle, idx + className.length)); + begin.length == 0?(newClassName = end):end.length == 0?(newClassName = begin):(newClassName = begin + ' ' + end); + this$static.className = newClassName || ''; + return true; + } + return false; +} + +function $setAttribute(this$static, name_0, value_0){ + this$static.setAttribute(name_0, value_0); +} + +function $setClassName(this$static, className){ + this$static.className = className || ''; +} + +function $setInnerHTML(this$static, html){ + this$static.innerHTML = html || ''; +} + +function $setScrollTop(this$static, scrollTop){ + this$static.scrollTop = scrollTop; +} + +function $setTabIndex(this$static, tabIndex){ + this$static.tabIndex = tabIndex; +} + +function indexOfName(nameList, name_0){ + var idx, last, lastPos; + idx = nameList.indexOf(name_0); + while (idx != -1) { + if (idx == 0 || (checkCriticalStringElementIndex(idx - 1, nameList.length) , nameList.charCodeAt(idx - 1) == 32)) { + last = idx + name_0.length; + lastPos = nameList.length; + if (last == lastPos || last < lastPos && (checkCriticalStringElementIndex(last, nameList.length) , nameList.charCodeAt(last) == 32)) { + break; + } + } + idx = nameList.indexOf(name_0, idx + 1); + } + return idx; +} + +function is_0(o){ + if (is(o)) { + return !!o && o.nodeType == 1; + } + return false; +} + +function trimClassName(className){ + className = $trim(className); + return className; +} + +function $setHref(this$static, href_0){ + this$static.href = href_0; +} + +function $createCheckInputElement(doc){ + var e = doc.createElement('INPUT'); + e.type = 'checkbox'; + e.value = 'on'; + return e; +} + +function $createInputElement(doc, type_0){ + var e = doc.createElement('INPUT'); + e.type = type_0; + return e; +} + +function $createScriptElement(doc, source){ + var elem; + elem = $createElement(doc, 'script'); + elem.text = source; + return elem; +} + +function $getFirstChildElement(elem){ + var child = elem.firstChild; + while (child && child.nodeType != 1) + child = child.nextSibling; + return child; +} + +function $getParentElement(node){ + var parent_0 = node.parentNode; + (!parent_0 || parent_0.nodeType != 1) && (parent_0 = null); + return parent_0; +} + +function $selectRemoveOption(select, index_0){ + select.remove(index_0); +} + +function $createElement(doc, tagName){ + var container, elem; + if (tagName.indexOf(':') != -1) { + container = (!doc.__gwt_container && (doc.__gwt_container = doc.createElement('div')) , doc.__gwt_container); + container.innerHTML = '<' + tagName + '/>' || ''; + elem = $getFirstChildElement(container); + container.removeChild(elem); + return elem; + } + return doc.createElement(tagName); +} + +function $createInputRadioElement(doc, name_0){ + return doc.createElement(""); +} + +function $dispatchEvent(target, evt){ + target.fireEvent('on' + evt.type, evt); +} + +function $eventGetMouseWheelVelocityY(evt){ + return Math.round(-evt.wheelDelta / 40) || 0; +} + +function $getBoundingClientRectLeft(elem){ + try { + return elem.getBoundingClientRect().left; + } + catch (e) { + return 0; + } +} + +function $getBoundingClientRectTop(elem){ + try { + return elem.getBoundingClientRect().top; + } + catch (e) { + return 0; + } +} + +function $getTagName(elem){ + var scopeName, tagName; + tagName = elem.tagName; + scopeName = elem.scopeName; + if (scopeName == null || $equalsIgnoreCase('html', scopeName)) { + return tagName; + } + return scopeName + ':' + tagName; +} + +function $selectAdd(select, option, before){ + before?select.add(option, before.index):select.add(option); +} + +function $setInnerText(elem, text_0){ + elem.innerText = text_0 || ''; +} + +function isOrHasChildImpl(parent_0, child){ + if (parent_0.nodeType != 1 && parent_0.nodeType != 9) { + return parent_0 == child; + } + if (child.nodeType != 1) { + child = child.parentNode; + if (!child) { + return false; + } + } + if (parent_0.nodeType == 9) { + return parent_0 === child || parent_0.body && parent_0.body.contains(child); + } + else { + return parent_0 === child || parent_0.contains(child); + } +} + +var currentEventTarget; +function $getScrollLeft(elem){ + if (elem.currentStyle.direction == 'rtl') { + return -((elem.scrollLeft || 0) | 0); + } + return (elem.scrollLeft || 0) | 0; +} + +function $setScrollLeft(elem, left){ + elem.currentStyle.direction == 'rtl' && (left = -left); + elem.scrollLeft = left; +} + +function $createUniqueId(this$static){ + !this$static.gwt_uid && (this$static.gwt_uid = 1); + return 'gwt-uid-' + this$static.gwt_uid++; +} + +function $getBodyOffsetLeft(this$static){ + return ($equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).clientLeft; +} + +function $getBodyOffsetTop(this$static){ + return ($equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).clientTop; +} + +function $getClientHeight(this$static){ + return ($equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).clientHeight | 0; +} + +function $getClientWidth(this$static){ + return ($equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).clientWidth | 0; +} + +function $getScrollHeight(this$static){ + return (($equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).scrollHeight || 0) | 0; +} + +function $getScrollLeft_0(this$static){ + var scrollingElement; + return $getScrollLeft((scrollingElement = $equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body , scrollingElement?scrollingElement:this$static.documentElement)); +} + +function $getScrollTop(this$static){ + var scrollingElement; + return ((scrollingElement = $equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body , scrollingElement?scrollingElement:this$static.documentElement).scrollTop || 0) | 0; +} + +function $getScrollWidth(this$static){ + return (($equals_1(this$static.compatMode, 'CSS1Compat')?this$static.documentElement:this$static.body).scrollWidth || 0) | 0; +} + +function $setTitle_0(this$static, title_0){ + this$static.title = title_0; +} + +function $setChecked(this$static, checked){ + this$static.checked = checked; +} + +function $setDefaultChecked(this$static, defaultChecked){ + this$static.defaultChecked = defaultChecked; +} + +function $setDisabled(this$static, disabled){ + this$static.disabled = disabled; +} + +function $setName(this$static, name_0){ + this$static.name = name_0; +} + +function $setHtmlFor(this$static, htmlFor){ + this$static.htmlFor = htmlFor; +} + +function $setSelectedIndex(this$static, index_0){ + this$static.selectedIndex = index_0; +} + +function $setSize(this$static, size_0){ + this$static.size = size_0; +} + +function $clinit_Style$BorderStyle(){ + $clinit_Style$BorderStyle = emptyMethod; + NONE = new Style$BorderStyle$1; + DOTTED = new Style$BorderStyle$2; + DASHED = new Style$BorderStyle$3; + HIDDEN_0 = new Style$BorderStyle$4; + SOLID = new Style$BorderStyle$5; +} + +function Style$BorderStyle(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_1(){ + $clinit_Style$BorderStyle(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$BorderStyle_2_classLit, 1), $intern_3, 143, 0, [NONE, DOTTED, DASHED, HIDDEN_0, SOLID]); +} + +defineClass(143, 15, $intern_8); +var DASHED, DOTTED, HIDDEN_0, NONE, SOLID; +var Lcom_google_gwt_dom_client_Style$BorderStyle_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/BorderStyle', 143, values_1); +function Style$BorderStyle$1(){ + Style$BorderStyle.call(this, 'NONE', 0); +} + +defineClass(569, 143, $intern_8, Style$BorderStyle$1); +var Lcom_google_gwt_dom_client_Style$BorderStyle$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/BorderStyle/1', 569, null); +function Style$BorderStyle$2(){ + Style$BorderStyle.call(this, 'DOTTED', 1); +} + +defineClass(570, 143, $intern_8, Style$BorderStyle$2); +var Lcom_google_gwt_dom_client_Style$BorderStyle$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/BorderStyle/2', 570, null); +function Style$BorderStyle$3(){ + Style$BorderStyle.call(this, 'DASHED', 2); +} + +defineClass(571, 143, $intern_8, Style$BorderStyle$3); +var Lcom_google_gwt_dom_client_Style$BorderStyle$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/BorderStyle/3', 571, null); +function Style$BorderStyle$4(){ + Style$BorderStyle.call(this, 'HIDDEN', 3); +} + +defineClass(572, 143, $intern_8, Style$BorderStyle$4); +var Lcom_google_gwt_dom_client_Style$BorderStyle$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/BorderStyle/4', 572, null); +function Style$BorderStyle$5(){ + Style$BorderStyle.call(this, 'SOLID', 4); +} + +defineClass(573, 143, $intern_8, Style$BorderStyle$5); +var Lcom_google_gwt_dom_client_Style$BorderStyle$5_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/BorderStyle/5', 573, null); +function $clinit_Style$Cursor(){ + $clinit_Style$Cursor = emptyMethod; + DEFAULT = new Style$Cursor$1; + AUTO = new Style$Cursor$2; + CROSSHAIR = new Style$Cursor$3; + POINTER = new Style$Cursor$4; + MOVE = new Style$Cursor$5; + E_RESIZE = new Style$Cursor$6; + NE_RESIZE = new Style$Cursor$7; + NW_RESIZE = new Style$Cursor$8; + N_RESIZE = new Style$Cursor$9; + SE_RESIZE = new Style$Cursor$10; + SW_RESIZE = new Style$Cursor$11; + S_RESIZE = new Style$Cursor$12; + W_RESIZE = new Style$Cursor$13; + TEXT = new Style$Cursor$14; + WAIT = new Style$Cursor$15; + HELP = new Style$Cursor$16; + COL_RESIZE = new Style$Cursor$17; + ROW_RESIZE = new Style$Cursor$18; +} + +function Style$Cursor(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_2(){ + $clinit_Style$Cursor(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$Cursor_2_classLit, 1), $intern_3, 46, 0, [DEFAULT, AUTO, CROSSHAIR, POINTER, MOVE, E_RESIZE, NE_RESIZE, NW_RESIZE, N_RESIZE, SE_RESIZE, SW_RESIZE, S_RESIZE, W_RESIZE, TEXT, WAIT, HELP, COL_RESIZE, ROW_RESIZE]); +} + +defineClass(46, 15, $intern_9); +var AUTO, COL_RESIZE, CROSSHAIR, DEFAULT, E_RESIZE, HELP, MOVE, NE_RESIZE, NW_RESIZE, N_RESIZE, POINTER, ROW_RESIZE, SE_RESIZE, SW_RESIZE, S_RESIZE, TEXT, WAIT, W_RESIZE; +var Lcom_google_gwt_dom_client_Style$Cursor_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor', 46, values_2); +function Style$Cursor$1(){ + Style$Cursor.call(this, 'DEFAULT', 0); +} + +defineClass(574, 46, $intern_9, Style$Cursor$1); +var Lcom_google_gwt_dom_client_Style$Cursor$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/1', 574, null); +function Style$Cursor$10(){ + Style$Cursor.call(this, 'SE_RESIZE', 9); +} + +defineClass(583, 46, $intern_9, Style$Cursor$10); +var Lcom_google_gwt_dom_client_Style$Cursor$10_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/10', 583, null); +function Style$Cursor$11(){ + Style$Cursor.call(this, 'SW_RESIZE', 10); +} + +defineClass(584, 46, $intern_9, Style$Cursor$11); +var Lcom_google_gwt_dom_client_Style$Cursor$11_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/11', 584, null); +function Style$Cursor$12(){ + Style$Cursor.call(this, 'S_RESIZE', 11); +} + +defineClass(585, 46, $intern_9, Style$Cursor$12); +var Lcom_google_gwt_dom_client_Style$Cursor$12_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/12', 585, null); +function Style$Cursor$13(){ + Style$Cursor.call(this, 'W_RESIZE', 12); +} + +defineClass(586, 46, $intern_9, Style$Cursor$13); +var Lcom_google_gwt_dom_client_Style$Cursor$13_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/13', 586, null); +function Style$Cursor$14(){ + Style$Cursor.call(this, 'TEXT', 13); +} + +defineClass(587, 46, $intern_9, Style$Cursor$14); +var Lcom_google_gwt_dom_client_Style$Cursor$14_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/14', 587, null); +function Style$Cursor$15(){ + Style$Cursor.call(this, 'WAIT', 14); +} + +defineClass(588, 46, $intern_9, Style$Cursor$15); +var Lcom_google_gwt_dom_client_Style$Cursor$15_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/15', 588, null); +function Style$Cursor$16(){ + Style$Cursor.call(this, 'HELP', 15); +} + +defineClass(589, 46, $intern_9, Style$Cursor$16); +var Lcom_google_gwt_dom_client_Style$Cursor$16_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/16', 589, null); +function Style$Cursor$17(){ + Style$Cursor.call(this, 'COL_RESIZE', 16); +} + +defineClass(590, 46, $intern_9, Style$Cursor$17); +var Lcom_google_gwt_dom_client_Style$Cursor$17_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/17', 590, null); +function Style$Cursor$18(){ + Style$Cursor.call(this, 'ROW_RESIZE', 17); +} + +defineClass(591, 46, $intern_9, Style$Cursor$18); +var Lcom_google_gwt_dom_client_Style$Cursor$18_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/18', 591, null); +function Style$Cursor$2(){ + Style$Cursor.call(this, 'AUTO', 1); +} + +defineClass(575, 46, $intern_9, Style$Cursor$2); +var Lcom_google_gwt_dom_client_Style$Cursor$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/2', 575, null); +function Style$Cursor$3(){ + Style$Cursor.call(this, 'CROSSHAIR', 2); +} + +defineClass(576, 46, $intern_9, Style$Cursor$3); +var Lcom_google_gwt_dom_client_Style$Cursor$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/3', 576, null); +function Style$Cursor$4(){ + Style$Cursor.call(this, 'POINTER', 3); +} + +defineClass(577, 46, $intern_9, Style$Cursor$4); +var Lcom_google_gwt_dom_client_Style$Cursor$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/4', 577, null); +function Style$Cursor$5(){ + Style$Cursor.call(this, 'MOVE', 4); +} + +defineClass(578, 46, $intern_9, Style$Cursor$5); +var Lcom_google_gwt_dom_client_Style$Cursor$5_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/5', 578, null); +function Style$Cursor$6(){ + Style$Cursor.call(this, 'E_RESIZE', 5); +} + +defineClass(579, 46, $intern_9, Style$Cursor$6); +var Lcom_google_gwt_dom_client_Style$Cursor$6_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/6', 579, null); +function Style$Cursor$7(){ + Style$Cursor.call(this, 'NE_RESIZE', 6); +} + +defineClass(580, 46, $intern_9, Style$Cursor$7); +var Lcom_google_gwt_dom_client_Style$Cursor$7_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/7', 580, null); +function Style$Cursor$8(){ + Style$Cursor.call(this, 'NW_RESIZE', 7); +} + +defineClass(581, 46, $intern_9, Style$Cursor$8); +var Lcom_google_gwt_dom_client_Style$Cursor$8_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/8', 581, null); +function Style$Cursor$9(){ + Style$Cursor.call(this, 'N_RESIZE', 8); +} + +defineClass(582, 46, $intern_9, Style$Cursor$9); +var Lcom_google_gwt_dom_client_Style$Cursor$9_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Cursor/9', 582, null); +function $clinit_Style$Display(){ + $clinit_Style$Display = emptyMethod; + NONE_0 = new Style$Display$1; + BLOCK = new Style$Display$2; + INLINE = new Style$Display$3; + INLINE_BLOCK = new Style$Display$4; + INLINE_TABLE = new Style$Display$5; + LIST_ITEM = new Style$Display$6; + RUN_IN = new Style$Display$7; + TABLE = new Style$Display$8; + TABLE_CAPTION = new Style$Display$9; + TABLE_COLUMN_GROUP = new Style$Display$10; + TABLE_HEADER_GROUP = new Style$Display$11; + TABLE_FOOTER_GROUP = new Style$Display$12; + TABLE_ROW_GROUP = new Style$Display$13; + TABLE_CELL = new Style$Display$14; + TABLE_COLUMN = new Style$Display$15; + TABLE_ROW = new Style$Display$16; + INITIAL = new Style$Display$17; + FLEX = new Style$Display$18; + INLINE_FLEX = new Style$Display$19; +} + +function Style$Display(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_3(){ + $clinit_Style$Display(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$Display_2_classLit, 1), $intern_3, 45, 0, [NONE_0, BLOCK, INLINE, INLINE_BLOCK, INLINE_TABLE, LIST_ITEM, RUN_IN, TABLE, TABLE_CAPTION, TABLE_COLUMN_GROUP, TABLE_HEADER_GROUP, TABLE_FOOTER_GROUP, TABLE_ROW_GROUP, TABLE_CELL, TABLE_COLUMN, TABLE_ROW, INITIAL, FLEX, INLINE_FLEX]); +} + +defineClass(45, 15, $intern_10); +var BLOCK, FLEX, INITIAL, INLINE, INLINE_BLOCK, INLINE_FLEX, INLINE_TABLE, LIST_ITEM, NONE_0, RUN_IN, TABLE, TABLE_CAPTION, TABLE_CELL, TABLE_COLUMN, TABLE_COLUMN_GROUP, TABLE_FOOTER_GROUP, TABLE_HEADER_GROUP, TABLE_ROW, TABLE_ROW_GROUP; +var Lcom_google_gwt_dom_client_Style$Display_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display', 45, values_3); +function Style$Display$1(){ + Style$Display.call(this, 'NONE', 0); +} + +defineClass(592, 45, $intern_10, Style$Display$1); +var Lcom_google_gwt_dom_client_Style$Display$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/1', 592, null); +function Style$Display$10(){ + Style$Display.call(this, 'TABLE_COLUMN_GROUP', 9); +} + +defineClass(601, 45, $intern_10, Style$Display$10); +var Lcom_google_gwt_dom_client_Style$Display$10_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/10', 601, null); +function Style$Display$11(){ + Style$Display.call(this, 'TABLE_HEADER_GROUP', 10); +} + +defineClass(602, 45, $intern_10, Style$Display$11); +var Lcom_google_gwt_dom_client_Style$Display$11_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/11', 602, null); +function Style$Display$12(){ + Style$Display.call(this, 'TABLE_FOOTER_GROUP', 11); +} + +defineClass(603, 45, $intern_10, Style$Display$12); +var Lcom_google_gwt_dom_client_Style$Display$12_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/12', 603, null); +function Style$Display$13(){ + Style$Display.call(this, 'TABLE_ROW_GROUP', 12); +} + +defineClass(604, 45, $intern_10, Style$Display$13); +var Lcom_google_gwt_dom_client_Style$Display$13_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/13', 604, null); +function Style$Display$14(){ + Style$Display.call(this, 'TABLE_CELL', 13); +} + +defineClass(605, 45, $intern_10, Style$Display$14); +var Lcom_google_gwt_dom_client_Style$Display$14_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/14', 605, null); +function Style$Display$15(){ + Style$Display.call(this, 'TABLE_COLUMN', 14); +} + +defineClass(606, 45, $intern_10, Style$Display$15); +var Lcom_google_gwt_dom_client_Style$Display$15_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/15', 606, null); +function Style$Display$16(){ + Style$Display.call(this, 'TABLE_ROW', 15); +} + +defineClass(607, 45, $intern_10, Style$Display$16); +var Lcom_google_gwt_dom_client_Style$Display$16_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/16', 607, null); +function Style$Display$17(){ + Style$Display.call(this, 'INITIAL', 16); +} + +defineClass(608, 45, $intern_10, Style$Display$17); +var Lcom_google_gwt_dom_client_Style$Display$17_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/17', 608, null); +function Style$Display$18(){ + Style$Display.call(this, 'FLEX', 17); +} + +defineClass(609, 45, $intern_10, Style$Display$18); +var Lcom_google_gwt_dom_client_Style$Display$18_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/18', 609, null); +function Style$Display$19(){ + Style$Display.call(this, 'INLINE_FLEX', 18); +} + +defineClass(610, 45, $intern_10, Style$Display$19); +var Lcom_google_gwt_dom_client_Style$Display$19_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/19', 610, null); +function Style$Display$2(){ + Style$Display.call(this, 'BLOCK', 1); +} + +defineClass(593, 45, $intern_10, Style$Display$2); +var Lcom_google_gwt_dom_client_Style$Display$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/2', 593, null); +function Style$Display$3(){ + Style$Display.call(this, 'INLINE', 2); +} + +defineClass(594, 45, $intern_10, Style$Display$3); +var Lcom_google_gwt_dom_client_Style$Display$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/3', 594, null); +function Style$Display$4(){ + Style$Display.call(this, 'INLINE_BLOCK', 3); +} + +defineClass(595, 45, $intern_10, Style$Display$4); +var Lcom_google_gwt_dom_client_Style$Display$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/4', 595, null); +function Style$Display$5(){ + Style$Display.call(this, 'INLINE_TABLE', 4); +} + +defineClass(596, 45, $intern_10, Style$Display$5); +var Lcom_google_gwt_dom_client_Style$Display$5_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/5', 596, null); +function Style$Display$6(){ + Style$Display.call(this, 'LIST_ITEM', 5); +} + +defineClass(597, 45, $intern_10, Style$Display$6); +var Lcom_google_gwt_dom_client_Style$Display$6_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/6', 597, null); +function Style$Display$7(){ + Style$Display.call(this, 'RUN_IN', 6); +} + +defineClass(598, 45, $intern_10, Style$Display$7); +var Lcom_google_gwt_dom_client_Style$Display$7_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/7', 598, null); +function Style$Display$8(){ + Style$Display.call(this, 'TABLE', 7); +} + +defineClass(599, 45, $intern_10, Style$Display$8); +var Lcom_google_gwt_dom_client_Style$Display$8_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/8', 599, null); +function Style$Display$9(){ + Style$Display.call(this, 'TABLE_CAPTION', 8); +} + +defineClass(600, 45, $intern_10, Style$Display$9); +var Lcom_google_gwt_dom_client_Style$Display$9_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Display/9', 600, null); +function $clinit_Style$FontWeight(){ + $clinit_Style$FontWeight = emptyMethod; + NORMAL = new Style$FontWeight$1; + BOLD = new Style$FontWeight$2; + BOLDER = new Style$FontWeight$3; + LIGHTER = new Style$FontWeight$4; +} + +function Style$FontWeight(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_4(){ + $clinit_Style$FontWeight(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$FontWeight_2_classLit, 1), $intern_3, 155, 0, [NORMAL, BOLD, BOLDER, LIGHTER]); +} + +defineClass(155, 15, $intern_11); +var BOLD, BOLDER, LIGHTER, NORMAL; +var Lcom_google_gwt_dom_client_Style$FontWeight_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/FontWeight', 155, values_4); +function Style$FontWeight$1(){ + Style$FontWeight.call(this, 'NORMAL', 0); +} + +defineClass(611, 155, $intern_11, Style$FontWeight$1); +var Lcom_google_gwt_dom_client_Style$FontWeight$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/FontWeight/1', 611, null); +function Style$FontWeight$2(){ + Style$FontWeight.call(this, 'BOLD', 1); +} + +defineClass(612, 155, $intern_11, Style$FontWeight$2); +var Lcom_google_gwt_dom_client_Style$FontWeight$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/FontWeight/2', 612, null); +function Style$FontWeight$3(){ + Style$FontWeight.call(this, 'BOLDER', 2); +} + +defineClass(613, 155, $intern_11, Style$FontWeight$3); +var Lcom_google_gwt_dom_client_Style$FontWeight$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/FontWeight/3', 613, null); +function Style$FontWeight$4(){ + Style$FontWeight.call(this, 'LIGHTER', 3); +} + +defineClass(614, 155, $intern_11, Style$FontWeight$4); +var Lcom_google_gwt_dom_client_Style$FontWeight$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/FontWeight/4', 614, null); +function $clinit_Style$Overflow(){ + $clinit_Style$Overflow = emptyMethod; + VISIBLE = new Style$Overflow$1; + HIDDEN_1 = new Style$Overflow$2; + SCROLL = new Style$Overflow$3; + AUTO_0 = new Style$Overflow$4; +} + +function Style$Overflow(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_5(){ + $clinit_Style$Overflow(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$Overflow_2_classLit, 1), $intern_3, 156, 0, [VISIBLE, HIDDEN_1, SCROLL, AUTO_0]); +} + +defineClass(156, 15, $intern_12); +var AUTO_0, HIDDEN_1, SCROLL, VISIBLE; +var Lcom_google_gwt_dom_client_Style$Overflow_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Overflow', 156, values_5); +function Style$Overflow$1(){ + Style$Overflow.call(this, 'VISIBLE', 0); +} + +defineClass(615, 156, $intern_12, Style$Overflow$1); +var Lcom_google_gwt_dom_client_Style$Overflow$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Overflow/1', 615, null); +function Style$Overflow$2(){ + Style$Overflow.call(this, 'HIDDEN', 1); +} + +defineClass(616, 156, $intern_12, Style$Overflow$2); +var Lcom_google_gwt_dom_client_Style$Overflow$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Overflow/2', 616, null); +function Style$Overflow$3(){ + Style$Overflow.call(this, 'SCROLL', 2); +} + +defineClass(617, 156, $intern_12, Style$Overflow$3); +var Lcom_google_gwt_dom_client_Style$Overflow$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Overflow/3', 617, null); +function Style$Overflow$4(){ + Style$Overflow.call(this, 'AUTO', 3); +} + +defineClass(618, 156, $intern_12, Style$Overflow$4); +var Lcom_google_gwt_dom_client_Style$Overflow$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Overflow/4', 618, null); +function $clinit_Style$Position(){ + $clinit_Style$Position = emptyMethod; + STATIC = new Style$Position$1; + RELATIVE = new Style$Position$2; + ABSOLUTE = new Style$Position$3; + FIXED = new Style$Position$4; +} + +function Style$Position(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_6(){ + $clinit_Style$Position(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$Position_2_classLit, 1), $intern_3, 157, 0, [STATIC, RELATIVE, ABSOLUTE, FIXED]); +} + +defineClass(157, 15, $intern_13); +var ABSOLUTE, FIXED, RELATIVE, STATIC; +var Lcom_google_gwt_dom_client_Style$Position_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Position', 157, values_6); +function Style$Position$1(){ + Style$Position.call(this, 'STATIC', 0); +} + +defineClass(619, 157, $intern_13, Style$Position$1); +var Lcom_google_gwt_dom_client_Style$Position$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Position/1', 619, null); +function Style$Position$2(){ + Style$Position.call(this, 'RELATIVE', 1); +} + +defineClass(620, 157, $intern_13, Style$Position$2); +var Lcom_google_gwt_dom_client_Style$Position$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Position/2', 620, null); +function Style$Position$3(){ + Style$Position.call(this, 'ABSOLUTE', 2); +} + +defineClass(621, 157, $intern_13, Style$Position$3); +var Lcom_google_gwt_dom_client_Style$Position$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Position/3', 621, null); +function Style$Position$4(){ + Style$Position.call(this, 'FIXED', 3); +} + +defineClass(622, 157, $intern_13, Style$Position$4); +var Lcom_google_gwt_dom_client_Style$Position$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Position/4', 622, null); +function $clinit_Style$TextAlign(){ + $clinit_Style$TextAlign = emptyMethod; + CENTER = new Style$TextAlign$1; + JUSTIFY = new Style$TextAlign$2; + LEFT = new Style$TextAlign$3; + RIGHT = new Style$TextAlign$4; +} + +function Style$TextAlign(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_7(){ + $clinit_Style$TextAlign(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$TextAlign_2_classLit, 1), $intern_3, 158, 0, [CENTER, JUSTIFY, LEFT, RIGHT]); +} + +defineClass(158, 15, $intern_14); +var CENTER, JUSTIFY, LEFT, RIGHT; +var Lcom_google_gwt_dom_client_Style$TextAlign_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/TextAlign', 158, values_7); +function Style$TextAlign$1(){ + Style$TextAlign.call(this, 'CENTER', 0); +} + +defineClass(623, 158, $intern_14, Style$TextAlign$1); +var Lcom_google_gwt_dom_client_Style$TextAlign$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/TextAlign/1', 623, null); +function Style$TextAlign$2(){ + Style$TextAlign.call(this, 'JUSTIFY', 1); +} + +defineClass(624, 158, $intern_14, Style$TextAlign$2); +var Lcom_google_gwt_dom_client_Style$TextAlign$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/TextAlign/2', 624, null); +function Style$TextAlign$3(){ + Style$TextAlign.call(this, 'LEFT', 2); +} + +defineClass(625, 158, $intern_14, Style$TextAlign$3); +var Lcom_google_gwt_dom_client_Style$TextAlign$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/TextAlign/3', 625, null); +function Style$TextAlign$4(){ + Style$TextAlign.call(this, 'RIGHT', 3); +} + +defineClass(626, 158, $intern_14, Style$TextAlign$4); +var Lcom_google_gwt_dom_client_Style$TextAlign$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/TextAlign/4', 626, null); +function $clinit_Style$Unit(){ + $clinit_Style$Unit = emptyMethod; + PX = new Style$Unit$1; + PCT = new Style$Unit$2; + EM = new Style$Unit$3; + EX = new Style$Unit$4; + PT = new Style$Unit$5; + PC = new Style$Unit$6; + IN = new Style$Unit$7; + CM = new Style$Unit$8; + MM = new Style$Unit$9; +} + +function Style$Unit(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_8(){ + $clinit_Style$Unit(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$Unit_2_classLit, 1), $intern_3, 82, 0, [PX, PCT, EM, EX, PT, PC, IN, CM, MM]); +} + +defineClass(82, 15, $intern_15); +var CM, EM, EX, IN, MM, PC, PCT, PT, PX; +var Lcom_google_gwt_dom_client_Style$Unit_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit', 82, values_8); +function Style$Unit$1(){ + Style$Unit.call(this, 'PX', 0); +} + +defineClass(560, 82, $intern_15, Style$Unit$1); +_.getType_0 = function getType(){ + return 'px'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/1', 560, null); +function Style$Unit$2(){ + Style$Unit.call(this, 'PCT', 1); +} + +defineClass(561, 82, $intern_15, Style$Unit$2); +_.getType_0 = function getType_0(){ + return '%'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/2', 561, null); +function Style$Unit$3(){ + Style$Unit.call(this, 'EM', 2); +} + +defineClass(562, 82, $intern_15, Style$Unit$3); +_.getType_0 = function getType_1(){ + return 'em'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/3', 562, null); +function Style$Unit$4(){ + Style$Unit.call(this, 'EX', 3); +} + +defineClass(563, 82, $intern_15, Style$Unit$4); +_.getType_0 = function getType_2(){ + return 'ex'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/4', 563, null); +function Style$Unit$5(){ + Style$Unit.call(this, 'PT', 4); +} + +defineClass(564, 82, $intern_15, Style$Unit$5); +_.getType_0 = function getType_3(){ + return 'pt'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$5_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/5', 564, null); +function Style$Unit$6(){ + Style$Unit.call(this, 'PC', 5); +} + +defineClass(565, 82, $intern_15, Style$Unit$6); +_.getType_0 = function getType_4(){ + return 'pc'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$6_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/6', 565, null); +function Style$Unit$7(){ + Style$Unit.call(this, 'IN', 6); +} + +defineClass(566, 82, $intern_15, Style$Unit$7); +_.getType_0 = function getType_5(){ + return 'in'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$7_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/7', 566, null); +function Style$Unit$8(){ + Style$Unit.call(this, 'CM', 7); +} + +defineClass(567, 82, $intern_15, Style$Unit$8); +_.getType_0 = function getType_6(){ + return 'cm'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$8_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/8', 567, null); +function Style$Unit$9(){ + Style$Unit.call(this, 'MM', 8); +} + +defineClass(568, 82, $intern_15, Style$Unit$9); +_.getType_0 = function getType_7(){ + return 'mm'; +} +; +var Lcom_google_gwt_dom_client_Style$Unit$9_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Unit/9', 568, null); +function $clinit_Style$Visibility(){ + $clinit_Style$Visibility = emptyMethod; + VISIBLE_0 = new Style$Visibility$1; + HIDDEN_2 = new Style$Visibility$2; +} + +function Style$Visibility(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_9(){ + $clinit_Style$Visibility(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$Visibility_2_classLit, 1), $intern_3, 207, 0, [VISIBLE_0, HIDDEN_2]); +} + +defineClass(207, 15, $intern_16); +var HIDDEN_2, VISIBLE_0; +var Lcom_google_gwt_dom_client_Style$Visibility_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Visibility', 207, values_9); +function Style$Visibility$1(){ + Style$Visibility.call(this, 'VISIBLE', 0); +} + +defineClass(627, 207, $intern_16, Style$Visibility$1); +var Lcom_google_gwt_dom_client_Style$Visibility$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Visibility/1', 627, null); +function Style$Visibility$2(){ + Style$Visibility.call(this, 'HIDDEN', 1); +} + +defineClass(628, 207, $intern_16, Style$Visibility$2); +var Lcom_google_gwt_dom_client_Style$Visibility$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/Visibility/2', 628, null); +function $clinit_Style$WhiteSpace(){ + $clinit_Style$WhiteSpace = emptyMethod; + NORMAL_0 = new Style$WhiteSpace$1; + NOWRAP = new Style$WhiteSpace$2; + PRE = new Style$WhiteSpace$3; + PRE_LINE = new Style$WhiteSpace$4; + PRE_WRAP = new Style$WhiteSpace$5; +} + +function Style$WhiteSpace(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_10(){ + $clinit_Style$WhiteSpace(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_dom_client_Style$WhiteSpace_2_classLit, 1), $intern_3, 144, 0, [NORMAL_0, NOWRAP, PRE, PRE_LINE, PRE_WRAP]); +} + +defineClass(144, 15, $intern_17); +var NORMAL_0, NOWRAP, PRE, PRE_LINE, PRE_WRAP; +var Lcom_google_gwt_dom_client_Style$WhiteSpace_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/WhiteSpace', 144, values_10); +function Style$WhiteSpace$1(){ + Style$WhiteSpace.call(this, 'NORMAL', 0); +} + +defineClass(629, 144, $intern_17, Style$WhiteSpace$1); +var Lcom_google_gwt_dom_client_Style$WhiteSpace$1_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/WhiteSpace/1', 629, null); +function Style$WhiteSpace$2(){ + Style$WhiteSpace.call(this, 'NOWRAP', 1); +} + +defineClass(630, 144, $intern_17, Style$WhiteSpace$2); +var Lcom_google_gwt_dom_client_Style$WhiteSpace$2_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/WhiteSpace/2', 630, null); +function Style$WhiteSpace$3(){ + Style$WhiteSpace.call(this, 'PRE', 2); +} + +defineClass(631, 144, $intern_17, Style$WhiteSpace$3); +var Lcom_google_gwt_dom_client_Style$WhiteSpace$3_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/WhiteSpace/3', 631, null); +function Style$WhiteSpace$4(){ + Style$WhiteSpace.call(this, 'PRE_LINE', 3); +} + +defineClass(632, 144, $intern_17, Style$WhiteSpace$4); +var Lcom_google_gwt_dom_client_Style$WhiteSpace$4_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/WhiteSpace/4', 632, null); +function Style$WhiteSpace$5(){ + Style$WhiteSpace.call(this, 'PRE_WRAP', 4); +} + +defineClass(633, 144, $intern_17, Style$WhiteSpace$5); +var Lcom_google_gwt_dom_client_Style$WhiteSpace$5_2_classLit = createForEnum('com.google.gwt.dom.client', 'Style/WhiteSpace/5', 633, null); +function $setRows(this$static, rows_0){ + this$static.rows = rows_0; +} + +function $getRelativeX(this$static, target){ + var doc, scrollingElement; + return ((this$static.clientX || 0) | 0) - (doc = target.ownerDocument , $getBoundingClientRectLeft(target) + $getScrollLeft((scrollingElement = $equals_1(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body , scrollingElement?scrollingElement:doc.documentElement))) + $getScrollLeft(target) + $getScrollLeft_0(target.ownerDocument); +} + +defineClass(954, 1, {}); +_.toString_0 = function toString_4(){ + return 'An event type'; +} +; +var Lcom_google_web_bindery_event_shared_Event_2_classLit = createForClass('com.google.web.bindery.event.shared', 'Event', 954); +function $overrideSource(this$static, source){ + this$static.source = source; +} + +defineClass(955, 954, {}); +_.revive = function revive(){ + this.dead = false; + this.source = null; +} +; +_.dead = false; +var Lcom_google_gwt_event_shared_GwtEvent_2_classLit = createForClass('com.google.gwt.event.shared', 'GwtEvent', 955); +function $setNativeEvent(this$static, nativeEvent){ + this$static.nativeEvent = nativeEvent; +} + +function $setRelativeElement(this$static, relativeElem){ + this$static.relativeElem = relativeElem; +} + +function fireNativeEvent(nativeEvent, handlerSource, relativeElem){ + var currentNative, currentRelativeElem, type_0, type$iterator, types; + if (registered) { + types = $unsafeGet(registered, nativeEvent.type); + if (types) { + for (type$iterator = types.iterator(); type$iterator.hasNext_0();) { + type_0 = type$iterator.next_1(); + currentNative = type_0.flyweight.nativeEvent; + currentRelativeElem = type_0.flyweight.relativeElem; + $setNativeEvent(type_0.flyweight, nativeEvent); + $setRelativeElement(type_0.flyweight, relativeElem); + $fireEvent(handlerSource, type_0.flyweight); + $setNativeEvent(type_0.flyweight, currentNative); + $setRelativeElement(type_0.flyweight, currentRelativeElem); + } + } + } +} + +defineClass(961, 955, {}); +_.getAssociatedType = function getAssociatedType(){ + return this.getAssociatedType_0(); +} +; +var registered; +var Lcom_google_gwt_event_dom_client_DomEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'DomEvent', 961); +function $clinit_BlurEvent(){ + $clinit_BlurEvent = emptyMethod; + TYPE = new DomEvent$Type('blur', new BlurEvent); +} + +function BlurEvent(){ +} + +defineClass(810, 961, {}, BlurEvent); +_.dispatch = function dispatch(handler){ + !handler.this$01.shownChildMenu && $selectItem(handler.this$01, null); +} +; +_.getAssociatedType_0 = function getAssociatedType_0(){ + return TYPE; +} +; +var TYPE; +var Lcom_google_gwt_event_dom_client_BlurEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'BlurEvent', 810); +function $clinit_ChangeEvent(){ + $clinit_ChangeEvent = emptyMethod; + TYPE_0 = new DomEvent$Type('change', new ChangeEvent); +} + +function ChangeEvent(){ +} + +defineClass(777, 961, {}, ChangeEvent); +_.dispatch = function dispatch_0(handler){ + handler.onChange(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_1(){ + return TYPE_0; +} +; +var TYPE_0; +var Lcom_google_gwt_event_dom_client_ChangeEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'ChangeEvent', 777); +defineClass(962, 961, {}); +var Lcom_google_gwt_event_dom_client_HumanInputEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'HumanInputEvent', 962); +function $getX(this$static){ + var doc, e, relativeElem, scrollingElement; + relativeElem = this$static.relativeElem; + if (relativeElem) { + return e = this$static.nativeEvent , ((e.clientX || 0) | 0) - (doc = relativeElem.ownerDocument , $getBoundingClientRectLeft(relativeElem) + $getScrollLeft((scrollingElement = $equals_1(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body , scrollingElement?scrollingElement:doc.documentElement))) + $getScrollLeft(relativeElem) + $getScrollLeft_0(relativeElem.ownerDocument); + } + return (this$static.nativeEvent.clientX || 0) | 0; +} + +function $getY(this$static){ + var doc, e, relativeElem, scrollingElement; + relativeElem = this$static.relativeElem; + if (relativeElem) { + return e = this$static.nativeEvent , ((e.clientY || 0) | 0) - (doc = relativeElem.ownerDocument , $getBoundingClientRectTop(relativeElem) + (((scrollingElement = $equals_1(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body , scrollingElement?scrollingElement:doc.documentElement).scrollTop || 0) | 0)) + ((relativeElem.scrollTop || 0) | 0) + $getScrollTop(relativeElem.ownerDocument); + } + return (this$static.nativeEvent.clientY || 0) | 0; +} + +defineClass(963, 962, {}); +var Lcom_google_gwt_event_dom_client_MouseEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseEvent', 963); +function $clinit_ClickEvent(){ + $clinit_ClickEvent = emptyMethod; + TYPE_1 = new DomEvent$Type('click', new ClickEvent); +} + +function ClickEvent(){ +} + +defineClass(658, 963, {}, ClickEvent); +_.dispatch = function dispatch_1(handler){ + handler.onClick(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_2(){ + return TYPE_1; +} +; +var TYPE_1; +var Lcom_google_gwt_event_dom_client_ClickEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'ClickEvent', 658); +defineClass(475, 1, {}); +_.hashCode_0 = function hashCode_2(){ + return this.index_0; +} +; +_.toString_0 = function toString_5(){ + return 'Event type'; +} +; +_.index_0 = 0; +var nextHashCode = 0; +var Lcom_google_web_bindery_event_shared_Event$Type_2_classLit = createForClass('com.google.web.bindery.event.shared', 'Event/Type', 475); +function GwtEvent$Type(){ + this.index_0 = ++nextHashCode; +} + +defineClass(154, 475, {}, GwtEvent$Type); +var Lcom_google_gwt_event_shared_GwtEvent$Type_2_classLit = createForClass('com.google.gwt.event.shared', 'GwtEvent/Type', 154); +function DomEvent$Type(eventName, flyweight){ + var types; + GwtEvent$Type.call(this); + this.flyweight = flyweight; + !registered && (registered = new PrivateMap); + types = $unsafeGet(registered, eventName); + if (!types) { + types = new ArrayList; + $unsafePut(registered, eventName, types); + } + types.add_0(this); + this.name_0 = eventName; +} + +defineClass(84, 154, {84:1}, DomEvent$Type); +var Lcom_google_gwt_event_dom_client_DomEvent$Type_2_classLit = createForClass('com.google.gwt.event.dom.client', 'DomEvent/Type', 84); +function $clinit_DoubleClickEvent(){ + $clinit_DoubleClickEvent = emptyMethod; + TYPE_2 = new DomEvent$Type('dblclick', new DoubleClickEvent); +} + +function DoubleClickEvent(){ +} + +defineClass(787, 963, {}, DoubleClickEvent); +_.dispatch = function dispatch_2(handler){ + handler.onDoubleClick(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_3(){ + return TYPE_2; +} +; +var TYPE_2; +var Lcom_google_gwt_event_dom_client_DoubleClickEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'DoubleClickEvent', 787); +defineClass(966, 961, {}); +var Lcom_google_gwt_event_dom_client_KeyEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'KeyEvent', 966); +defineClass(967, 966, {}); +var Lcom_google_gwt_event_dom_client_KeyCodeEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'KeyCodeEvent', 967); +function maybeSwapArrowKeysForRtl(code_0, isRtl){ + isRtl && (code_0 == 39?(code_0 = 37):code_0 == 37 && (code_0 = 39)); + return code_0; +} + +function $clinit_KeyDownEvent(){ + $clinit_KeyDownEvent = emptyMethod; + TYPE_3 = new DomEvent$Type('keydown', new KeyDownEvent); +} + +function KeyDownEvent(){ +} + +defineClass(794, 967, {}, KeyDownEvent); +_.dispatch = function dispatch_3(handler){ + $onKeyDown(handler, this); +} +; +_.getAssociatedType_0 = function getAssociatedType_4(){ + return TYPE_3; +} +; +var TYPE_3; +var Lcom_google_gwt_event_dom_client_KeyDownEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'KeyDownEvent', 794); +function $clinit_KeyPressEvent(){ + $clinit_KeyPressEvent = emptyMethod; + TYPE_4 = new DomEvent$Type('keypress', new KeyPressEvent); +} + +function KeyPressEvent(){ +} + +defineClass(795, 966, {}, KeyPressEvent); +_.dispatch = function dispatch_4(handler){ + var cc; + !!this.nativeEvent && (this.nativeEvent.returnValue = false , undefined); + cc = (this.nativeEvent.keyCode || 0) & $intern_18; + cc >= 32 && cc < 127 && $setRowShortcut(handler.this$01, handler.val$row2, handler.val$text3, String.fromCharCode(cc)); +} +; +_.getAssociatedType_0 = function getAssociatedType_5(){ + return TYPE_4; +} +; +var TYPE_4; +var Lcom_google_gwt_event_dom_client_KeyPressEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'KeyPressEvent', 795); +function $clinit_KeyUpEvent(){ + $clinit_KeyUpEvent = emptyMethod; + TYPE_5 = new DomEvent$Type('keyup', new KeyUpEvent); +} + +function KeyUpEvent(){ +} + +defineClass(798, 967, {}, KeyUpEvent); +_.dispatch = function dispatch_5(handler){ + handler.onKeyUp(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_6(){ + return TYPE_5; +} +; +var TYPE_5; +var Lcom_google_gwt_event_dom_client_KeyUpEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'KeyUpEvent', 798); +function $clinit_MouseDownEvent(){ + $clinit_MouseDownEvent = emptyMethod; + TYPE_6 = new DomEvent$Type('mousedown', new MouseDownEvent); +} + +function MouseDownEvent(){ +} + +defineClass(778, 963, {}, MouseDownEvent); +_.dispatch = function dispatch_6(handler){ + handler.onMouseDown(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_7(){ + return TYPE_6; +} +; +var TYPE_6; +var Lcom_google_gwt_event_dom_client_MouseDownEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseDownEvent', 778); +function $clinit_MouseMoveEvent(){ + $clinit_MouseMoveEvent = emptyMethod; + TYPE_7 = new DomEvent$Type('mousemove', new MouseMoveEvent); +} + +function MouseMoveEvent(){ +} + +defineClass(780, 963, {}, MouseMoveEvent); +_.dispatch = function dispatch_7(handler){ + handler.onMouseMove(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_8(){ + return TYPE_7; +} +; +var TYPE_7; +var Lcom_google_gwt_event_dom_client_MouseMoveEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseMoveEvent', 780); +function $clinit_MouseOutEvent(){ + $clinit_MouseOutEvent = emptyMethod; + TYPE_8 = new DomEvent$Type('mouseout', new MouseOutEvent); +} + +function MouseOutEvent(){ +} + +defineClass(776, 963, {}, MouseOutEvent); +_.dispatch = function dispatch_8(handler){ + handler.onMouseOut(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_9(){ + return TYPE_8; +} +; +var TYPE_8; +var Lcom_google_gwt_event_dom_client_MouseOutEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseOutEvent', 776); +function $clinit_MouseOverEvent(){ + $clinit_MouseOverEvent = emptyMethod; + TYPE_9 = new DomEvent$Type('mouseover', new MouseOverEvent); +} + +function MouseOverEvent(){ +} + +defineClass(775, 963, {}, MouseOverEvent); +_.dispatch = function dispatch_9(handler){ + handler.onMouseOver(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_10(){ + return TYPE_9; +} +; +var TYPE_9; +var Lcom_google_gwt_event_dom_client_MouseOverEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseOverEvent', 775); +function $clinit_MouseUpEvent(){ + $clinit_MouseUpEvent = emptyMethod; + TYPE_10 = new DomEvent$Type('mouseup', new MouseUpEvent); +} + +function MouseUpEvent(){ +} + +defineClass(779, 963, {}, MouseUpEvent); +_.dispatch = function dispatch_10(handler){ + handler.onMouseUp(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_11(){ + return TYPE_10; +} +; +var TYPE_10; +var Lcom_google_gwt_event_dom_client_MouseUpEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseUpEvent', 779); +function $clinit_MouseWheelEvent(){ + $clinit_MouseWheelEvent = emptyMethod; + TYPE_11 = new DomEvent$Type('mousewheel', new MouseWheelEvent_0); + new DomEvent$Type('DOMMouseScroll', new MouseWheelEvent_0); +} + +function MouseWheelEvent_0(){ +} + +defineClass(341, 963, {}, MouseWheelEvent_0); +_.dispatch = function dispatch_11(handler){ + handler.onMouseWheel(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_12(){ + return TYPE_11; +} +; +var TYPE_11; +var Lcom_google_gwt_event_dom_client_MouseWheelEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'MouseWheelEvent', 341); +function $unsafeGet(this$static, key){ + return this$static.map_0[key]; +} + +function $unsafePut(this$static, key, value_0){ + this$static.map_0[key] = value_0; +} + +function PrivateMap(){ + this.map_0 = {}; +} + +defineClass(788, 1, {}, PrivateMap); +var Lcom_google_gwt_event_dom_client_PrivateMap_2_classLit = createForClass('com.google.gwt.event.dom.client', 'PrivateMap', 788); +defineClass(965, 962, {}); +var impl; +var Lcom_google_gwt_event_dom_client_TouchEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchEvent', 965); +function $clinit_TouchCancelEvent(){ + $clinit_TouchCancelEvent = emptyMethod; + TYPE_12 = new DomEvent$Type('touchcancel', new TouchCancelEvent); +} + +function TouchCancelEvent(){ +} + +defineClass(786, 965, {}, TouchCancelEvent); +_.dispatch = function dispatch_12(handler){ + handler.onTouchCancel(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_13(){ + return TYPE_12; +} +; +var TYPE_12; +var Lcom_google_gwt_event_dom_client_TouchCancelEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchCancelEvent', 786); +function $clinit_TouchEndEvent(){ + $clinit_TouchEndEvent = emptyMethod; + TYPE_13 = new DomEvent$Type('touchend', new TouchEndEvent); +} + +function TouchEndEvent(){ +} + +defineClass(785, 965, {}, TouchEndEvent); +_.dispatch = function dispatch_13(handler){ + handler.onTouchEnd(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_14(){ + return TYPE_13; +} +; +var TYPE_13; +var Lcom_google_gwt_event_dom_client_TouchEndEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchEndEvent', 785); +defineClass(782, 1, {}); +var Lcom_google_gwt_event_dom_client_TouchEvent$TouchSupportDetector_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchEvent/TouchSupportDetector', 782); +function TouchEvent$TouchSupportDetectorNo(){ +} + +defineClass(783, 782, {}, TouchEvent$TouchSupportDetectorNo); +var Lcom_google_gwt_event_dom_client_TouchEvent$TouchSupportDetectorNo_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchEvent/TouchSupportDetectorNo', 783); +function $clinit_TouchMoveEvent(){ + $clinit_TouchMoveEvent = emptyMethod; + TYPE_14 = new DomEvent$Type('touchmove', new TouchMoveEvent); +} + +function TouchMoveEvent(){ +} + +defineClass(784, 965, {}, TouchMoveEvent); +_.dispatch = function dispatch_14(handler){ + handler.onTouchMove(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_15(){ + return TYPE_14; +} +; +var TYPE_14; +var Lcom_google_gwt_event_dom_client_TouchMoveEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchMoveEvent', 784); +function $clinit_TouchStartEvent(){ + $clinit_TouchStartEvent = emptyMethod; + TYPE_15 = new DomEvent$Type('touchstart', new TouchStartEvent); +} + +function TouchStartEvent(){ +} + +defineClass(781, 965, {}, TouchStartEvent); +_.dispatch = function dispatch_15(handler){ + handler.onTouchStart(this); +} +; +_.getAssociatedType_0 = function getAssociatedType_16(){ + return TYPE_15; +} +; +var TYPE_15; +var Lcom_google_gwt_event_dom_client_TouchStartEvent_2_classLit = createForClass('com.google.gwt.event.dom.client', 'TouchStartEvent', 781); +function AttachEvent(attached){ + this.attached = attached; +} + +function fire_0(source, attached){ + var event_0; + if (TYPE_16) { + event_0 = new AttachEvent(attached); + !!source.handlerManager && $fireEvent_0(source.handlerManager, event_0); + } +} + +defineClass(873, 955, {}, AttachEvent); +_.dispatch = function dispatch_16(handler){ + this.attached?$setupBustClickHandler(handler.this$01):$removeBustClickHandler(handler.this$01); +} +; +_.getAssociatedType = function getAssociatedType_17(){ + return TYPE_16; +} +; +_.attached = false; +var TYPE_16; +var Lcom_google_gwt_event_logical_shared_AttachEvent_2_classLit = createForClass('com.google.gwt.event.logical.shared', 'AttachEvent', 873); +function CloseEvent_0(autoClosed){ + this.autoClosed = autoClosed; +} + +function fire_1(source, autoClosed){ + var event_0; + if (TYPE_17) { + event_0 = new CloseEvent_0(autoClosed); + source.fireEvent_0(event_0); + } +} + +defineClass(793, 955, {}, CloseEvent_0); +_.dispatch = function dispatch_17(handler){ + handler.onClose(this); +} +; +_.getAssociatedType = function getAssociatedType_18(){ + return TYPE_17; +} +; +_.autoClosed = false; +var TYPE_17; +var Lcom_google_gwt_event_logical_shared_CloseEvent_2_classLit = createForClass('com.google.gwt.event.logical.shared', 'CloseEvent', 793); +function ResizeEvent(width_0){ + this.width_0 = width_0; +} + +function fire_2(source, width_0){ + var event_0; + if (TYPE_18) { + event_0 = new ResizeEvent(width_0); + $fireEvent_0(source, event_0); + } +} + +defineClass(551, 955, {}, ResizeEvent); +_.dispatch = function dispatch_18(handler){ + handler.onResize(this); +} +; +_.getAssociatedType = function getAssociatedType_19(){ + return TYPE_18; +} +; +_.width_0 = 0; +var TYPE_18; +var Lcom_google_gwt_event_logical_shared_ResizeEvent_2_classLit = createForClass('com.google.gwt.event.logical.shared', 'ResizeEvent', 551); +function ValueChangeEvent(value_0){ + this.value_0 = value_0; +} + +function fire_3(source, value_0){ + var event_0; + if (TYPE_19) { + event_0 = new ValueChangeEvent(value_0); + source.fireEvent_0(event_0); + } +} + +function fireIfNotEqual(source, oldValue, newValue){ + var event_0; + if (!!TYPE_19 && oldValue != newValue && (oldValue == null || (checkCriticalNotNull(oldValue) , oldValue != newValue))) { + event_0 = new ValueChangeEvent(newValue); + !!source.handlerManager && $fireEvent_0(source.handlerManager, event_0); + } +} + +defineClass(349, 955, {}, ValueChangeEvent); +_.dispatch = function dispatch_19(handler){ + handler.onValueChange(this); +} +; +_.getAssociatedType = function getAssociatedType_20(){ + return TYPE_19; +} +; +var TYPE_19; +var Lcom_google_gwt_event_logical_shared_ValueChangeEvent_2_classLit = createForClass('com.google.gwt.event.logical.shared', 'ValueChangeEvent', 349); +function $addHandler_0(this$static, type_0, handler){ + return new LegacyHandlerWrapper($doAdd(this$static.eventBus, type_0, handler)); +} + +function $fireEvent_0(this$static, event_0){ + var e, oldSource; + !event_0.dead || event_0.revive(); + oldSource = event_0.source; + $overrideSource(event_0, this$static.source); + try { + $doFire(this$static.eventBus, event_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 206)) { + e = $e0; + throw toJs(new UmbrellaException_0(e.causes)); + } + else + throw toJs($e0); + } + finally { + oldSource == null?(event_0.dead = true , event_0.source = null):(event_0.source = oldSource); + } +} + +function $isEventHandled(this$static, e){ + return $isEventHandled_0(this$static.eventBus, e); +} + +function HandlerManager(source){ + HandlerManager_0.call(this, source, false); +} + +function HandlerManager_0(source, fireInReverseOrder){ + this.eventBus = new HandlerManager$Bus(fireInReverseOrder); + this.source = source; +} + +defineClass(203, 1, {26:1}, HandlerManager, HandlerManager_0); +_.fireEvent_0 = function fireEvent_0(event_0){ + $fireEvent_0(this, event_0); +} +; +var Lcom_google_gwt_event_shared_HandlerManager_2_classLit = createForClass('com.google.gwt.event.shared', 'HandlerManager', 203); +defineClass(956, 1, {}); +var Lcom_google_web_bindery_event_shared_EventBus_2_classLit = createForClass('com.google.web.bindery.event.shared', 'EventBus', 956); +function $defer(this$static, command){ + !this$static.deferredDeltas && (this$static.deferredDeltas = new ArrayList); + $add_8(this$static.deferredDeltas, command); +} + +function $doAdd(this$static, type_0, handler){ + var l_0; + if (!type_0) { + throw toJs(new NullPointerException_0('Cannot add a handler with a null type')); + } + if (!handler) { + throw toJs(new NullPointerException_0('Cannot add a null handler')); + } + this$static.firingDepth > 0?$defer(this$static, new SimpleEventBus$2(this$static, type_0, handler)):(l_0 = $ensureHandlerList(this$static, type_0, null) , l_0.add_0(handler)); + return new SimpleEventBus$1(this$static, type_0, handler); +} + +function $doAddNow(this$static, type_0, source, handler){ + var l_0; + l_0 = $ensureHandlerList(this$static, type_0, source); + l_0.add_0(handler); +} + +function $doFire(this$static, event_0){ + var causes, directHandlers, e, handler, handlers, it; + if (!event_0) { + throw toJs(new NullPointerException_0('Cannot fire null event')); + } + try { + ++this$static.firingDepth; + handlers = (directHandlers = $getHandlerList(this$static, event_0.getAssociatedType(), null) , directHandlers); + causes = null; + it = this$static.isReverseOrder?handlers.listIterator_0(handlers.size_1()):handlers.listIterator(); + while (this$static.isReverseOrder?it.hasPrevious():it.hasNext_0()) { + handler = this$static.isReverseOrder?it.previous():it.next_1(); + try { + event_0.dispatch(handler); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 39)) { + e = $e0; + !causes && (causes = new HashSet); + $put_0(causes.map_0, e, causes); + } + else + throw toJs($e0); + } + } + if (causes) { + throw toJs(new UmbrellaException(causes)); + } + } + finally { + --this$static.firingDepth; + this$static.firingDepth == 0 && $handleQueuedAddsAndRemoves(this$static); + } +} + +function $doRemoveNow(this$static, type_0, source, handler){ + var l_0, removed, sourceMap; + l_0 = $getHandlerList(this$static, type_0, source); + removed = l_0.remove_2(handler); + removed && l_0.isEmpty() && (sourceMap = $get_1(this$static.map_0, type_0) , $remove_16(sourceMap.hashCodeMap, source) , sourceMap.hashCodeMap.size_0 + sourceMap.stringMap.size_0 == 0 && $remove_7(this$static.map_0, type_0) , undefined); +} + +function $ensureHandlerList(this$static, type_0, source){ + var handlers, sourceMap; + sourceMap = $get_1(this$static.map_0, type_0); + if (!sourceMap) { + sourceMap = new HashMap; + $put_0(this$static.map_0, type_0, sourceMap); + } + handlers = getEntryValueOrNull($getEntry(sourceMap.hashCodeMap, source)); + if (!handlers) { + handlers = new ArrayList; + $put_1(sourceMap.hashCodeMap, source, handlers); + } + return handlers; +} + +function $getHandlerList(this$static, type_0, source){ + var handlers, sourceMap; + sourceMap = $get_1(this$static.map_0, type_0); + if (!sourceMap) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + handlers = getEntryValueOrNull($getEntry(sourceMap.hashCodeMap, source)); + if (!handlers) { + return $clinit_Collections() , $clinit_Collections() , EMPTY_LIST; + } + return handlers; +} + +function $handleQueuedAddsAndRemoves(this$static){ + var c, c$iterator; + if (this$static.deferredDeltas) { + try { + for (c$iterator = new ArrayList$1(this$static.deferredDeltas); c$iterator.i < c$iterator.this$01.array.length;) { + c = $next_4(c$iterator); + c.execute_1(); + } + } + finally { + this$static.deferredDeltas = null; + } + } +} + +function $isEventHandled_0(this$static, eventKey){ + return $containsKey(this$static.map_0, eventKey); +} + +defineClass(477, 956, {}); +_.firingDepth = 0; +_.isReverseOrder = false; +var Lcom_google_web_bindery_event_shared_SimpleEventBus_2_classLit = createForClass('com.google.web.bindery.event.shared', 'SimpleEventBus', 477); +function $doRemove(this$static, type_0, source, handler){ + this$static.firingDepth > 0?$defer(this$static, new SimpleEventBus$3(this$static, type_0, source, handler)):$doRemoveNow(this$static, type_0, source, handler); +} + +function HandlerManager$Bus(fireInReverseOrder){ + this.map_0 = new HashMap; + this.isReverseOrder = fireInReverseOrder; +} + +defineClass(478, 477, {}, HandlerManager$Bus); +var Lcom_google_gwt_event_shared_HandlerManager$Bus_2_classLit = createForClass('com.google.gwt.event.shared', 'HandlerManager/Bus', 478); +function LegacyHandlerWrapper(real){ + this.real = real; +} + +defineClass(771, 1, {985:1}, LegacyHandlerWrapper); +var Lcom_google_gwt_event_shared_LegacyHandlerWrapper_2_classLit = createForClass('com.google.gwt.event.shared', 'LegacyHandlerWrapper', 771); +function UmbrellaException(causes){ + var cause, cause$iterator, i; + RuntimeException_1.call(this, makeMessage(causes), causes.isEmpty()?null:causes.iterator().next_1()); + this.causes = causes; + i = 0; + for (cause$iterator = causes.iterator(); cause$iterator.hasNext_0();) { + cause = cause$iterator.next_1(); + if (i++ == 0) { + continue; + } + $addSuppressed(this, cause); + } +} + +function makeMessage(causes){ + var b, count, first, t, t$iterator; + count = causes.size_1(); + if (count == 0) { + return null; + } + b = new StringBuilder_1(count == 1?'Exception caught: ':count + ' exceptions caught: '); + first = true; + for (t$iterator = causes.iterator(); t$iterator.hasNext_0();) { + t = t$iterator.next_1(); + first?(first = false):(b.string += '; ' , b); + $append_4(b, t.getMessage()); + } + return b.string; +} + +defineClass(206, 80, $intern_19, UmbrellaException); +var Lcom_google_web_bindery_event_shared_UmbrellaException_2_classLit = createForClass('com.google.web.bindery.event.shared', 'UmbrellaException', 206); +function UmbrellaException_0(causes){ + UmbrellaException.call(this, causes); +} + +defineClass(326, 206, $intern_19, UmbrellaException_0); +var Lcom_google_gwt_event_shared_UmbrellaException_2_classLit = createForClass('com.google.gwt.event.shared', 'UmbrellaException', 326); +function $cancel_1(this$static){ + var xhr; + if (!this$static.xmlHttpRequest) { + return; + } + $cancel_0(this$static.timer); + xhr = this$static.xmlHttpRequest; + this$static.xmlHttpRequest = null; + $clearOnReadyStateChange(xhr); + xhr.abort(); +} + +function $fireOnResponseReceived(this$static, callback){ + var response, xhr; + if (!this$static.xmlHttpRequest) { + return; + } + $cancel_0(this$static.timer); + xhr = this$static.xmlHttpRequest; + this$static.xmlHttpRequest = null; + response = new Request$RequestImplIE8And9$1(xhr); + callback.onResponseReceived(this$static, response); +} + +function $fireOnTimeout(this$static){ + if (!this$static.xmlHttpRequest) { + return; + } + $cancel_1(this$static); + this$static.callback.onError(this$static, new RequestTimeoutException(this$static.timeoutMillis)); +} + +function Request_0(xmlHttpRequest, timeoutMillis, callback){ + this.timer = new Request$1(this); + if (!xmlHttpRequest) { + throw toJs(new NullPointerException); + } + if (timeoutMillis < 0) { + throw toJs(new IllegalArgumentException); + } + this.callback = callback; + this.timeoutMillis = timeoutMillis; + this.xmlHttpRequest = xmlHttpRequest; + timeoutMillis > 0 && $schedule(this.timer, timeoutMillis); +} + +defineClass(466, 1, {}, Request_0); +_.timeoutMillis = 0; +var Lcom_google_gwt_http_client_Request_2_classLit = createForClass('com.google.gwt.http.client', 'Request', 466); +function Request$1(this$0){ + this.this$01 = this$0; + Timer.call(this); +} + +defineClass(469, 202, {}, Request$1); +_.run = function run_1(){ + $fireOnTimeout(this.this$01); +} +; +var Lcom_google_gwt_http_client_Request$1_2_classLit = createForClass('com.google.gwt.http.client', 'Request/1', 469); +defineClass(953, 1, {}); +var Lcom_google_gwt_http_client_Response_2_classLit = createForClass('com.google.gwt.http.client', 'Response', 953); +defineClass(467, 953, {}); +var Lcom_google_gwt_http_client_ResponseImpl_2_classLit = createForClass('com.google.gwt.http.client', 'ResponseImpl', 467); +function Request$RequestImplIE8And9$1($anonymous0){ + this.xmlHttpRequest = $anonymous0; +} + +defineClass(468, 467, {}, Request$RequestImplIE8And9$1); +var Lcom_google_gwt_http_client_Request$RequestImplIE8And9$1_2_classLit = createForClass('com.google.gwt.http.client', 'Request/RequestImplIE8And9/1', 468); +function $clinit_RequestBuilder(){ + $clinit_RequestBuilder = emptyMethod; + new RequestBuilder$Method('DELETE'); + GET = new RequestBuilder$Method('GET'); + new RequestBuilder$Method('HEAD'); + new RequestBuilder$Method('POST'); + new RequestBuilder$Method('PUT'); +} + +function $doSend(this$static, callback){ + var e, request, requestPermissionException, xmlHttpRequest; + xmlHttpRequest = new $wnd.XMLHttpRequest; + try { + $open(xmlHttpRequest, this$static.httpMethod, this$static.url_0); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 129)) { + e = $e0; + requestPermissionException = new RequestPermissionException(this$static.url_0); + $initCause(requestPermissionException, new RequestException(e.getMessage())); + throw toJs(requestPermissionException); + } + else + throw toJs($e0); + } + xmlHttpRequest.setRequestHeader('Content-Type', 'text/plain; charset=utf-8'); + this$static.includeCredentials && (xmlHttpRequest.withCredentials = true , undefined); + request = new Request_0(xmlHttpRequest, this$static.timeoutMillis, callback); + $setOnReadyStateChange(xmlHttpRequest, new RequestBuilder$1(request, callback)); + try { + xmlHttpRequest.send(null); + } + catch ($e1) { + $e1 = toJava($e1); + if (instanceOf($e1, 129)) { + e = $e1; + throw toJs(new RequestException(e.getMessage())); + } + else + throw toJs($e1); + } + return request; +} + +function $sendRequest(this$static, callback){ + throwIfNull('callback', callback); + return $doSend(this$static, callback); +} + +function RequestBuilder(httpMethod, url_0){ + $clinit_RequestBuilder(); + RequestBuilder_0.call(this, !httpMethod?null:httpMethod.name_0, url_0); +} + +function RequestBuilder_0(httpMethod, url_0){ + throwIfEmptyOrNull('httpMethod', httpMethod); + throwIfEmptyOrNull('url', url_0); + this.httpMethod = httpMethod; + this.url_0 = url_0; +} + +defineClass(223, 1, {}, RequestBuilder); +_.includeCredentials = false; +_.timeoutMillis = 0; +var GET; +var Lcom_google_gwt_http_client_RequestBuilder_2_classLit = createForClass('com.google.gwt.http.client', 'RequestBuilder', 223); +function RequestBuilder$1(val$request, val$callback){ + this.val$request2 = val$request; + this.val$callback3 = val$callback; +} + +defineClass(465, 1, {}, RequestBuilder$1); +_.onReadyStateChange = function onReadyStateChange(xhr){ + if (xhr.readyState == 4) { + $clearOnReadyStateChange(xhr); + $fireOnResponseReceived(this.val$request2, this.val$callback3); + } +} +; +var Lcom_google_gwt_http_client_RequestBuilder$1_2_classLit = createForClass('com.google.gwt.http.client', 'RequestBuilder/1', 465); +function RequestBuilder$Method(name_0){ + this.name_0 = name_0; +} + +defineClass(226, 1, {}, RequestBuilder$Method); +_.toString_0 = function toString_6(){ + return this.name_0; +} +; +var Lcom_google_gwt_http_client_RequestBuilder$Method_2_classLit = createForClass('com.google.gwt.http.client', 'RequestBuilder/Method', 226); +function RequestException(message){ + Exception.call(this, message); +} + +defineClass(149, 13, $intern_20, RequestException); +var Lcom_google_gwt_http_client_RequestException_2_classLit = createForClass('com.google.gwt.http.client', 'RequestException', 149); +function RequestPermissionException(url_0){ + RequestException.call(this, 'The URL ' + url_0 + ' is invalid or violates the same-origin security restriction'); +} + +defineClass(552, 149, $intern_20, RequestPermissionException); +var Lcom_google_gwt_http_client_RequestPermissionException_2_classLit = createForClass('com.google.gwt.http.client', 'RequestPermissionException', 552); +function RequestTimeoutException(timeoutMillis){ + RequestException.call(this, 'A request timeout has expired after ' + timeoutMillis + ' ms'); +} + +defineClass(913, 149, $intern_20, RequestTimeoutException); +var Lcom_google_gwt_http_client_RequestTimeoutException_2_classLit = createForClass('com.google.gwt.http.client', 'RequestTimeoutException', 913); +function throwIfEmptyOrNull(name_0, value_0){ + throwIfNull(name_0, value_0); + if (0 == $trim(value_0).length) { + throw toJs(new IllegalArgumentException_0(name_0 + ' cannot be empty')); + } +} + +function throwIfNull(name_0, value_0){ + if (null == value_0) { + throw toJs(new NullPointerException_0(name_0 + ' cannot be null')); + } +} + +function decodeQueryStringImpl(encodedURLComponent){ + var regexp = /\+/g; + return decodeURIComponent(encodedURLComponent.replace(regexp, '%20')); +} + +function getDirectionOnElement(elem){ + var dirPropertyValue; + dirPropertyValue = $getPropertyString(elem, 'dir'); + if ($equalsIgnoreCase('rtl', dirPropertyValue)) { + return $clinit_HasDirection$Direction() , RTL; + } + else if ($equalsIgnoreCase('ltr', dirPropertyValue)) { + return $clinit_HasDirection$Direction() , LTR; + } + return $clinit_HasDirection$Direction() , DEFAULT_0; +} + +function setDirectionOnElement(elem, direction){ + switch (direction.ordinal) { + case 0: + { + elem['dir'] = 'rtl'; + break; + } + + case 1: + { + elem['dir'] = 'ltr'; + break; + } + + case 2: + { + getDirectionOnElement(elem) != ($clinit_HasDirection$Direction() , DEFAULT_0) && (elem['dir'] = '' , undefined); + break; + } + + } +} + +function $getDefaultNative(){ + return ['USD', 'US$', 2, 'US$', '$']; +} + +function $clinit_DateTimeFormat(){ + $clinit_DateTimeFormat = emptyMethod; + new HashMap; +} + +function $addPart(this$static, buf, count){ + var oldLength; + if (buf.string.length > 0) { + $add_8(this$static.patternParts, new DateTimeFormat$PatternPart(buf.string, count)); + oldLength = buf.string.length; + 0 < oldLength?(buf.string = buf.string.substr(0, 0)):0 > oldLength && (buf.string += valueOf_2(initUnidimensionalArray(C_classLit, $intern_21, 7, -oldLength, 15, 1))); + } +} + +function $format(this$static, date, timeZone){ + var ch_0, diff, i, j, keepDate, keepTime, n, toAppendTo, trailQuote; + !timeZone && (timeZone = createTimeZone(date.jsdate.getTimezoneOffset())); + diff = (date.jsdate.getTimezoneOffset() - timeZone.standardOffset) * 60000; + keepDate = new Date_1(add_2(fromDouble_0(date.jsdate.getTime()), diff)); + keepTime = keepDate; + if (keepDate.jsdate.getTimezoneOffset() != date.jsdate.getTimezoneOffset()) { + diff > 0?(diff -= 86400000):(diff += 86400000); + keepTime = new Date_1(add_2(fromDouble_0(date.jsdate.getTime()), diff)); + } + toAppendTo = new StringBuilder_0; + n = this$static.pattern.length; + for (i = 0; i < n;) { + ch_0 = $charAt_0(this$static.pattern, i); + if (ch_0 >= 97 && ch_0 <= 122 || ch_0 >= 65 && ch_0 <= 90) { + for (j = i + 1; j < n && $charAt_0(this$static.pattern, j) == ch_0; ++j) + ; + $subFormat(toAppendTo, ch_0, j - i, keepDate, keepTime, timeZone); + i = j; + } + else if (ch_0 == 39) { + ++i; + if (i < n && $charAt_0(this$static.pattern, i) == 39) { + toAppendTo.string += "'"; + ++i; + continue; + } + trailQuote = false; + while (!trailQuote) { + j = i; + while (j < n && $charAt_0(this$static.pattern, j) != 39) { + ++j; + } + if (j >= n) { + throw toJs(new IllegalArgumentException_0("Missing trailing '")); + } + j + 1 < n && $charAt_0(this$static.pattern, j + 1) == 39?++j:(trailQuote = true); + $append_4(toAppendTo, $substring_0(this$static.pattern, i, j)); + i = j + 1; + } + } + else { + toAppendTo.string += String.fromCharCode(ch_0); + ++i; + } + } + return toAppendTo.string; +} + +function $formatFractionalSeconds(buf, count, date){ + var time, value_0; + time = fromDouble_0(date.jsdate.getTime()); + if (compare_0(time, 0) < 0) { + value_0 = $intern_22 - toInt_0(mod(neg_1(time), $intern_22)); + value_0 == $intern_22 && (value_0 = 0); + } + else { + value_0 = toInt_0(mod(time, $intern_22)); + } + if (count == 1) { + value_0 = $wnd.Math.min((value_0 + 50) / 100 | 0, 9); + $append_0(buf, 48 + value_0 & $intern_18); + } + else if (count == 2) { + value_0 = $wnd.Math.min((value_0 + 5) / 10 | 0, 99); + $zeroPaddingNumber(buf, value_0, 2); + } + else { + $zeroPaddingNumber(buf, value_0, 3); + count > 3 && $zeroPaddingNumber(buf, 0, count - 3); + } +} + +function $formatMonth(buf, count, date){ + var value_0; + value_0 = date.jsdate.getMonth(); + switch (count) { + case 5: + $append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value_0]); + break; + case 4: + $append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value_0]); + break; + case 3: + $append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value_0]); + break; + default:$zeroPaddingNumber(buf, value_0 + 1, count); + } +} + +function $formatYear(buf, count, date){ + var value_0; + value_0 = date.jsdate.getFullYear() - 1900 + 1900; + value_0 < 0 && (value_0 = -value_0); + switch (count) { + case 1: + buf.string += value_0; + break; + case 2: + $zeroPaddingNumber(buf, value_0 % 100, 2); + break; + default:$zeroPaddingNumber(buf, value_0, count); + } +} + +function $getNextCharCountInPattern(pattern, start_0){ + var ch_0, next; + ch_0 = (checkCriticalStringElementIndex(start_0, pattern.length) , pattern.charCodeAt(start_0)); + next = start_0 + 1; + while (next < pattern.length && (checkCriticalStringElementIndex(next, pattern.length) , pattern.charCodeAt(next) == ch_0)) { + ++next; + } + return next - start_0; +} + +function $identifyAbutStart(this$static){ + var abut, i, len; + abut = false; + len = this$static.patternParts.array.length; + for (i = 0; i < len; i++) { + if ($isNumeric($get_2(this$static.patternParts, i))) { + if (!abut && i + 1 < len && $isNumeric($get_2(this$static.patternParts, i + 1))) { + abut = true; + $get_2(this$static.patternParts, i).abutStart = true; + } + } + else { + abut = false; + } + } +} + +function $isNumeric(part){ + var i; + if (part.count <= 0) { + return false; + } + i = $indexOf_1('MLydhHmsSDkK', fromCodePoint($charAt_0(part.text_0, 0))); + return i > 1 || i >= 0 && part.count < 3; +} + +function $parsePattern(this$static, pattern){ + var buf, ch_0, count, i, inQuote; + buf = new StringBuilder_0; + inQuote = false; + for (i = 0; i < pattern.length; i++) { + ch_0 = (checkCriticalStringElementIndex(i, pattern.length) , pattern.charCodeAt(i)); + if (ch_0 == 32) { + $addPart(this$static, buf, 0); + buf.string += ' '; + $addPart(this$static, buf, 0); + while (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 32)) { + ++i; + } + continue; + } + if (inQuote) { + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += "'"; + ++i; + } + else { + inQuote = false; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + continue; + } + if ($indexOf_1('GyMLdkHmsSEcDahKzZv', fromCodePoint(ch_0)) > 0) { + $addPart(this$static, buf, 0); + buf.string += String.fromCharCode(ch_0); + count = $getNextCharCountInPattern(pattern, i); + $addPart(this$static, buf, count); + i += count - 1; + continue; + } + if (ch_0 == 39) { + if (i + 1 < pattern.length && (checkCriticalStringElementIndex(i + 1, pattern.length) , pattern.charCodeAt(i + 1) == 39)) { + buf.string += "'"; + ++i; + } + else { + inQuote = true; + } + } + else { + buf.string += String.fromCharCode(ch_0); + } + } + $addPart(this$static, buf, 0); + $identifyAbutStart(this$static); +} + +function $subFormat(buf, ch_0, count, adjustedDate, adjustedTime, timezone){ + var value_0, value0, value1, value10, value2, value3, value4, value5, value6, value7, value8, value9; + switch (ch_0) { + case 71: + value0 = adjustedDate.jsdate.getFullYear() - 1900 >= -1900?1:0; + count >= 4?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Before Christ', 'Anno Domini'])[value0]):$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['BC', 'AD'])[value0]); + break; + case 121: + $formatYear(buf, count, adjustedDate); + break; + case 77: + $formatMonth(buf, count, adjustedDate); + break; + case 107: + value1 = adjustedTime.jsdate.getHours(); + value1 == 0?$zeroPaddingNumber(buf, 24, count):$zeroPaddingNumber(buf, value1, count); + break; + case 83: + $formatFractionalSeconds(buf, count, adjustedTime); + break; + case 69: + value2 = adjustedDate.jsdate.getDay(); + count == 5?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value2]):count == 4?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value2]):$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value2]); + break; + case 97: + adjustedTime.jsdate.getHours() >= 12 && adjustedTime.jsdate.getHours() < 24?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['AM', 'PM'])[1]):$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['AM', 'PM'])[0]); + break; + case 104: + value3 = adjustedTime.jsdate.getHours() % 12; + value3 == 0?$zeroPaddingNumber(buf, 12, count):$zeroPaddingNumber(buf, value3, count); + break; + case 75: + value4 = adjustedTime.jsdate.getHours() % 12; + $zeroPaddingNumber(buf, value4, count); + break; + case 72: + value5 = adjustedTime.jsdate.getHours(); + $zeroPaddingNumber(buf, value5, count); + break; + case 99: + value6 = adjustedDate.jsdate.getDay(); + count == 5?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['S', 'M', 'T', 'W', 'T', 'F', 'S'])[value6]):count == 4?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'])[value6]):count == 3?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'])[value6]):$zeroPaddingNumber(buf, value6, 1); + break; + case 76: + value7 = adjustedDate.jsdate.getMonth(); + count == 5?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'])[value7]):count == 4?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'])[value7]):count == 3?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'])[value7]):$zeroPaddingNumber(buf, value7 + 1, count); + break; + case 81: + value8 = adjustedDate.jsdate.getMonth() / 3 | 0; + count < 4?$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['Q1', 'Q2', 'Q3', 'Q4'])[value8]):$append_4(buf, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'])[value8]); + break; + case 100: + value9 = adjustedDate.jsdate.getDate(); + $zeroPaddingNumber(buf, value9, count); + break; + case 109: + value10 = adjustedTime.jsdate.getMinutes(); + $zeroPaddingNumber(buf, value10, count); + break; + case 115: + value_0 = adjustedTime.jsdate.getSeconds(); + $zeroPaddingNumber(buf, value_0, count); + break; + case 122: + count < 4?$append_4(buf, timezone.tzNames[0]):$append_4(buf, timezone.tzNames[1]); + break; + case 118: + $append_4(buf, timezone.timezoneID); + break; + case 90: + count < 3?$append_4(buf, $getRFCTimeZoneString(timezone)):count == 3?$append_4(buf, $getISOTimeZoneString(timezone)):$append_4(buf, composeGMTString(timezone.standardOffset)); + break; + default:return false; + } + return true; +} + +function $zeroPaddingNumber(buf, value_0, minWidth){ + var b, i; + b = 10; + for (i = 0; i < minWidth - 1; i++) { + value_0 < b && (buf.string += '0' , buf); + b *= 10; + } + buf.string += value_0; +} + +defineClass(792, 1, {}); +var Lcom_google_gwt_i18n_shared_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat', 792); +function $clinit_DateTimeFormat_0(){ + $clinit_DateTimeFormat_0 = emptyMethod; + $clinit_DateTimeFormat(); + cache = new HashMap; +} + +function DateTimeFormat(pattern){ + $clinit_DateTimeFormat(); + this.patternParts = new ArrayList; + this.pattern = pattern; + $parsePattern(this, pattern); +} + +function getFormat(pattern, dtfi){ + $clinit_DateTimeFormat_0(); + var defaultDtfi, dtf; + defaultDtfi = $getDateTimeFormatInfo(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); + dtf = null; + dtfi == defaultDtfi && (dtf = $getStringValue(cache, pattern)); + if (!dtf) { + dtf = new DateTimeFormat(pattern); + dtfi == defaultDtfi && $putStringValue(cache, pattern, dtf); + } + return dtf; +} + +defineClass(342, 792, {342:1}, DateTimeFormat); +var cache; +var Lcom_google_gwt_i18n_client_DateTimeFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'DateTimeFormat', 342); +defineClass(973, 1, {}); +var Lcom_google_gwt_i18n_shared_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DefaultDateTimeFormatInfo', 973); +defineClass(974, 973, {}); +var Lcom_google_gwt_i18n_client_DefaultDateTimeFormatInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'DefaultDateTimeFormatInfo', 974); +function $clinit_HasDirection$Direction(){ + $clinit_HasDirection$Direction = emptyMethod; + RTL = new HasDirection$Direction('RTL', 0); + LTR = new HasDirection$Direction('LTR', 1); + DEFAULT_0 = new HasDirection$Direction('DEFAULT', 2); +} + +function HasDirection$Direction(enum$name, enum$ordinal){ + Enum.call(this, enum$name, enum$ordinal); +} + +function values_11(){ + $clinit_HasDirection$Direction(); + return stampJavaTypeInfo(getClassLiteralForArray(Lcom_google_gwt_i18n_client_HasDirection$Direction_2_classLit, 1), $intern_3, 229, 0, [RTL, LTR, DEFAULT_0]); +} + +defineClass(229, 15, {229:1, 3:1, 16:1, 15:1}, HasDirection$Direction); +var DEFAULT_0, LTR, RTL; +var Lcom_google_gwt_i18n_client_HasDirection$Direction_2_classLit = createForEnum('com.google.gwt.i18n.client', 'HasDirection/Direction', 229, values_11); +function $clinit_LocaleInfo(){ + $clinit_LocaleInfo = emptyMethod; + instance_0 = new LocaleInfo; +} + +function $getDateTimeFormatInfo(this$static){ + !this$static.dateTimeFormatInfo && (this$static.dateTimeFormatInfo = new DateTimeFormatInfoImpl); + return this$static.dateTimeFormatInfo; +} + +function $getNumberConstants(this$static){ + !this$static.numberConstants && (this$static.numberConstants = new NumberConstantsImpl_); + return this$static.numberConstants; +} + +function LocaleInfo(){ +} + +defineClass(773, 1, {}, LocaleInfo); +var instance_0; +var Lcom_google_gwt_i18n_client_LocaleInfo_2_classLit = createForClass('com.google.gwt.i18n.client', 'LocaleInfo', 773); +function $clinit_NumberFormat(){ + $clinit_NumberFormat = emptyMethod; + $getNumberConstants(($clinit_LocaleInfo() , $clinit_LocaleInfo() , instance_0)); +} + +function $addExponent(this$static, digits){ + var exponentDigits, i; + digits.string += 'E'; + if (this$static.exponent < 0) { + this$static.exponent = -this$static.exponent; + digits.string += '-'; + } + exponentDigits = '' + this$static.exponent; + for (i = exponentDigits.length; i < this$static.minExponentDigits; ++i) { + digits.string += '0'; + } + digits.string += exponentDigits; +} + +function $addZeroAndDecimal(this$static, digits, decimalSeparator){ + if (this$static.digitsLength == 0) { + digits.string = digits.string.substr(0, 0) + '0' + digits.string.substr(0); + ++this$static.decimalPosition; + ++this$static.digitsLength; + } + if (this$static.decimalPosition < this$static.digitsLength || this$static.decimalSeparatorAlwaysShown) { + $insert_4(digits, this$static.decimalPosition, String.fromCharCode(decimalSeparator)); + ++this$static.digitsLength; + } +} + +function $adjustFractionDigits(this$static, digits){ + var requiredDigits, toRemove; + requiredDigits = this$static.decimalPosition + this$static.minimumFractionDigits; + if (this$static.digitsLength < requiredDigits) { + while (this$static.digitsLength < requiredDigits) { + digits.string += '0'; + ++this$static.digitsLength; + } + } + else { + toRemove = this$static.decimalPosition + this$static.maximumFractionDigits; + toRemove > this$static.digitsLength && (toRemove = this$static.digitsLength); + while (toRemove > requiredDigits && $charAt_0(digits.string, toRemove - 1) == 48) { + --toRemove; + } + if (toRemove < this$static.digitsLength) { + $delete(digits, toRemove, this$static.digitsLength); + this$static.digitsLength = toRemove; + } + } +} + +function $computeExponent(this$static, digits){ + var remainder, strip; + strip = 0; + while (strip < this$static.digitsLength - 1 && $charAt_0(digits.string, strip) == 48) { + ++strip; + } + if (strip > 0) { + digits.string = digits.string.substr(0, 0) + '' + $substring(digits.string, strip); + this$static.digitsLength -= strip; + this$static.exponent -= strip; + } + if (this$static.maximumIntegerDigits > this$static.minimumIntegerDigits && this$static.maximumIntegerDigits > 0) { + this$static.exponent += this$static.decimalPosition - 1; + remainder = this$static.exponent % this$static.maximumIntegerDigits; + remainder < 0 && (remainder += this$static.maximumIntegerDigits); + this$static.decimalPosition = remainder + 1; + this$static.exponent -= remainder; + } + else { + this$static.exponent += this$static.decimalPosition - this$static.minimumIntegerDigits; + this$static.decimalPosition = this$static.minimumIntegerDigits; + } + if (this$static.digitsLength == 1 && $charAt_0(digits.string, 0) == 48) { + this$static.exponent = 0; + this$static.decimalPosition = this$static.minimumIntegerDigits; + } +} + +function $format_0(this$static, number){ + var buf, isNegative, preRound, scale; + if (isNaN(number)) { + return 'NaN'; + } + isNegative = number < 0 || number == 0 && 1 / number < 0; + isNegative && (number = -number); + buf = new StringBuilder; + if (!isNaN(number) && !isFinite(number)) { + $append_4(buf, isNegative?this$static.negativePrefix:this$static.positivePrefix); + buf.string += '\u221E'; + $append_4(buf, isNegative?this$static.negativeSuffix:this$static.positiveSuffix); + return buf.string; + } + number *= this$static.multiplier; + scale = toScaledString(buf, number); + preRound = buf.string.length + scale + this$static.maximumFractionDigits + 3; + if (preRound > 0 && preRound < buf.string.length && $charAt_0(buf.string, preRound) == 57) { + $propagateCarry(this$static, buf, preRound - 1); + scale += buf.string.length - preRound; + $delete(buf, preRound, buf.string.length); + } + $format_1(this$static, isNegative, buf, scale); + return buf.string; +} + +function $format_1(this$static, isNegative, digits, scale){ + var currentGroupingSize, decimalSeparator, groupingSeparator, useExponent, zeroChar; + if (this$static.isCurrencyFormat) { + decimalSeparator = (checkCriticalStringElementIndex(0, '.'.length) , '.'.charCodeAt(0)); + groupingSeparator = (checkCriticalStringElementIndex(0, ','.length) , ','.charCodeAt(0)); + } + else { + decimalSeparator = (checkCriticalStringElementIndex(0, '.'.length) , '.'.charCodeAt(0)); + groupingSeparator = (checkCriticalStringElementIndex(0, ','.length) , ','.charCodeAt(0)); + } + this$static.exponent = 0; + this$static.digitsLength = digits.string.length; + this$static.decimalPosition = this$static.digitsLength + scale; + useExponent = this$static.useExponentialNotation; + currentGroupingSize = this$static.groupingSize; + this$static.decimalPosition > $intern_24 && (useExponent = true); + useExponent && $computeExponent(this$static, digits); + $processLeadingZeros(this$static, digits); + $roundValue(this$static, digits); + $insertGroupingSeparators(this$static, digits, groupingSeparator, currentGroupingSize); + $adjustFractionDigits(this$static, digits); + $addZeroAndDecimal(this$static, digits, decimalSeparator); + useExponent && $addExponent(this$static, digits); + zeroChar = (checkCriticalStringElementIndex(0, '0'.length) , '0'.charCodeAt(0)); + zeroChar != 48 && $localizeDigits(digits, zeroChar); + $insert_4(digits, 0, isNegative?this$static.negativePrefix:this$static.positivePrefix); + $append_4(digits, isNegative?this$static.negativeSuffix:this$static.positiveSuffix); +} + +function $getDigit(ch_0){ + var zeroChar; + if (48 <= ch_0 && ch_0 <= 57) { + return ch_0 - 48; + } + else { + zeroChar = (checkCriticalStringElementIndex(0, '0'.length) , '0'.charCodeAt(0)); + return zeroChar <= ch_0 && ch_0 <= zeroChar + 9?ch_0 - zeroChar:-1; + } +} + +function $insertGroupingSeparators(this$static, digits, groupingSeparator, g){ + var i; + if (g > 0) { + for (i = g; i < this$static.decimalPosition; i += g + 1) { + $insert_4(digits, this$static.decimalPosition - i, String.fromCharCode(groupingSeparator)); + ++this$static.decimalPosition; + ++this$static.digitsLength; + } + } +} + +function $localizeDigits(digits, zero){ + var ch_0, i, n; + n = digits.string.length; + for (i = 0; i < n; ++i) { + ch_0 = $charAt_0(digits.string, i); + ch_0 >= 48 && ch_0 <= 57 && $setCharAt(digits, i, ch_0 - 48 + zero & $intern_18); + } +} + +function $parse_0(this$static, text_0){ + var pos, result; + pos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_25, 7, 15, [0]); + result = $parse_1(this$static, text_0, pos); + if (pos[0] == 0 || pos[0] != text_0.length) { + throw toJs(new NumberFormatException(text_0)); + } + return result; +} + +function $parse_1(this$static, text_0, inOutPos){ + var gotNegative, gotNegativePrefix, gotNegativeSuffix, gotPositive, gotPositivePrefix, gotPositiveSuffix, ret, tempPos, valueOnly; + gotPositivePrefix = $startsWith_0(text_0, this$static.positivePrefix, inOutPos[0]); + gotNegativePrefix = $startsWith_0(text_0, this$static.negativePrefix, inOutPos[0]); + gotPositiveSuffix = $endsWith(text_0, this$static.positiveSuffix); + gotNegativeSuffix = $endsWith(text_0, this$static.negativeSuffix); + gotPositive = gotPositivePrefix && gotPositiveSuffix; + gotNegative = gotNegativePrefix && gotNegativeSuffix; + if (gotPositive && gotNegative) { + this$static.positivePrefix.length > this$static.negativePrefix.length?(gotNegative = false):this$static.positivePrefix.length < this$static.negativePrefix.length?(gotPositive = false):this$static.positiveSuffix.length > this$static.negativeSuffix.length?(gotNegative = false):this$static.positiveSuffix.length < this$static.negativeSuffix.length?(gotPositive = false):(gotNegative = false); + } + else if (!gotPositive && !gotNegative) { + throw toJs(new NumberFormatException(text_0 + ' does not have either positive or negative affixes')); + } + if (gotPositive) { + inOutPos[0] += this$static.positivePrefix.length; + valueOnly = $substring_0(text_0, inOutPos[0], text_0.length - this$static.positiveSuffix.length); + } + else { + inOutPos[0] += this$static.negativePrefix.length; + valueOnly = $substring_0(text_0, inOutPos[0], text_0.length - this$static.negativeSuffix.length); + } + if ($equals_1(valueOnly, '\u221E')) { + inOutPos[0] += '\u221E'.length; + ret = $intern_26; + } + else if ($equals_1(valueOnly, 'NaN')) { + inOutPos[0] += 'NaN'.length; + ret = NaN; + } + else { + tempPos = stampJavaTypeInfo(getClassLiteralForArray(I_classLit, 1), $intern_25, 7, 15, [0]); + ret = $parseNumber(this$static, valueOnly, tempPos); + inOutPos[0] += tempPos[0]; + } + gotPositive?(inOutPos[0] += this$static.positiveSuffix.length):gotNegative && (inOutPos[0] += this$static.negativeSuffix.length); + gotNegative && (ret = -ret); + return ret; +} + +function $parseAffix(this$static, pattern, start_0, affix, inNegativePattern){ + var ch_0, inQuote, len, pos; + $delete(affix, 0, affix.string.length); + inQuote = false; + len = pattern.length; + for (pos = start_0; pos < len; ++pos) { + ch_0 = (checkCriticalStringElementIndex(pos, pattern.length) , pattern.charCodeAt(pos)); + if (ch_0 == 39) { + if (pos + 1 < len && (checkCriticalStringElementIndex(pos + 1, pattern.length) , pattern.charCodeAt(pos + 1) == 39)) { + ++pos; + affix.string += "'"; + } + else { + inQuote = !inQuote; + } + continue; + } + if (inQuote) { + affix.string += String.fromCharCode(ch_0); + } + else { + switch (ch_0) { + case 35: + case 48: + case 44: + case 46: + case 59: + return pos - start_0; + case 164: + this$static.isCurrencyFormat = true; + if (pos + 1 < len && (checkCriticalStringElementIndex(pos + 1, pattern.length) , pattern.charCodeAt(pos + 1) == 164)) { + ++pos; + if (pos < len - 2 && (checkCriticalStringElementIndex(pos + 1, pattern.length) , pattern.charCodeAt(pos + 1) == 164) && (checkCriticalStringElementIndex(pos + 2, pattern.length) , pattern.charCodeAt(pos + 2) == 164)) { + pos += 2; + $append_4(affix, $getSimpleCurrencySymbol(this$static.currencyData)); + } + else { + $append_4(affix, this$static.currencyData[0]); + } + } + else { + $append_4(affix, this$static.currencyData[1]); + } + + break; + case 37: + if (!inNegativePattern) { + if (this$static.multiplier != 1) { + throw toJs(new IllegalArgumentException_0('Too many percent/per mille characters in pattern "' + pattern + '"')); + } + this$static.multiplier = 100; + } + + affix.string += '%'; + break; + case 8240: + if (!inNegativePattern) { + if (this$static.multiplier != 1) { + throw toJs(new IllegalArgumentException_0('Too many percent/per mille characters in pattern "' + pattern + '"')); + } + this$static.multiplier = $intern_22; + } + + affix.string += '\u2030'; + break; + case 45: + affix.string += '-'; + break; + default:affix.string += String.fromCharCode(ch_0); + } + } + } + return len - start_0; +} + +function $parseNumber(this$static, text_0, pos){ + var ch_0, decimal, digit, grouping, normalizedText, ret, sawDecimal, sawDigit, sawExponent, scale; + sawDecimal = false; + sawExponent = false; + sawDigit = false; + scale = 1; + decimal = this$static.isCurrencyFormat?'.':'.'; + grouping = this$static.isCurrencyFormat?',':','; + normalizedText = new StringBuilder; + for (; pos[0] < text_0.length; ++pos[0]) { + ch_0 = $charAt_0(text_0, pos[0]); + digit = $getDigit(ch_0); + if (digit >= 0 && digit <= 9) { + $append_0(normalizedText, digit + 48 & $intern_18); + sawDigit = true; + } + else if (ch_0 == (checkCriticalStringElementIndex(0, decimal.length) , decimal.charCodeAt(0))) { + if (sawDecimal || sawExponent) { + break; + } + normalizedText.string += '.'; + sawDecimal = true; + } + else if (ch_0 == (checkCriticalStringElementIndex(0, grouping.length) , grouping.charCodeAt(0))) { + if (sawDecimal || sawExponent) { + break; + } + continue; + } + else if (ch_0 == (checkCriticalStringElementIndex(0, 'E'.length) , 'E'.charCodeAt(0))) { + if (sawExponent) { + break; + } + normalizedText.string += 'E'; + sawExponent = true; + } + else if (ch_0 == 43 || ch_0 == 45) { + normalizedText.string += String.fromCharCode(ch_0); + } + else if (ch_0 == (checkCriticalStringElementIndex(0, '%'.length) , '%'.charCodeAt(0))) { + if (scale != 1) { + break; + } + scale = 100; + if (sawDigit) { + ++pos[0]; + break; + } + } + else if (ch_0 == (checkCriticalStringElementIndex(0, '\u2030'.length) , '\u2030'.charCodeAt(0))) { + if (scale != 1) { + break; + } + scale = $intern_22; + if (sawDigit) { + ++pos[0]; + break; + } + } + else { + break; + } + } + try { + ret = __parseAndValidateDouble(normalizedText.string); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 140)) { + throw toJs(new NumberFormatException(text_0)); + } + else + throw toJs($e0); + } + ret = ret / scale; + return ret; +} + +function $parsePattern_0(this$static, pattern){ + var affix, pos; + pos = 0; + affix = new StringBuilder; + pos += $parseAffix(this$static, pattern, 0, affix, false); + this$static.positivePrefix = affix.string; + pos += $parseTrunk(this$static, pattern, pos, false); + pos += $parseAffix(this$static, pattern, pos, affix, false); + this$static.positiveSuffix = affix.string; + if (pos < pattern.length && (checkCriticalStringElementIndex(pos, pattern.length) , pattern.charCodeAt(pos) == 59)) { + ++pos; + pos += $parseAffix(this$static, pattern, pos, affix, true); + this$static.negativePrefix = affix.string; + pos += $parseTrunk(this$static, pattern, pos, true); + pos += $parseAffix(this$static, pattern, pos, affix, true); + this$static.negativeSuffix = affix.string; + } + else { + this$static.negativePrefix = '-' + this$static.positivePrefix; + this$static.negativeSuffix = this$static.positiveSuffix; + } +} + +function $parseTrunk(this$static, pattern, start_0, ignorePattern){ + var ch_0, decimalPos, digitLeftCount, digitRightCount, effectiveDecimalPos, groupingCount, len, loop, n, pos, totalDigits, zeroDigitCount; + decimalPos = -1; + digitLeftCount = 0; + zeroDigitCount = 0; + digitRightCount = 0; + groupingCount = -1; + len = pattern.length; + pos = start_0; + loop = true; + for (; pos < len && loop; ++pos) { + ch_0 = (checkCriticalStringElementIndex(pos, pattern.length) , pattern.charCodeAt(pos)); + switch (ch_0) { + case 35: + zeroDigitCount > 0?++digitRightCount:++digitLeftCount; + groupingCount >= 0 && decimalPos < 0 && ++groupingCount; + break; + case 48: + if (digitRightCount > 0) { + throw toJs(new IllegalArgumentException_0("Unexpected '0' in pattern \"" + pattern + '"')); + } + + ++zeroDigitCount; + groupingCount >= 0 && decimalPos < 0 && ++groupingCount; + break; + case 44: + groupingCount = 0; + break; + case 46: + if (decimalPos >= 0) { + throw toJs(new IllegalArgumentException_0('Multiple decimal separators in pattern "' + pattern + '"')); + } + + decimalPos = digitLeftCount + zeroDigitCount + digitRightCount; + break; + case 69: + if (!ignorePattern) { + if (this$static.useExponentialNotation) { + throw toJs(new IllegalArgumentException_0('Multiple exponential symbols in pattern "' + pattern + '"')); + } + this$static.useExponentialNotation = true; + this$static.minExponentDigits = 0; + } + + while (pos + 1 < len && (checkCriticalStringElementIndex(pos + 1, pattern.length) , pattern.charCodeAt(pos + 1) == 48)) { + ++pos; + ignorePattern || ++this$static.minExponentDigits; + } + + if (!ignorePattern && digitLeftCount + zeroDigitCount < 1 || this$static.minExponentDigits < 1) { + throw toJs(new IllegalArgumentException_0('Malformed exponential pattern "' + pattern + '"')); + } + + loop = false; + break; + default:--pos; + loop = false; + } + } + if (zeroDigitCount == 0 && digitLeftCount > 0 && decimalPos >= 0) { + n = decimalPos; + decimalPos == 0 && ++n; + digitRightCount = digitLeftCount - n; + digitLeftCount = n - 1; + zeroDigitCount = 1; + } + if (decimalPos < 0 && digitRightCount > 0 || decimalPos >= 0 && (decimalPos < digitLeftCount || decimalPos > digitLeftCount + zeroDigitCount) || groupingCount == 0) { + throw toJs(new IllegalArgumentException_0('Malformed pattern "' + pattern + '"')); + } + if (ignorePattern) { + return pos - start_0; + } + totalDigits = digitLeftCount + zeroDigitCount + digitRightCount; + this$static.maximumFractionDigits = decimalPos >= 0?totalDigits - decimalPos:0; + if (decimalPos >= 0) { + this$static.minimumFractionDigits = digitLeftCount + zeroDigitCount - decimalPos; + this$static.minimumFractionDigits < 0 && (this$static.minimumFractionDigits = 0); + } + effectiveDecimalPos = decimalPos >= 0?decimalPos:totalDigits; + this$static.minimumIntegerDigits = effectiveDecimalPos - digitLeftCount; + if (this$static.useExponentialNotation) { + this$static.maximumIntegerDigits = digitLeftCount + this$static.minimumIntegerDigits; + this$static.maximumFractionDigits == 0 && this$static.minimumIntegerDigits == 0 && (this$static.minimumIntegerDigits = 1); + } + this$static.groupingSize = groupingCount > 0?groupingCount:0; + this$static.decimalSeparatorAlwaysShown = decimalPos == 0 || decimalPos == totalDigits; + return pos - start_0; +} + +function $processLeadingZeros(this$static, digits){ + var i, prefix, strip; + if (this$static.decimalPosition > this$static.digitsLength) { + while (this$static.digitsLength < this$static.decimalPosition) { + digits.string += '0'; + ++this$static.digitsLength; + } + } + if (!this$static.useExponentialNotation) { + if (this$static.decimalPosition < this$static.minimumIntegerDigits) { + prefix = new StringBuilder; + while (this$static.decimalPosition < this$static.minimumIntegerDigits) { + prefix.string += '0'; + ++this$static.decimalPosition; + ++this$static.digitsLength; + } + $insert_4(digits, 0, prefix.string); + } + else if (this$static.decimalPosition > this$static.minimumIntegerDigits) { + strip = this$static.decimalPosition - this$static.minimumIntegerDigits; + for (i = 0; i < strip; ++i) { + if ($charAt_0(digits.string, i) != 48) { + strip = i; + break; + } + } + if (strip > 0) { + digits.string = digits.string.substr(0, 0) + '' + $substring(digits.string, strip); + this$static.digitsLength -= strip; + this$static.decimalPosition -= strip; + } + } + } +} + +function $propagateCarry(this$static, digits, i){ + var carry, digit; + carry = true; + while (carry && i >= 0) { + digit = $charAt_0(digits.string, i); + if (digit == 57) { + $setCharAt(digits, i--, 48); + } + else { + $setCharAt(digits, i, digit + 1 & $intern_18); + carry = false; + } + } + if (carry) { + digits.string = digits.string.substr(0, 0) + '1' + digits.string.substr(0); + ++this$static.decimalPosition; + ++this$static.digitsLength; + } +} + +function $roundValue(this$static, digits){ + var i; + if (this$static.digitsLength > this$static.decimalPosition + this$static.maximumFractionDigits && $charAt(digits, this$static.decimalPosition + this$static.maximumFractionDigits) >= 53) { + i = this$static.decimalPosition + this$static.maximumFractionDigits - 1; + $propagateCarry(this$static, digits, i); + } +} + +function NumberFormat(pattern, cdata, userSuppliedPattern){ + if (!cdata) { + throw toJs(new IllegalArgumentException_0('Unknown currency code')); + } + this.pattern = pattern; + this.currencyData = cdata; + $parsePattern_0(this, this.pattern); + if (!userSuppliedPattern && this.isCurrencyFormat) { + this.minimumFractionDigits = this.currencyData[2] & 7; + this.maximumFractionDigits = this.minimumFractionDigits; + } +} + +function NumberFormat_0(pattern, cdata){ + $clinit_NumberFormat(); + NumberFormat.call(this, pattern, cdata, true); +} + +function toScaledString(buf, val){ + var dot, expDigits, expIdx, scale, startLen; + startLen = buf.string.length; + $append_4(buf, val.toPrecision(20)); + scale = 0; + expIdx = $indexOf_2(buf.string, 'e', startLen); + expIdx < 0 && (expIdx = $indexOf_2(buf.string, 'E', startLen)); + if (expIdx >= 0) { + expDigits = expIdx + 1; + expDigits < buf.string.length && $charAt_0(buf.string, expDigits) == 43 && ++expDigits; + expDigits < buf.string.length && (scale = __parseAndValidateInt($substring(buf.string, expDigits), 10)); + $delete(buf, expIdx, buf.string.length); + } + dot = $indexOf_2(buf.string, '.', startLen); + if (dot >= 0) { + buf.string = $substring_0(buf.string, 0, dot) + '' + $substring(buf.string, dot + 1); + scale -= buf.string.length - dot; + } + return scale; +} + +defineClass(185, 1, {}, NumberFormat_0); +_.decimalPosition = 0; +_.decimalSeparatorAlwaysShown = false; +_.digitsLength = 0; +_.exponent = 0; +_.groupingSize = 3; +_.isCurrencyFormat = false; +_.maximumFractionDigits = 3; +_.maximumIntegerDigits = 40; +_.minExponentDigits = 0; +_.minimumFractionDigits = 0; +_.minimumIntegerDigits = 1; +_.multiplier = 1; +_.negativePrefix = '-'; +_.negativeSuffix = ''; +_.positivePrefix = ''; +_.positiveSuffix = ''; +_.useExponentialNotation = false; +var Lcom_google_gwt_i18n_client_NumberFormat_2_classLit = createForClass('com.google.gwt.i18n.client', 'NumberFormat', 185); +function $getISOTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_21, 7, 15, [43, 48, 48, 58, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_18; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_18; + data_0[4] = data_0[4] + (offset % 60 / 10 | 0) & $intern_18; + data_0[5] = data_0[5] + offset % 10 & $intern_18; + return valueOf_3(data_0, data_0.length); +} + +function $getRFCTimeZoneString(this$static){ + var data_0, offset; + offset = -this$static.standardOffset; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_21, 7, 15, [43, 48, 48, 48, 48]); + if (offset < 0) { + data_0[0] = 45; + offset = -offset; + } + data_0[1] = data_0[1] + ((offset / 60 | 0) / 10 | 0) & $intern_18; + data_0[2] = data_0[2] + (offset / 60 | 0) % 10 & $intern_18; + data_0[3] = data_0[3] + (offset % 60 / 10 | 0) & $intern_18; + data_0[4] = data_0[4] + offset % 10 & $intern_18; + return valueOf_3(data_0, data_0.length); +} + +function TimeZone(){ +} + +function composeGMTString(offset){ + var data_0; + data_0 = stampJavaTypeInfo(getClassLiteralForArray(C_classLit, 1), $intern_21, 7, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]); + if (offset <= 0) { + data_0[3] = 43; + offset = -offset; + } + data_0[4] = data_0[4] + ((offset / 60 | 0) / 10 | 0) & $intern_18; + data_0[5] = data_0[5] + (offset / 60 | 0) % 10 & $intern_18; + data_0[7] = data_0[7] + (offset % 60 / 10 | 0) & $intern_18; + data_0[8] = data_0[8] + offset % 10 & $intern_18; + return valueOf_3(data_0, data_0.length); +} + +function composePOSIXTimeZoneID(offset){ + var str; + if (offset == 0) { + return 'Etc/GMT'; + } + if (offset < 0) { + offset = -offset; + str = 'Etc/GMT-'; + } + else { + str = 'Etc/GMT+'; + } + return str + offsetDisplay(offset); +} + +function composeUTCString(offset){ + var str; + if (offset == 0) { + return 'UTC'; + } + if (offset < 0) { + offset = -offset; + str = 'UTC+'; + } + else { + str = 'UTC-'; + } + return str + offsetDisplay(offset); +} + +function createTimeZone(timeZoneOffsetInMinutes){ + var tz; + tz = new TimeZone; + tz.standardOffset = timeZoneOffsetInMinutes; + tz.timezoneID = composePOSIXTimeZoneID(timeZoneOffsetInMinutes); + tz.tzNames = initUnidimensionalArray(Ljava_lang_String_2_classLit, $intern_23, 2, 2, 6, 1); + tz.tzNames[0] = composeUTCString(timeZoneOffsetInMinutes); + tz.tzNames[1] = composeUTCString(timeZoneOffsetInMinutes); + return tz; +} + +function offsetDisplay(offset){ + var hour, mins; + hour = offset / 60 | 0; + mins = offset % 60; + if (mins == 0) { + return '' + hour; + } + return '' + hour + ':' + ('' + mins); +} + +defineClass(911, 1, {}, TimeZone); +_.standardOffset = 0; +var Lcom_google_gwt_i18n_client_TimeZone_2_classLit = createForClass('com.google.gwt.i18n.client', 'TimeZone', 911); +function NumberConstantsImpl_(){ +} + +defineClass(895, 1, {}, NumberConstantsImpl_); +var Lcom_google_gwt_i18n_client_constants_NumberConstantsImpl_1_2_classLit = createForClass('com.google.gwt.i18n.client.constants', 'NumberConstantsImpl_', 895); +function $getSimpleCurrencySymbol(this$static){ + return this$static[4] || this$static[1]; +} + +function DateTimeFormatInfoImpl(){ +} + +defineClass(910, 974, {}, DateTimeFormatInfoImpl); +var Lcom_google_gwt_i18n_client_impl_cldr_DateTimeFormatInfoImpl_2_classLit = createForClass('com.google.gwt.i18n.client.impl.cldr', 'DateTimeFormatInfoImpl', 910); +function DateTimeFormat$PatternPart(txt, cnt){ + this.text_0 = txt; + this.count = cnt; + this.abutStart = false; +} + +defineClass(343, 1, {343:1}, DateTimeFormat$PatternPart); +_.abutStart = false; +_.count = 0; +var Lcom_google_gwt_i18n_shared_DateTimeFormat$PatternPart_2_classLit = createForClass('com.google.gwt.i18n.shared', 'DateTimeFormat/PatternPart', 343); +function getClassLiteralForArray(clazz, dimensions){ + return getClassLiteralForArray_0(clazz, dimensions); +} + +function getElementTypeCategory(array){ + return array.__elementTypeCategory$ == null?10:array.__elementTypeCategory$; +} + +function initMultidimensionalArray(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, count){ + return initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, 0, count); +} + +function initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count){ + var elementTypeCategory, i, isLastDimension, length_0, result; + length_0 = dimExprs[index_0]; + isLastDimension = index_0 == count - 1; + elementTypeCategory = isLastDimension?leafElementTypeCategory:0; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + leafElementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, count - index_0), castableTypeMapExprs[index_0], elementTypeIds[index_0], elementTypeCategory, result); + if (!isLastDimension) { + ++index_0; + for (i = 0; i < length_0; ++i) { + result[i] = initMultidimensionalArray_0(leafClassLiteral, castableTypeMapExprs, elementTypeIds, leafElementTypeCategory, dimExprs, index_0, count); + } + } + return result; +} + +function initUnidimensionalArray(leafClassLiteral, castableTypeMap, elementTypeId, length_0, elementTypeCategory, dimensions){ + var result; + result = initializeArrayElementsWithDefaults(elementTypeCategory, length_0); + elementTypeCategory != 10 && stampJavaTypeInfo(getClassLiteralForArray(leafClassLiteral, dimensions), castableTypeMap, elementTypeId, elementTypeCategory, result); + return result; +} + +function initializeArrayElementsWithDefaults(elementTypeCategory, length_0){ + var array = new Array(length_0); + var initValue; + switch (elementTypeCategory) { + case 14: + case 15: + initValue = 0; + break; + case 16: + initValue = false; + break; + default:return array; + } + for (var i = 0; i < length_0; ++i) { + array[i] = initValue; + } + return array; +} + +function isJavaArray(src_0){ + return Array.isArray(src_0) && src_0.typeMarker === typeMarkerFn; +} + +function stampJavaTypeInfo(arrayClass, castableTypeMap, elementTypeId, elementTypeCategory, array){ + array.___clazz = arrayClass; + array.castableTypeMap = castableTypeMap; + array.typeMarker = typeMarkerFn; + array.__elementTypeId$ = elementTypeId; + array.__elementTypeCategory$ = elementTypeCategory; + return array; +} + +function stampJavaTypeInfo_0(array, referenceType){ + getElementTypeCategory(referenceType) != 10 && stampJavaTypeInfo(getClass__Ljava_lang_Class___devirtual$(referenceType), referenceType.castableTypeMap, referenceType.__elementTypeId$, getElementTypeCategory(referenceType), array); + return array; +} + +function create(value_0){ + var a0, a1, a2; + a0 = value_0 & $intern_27; + a1 = value_0 >> 22 & $intern_27; + a2 = value_0 < 0?$intern_28:0; + return create0(a0, a1, a2); +} + +function create_0(a){ + return create0(a.l, a.m, a.h); +} + +function create0(l_0, m, h){ + return {l:l_0, m:m, h:h}; +} + +function divMod(a, b, computeRemainder){ + var aIsCopy, aIsMinValue, aIsNegative, bpower, c, negative; + if (b.l == 0 && b.m == 0 && b.h == 0) { + throw toJs(new ArithmeticException); + } + if (a.l == 0 && a.m == 0 && a.h == 0) { + computeRemainder && (remainder_0 = create0(0, 0, 0)); + return create0(0, 0, 0); + } + if (b.h == $intern_29 && b.m == 0 && b.l == 0) { + return divModByMinValue(a, computeRemainder); + } + negative = false; + if (b.h >> 19 != 0) { + b = neg_0(b); + negative = true; + } + bpower = powerOfTwo(b); + aIsNegative = false; + aIsMinValue = false; + aIsCopy = false; + if (a.h == $intern_29 && a.m == 0 && a.l == 0) { + aIsMinValue = true; + aIsNegative = true; + if (bpower == -1) { + a = create_0(($clinit_BigLongLib$Const() , MAX_VALUE)); + aIsCopy = true; + negative = !negative; + } + else { + c = shr(a, bpower); + negative && negate(c); + computeRemainder && (remainder_0 = create0(0, 0, 0)); + return c; + } + } + else if (a.h >> 19 != 0) { + aIsNegative = true; + a = neg_0(a); + aIsCopy = true; + negative = !negative; + } + if (bpower != -1) { + return divModByShift(a, bpower, negative, aIsNegative, computeRemainder); + } + if (compare(a, b) < 0) { + computeRemainder && (aIsNegative?(remainder_0 = neg_0(a)):(remainder_0 = create0(a.l, a.m, a.h))); + return create0(0, 0, 0); + } + return divModHelper(aIsCopy?a:create0(a.l, a.m, a.h), b, negative, aIsNegative, aIsMinValue, computeRemainder); +} + +function divModByMinValue(a, computeRemainder){ + if (a.h == $intern_29 && a.m == 0 && a.l == 0) { + computeRemainder && (remainder_0 = create0(0, 0, 0)); + return create_0(($clinit_BigLongLib$Const() , ONE)); + } + computeRemainder && (remainder_0 = create0(a.l, a.m, a.h)); + return create0(0, 0, 0); +} + +function divModByShift(a, bpower, negative, aIsNegative, computeRemainder){ + var c; + c = shr(a, bpower); + negative && negate(c); + if (computeRemainder) { + a = maskRight(a, bpower); + aIsNegative?(remainder_0 = neg_0(a)):(remainder_0 = create0(a.l, a.m, a.h)); + } + return c; +} + +function divModHelper(a, b, negative, aIsNegative, aIsMinValue, computeRemainder){ + var bshift, gte, quotient, shift_0, a1, a2, a0; + shift_0 = numberOfLeadingZeros(b) - numberOfLeadingZeros(a); + bshift = shl(b, shift_0); + quotient = create0(0, 0, 0); + while (shift_0 >= 0) { + gte = trialSubtract(a, bshift); + if (gte) { + shift_0 < 22?(quotient.l |= 1 << shift_0 , undefined):shift_0 < 44?(quotient.m |= 1 << shift_0 - 22 , undefined):(quotient.h |= 1 << shift_0 - 44 , undefined); + if (a.l == 0 && a.m == 0 && a.h == 0) { + break; + } + } + a1 = bshift.m; + a2 = bshift.h; + a0 = bshift.l; + bshift.h = a2 >>> 1; + bshift.m = a1 >>> 1 | (a2 & 1) << 21; + bshift.l = a0 >>> 1 | (a1 & 1) << 21; + --shift_0; + } + negative && negate(quotient); + if (computeRemainder) { + if (aIsNegative) { + remainder_0 = neg_0(a); + aIsMinValue && (remainder_0 = sub_0(remainder_0, ($clinit_BigLongLib$Const() , ONE))); + } + else { + remainder_0 = create0(a.l, a.m, a.h); + } + } + return quotient; +} + +function maskRight(a, bits){ + var b0, b1, b2; + if (bits <= 22) { + b0 = a.l & (1 << bits) - 1; + b1 = b2 = 0; + } + else if (bits <= 44) { + b0 = a.l; + b1 = a.m & (1 << bits - 22) - 1; + b2 = 0; + } + else { + b0 = a.l; + b1 = a.m; + b2 = a.h & (1 << bits - 44) - 1; + } + return create0(b0, b1, b2); +} + +function negate(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_27; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_27; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_28; + a.l = neg0; + a.m = neg1; + a.h = neg2; +} + +function numberOfLeadingZeros(a){ + var b1, b2; + b2 = numberOfLeadingZeros_0(a.h); + if (b2 == 32) { + b1 = numberOfLeadingZeros_0(a.m); + return b1 == 32?numberOfLeadingZeros_0(a.l) + 32:b1 + 20 - 10; + } + else { + return b2 - 12; + } +} + +function powerOfTwo(a){ + var h, l_0, m; + l_0 = a.l; + if ((l_0 & l_0 - 1) != 0) { + return -1; + } + m = a.m; + if ((m & m - 1) != 0) { + return -1; + } + h = a.h; + if ((h & h - 1) != 0) { + return -1; + } + if (h == 0 && m == 0 && l_0 == 0) { + return -1; + } + if (h == 0 && m == 0 && l_0 != 0) { + return numberOfTrailingZeros(l_0); + } + if (h == 0 && m != 0 && l_0 == 0) { + return numberOfTrailingZeros(m) + 22; + } + if (h != 0 && m == 0 && l_0 == 0) { + return numberOfTrailingZeros(h) + 44; + } + return -1; +} + +function toDoubleHelper(a){ + return a.l + a.m * $intern_30 + a.h * $intern_31; +} + +function trialSubtract(a, b){ + var sum0, sum1, sum2; + sum2 = a.h - b.h; + if (sum2 < 0) { + return false; + } + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 += sum1 >> 22; + if (sum2 < 0) { + return false; + } + a.l = sum0 & $intern_27; + a.m = sum1 & $intern_27; + a.h = sum2 & $intern_28; + return true; +} + +var remainder_0; +function add_1(a, b){ + var sum0, sum1, sum2; + sum0 = a.l + b.l; + sum1 = a.m + b.m + (sum0 >> 22); + sum2 = a.h + b.h + (sum1 >> 22); + return create0(sum0 & $intern_27, sum1 & $intern_27, sum2 & $intern_28); +} + +function and(a, b){ + return create0(a.l & b.l, a.m & b.m, a.h & b.h); +} + +function compare(a, b){ + var a0, a1, a2, b0, b1, b2, signA, signB; + signA = a.h >> 19; + signB = b.h >> 19; + if (signA != signB) { + return signB - signA; + } + a2 = a.h; + b2 = b.h; + if (a2 != b2) { + return a2 - b2; + } + a1 = a.m; + b1 = b.m; + if (a1 != b1) { + return a1 - b1; + } + a0 = a.l; + b0 = b.l; + return a0 - b0; +} + +function fromDouble(value_0){ + var a0, a1, a2, negative, result; + if (isNaN(value_0)) { + return $clinit_BigLongLib$Const() , ZERO; + } + if (value_0 < -9223372036854775808) { + return $clinit_BigLongLib$Const() , MIN_VALUE; + } + if (value_0 >= 9223372036854775807) { + return $clinit_BigLongLib$Const() , MAX_VALUE; + } + negative = false; + if (value_0 < 0) { + negative = true; + value_0 = -value_0; + } + a2 = 0; + if (value_0 >= $intern_31) { + a2 = round_int(value_0 / $intern_31); + value_0 -= a2 * $intern_31; + } + a1 = 0; + if (value_0 >= $intern_30) { + a1 = round_int(value_0 / $intern_30); + value_0 -= a1 * $intern_30; + } + a0 = round_int(value_0); + result = create0(a0, a1, a2); + negative && negate(result); + return result; +} + +function mul(a, b){ + var a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c0, c00, c01, c1, c10, c11, c12, c13, c2, c22, c23, c24, p0, p1, p2, p3, p4; + a0 = a.l & 8191; + a1 = a.l >> 13 | (a.m & 15) << 9; + a2 = a.m >> 4 & 8191; + a3 = a.m >> 17 | (a.h & 255) << 5; + a4 = (a.h & 1048320) >> 8; + b0 = b.l & 8191; + b1 = b.l >> 13 | (b.m & 15) << 9; + b2 = b.m >> 4 & 8191; + b3 = b.m >> 17 | (b.h & 255) << 5; + b4 = (b.h & 1048320) >> 8; + p0 = a0 * b0; + p1 = a1 * b0; + p2 = a2 * b0; + p3 = a3 * b0; + p4 = a4 * b0; + if (b1 != 0) { + p1 += a0 * b1; + p2 += a1 * b1; + p3 += a2 * b1; + p4 += a3 * b1; + } + if (b2 != 0) { + p2 += a0 * b2; + p3 += a1 * b2; + p4 += a2 * b2; + } + if (b3 != 0) { + p3 += a0 * b3; + p4 += a1 * b3; + } + b4 != 0 && (p4 += a0 * b4); + c00 = p0 & $intern_27; + c01 = (p1 & 511) << 13; + c0 = c00 + c01; + c10 = p0 >> 22; + c11 = p1 >> 9; + c12 = (p2 & 262143) << 4; + c13 = (p3 & 31) << 17; + c1 = c10 + c11 + c12 + c13; + c22 = p2 >> 18; + c23 = p3 >> 5; + c24 = (p4 & 4095) << 8; + c2 = c22 + c23 + c24; + c1 += c0 >> 22; + c0 &= $intern_27; + c2 += c1 >> 22; + c1 &= $intern_27; + c2 &= $intern_28; + return create0(c0, c1, c2); +} + +function neg_0(a){ + var neg0, neg1, neg2; + neg0 = ~a.l + 1 & $intern_27; + neg1 = ~a.m + (neg0 == 0?1:0) & $intern_27; + neg2 = ~a.h + (neg0 == 0 && neg1 == 0?1:0) & $intern_28; + return create0(neg0, neg1, neg2); +} + +function or(a, b){ + return create0(a.l | b.l, a.m | b.m, a.h | b.h); +} + +function shl(a, n){ + var res0, res1, res2; + n &= 63; + if (n < 22) { + res0 = a.l << n; + res1 = a.m << n | a.l >> 22 - n; + res2 = a.h << n | a.m >> 22 - n; + } + else if (n < 44) { + res0 = 0; + res1 = a.l << n - 22; + res2 = a.m << n - 22 | a.l >> 44 - n; + } + else { + res0 = 0; + res1 = 0; + res2 = a.l << n - 44; + } + return create0(res0 & $intern_27, res1 & $intern_27, res2 & $intern_28); +} + +function shr(a, n){ + var a2, negative, res0, res1, res2; + n &= 63; + a2 = a.h; + negative = (a2 & $intern_29) != 0; + negative && (a2 |= -1048576); + if (n < 22) { + res2 = a2 >> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = negative?$intern_28:0; + res1 = a2 >> n - 22; + res0 = a.m >> n - 22 | a2 << 44 - n; + } + else { + res2 = negative?$intern_28:0; + res1 = negative?$intern_27:0; + res0 = a2 >> n - 44; + } + return create0(res0 & $intern_27, res1 & $intern_27, res2 & $intern_28); +} + +function shru(a, n){ + var a2, res0, res1, res2; + n &= 63; + a2 = a.h & $intern_28; + if (n < 22) { + res2 = a2 >>> n; + res1 = a.m >> n | a2 << 22 - n; + res0 = a.l >> n | a.m << 22 - n; + } + else if (n < 44) { + res2 = 0; + res1 = a2 >>> n - 22; + res0 = a.m >> n - 22 | a.h << 44 - n; + } + else { + res2 = 0; + res1 = 0; + res0 = a2 >>> n - 44; + } + return create0(res0 & $intern_27, res1 & $intern_27, res2 & $intern_28); +} + +function sub_0(a, b){ + var sum0, sum1, sum2; + sum0 = a.l - b.l; + sum1 = a.m - b.m + (sum0 >> 22); + sum2 = a.h - b.h + (sum1 >> 22); + return create0(sum0 & $intern_27, sum1 & $intern_27, sum2 & $intern_28); +} + +function toDouble(a){ + if (compare(a, ($clinit_BigLongLib$Const() , ZERO)) < 0) { + return -toDoubleHelper(neg_0(a)); + } + return a.l + a.m * $intern_30 + a.h * $intern_31; +} + +function toInt(a){ + return a.l | a.m << 22; +} + +function toString_7(a){ + var digits, rem, res, tenPowerLong, zeroesNeeded; + if (a.l == 0 && a.m == 0 && a.h == 0) { + return '0'; + } + if (a.h == $intern_29 && a.m == 0 && a.l == 0) { + return '-9223372036854775808'; + } + if (a.h >> 19 != 0) { + return '-' + toString_7(neg_0(a)); + } + rem = a; + res = ''; + while (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + tenPowerLong = create($intern_32); + rem = divMod(rem, tenPowerLong, true); + digits = '' + toInt(remainder_0); + if (!(rem.l == 0 && rem.m == 0 && rem.h == 0)) { + zeroesNeeded = 9 - digits.length; + for (; zeroesNeeded > 0; zeroesNeeded--) { + digits = '0' + digits; + } + } + res = digits + res; + } + return res; +} + +function xor(a, b){ + return create0(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h); +} + +function $clinit_BigLongLib$Const(){ + $clinit_BigLongLib$Const = emptyMethod; + MAX_VALUE = create0($intern_27, $intern_27, 524287); + MIN_VALUE = create0(0, 0, $intern_29); + ONE = create(1); + create(2); + ZERO = create(0); +} + +var MAX_VALUE, MIN_VALUE, ONE, ZERO; +function toJava(e){ + var javaException; + if (instanceOf(e, 39)) { + return e; + } + javaException = e && e['__java$exception']; + if (!javaException) { + javaException = new JavaScriptException(e); + captureStackTrace(javaException); + } + return javaException; +} + +function toJs(t){ + return t.backingJsObject; +} + +function add_2(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a + b; + if ($intern_33 < result && result < $intern_31) { + return result; + } + } + return createLongEmul(add_1(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function compare_0(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if (!isNaN(result)) { + return result; + } + } + return compare(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b); +} + +function createLongEmul(big_0){ + var a2; + a2 = big_0.h; + if (a2 == 0) { + return big_0.l + big_0.m * $intern_30; + } + if (a2 == $intern_28) { + return big_0.l + big_0.m * $intern_30 - $intern_31; + } + return big_0; +} + +function eq_0(a, b){ + return compare_0(a, b) == 0; +} + +function fromDouble_0(value_0){ + if ($intern_33 < value_0 && value_0 < $intern_31) { + return value_0 < 0?$wnd.Math.ceil(value_0):$wnd.Math.floor(value_0); + } + return createLongEmul(fromDouble(value_0)); +} + +function gt(a, b){ + return compare_0(a, b) > 0; +} + +function gte_0(a, b){ + return compare_0(a, b) >= 0; +} + +function isSmallLong0(value_0){ + return typeof value_0 === 'number'; +} + +function lt(a, b){ + return compare_0(a, b) < 0; +} + +function mod(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a % b; + if ($intern_33 < result && result < $intern_31) { + return result; + } + } + return createLongEmul((divMod(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b, true) , remainder_0)); +} + +function mul_0(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a * b; + if ($intern_33 < result && result < $intern_31) { + return result; + } + } + return createLongEmul(mul(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function neg_1(a){ + var result; + if (isSmallLong0(a)) { + result = 0 - a; + if (!isNaN(result)) { + return result; + } + } + return createLongEmul(neg_0(a)); +} + +function neq(a, b){ + return compare_0(a, b) != 0; +} + +function or_0(a, b){ + return createLongEmul(or(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function shr_0(a, n){ + return createLongEmul(shr(isSmallLong0(a)?toBigLong(a):a, n)); +} + +function sub_1(a, b){ + var result; + if (isSmallLong0(a) && isSmallLong0(b)) { + result = a - b; + if ($intern_33 < result && result < $intern_31) { + return result; + } + } + return createLongEmul(sub_0(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function toBigLong(longValue){ + var a0, a1, a3, value_0; + value_0 = longValue; + a3 = 0; + if (value_0 < 0) { + value_0 += $intern_31; + a3 = $intern_28; + } + a1 = round_int(value_0 / $intern_30); + a0 = round_int(value_0 - a1 * $intern_30); + return create0(a0, a1, a3); +} + +function toDouble_0(a){ + var d; + if (isSmallLong0(a)) { + d = a; + return d == -0.?0:d; + } + return toDouble(a); +} + +function toInt_0(a){ + if (isSmallLong0(a)) { + return a | 0; + } + return toInt(a); +} + +function toString_8(a){ + if (isSmallLong0(a)) { + return '' + a; + } + return toString_7(a); +} + +function xor_0(a, b){ + return createLongEmul(xor(isSmallLong0(a)?toBigLong(a):a, isSmallLong0(b)?toBigLong(b):b)); +} + +function init(){ + $wnd.setTimeout($entry(assertCompileTimeUserAgent)); + $onModuleLoad(); + $loadLocale(); +} + +function $adjustHorizontalConstraints(this$static, parentWidth, l_0){ + var leftPx, rightPx, widthPx; + leftPx = l_0.left_0 * $getUnitSize(this$static, l_0.leftUnit, false); + rightPx = l_0.right * $getUnitSize(this$static, l_0.rightUnit, false); + widthPx = l_0.width_0 * $getUnitSize(this$static, l_0.widthUnit, false); + if (l_0.setLeft && !l_0.setTargetLeft) { + l_0.setLeft = false; + if (l_0.setWidth) { + l_0.setTargetRight = true; + l_0.sourceRight = (parentWidth - (leftPx + widthPx)) / $getUnitSize(this$static, l_0.targetRightUnit, false); + } + else { + l_0.setTargetWidth = true; + l_0.sourceWidth = (parentWidth - (leftPx + rightPx)) / $getUnitSize(this$static, l_0.targetWidthUnit, false); + } + } + else if (l_0.setWidth && !l_0.setTargetWidth) { + l_0.setWidth = false; + if (l_0.setLeft) { + l_0.setTargetRight = true; + l_0.sourceRight = (parentWidth - (leftPx + widthPx)) / $getUnitSize(this$static, l_0.targetRightUnit, false); + } + else { + l_0.setTargetLeft = true; + l_0.sourceLeft = (parentWidth - (rightPx + widthPx)) / $getUnitSize(this$static, l_0.targetLeftUnit, false); + } + } + else if (l_0.setRight && !l_0.setTargetRight) { + l_0.setRight = false; + if (l_0.setWidth) { + l_0.setTargetLeft = true; + l_0.sourceLeft = (parentWidth - (rightPx + widthPx)) / $getUnitSize(this$static, l_0.targetLeftUnit, false); + } + else { + l_0.setTargetWidth = true; + l_0.sourceWidth = (parentWidth - (leftPx + rightPx)) / $getUnitSize(this$static, l_0.targetWidthUnit, false); + } + } + l_0.setLeft = l_0.setTargetLeft; + l_0.setRight = l_0.setTargetRight; + l_0.setWidth = l_0.setTargetWidth; + l_0.leftUnit = l_0.targetLeftUnit; + l_0.rightUnit = l_0.targetRightUnit; + l_0.widthUnit = l_0.targetWidthUnit; +} + +function $adjustVerticalConstraints(this$static, parentHeight, l_0){ + var bottomPx, heightPx, topPx; + topPx = l_0.top_0 * $getUnitSize(this$static, l_0.topUnit, true); + bottomPx = l_0.bottom * $getUnitSize(this$static, l_0.bottomUnit, true); + heightPx = l_0.height * $getUnitSize(this$static, l_0.heightUnit, true); + if (l_0.setTop && !l_0.setTargetTop) { + l_0.setTop = false; + if (l_0.setHeight) { + l_0.setTargetBottom = true; + l_0.sourceBottom = (parentHeight - (topPx + heightPx)) / $getUnitSize(this$static, l_0.targetBottomUnit, true); + } + else { + l_0.setTargetHeight = true; + l_0.sourceHeight = (parentHeight - (topPx + bottomPx)) / $getUnitSize(this$static, l_0.targetHeightUnit, true); + } + } + else if (l_0.setHeight && !l_0.setTargetHeight) { + l_0.setHeight = false; + if (l_0.setTop) { + l_0.setTargetBottom = true; + l_0.sourceBottom = (parentHeight - (topPx + heightPx)) / $getUnitSize(this$static, l_0.targetBottomUnit, true); + } + else { + l_0.setTargetTop = true; + l_0.sourceTop = (parentHeight - (bottomPx + heightPx)) / $getUnitSize(this$static, l_0.targetTopUnit, true); + } + } + else if (l_0.setBottom && !l_0.setTargetBottom) { + l_0.setBottom = false; + if (l_0.setHeight) { + l_0.setTargetTop = true; + l_0.sourceTop = (parentHeight - (bottomPx + heightPx)) / $getUnitSize(this$static, l_0.targetTopUnit, true); + } + else { + l_0.setTargetHeight = true; + l_0.sourceHeight = (parentHeight - (topPx + bottomPx)) / $getUnitSize(this$static, l_0.targetHeightUnit, true); + } + } + l_0.setTop = l_0.setTargetTop; + l_0.setBottom = l_0.setTargetBottom; + l_0.setHeight = l_0.setTargetHeight; + l_0.topUnit = l_0.targetTopUnit; + l_0.bottomUnit = l_0.targetBottomUnit; + l_0.heightUnit = l_0.targetHeightUnit; +} + +function $attachChild(this$static, child, userObject){ + var container, layer; + container = $attachChild_0(this$static.parentElem, child); + layer = new Layout$Layer(container, child, userObject); + $add_8(this$static.layers, layer); + return layer; +} + +function $getUnitSize(this$static, unit, vertical){ + return $getUnitSizeInPixels(this$static.impl, this$static.parentElem, unit, vertical); +} + +function $layout(this$static, duration, callback){ + var child, l_0, l$iterator, l$iterator0, parentHeight, parentWidth; + !!this$static.animation && $cancel(this$static.animation); + if (duration == 0) { + for (l$iterator0 = new ArrayList$1(this$static.layers); l$iterator0.i < l$iterator0.this$01.array.length;) { + l_0 = $next_4(l$iterator0); + l_0.left_0 = l_0.sourceLeft = l_0.targetLeft; + l_0.top_0 = l_0.sourceTop = l_0.targetTop; + l_0.right = l_0.sourceRight = l_0.targetRight; + l_0.bottom = l_0.sourceBottom = l_0.targetBottom; + l_0.width_0 = l_0.sourceWidth = l_0.targetWidth; + l_0.height = l_0.sourceHeight = l_0.targetHeight; + l_0.setLeft = l_0.setTargetLeft; + l_0.setTop = l_0.setTargetTop; + l_0.setRight = l_0.setTargetRight; + l_0.setBottom = l_0.setTargetBottom; + l_0.setWidth = l_0.setTargetWidth; + l_0.setHeight = l_0.setTargetHeight; + l_0.leftUnit = l_0.targetLeftUnit; + l_0.topUnit = l_0.targetTopUnit; + l_0.rightUnit = l_0.targetRightUnit; + l_0.bottomUnit = l_0.targetBottomUnit; + l_0.widthUnit = l_0.targetWidthUnit; + l_0.heightUnit = l_0.targetHeightUnit; + $layout_0(this$static.impl, l_0); + !!callback && (child = l_0.userObject , instanceOf(child, 199) && child.onResize_0()); + } + return; + } + parentWidth = this$static.parentElem.clientWidth | 0; + parentHeight = this$static.parentElem.clientHeight | 0; + for (l$iterator = new ArrayList$1(this$static.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l_0 = $next_4(l$iterator); + $adjustHorizontalConstraints(this$static, parentWidth, l_0); + $adjustVerticalConstraints(this$static, parentHeight, l_0); + } + this$static.animation = new Layout$1(this$static, callback); + $run_0(this$static.animation, duration, this$static.parentElem); +} + +function $removeChild_0(this$static, layer){ + $removeChild_1(layer.container, layer.child); + $remove_13(this$static.layers, layer); +} + +function Layout(parent_0){ + this.impl = new LayoutImplIE8; + this.layers = new ArrayList; + this.parentElem = parent_0; + $initParent(this.impl, parent_0); +} + +defineClass(327, 1, {}, Layout); +var Lcom_google_gwt_layout_client_Layout_2_classLit = createForClass('com.google.gwt.layout.client', 'Layout', 327); +function Layout$1(this$0, val$callback){ + this.this$01 = this$0; + this.val$callback2 = val$callback; + Animation.call(this); +} + +defineClass(559, 283, {}, Layout$1); +_.onCancel = function onCancel_0(){ + this.this$01.animation = null; + $layout(this.this$01, 0, null); +} +; +_.onComplete = function onComplete_0(){ + this.this$01.animation = null; + $layout(this.this$01, 0, null); +} +; +_.onUpdate = function onUpdate(progress){ + var child, l_0, l$iterator; + for (l$iterator = new ArrayList$1(this.this$01.layers); l$iterator.i < l$iterator.this$01.array.length;) { + l_0 = $next_4(l$iterator); + l_0.setTargetLeft && (l_0.left_0 = l_0.sourceLeft + (l_0.targetLeft - l_0.sourceLeft) * progress); + l_0.setTargetRight && (l_0.right = l_0.sourceRight + (l_0.targetRight - l_0.sourceRight) * progress); + l_0.setTargetTop && (l_0.top_0 = l_0.sourceTop + (l_0.targetTop - l_0.sourceTop) * progress); + l_0.setTargetBottom && (l_0.bottom = l_0.sourceBottom + (l_0.targetBottom - l_0.sourceBottom) * progress); + l_0.setTargetWidth && (l_0.width_0 = l_0.sourceWidth + (l_0.targetWidth - l_0.sourceWidth) * progress); + l_0.setTargetHeight && (l_0.height = l_0.sourceHeight + (l_0.targetHeight - l_0.sourceHeight) * progress); + $layout_0(this.this$01.impl, l_0); + !!this.val$callback2 && (child = l_0.userObject , instanceOf(child, 199) && child.onResize_0()); + } +} +; +var Lcom_google_gwt_layout_client_Layout$1_2_classLit = createForClass('com.google.gwt.layout.client', 'Layout/1', 559); +function $setBottomHeight(this$static, bottom, bottomUnit, height, heightUnit){ + this$static.setTargetBottom = this$static.setTargetHeight = true; + this$static.setTargetTop = false; + this$static.targetBottom = bottom; + this$static.targetHeight = height; + this$static.targetBottomUnit = bottomUnit; + this$static.targetHeightUnit = heightUnit; +} + +function $setLeftRight(this$static, left, leftUnit, right, rightUnit){ + this$static.setTargetLeft = this$static.setTargetRight = true; + this$static.setTargetWidth = false; + this$static.targetLeft = left; + this$static.targetRight = right; + this$static.targetLeftUnit = leftUnit; + this$static.targetRightUnit = rightUnit; +} + +function $setLeftWidth(this$static, left, leftUnit, width_0, widthUnit){ + this$static.setTargetLeft = this$static.setTargetWidth = true; + this$static.setTargetRight = false; + this$static.targetLeft = left; + this$static.targetWidth = width_0; + this$static.targetLeftUnit = leftUnit; + this$static.targetWidthUnit = widthUnit; +} + +function $setRightWidth(this$static, right, rightUnit, width_0, widthUnit){ + this$static.setTargetRight = this$static.setTargetWidth = true; + this$static.setTargetLeft = false; + this$static.targetRight = right; + this$static.targetWidth = width_0; + this$static.targetRightUnit = rightUnit; + this$static.targetWidthUnit = widthUnit; +} + +function $setTopBottom(this$static, top_0, topUnit, bottom, bottomUnit){ + this$static.setTargetTop = this$static.setTargetBottom = true; + this$static.setTargetHeight = false; + this$static.targetTop = top_0; + this$static.targetBottom = bottom; + this$static.targetTopUnit = topUnit; + this$static.targetBottomUnit = bottomUnit; +} + +function $setTopHeight(this$static, top_0, topUnit, height, heightUnit){ + this$static.setTargetTop = this$static.setTargetHeight = true; + this$static.setTargetBottom = false; + this$static.targetTop = top_0; + this$static.targetHeight = height; + this$static.targetTopUnit = topUnit; + this$static.targetHeightUnit = heightUnit; +} + +function Layout$Layer(container, child, userObject){ + this.targetLeftUnit = ($clinit_Style$Unit() , PX); + this.targetTopUnit = PX; + this.targetRightUnit = PX; + this.targetBottomUnit = PX; + this.container = container; + this.child = child; + this.userObject = userObject; +} + +defineClass(328, 1, {328:1}, Layout$Layer); +_.bottom = 0; +_.height = 0; +_.left_0 = 0; +_.right = 0; +_.setBottom = false; +_.setHeight = false; +_.setLeft = false; +_.setRight = false; +_.setTargetBottom = true; +_.setTargetHeight = false; +_.setTargetLeft = true; +_.setTargetRight = true; +_.setTargetTop = true; +_.setTargetWidth = false; +_.setTop = false; +_.setWidth = false; +_.sourceBottom = 0; +_.sourceHeight = 0; +_.sourceLeft = 0; +_.sourceRight = 0; +_.sourceTop = 0; +_.sourceWidth = 0; +_.targetBottom = 0; +_.targetHeight = 0; +_.targetLeft = 0; +_.targetRight = 0; +_.targetTop = 0; +_.targetWidth = 0; +_.top_0 = 0; +_.visible = true; +_.width_0 = 0; +var Lcom_google_gwt_layout_client_Layout$Layer_2_classLit = createForClass('com.google.gwt.layout.client', 'Layout/Layer', 328); +function $clinit_LayoutImpl(){ + $clinit_LayoutImpl = emptyMethod; + fixedRuler = createRuler(($clinit_Style$Unit() , CM), CM); + $appendChild($doc.body, fixedRuler); +} + +function $attachChild_0(parent_0, child){ + var container; + container = $createElement($doc, 'div'); + container.appendChild(child); + container.style['position'] = ($clinit_Style$Position() , 'absolute'); + container.style['overflow'] = ($clinit_Style$Overflow() , 'hidden'); + $fillParent(child); + parent_0.insertBefore(container, null); + return container; +} + +function $fillParent(elem){ + var style; + style = elem.style; + style['position'] = ($clinit_Style$Position() , 'absolute'); + style['left'] = ($clinit_Style$Unit() , '0.0px'); + style['top'] = '0.0px'; + style['right'] = '0.0px'; + style['bottom'] = '0.0px'; +} + +function $getUnitSizeInPixels(this$static, parent_0, unit, vertical){ + if (!unit) { + return 1; + } + switch (unit.ordinal) { + case 1: + return (vertical?parent_0.clientHeight | 0:parent_0.clientWidth | 0) / 100; + case 2: + return ((this$static.relativeRuler.offsetWidth || 0) | 0) / 10; + case 3: + return ((this$static.relativeRuler.offsetHeight || 0) | 0) / 10; + case 7: + return ((fixedRuler.offsetWidth || 0) | 0) * 0.1; + case 8: + return ((fixedRuler.offsetWidth || 0) | 0) * $intern_34; + case 6: + return ((fixedRuler.offsetWidth || 0) | 0) * 0.254; + case 4: + return ((fixedRuler.offsetWidth || 0) | 0) * 0.00353; + case 5: + return ((fixedRuler.offsetWidth || 0) | 0) * 0.0423; + default:case 0: + return 1; + } +} + +function $initParent(this$static, parent_0){ + parent_0.style['position'] = ($clinit_Style$Position() , 'relative'); + $appendChild(parent_0, this$static.relativeRuler = createRuler(($clinit_Style$Unit() , EM), EX)); +} + +function $removeChild_1(container, child){ + var parent_0, parent0, style; + parent0 = $getParentElement(container); + !!parent0 && parent0.removeChild(container); + $getParentElement(child) == container && (parent_0 = $getParentElement(child) , !!parent_0 && parent_0.removeChild(child)); + style = child.style; + style['position'] = ''; + style['left'] = ''; + style['top'] = ''; + style['width'] = ''; + style['height'] = ''; +} + +function createRuler(widthUnit, heightUnit){ + var ruler, style; + ruler = $createElement($doc, 'div'); + ruler.innerHTML = ' '; + style = ruler.style; + style['position'] = ($clinit_Style$Position() , 'absolute'); + style['zIndex'] = '-32767'; + style['top'] = -20 + heightUnit.getType_0(); + style['width'] = 10 + widthUnit.getType_0(); + style['height'] = 10 + heightUnit.getType_0(); + style['visibility'] = ($clinit_Style$Visibility() , 'hidden'); + $set_0(($clinit_State() , HIDDEN), ruler, stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_Boolean_2_classLit, 1), $intern_3, 277, 8, [($clinit_Boolean() , true)])); + return ruler; +} + +defineClass(964, 1, {}); +var fixedRuler; +var Lcom_google_gwt_layout_client_LayoutImpl_2_classLit = createForClass('com.google.gwt.layout.client', 'LayoutImpl', 964); +function $layout_0(this$static, layer){ + var oldDisplay, style; + style = layer.container.style; + setLayer(layer.container, layer); + if (layer.visible) { + oldDisplay = style['display']; + style['display'] = ''; + oldDisplay.length > 0 && $updateVisibility(this$static, layer.container); + } + else { + style['display'] = ($clinit_Style$Display() , 'none'); + } + layer.setLeft?$setValue(this$static, layer, 'left', layer.left_0, layer.leftUnit, false, false):(style['left'] = '' , undefined); + layer.setRight?$setValue(this$static, layer, 'right', layer.right, layer.rightUnit, false, false):(style['right'] = '' , undefined); + layer.setTop?$setValue(this$static, layer, 'top', layer.top_0, layer.topUnit, true, false):(style['top'] = '' , undefined); + layer.setBottom?$setValue(this$static, layer, 'bottom', layer.bottom, layer.bottomUnit, true, false):(style['bottom'] = '' , undefined); + layer.setWidth?$setValue(this$static, layer, 'width', layer.width_0, layer.widthUnit, false, true):(style['width'] = '' , undefined); + layer.setHeight?$setValue(this$static, layer, 'height', layer.height, layer.heightUnit, true, true):(style['height'] = '' , undefined); + style = layer.child.style; + switch (2) { + case 2: + style['left'] = ($clinit_Style$Unit() , '0.0px'); + style['right'] = '0.0px'; + } + switch (2) { + case 2: + style['top'] = ($clinit_Style$Unit() , '0.0px'); + style['bottom'] = '0.0px'; + } +} + +function $removeLayerRefs(parent_0){ + for (var i = 0; i < parent_0.childNodes.length; ++i) { + var container = parent_0.childNodes[i]; + container.__layer && (container.__layer = null); + } +} + +function $setValue(this$static, layer, prop, value_0, unit, vertical, noNegative){ + switch (unit.ordinal) { + case 0: + case 1: + break; + default:value_0 = value_0 * $getUnitSizeInPixels(this$static, layer.container, unit, vertical); + value_0 = round_int(value_0 + 0.5); + $clinit_Style$Unit(); + } + noNegative && value_0 < 0 && (value_0 = 0); + layer.container.style[prop] = value_0 + 'px'; +} + +function $updateVisibility(this$static, container){ + var i, layer, node, nodes; + layer = container.__layer; + !!layer && $layout_0(this$static, layer); + nodes = container.childNodes; + for (i = 0; i < nodes.length; ++i) { + node = nodes[i]; + node.nodeType == 1 && $updateVisibility(this$static, node); + } +} + +function LayoutImplIE8(){ + $clinit_LayoutImpl(); +} + +function setLayer(container, layer){ + container.__layer = layer; +} + +defineClass(802, 964, {}, LayoutImplIE8); +var Lcom_google_gwt_layout_client_LayoutImplIE8_2_classLit = createForClass('com.google.gwt.layout.client', 'LayoutImplIE8', 802); +function $replace(this$static, input_0, replacement){ + return input_0.replace(this$static, replacement); +} + +function $test(this$static, input_0){ + return this$static.test(input_0); +} + +function ImageResourcePrototype(url_0){ + this.left_0 = 0; + this.top_0 = 0; + this.height = 9; + this.width_0 = 5; + this.url_0 = url_0; +} + +defineClass(914, 1, {}, ImageResourcePrototype); +_.height = 0; +_.left_0 = 0; +_.top_0 = 0; +_.width_0 = 0; +var Lcom_google_gwt_resources_client_impl_ImageResourcePrototype_2_classLit = createForClass('com.google.gwt.resources.client.impl', 'ImageResourcePrototype', 914); +function $append(this$static, styles){ + $append_4(this$static.sb, styles.css); + return this$static; +} + +function SafeStylesBuilder(){ + this.sb = new StringBuilder; +} + +defineClass(922, 1, {}, SafeStylesBuilder); +var Lcom_google_gwt_safecss_shared_SafeStylesBuilder_2_classLit = createForClass('com.google.gwt.safecss.shared', 'SafeStylesBuilder', 922); +function SafeStylesString(css){ + verifySafeStylesConstraints(css); + this.css = css; +} + +defineClass(197, 1, {997:1, 197:1, 3:1}, SafeStylesString); +_.equals_0 = function equals_1(obj){ + if (!instanceOf(obj, 197)) { + return false; + } + return $equals_1(this.css, obj.css); +} +; +_.hashCode_0 = function hashCode_3(){ + return getHashCode_0(this.css); +} +; +var Lcom_google_gwt_safecss_shared_SafeStylesString_2_classLit = createForClass('com.google.gwt.safecss.shared', 'SafeStylesString', 197); +function verifySafeStylesConstraints(styles){ + if (styles == null) { + throw toJs(new NullPointerException_0('css is null')); + } +} + +function OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml(html){ + if (html == null) { + throw toJs(new NullPointerException_0('html is null')); + } + this.html = html; +} + +defineClass(926, 1, $intern_35, OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml); +_.asString = function asString(){ + return this.html; +} +; +_.equals_0 = function equals_2(obj){ + if (!instanceOf(obj, 448)) { + return false; + } + return $equals_1(this.html, obj.asString()); +} +; +_.hashCode_0 = function hashCode_4(){ + return getHashCode_0(this.html); +} +; +var Lcom_google_gwt_safehtml_shared_OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml_2_classLit = createForClass('com.google.gwt.safehtml.shared', 'OnlyToBeUsedInGeneratedCodeStringBlessedAsSafeHtml', 926); +function SafeHtmlString(html){ + if (html == null) { + throw toJs(new NullPointerException_0('html is null')); + } + this.html = html; +} + +defineClass(111, 1, $intern_35, SafeHtmlString); +_.asString = function asString_0(){ + return this.html; +} +; +_.equals_0 = function equals_3(obj){ + if (!instanceOf(obj, 448)) { + return false; + } + return $equals_1(this.html, obj.asString()); +} +; +_.hashCode_0 = function hashCode_5(){ + return getHashCode_0(this.html); +} +; +_.toString_0 = function toString_10(){ + return 'safe: "' + this.html + '"'; +} +; +var Lcom_google_gwt_safehtml_shared_SafeHtmlString_2_classLit = createForClass('com.google.gwt.safehtml.shared', 'SafeHtmlString', 111); +function $clinit_SafeHtmlUtils(){ + $clinit_SafeHtmlUtils = emptyMethod; + new SafeHtmlString(''); + HTML_CHARS_RE = new RegExp('[&<>\'"]'); + AMP_RE = new RegExp('&', 'g'); + GT_RE = new RegExp('>', 'g'); + LT_RE = new RegExp('<', 'g'); + SQUOT_RE = new RegExp("'", 'g'); + QUOT_RE = new RegExp('"', 'g'); +} + +function htmlEscape(s){ + $clinit_SafeHtmlUtils(); + if (!$test(HTML_CHARS_RE, s)) { + return s; + } + s.indexOf('&') != -1 && (s = $replace(AMP_RE, s, '&')); + s.indexOf('<') != -1 && (s = $replace(LT_RE, s, '<')); + s.indexOf('>') != -1 && (s = $replace(GT_RE, s, '>')); + s.indexOf('"') != -1 && (s = $replace(QUOT_RE, s, '"')); + s.indexOf("'") != -1 && (s = $replace(SQUOT_RE, s, ''')); + return s; +} + +var AMP_RE, GT_RE, HTML_CHARS_RE, LT_RE, QUOT_RE, SQUOT_RE; +function SafeUriString(uri_0){ + this.uri_0 = uri_0; +} + +defineClass(272, 1, {994:1, 272:1}, SafeUriString); +_.equals_0 = function equals_4(obj){ + if (!instanceOf(obj, 272)) { + return false; + } + return $equals_1(this.uri_0, obj.uri_0); +} +; +_.hashCode_0 = function hashCode_6(){ + return getHashCode_0(this.uri_0); +} +; +_.toString_0 = function toString_11(){ + return 'safe: "' + this.uri_0 + '"'; +} +; +var Lcom_google_gwt_safehtml_shared_SafeUriString_2_classLit = createForClass('com.google.gwt.safehtml.shared', 'SafeUriString', 272); +function $clinit_UriUtils(){ + $clinit_UriUtils = emptyMethod; + new RegExp('%5B', 'g'); + new RegExp('%5D', 'g'); +} + +function $getItem(this$static, key){ + return $getItem_0(this$static.storage, key); +} + +function $removeItem(this$static, key){ + $removeItem_0(this$static.storage, key); +} + +function $setItem(this$static, key, data_0){ + $setItem_0(this$static.storage, key, data_0); +} + +function Storage_0(storage){ + this.storage = storage; +} + +defineClass(66, 1, {}, Storage_0); +var localStorage_0, sessionStorage_0; +var Lcom_google_gwt_storage_client_Storage_2_classLit = createForClass('com.google.gwt.storage.client', 'Storage', 66); +function $clinit_Storage$StorageSupportDetector(){ + $clinit_Storage$StorageSupportDetector = emptyMethod; + localStorageSupported = checkStorageSupport('localStorage'); + sessionStorageSupported = checkStorageSupport('sessionStorage'); +} + +function checkStorageSupport(storage){ + var c = '_gwt_dummy_'; + try { + $wnd[storage].setItem(c, c); + $wnd[storage].removeItem(c); + return true; + } + catch (e) { + return false; + } +} + +var localStorageSupported = false, sessionStorageSupported = false; +function $getItem_0(storage, key){ + return $wnd[storage].getItem(key); +} + +function $getLength(storage){ + return $wnd[storage].length; +} + +function $key(storage, index_0){ + return index_0 >= 0 && index_0 < $wnd[storage].length?$wnd[storage].key(index_0):null; +} + +function $removeItem_0(storage, key){ + $wnd[storage].getItem(key); + $wnd[storage].removeItem(key); +} + +function $setItem_0(storage, key, data_0){ + $wnd[storage].getItem(key); + $wnd[storage].setItem(key, data_0); +} + +defineClass(969, 1, {}); +var Lcom_google_gwt_text_shared_AbstractRenderer_2_classLit = createForClass('com.google.gwt.text.shared', 'AbstractRenderer', 969); +function PassthroughParser(){ +} + +defineClass(808, 1, {}, PassthroughParser); +var INSTANCE_0; +var Lcom_google_gwt_text_shared_testing_PassthroughParser_2_classLit = createForClass('com.google.gwt.text.shared.testing', 'PassthroughParser', 808); +function PassthroughRenderer(){ +} + +defineClass(807, 969, {}, PassthroughRenderer); +var INSTANCE_1; +var Lcom_google_gwt_text_shared_testing_PassthroughRenderer_2_classLit = createForClass('com.google.gwt.text.shared.testing', 'PassthroughRenderer', 807); +function $calcNewVelocity(initialVelocity, decelFactor, oldVelocity, minDecel){ + var maxVelocityX, minVelocityX, newVelocity; + newVelocity = initialVelocity * decelFactor; + if (oldVelocity >= 0) { + maxVelocityX = $wnd.Math.max(0, oldVelocity - minDecel); + newVelocity = $wnd.Math.min(newVelocity, maxVelocityX); + } + else { + minVelocityX = $wnd.Math.min(0, oldVelocity + minDecel); + newVelocity = $wnd.Math.max(newVelocity, minVelocityX); + } + return newVelocity; +} + +function $updateState(state){ + var decelFactor, dist, elapsedMillis, ellapsedMillis, initialVelocity, minDecel, newVelocity, newVelocityX, newVelocityY, oldVelocity, position, totalEllapsedMillis; + ellapsedMillis = state.elapsedMillis; + totalEllapsedMillis = state.cumulativeElapsedMillis; + initialVelocity = state.initialVelocity; + oldVelocity = state.velocity; + decelFactor = $wnd.Math.pow(0.9993, totalEllapsedMillis); + minDecel = ellapsedMillis * 5.0E-4; + newVelocityX = $calcNewVelocity(initialVelocity.x_0, decelFactor, oldVelocity.x_0, minDecel); + newVelocityY = $calcNewVelocity(initialVelocity.y_0, decelFactor, oldVelocity.y_0, minDecel); + newVelocity = new Point(newVelocityX, newVelocityY); + state.velocity = newVelocity; + elapsedMillis = state.elapsedMillis; + dist = $mult(newVelocity, new Point(elapsedMillis, elapsedMillis)); + position = state.position; + $setPosition(state, new Point(position.x_0 + dist.x_0, position.y_0 + dist.y_0)); + if ($wnd.Math.abs(newVelocity.x_0) < $intern_36 && $wnd.Math.abs(newVelocity.y_0) < $intern_36) { + return false; + } + return true; +} + +function DefaultMomentum(){ +} + +defineClass(923, 1, {}, DefaultMomentum); +var Lcom_google_gwt_touch_client_DefaultMomentum_2_classLit = createForClass('com.google.gwt.touch.client', 'DefaultMomentum', 923); +function $setCumulativeElapsedMillis(this$static, cumulativeElapsedMillis){ + this$static.cumulativeElapsedMillis = cumulativeElapsedMillis; +} + +function $setElapsedMillis(this$static, elapsedMillis){ + this$static.elapsedMillis = elapsedMillis; +} + +function $setPosition(this$static, position){ + this$static.position = position; +} + +function Momentum$State(initialPosition, initialVelocity){ + this.initialVelocity = initialVelocity; + this.position = new Point_0(initialPosition); + this.velocity = new Point_0(initialVelocity); +} + +defineClass(924, 1, {}, Momentum$State); +_.cumulativeElapsedMillis = 0; +_.elapsedMillis = 0; +var Lcom_google_gwt_touch_client_Momentum$State_2_classLit = createForClass('com.google.gwt.touch.client', 'Momentum/State', 924); +function $minus(this$static, c){ + return new Point(this$static.x_0 - c.x_0, this$static.y_0 - c.y_0); +} + +function $mult(this$static, c){ + return new Point(this$static.x_0 * c.x_0, this$static.y_0 * c.y_0); +} + +function $plus(this$static, c){ + return new Point(this$static.x_0 + c.x_0, this$static.y_0 + c.y_0); +} + +function Point(x_0, y_0){ + this.x_0 = x_0; + this.y_0 = y_0; +} + +function Point_0(c){ + Point.call(this, c.x_0, c.y_0); +} + +defineClass(107, 1, {107:1}, Point, Point_0); +_.equals_0 = function equals_5(obj){ + var c; + if (!instanceOf(obj, 107)) { + return false; + } + c = obj; + return this.x_0 == c.x_0 && this.y_0 == c.y_0; +} +; +_.hashCode_0 = function hashCode_7(){ + return round_int(this.x_0) ^ round_int(this.y_0); +} +; +_.toString_0 = function toString_12(){ + return 'Point(' + this.x_0 + ',' + this.y_0 + ')'; +} +; +_.x_0 = 0; +_.y_0 = 0; +var Lcom_google_gwt_touch_client_Point_2_classLit = createForClass('com.google.gwt.touch.client', 'Point', 107); +function $calculateEndVelocity(from, to){ + var dist, time; + time = to.time - from.time; + if (time <= 0) { + return null; + } + dist = $minus(from.point, to.point); + return new Point(dist.x_0 / time, dist.y_0 / time); +} + +function $cancelAll(this$static){ + this$static.touching = false; + this$static.dragging = false; + this$static.momentumCommand = null; +} + +function $getWidgetScrollPosition(this$static){ + return new Point($getHorizontalScrollPosition(this$static.widget), $getVerticalScrollPosition(this$static.widget)); +} + +function $hitTest(point1, point2){ + var absDiffX, absDiffY, diff; + diff = new Point(point1.x_0 - point2.x_0, point1.y_0 - point2.y_0); + absDiffX = $wnd.Math.abs(diff.x_0); + absDiffY = $wnd.Math.abs(diff.y_0); + return absDiffX <= 25 && absDiffY <= 25; +} + +function $isClickScrollTriggeringTouch(this$static, clickPoint){ + if (this$static.recentScrollTriggeringTouchPosition.point) { + return $hitTest(clickPoint, this$static.recentScrollTriggeringTouchPosition.point); + } + return false; +} + +function $isClickTouchPositionDuringMomentum(this$static, clickPoint){ + var currentTime, point, point$iterator, same; + currentTime = now_1(); + same = false; + for (point$iterator = new ArrayList$1(this$static.touchPositionsDuringMomentum); point$iterator.i < point$iterator.this$01.array.length;) { + point = $next_4(point$iterator); + if (currentTime - point.time <= 2500 && $hitTest(clickPoint, point.point)) { + same = true; + break; + } + } + return same; +} + +function $onDragEnd(this$static){ + var endVelocity; + if (!this$static.momentum) { + return; + } + endVelocity = $calculateEndVelocity(this$static.recentTouchPosition, this$static.lastTouchPosition); + if (endVelocity) { + this$static.momentumCommand = new TouchScroller$MomentumCommand(this$static, endVelocity); + scheduleFixedDelayImpl(($clinit_SchedulerImpl() , this$static.momentumCommand), 16); + } +} + +function $onTouchEnd(this$static){ + if (!this$static.touching) { + return; + } + this$static.touching = false; + if (this$static.dragging) { + this$static.dragging = false; + $onDragEnd(this$static); + } +} + +function $onTouchMove(this$static, event_0){ + var absDiffX, absDiffY, diff, hMax, hMin, hPosition, touch, touchPoint, touchTime, touches, trackingTime, vMax, vPosition, diff_0, curScrollPosition; + if (!this$static.touching) { + return; + } + touch = (touches = event_0.nativeEvent.touches , touches.length > 0?touches[0]:null); + touchPoint = new Point((touch.pageX || 0) | 0, (touch.pageY || 0) | 0); + touchTime = now_1(); + $setTemporalPoint(this$static.lastTouchPosition, touchPoint, touchTime); + if (!this$static.dragging) { + diff = $minus(touchPoint, this$static.startTouchPosition); + absDiffX = $wnd.Math.abs(diff.x_0); + absDiffY = $wnd.Math.abs(diff.y_0); + if (absDiffX > 5 || absDiffY > 5) { + $setTemporalPoint(this$static.recentScrollTriggeringTouchPosition, this$static.recentTouchPosition.point, this$static.recentTouchPosition.time); + if (absDiffX > absDiffY) { + hPosition = $getHorizontalScrollPosition(this$static.widget); + hMin = $getMinimumHorizontalScrollPosition_0(this$static.widget); + hMax = $getMaximumHorizontalScrollPosition_0(this$static.widget); + if (diff.x_0 < 0 && hMax <= hPosition) { + $cancelAll(this$static); + return; + } + else if (diff.x_0 > 0 && hMin >= hPosition) { + $cancelAll(this$static); + return; + } + } + else { + vPosition = $getVerticalScrollPosition(this$static.widget); + vMax = $getMaximumVerticalScrollPosition(this$static.widget); + if (diff.y_0 < 0 && vMax <= vPosition) { + $cancelAll(this$static); + return; + } + else if (diff.y_0 > 0 && 0 >= vPosition) { + $cancelAll(this$static); + return; + } + } + this$static.dragging = true; + } + } + !!event_0.nativeEvent && (event_0.nativeEvent.returnValue = false , undefined); + if (this$static.dragging) { + diff_0 = $minus(this$static.startTouchPosition, this$static.lastTouchPosition.point); + curScrollPosition = $plus(this$static.startScrollPosition, diff_0); + $setHorizontalScrollPosition(this$static.widget, round_int(curScrollPosition.x_0)); + $setVerticalScrollPosition(this$static.widget, round_int(curScrollPosition.y_0)); + trackingTime = touchTime - this$static.recentTouchPosition.time; + if (trackingTime > 200 && !!this$static.recentTouchPositionOnDeck) { + $setTemporalPoint(this$static.recentTouchPosition, this$static.recentTouchPositionOnDeck.point, this$static.recentTouchPositionOnDeck.time); + this$static.recentTouchPositionOnDeck = null; + } + else + trackingTime > 100 && !this$static.recentTouchPositionOnDeck && (this$static.recentTouchPositionOnDeck = new TouchScroller$TemporalPoint_0(touchPoint, touchTime)); + } +} + +function $onTouchStart(this$static, event_0){ + var startTouchTime, touch, touches; + $setTemporalPoint(this$static.recentScrollTriggeringTouchPosition, null, 0); + if (this$static.touching) { + return; + } + touch = (touches = event_0.nativeEvent.touches , touches.length > 0?touches[0]:null); + this$static.startTouchPosition = new Point((touch.pageX || 0) | 0, (touch.pageY || 0) | 0); + startTouchTime = now_1(); + $setTemporalPoint(this$static.recentTouchPosition, this$static.startTouchPosition, startTouchTime); + $setTemporalPoint(this$static.lastTouchPosition, this$static.startTouchPosition, startTouchTime); + this$static.recentTouchPositionOnDeck = null; + if (this$static.momentumCommand) { + $add_8(this$static.touchPositionsDuringMomentum, new TouchScroller$TemporalPoint_0(this$static.startTouchPosition, startTouchTime)); + scheduleFixedDelayImpl(($clinit_SchedulerImpl() , this$static.momentumTouchRemovalCommand), 2500); + } + this$static.startScrollPosition = new Point($getHorizontalScrollPosition(this$static.widget), $getVerticalScrollPosition(this$static.widget)); + $cancelAll(this$static); + this$static.touching = true; +} + +function $removeAttachHandler(this$static){ + if (this$static.attachHandlerReg) { + $removeHandler(this$static.attachHandlerReg.real); + this$static.attachHandlerReg = null; + } +} + +function $removeBustClickHandler(this$static){ + if (this$static.bustClickHandlerReg) { + $removeHandler(this$static.bustClickHandlerReg.real); + this$static.bustClickHandlerReg = null; + } +} + +function $setMomentum(this$static, momentum){ + this$static.momentum = momentum; +} + +function $setTargetWidget(this$static, widget){ + var reg, reg$iterator; + if (this$static.widget == widget) { + return; + } + $cancelAll(this$static); + for (reg$iterator = new ArrayList$1(this$static.handlerRegs); reg$iterator.i < reg$iterator.this$01.array.length;) { + reg = $next_4(reg$iterator); + $removeHandler(reg.real); + } + this$static.handlerRegs.array = initUnidimensionalArray(Ljava_lang_Object_2_classLit, $intern_3, 1, 0, 5, 1); + $removeAttachHandler(this$static); + $removeBustClickHandler(this$static); + this$static.widget = widget; + widget.attached && ($removeBustClickHandler(this$static) , this$static.bustClickHandlerReg = addNativePreviewHandler(new TouchScroller$6(this$static))); + this$static.attachHandlerReg = $addHandler(widget, new TouchScroller$1(this$static), (!TYPE_16 && (TYPE_16 = new GwtEvent$Type) , TYPE_16)); + $add_8(this$static.handlerRegs, $addDomHandler(widget, new TouchScroller$2(this$static), ($clinit_TouchStartEvent() , $clinit_TouchStartEvent() , TYPE_15))); + $add_8(this$static.handlerRegs, $addDomHandler(widget, new TouchScroller$3(this$static), ($clinit_TouchMoveEvent() , $clinit_TouchMoveEvent() , TYPE_14))); + $add_8(this$static.handlerRegs, $addDomHandler(widget, new TouchScroller$4(this$static), ($clinit_TouchEndEvent() , $clinit_TouchEndEvent() , TYPE_13))); + $add_8(this$static.handlerRegs, $addDomHandler(widget, new TouchScroller$5(this$static), ($clinit_TouchCancelEvent() , $clinit_TouchCancelEvent() , TYPE_12))); +} + +function $setWidgetScrollPosition(this$static, position){ + $setHorizontalScrollPosition(this$static.widget, round_int(position.x_0)); + $setVerticalScrollPosition(this$static.widget, round_int(position.y_0)); +} + +function $setupBustClickHandler(this$static){ + $removeBustClickHandler(this$static); + this$static.bustClickHandlerReg = addNativePreviewHandler(new TouchScroller$6(this$static)); +} + +function TouchScroller(){ + this.handlerRegs = new ArrayList; + this.lastTouchPosition = new TouchScroller$TemporalPoint; + this.recentTouchPosition = new TouchScroller$TemporalPoint; + this.recentScrollTriggeringTouchPosition = new TouchScroller$TemporalPoint; + this.touchPositionsDuringMomentum = new ArrayList; + this.momentumTouchRemovalCommand = new TouchScroller$MomentumTouchRemovalCommand(this); + $setMomentum(this, new DefaultMomentum); +} + +defineClass(885, 1, {}, TouchScroller); +_.dragging = false; +_.touching = false; +var isSupported; +var Lcom_google_gwt_touch_client_TouchScroller_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller', 885); +function TouchScroller$1(this$0){ + this.this$01 = this$0; +} + +defineClass(889, 1, {995:1, 11:1}, TouchScroller$1); +var Lcom_google_gwt_touch_client_TouchScroller$1_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/1', 889); +function TouchScroller$2(this$0){ + this.this$01 = this$0; +} + +defineClass(890, 1, $intern_37, TouchScroller$2); +_.onTouchStart = function onTouchStart(event_0){ + $onTouchStart(this.this$01, event_0); +} +; +var Lcom_google_gwt_touch_client_TouchScroller$2_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/2', 890); +function TouchScroller$3(this$0){ + this.this$01 = this$0; +} + +defineClass(891, 1, {979:1, 11:1}, TouchScroller$3); +_.onTouchMove = function onTouchMove(event_0){ + $onTouchMove(this.this$01, event_0); +} +; +var Lcom_google_gwt_touch_client_TouchScroller$3_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/3', 891); +function TouchScroller$4(this$0){ + this.this$01 = this$0; +} + +defineClass(892, 1, $intern_38, TouchScroller$4); +_.onTouchEnd = function onTouchEnd(event_0){ + $onTouchEnd(this.this$01); +} +; +var Lcom_google_gwt_touch_client_TouchScroller$4_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/4', 892); +function TouchScroller$5(this$0){ + this.this$01 = this$0; +} + +defineClass(893, 1, $intern_39, TouchScroller$5); +_.onTouchCancel = function onTouchCancel(event_0){ + $onTouchEnd(this.this$01); +} +; +var Lcom_google_gwt_touch_client_TouchScroller$5_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/5', 893); +function TouchScroller$6(this$0){ + this.this$01 = this$0; +} + +defineClass(437, 1, $intern_40, TouchScroller$6); +_.onPreviewNativeEvent = function onPreviewNativeEvent(event_0){ + var clickPoint; + if (1 == $getTypeInt(event_0.nativeEvent)) { + clickPoint = new Point((event_0.nativeEvent.clientX || 0) | 0, (event_0.nativeEvent.clientY || 0) | 0); + if ($isClickScrollTriggeringTouch(this.this$01, clickPoint) || $isClickTouchPositionDuringMomentum(this.this$01, clickPoint)) { + event_0.isCanceled = true; + event_0.nativeEvent.cancelBubble = true; + event_0.nativeEvent.returnValue = false; + } + } +} +; +var Lcom_google_gwt_touch_client_TouchScroller$6_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/6', 437); +function $finish(this$static){ + if (this$static.windowResizeHandler) { + $removeHandler(this$static.windowResizeHandler.real); + this$static.windowResizeHandler = null; + } + this$static == this$static.this$01.momentumCommand && (this$static.this$01.momentumCommand = null); +} + +function TouchScroller$MomentumCommand(this$0, endVelocity){ + this.this$01 = this$0; + this.duration = new Duration; + this.initialPosition = $getWidgetScrollPosition(this.this$01); + this.state = new Momentum$State(this.initialPosition, endVelocity); + this.windowResizeHandler = addResizeHandler(new TouchScroller$MomentumCommand$1(this)); +} + +defineClass(886, 1, {}, TouchScroller$MomentumCommand); +_.execute_0 = function execute_3(){ + var cumulativeElapsedMillis, hMax, hMin, hPos, notDone, vMax, vPos; + if (this != this.this$01.momentumCommand) { + $finish(this); + return false; + } + cumulativeElapsedMillis = $elapsedMillis(this.duration); + $setElapsedMillis(this.state, cumulativeElapsedMillis - this.lastElapsedMillis); + this.lastElapsedMillis = cumulativeElapsedMillis; + $setCumulativeElapsedMillis(this.state, cumulativeElapsedMillis); + notDone = $updateState(this.state); + notDone || $finish(this); + $setWidgetScrollPosition(this.this$01, this.state.position); + hPos = round_int(this.state.position.x_0); + hMin = $getMinimumHorizontalScrollPosition_0(this.this$01.widget); + hMax = $getMaximumHorizontalScrollPosition_0(this.this$01.widget); + vMax = $getMaximumVerticalScrollPosition(this.this$01.widget); + vPos = round_int(this.state.position.y_0); + if ((vMax <= vPos || 0 >= vPos) && (hMax <= hPos || hMin >= hPos)) { + $finish(this); + return false; + } + return notDone; +} +; +_.lastElapsedMillis = 0; +var Lcom_google_gwt_touch_client_TouchScroller$MomentumCommand_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/MomentumCommand', 886); +function TouchScroller$MomentumCommand$1(this$1){ + this.this$11 = this$1; +} + +defineClass(888, 1, $intern_41, TouchScroller$MomentumCommand$1); +_.onResize = function onResize(event_0){ + $finish(this.this$11); +} +; +var Lcom_google_gwt_touch_client_TouchScroller$MomentumCommand$1_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/MomentumCommand/1', 888); +function TouchScroller$MomentumTouchRemovalCommand(this$0){ + this.this$01 = this$0; +} + +defineClass(887, 1, {}, TouchScroller$MomentumTouchRemovalCommand); +_.execute_0 = function execute_4(){ + var currentTime, iter, point; + currentTime = now_1(); + iter = new ArrayList$1(this.this$01.touchPositionsDuringMomentum); + while (iter.i < iter.this$01.array.length) { + point = $next_4(iter); + currentTime - point.time >= 2500 && $remove_14(iter); + } + return this.this$01.touchPositionsDuringMomentum.array.length != 0; +} +; +var Lcom_google_gwt_touch_client_TouchScroller$MomentumTouchRemovalCommand_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/MomentumTouchRemovalCommand', 887); +function $setTemporalPoint(this$static, point, time){ + this$static.point = point; + this$static.time = time; +} + +function TouchScroller$TemporalPoint(){ +} + +function TouchScroller$TemporalPoint_0(point, time){ + this.point = point; + this.time = time; +} + +defineClass(217, 1, {217:1}, TouchScroller$TemporalPoint, TouchScroller$TemporalPoint_0); +_.time = 0; +var Lcom_google_gwt_touch_client_TouchScroller$TemporalPoint_2_classLit = createForClass('com.google.gwt.touch.client', 'TouchScroller/TemporalPoint', 217); +defineClass(927, 1, {11:1}); +var Lcom_google_gwt_user_client_BaseListenerWrapper_2_classLit = createForClass('com.google.gwt.user.client', 'BaseListenerWrapper', 927); +function dispatchEvent_1(evt, elem, listener){ + var prevCurrentEvent; + prevCurrentEvent = currentEvent; + currentEvent = evt; + elem == sCaptureElem && $eventGetTypeInt(evt.type) == 8192 && (sCaptureElem = null); + listener.onBrowserEvent(evt); + currentEvent = prevCurrentEvent; +} + +function insertChild(parent_0, child, index_0){ + $insertChild(parent_0, resolve(child), index_0); +} + +function isPotential(o){ + try { + return !!o && !!o.__gwt_resolve; + } + catch (e) { + return false; + } +} + +function previewEvent(evt){ + var ret; + ret = fire_4(handlers_0, evt); + if (!ret && !!evt) { + evt.cancelBubble = true; + evt.returnValue = false; + } + return ret; +} + +function releaseCapture(elem){ + !!sCaptureElem && elem == sCaptureElem && (sCaptureElem = null); + $maybeInitializeEventSystem(); + elem.releaseCapture(); +} + +function resolve(maybePotential){ + return maybePotential.__gwt_resolve?maybePotential.__gwt_resolve():maybePotential; +} + +function setCapture(elem){ + sCaptureElem = elem; + $maybeInitializeEventSystem(); + elem.setCapture(); +} + +function sinkEvents_0(elem, eventBits){ + $maybeInitializeEventSystem(); + $sinkEventsImpl(elem, eventBits); +} + +var currentEvent = null, sCaptureElem; +function $onModuleLoad(){ + var allowedModes, currentMode, i; + currentMode = $doc.compatMode; + allowedModes = stampJavaTypeInfo(getClassLiteralForArray(Ljava_lang_String_2_classLit, 1), $intern_23, 2, 6, ['CSS1Compat']); + for (i = 0; i < allowedModes.length; i++) { + if ($equals_1(allowedModes[i], currentMode)) { + return; + } + } + allowedModes.length == 1 && $equals_1('CSS1Compat', allowedModes[0]) && $equals_1('BackCompat', currentMode)?"GWT no longer supports Quirks Mode (document.compatMode=' BackCompat').
Make sure your application's host HTML page has a Standards Mode (document.compatMode=' CSS1Compat') doctype,
e.g. by using <!doctype html> at the start of your application's HTML page.

To continue using this unsupported rendering mode and risk layout problems, suppress this message by adding
the following line to your*.gwt.xml module file:
  <extend-configuration-property name=\"document.compatMode\" value=\"" + currentMode + '"/>':"Your *.gwt.xml module configuration prohibits the use of the current document rendering mode (document.compatMode=' " + currentMode + "').
Modify your application's host HTML page doctype, or update your custom " + "'document.compatMode' configuration property settings."; +} + +function $getTypeInt(this$static){ + return $eventGetTypeInt(this$static.type); +} + +function addNativePreviewHandler(handler){ + $maybeInitializeEventSystem(); + !TYPE_20 && (TYPE_20 = new GwtEvent$Type); + if (!handlers_0) { + handlers_0 = new HandlerManager_0(null, true); + singleton = new Event$NativePreviewEvent; + } + return $addHandler_0(handlers_0, TYPE_20, handler); +} + +function getTypeInt(typeName){ + return $eventGetTypeInt(typeName); +} + +function releaseCapture_0(elem){ + !!sCaptureElem && elem == sCaptureElem && (sCaptureElem = null); + $maybeInitializeEventSystem(); + elem.releaseCapture(); +} + +function setCapture_0(elem){ + sCaptureElem = elem; + $maybeInitializeEventSystem(); + elem.setCapture(); +} + +function sinkEvents_1(elem, eventBits){ + $maybeInitializeEventSystem(); + $sinkEventsImpl(elem, eventBits); +} + +var handlers_0; +function $revive(this$static){ + this$static.dead = false; + this$static.source = null; + this$static.isCanceled = false; + this$static.isConsumed = false; + this$static.isFirstHandler = true; + this$static.nativeEvent = null; +} + +function $setNativeEvent_0(this$static, nativeEvent){ + this$static.nativeEvent = nativeEvent; +} + +function Event$NativePreviewEvent(){ +} + +function fire_4(handlers, nativeEvent){ + var lastIsCanceled, lastIsConsumed, lastIsFirstHandler, lastNativeEvent, ret; + if (!!TYPE_20 && !!handlers && $isEventHandled(handlers, TYPE_20)) { + lastIsCanceled = singleton.isCanceled; + lastIsConsumed = singleton.isConsumed; + lastIsFirstHandler = singleton.isFirstHandler; + lastNativeEvent = singleton.nativeEvent; + $revive(singleton); + $setNativeEvent_0(singleton, nativeEvent); + $fireEvent_0(handlers, singleton); + ret = !(singleton.isCanceled && !singleton.isConsumed); + singleton.isCanceled = lastIsCanceled; + singleton.isConsumed = lastIsConsumed; + singleton.isFirstHandler = lastIsFirstHandler; + singleton.nativeEvent = lastNativeEvent; + return ret; + } + return true; +} + +defineClass(474, 955, {}, Event$NativePreviewEvent); +_.dispatch = function dispatch_20(handler){ + handler.onPreviewNativeEvent(this); + singleton.isFirstHandler = false; +} +; +_.getAssociatedType = function getAssociatedType_21(){ + return TYPE_20; +} +; +_.revive = function revive_0(){ + $revive(this); +} +; +_.isCanceled = false; +_.isConsumed = false; +_.isFirstHandler = false; +var TYPE_20, singleton; +var Lcom_google_gwt_user_client_Event$NativePreviewEvent_2_classLit = createForClass('com.google.gwt.user.client', 'Event/NativePreviewEvent', 474); +function $clinit_History(){ + $clinit_History = emptyMethod; + new History$HistoryImplIE8; + historyEventSource = new History$HistoryEventSource; + token = getDecodedHash(); +} + +function addValueChangeHandler(handler){ + $clinit_History(); + return $addValueChangeHandler(historyEventSource, handler); +} + +function getDecodedHash(){ + var hashToken, href_0, hashLoc; + hashToken = (href_0 = $wnd.location.href , hashLoc = href_0.indexOf('#') , hashLoc > 0?href_0.substring(hashLoc):''); + if (hashToken == null || hashToken.length == 0) { + return ''; + } + return $decode(hashToken.substr(1)); +} + +function onHashChanged(){ + $clinit_History(); + var hashToken; + hashToken = getDecodedHash(); + if (!$equals_1(hashToken, token)) { + token = hashToken; + fire_3(historyEventSource, hashToken); + } +} + +var historyEventSource, token; +function $addValueChangeHandler(this$static, handler){ + return $addHandler_0(this$static.handlers, (!TYPE_19 && (TYPE_19 = new GwtEvent$Type) , TYPE_19), handler); +} + +function History$HistoryEventSource(){ + this.handlers = new HandlerManager(null); +} + +defineClass(882, 1, {200:1, 26:1}, History$HistoryEventSource); +_.fireEvent_0 = function fireEvent_1(event_0){ + $fireEvent_0(this.handlers, event_0); +} +; +var Lcom_google_gwt_user_client_History$HistoryEventSource_2_classLit = createForClass('com.google.gwt.user.client', 'History/HistoryEventSource', 882); +defineClass(883, 1, {}); +_.attachListener = function attachListener(){ + var handler = $entry(onHashChanged); + $wnd.addEventListener('hashchange', handler, false); +} +; +var Lcom_google_gwt_user_client_History$HistoryImpl_2_classLit = createForClass('com.google.gwt.user.client', 'History/HistoryImpl', 883); +function History$HistoryImplIE8(){ + this.attachListener(); +} + +defineClass(884, 883, {}, History$HistoryImplIE8); +_.attachListener = function attachListener_0(){ + var handler = $entry(onHashChanged); + var oldHandler = $wnd.onhashchange; + $wnd.onhashchange = function(){ + var ex; + try { + handler(); + } + catch (e) { + ex = e; + } + if (oldHandler != null) { + try { + oldHandler(); + } + catch (e) { + ex = ex || e; + } + } + if (ex != null) { + throw ex; + } + } + ; +} +; +var Lcom_google_gwt_user_client_History$HistoryImplIE8_2_classLit = createForClass('com.google.gwt.user.client', 'History/HistoryImplIE8', 884); +function $decode(toDecode){ + return $wnd.decodeURI(toDecode.replace('%23', '#')); +} + +function addCloseHandler(handler){ + maybeInitializeCloseHandlers(); + return addHandler(TYPE_17?TYPE_17:(TYPE_17 = new GwtEvent$Type), handler); +} + +function addHandler(type_0, handler){ + return $addHandler_0((!handlers_1 && (handlers_1 = new Window$WindowHandlers) , handlers_1), type_0, handler); +} + +function addResizeHandler(handler){ + maybeInitializeCloseHandlers(); + maybeInitializeResizeHandlers(); + return addHandler((!TYPE_18 && (TYPE_18 = new GwtEvent$Type) , TYPE_18), handler); +} + +function alert_0(msg){ + $wnd.alert(msg); +} + +function confirm_2(msg){ + return $wnd.confirm(msg); +} + +function maybeInitializeCloseHandlers(){ + if (!closeHandlersInitialized) { + $initHandler('function __gwt_initWindowCloseHandler(beforeunload, unload) {\n var wnd = window\n , oldOnBeforeUnload = wnd.onbeforeunload\n , oldOnUnload = wnd.onunload;\n \n wnd.onbeforeunload = function(evt) {\n var ret, oldRet;\n try {\n ret = beforeunload();\n } finally {\n oldRet = oldOnBeforeUnload && oldOnBeforeUnload(evt);\n }\n // Avoid returning null as IE6 will coerce it into a string.\n // Ensure that "" gets returned properly.\n if (ret != null) {\n return ret;\n }\n if (oldRet != null) {\n return oldRet;\n }\n // returns undefined.\n };\n \n wnd.onunload = function(evt) {\n try {\n unload();\n } finally {\n oldOnUnload && oldOnUnload(evt);\n wnd.onresize = null;\n wnd.onscroll = null;\n wnd.onbeforeunload = null;\n wnd.onunload = null;\n }\n };\n \n // Remove the reference once we\'ve initialize the handler\n wnd.__gwt_initWindowCloseHandler = undefined;\n}\n', new WindowImplIE$1); + closeHandlersInitialized = true; + } +} + +function maybeInitializeResizeHandlers(){ + if (!resizeHandlersInitialized) { + $initHandler("function __gwt_initWindowResizeHandler(resize) {\n var wnd = window, oldOnResize = wnd.onresize;\n \n wnd.onresize = function(evt) {\n try {\n resize();\n } finally {\n oldOnResize && oldOnResize(evt);\n }\n };\n \n // Remove the reference once we've initialize the handler\n wnd.__gwt_initWindowResizeHandler = undefined;\n}\n", new WindowImplIE$2); + resizeHandlersInitialized = true; + } +} + +function onClosed(){ + closeHandlersInitialized && fire_1((!handlers_1 && (handlers_1 = new Window$WindowHandlers) , handlers_1), false); +} + +function onClosing(){ + var event_0; + if (closeHandlersInitialized) { + event_0 = new Window$ClosingEvent; + !!handlers_1 && $fireEvent_0(handlers_1, event_0); + return event_0.message_0; + } + return null; +} + +function onResize_0(){ + var height, width_0; + if (resizeHandlersInitialized) { + width_0 = $getClientWidth($doc); + height = $getClientHeight($doc); + if (lastResizeWidth != width_0 || lastResizeHeight != height) { + lastResizeWidth = width_0; + lastResizeHeight = height; + fire_2((!handlers_1 && (handlers_1 = new Window$WindowHandlers) , handlers_1), width_0); + } + } +} + +var closeHandlersInitialized = false, handlers_1, lastResizeHeight = 0, lastResizeWidth = 0, resizeHandlersInitialized = false; +function $clinit_Window$ClosingEvent(){ + $clinit_Window$ClosingEvent = emptyMethod; + TYPE_21 = new GwtEvent$Type; +} + +function $dispatch(this$static){ + null.$_nullField && !($wnd.openFile != undefined) && $setMessage(this$static, LS('Are you sure? There are unsaved changes.')); +} + +function $setMessage(this$static, message){ + this$static.message_0 = message; +} + +function Window$ClosingEvent(){ + $clinit_Window$ClosingEvent(); +} + +defineClass(476, 955, {}, Window$ClosingEvent); +_.dispatch = function dispatch_21(handler){ + var lastArg; + $dispatch((lastArg = this , handler , lastArg)); +} +; +_.getAssociatedType = function getAssociatedType_22(){ + return TYPE_21; +} +; +_.message_0 = null; +var TYPE_21; +var Lcom_google_gwt_user_client_Window$ClosingEvent_2_classLit = createForClass('com.google.gwt.user.client', 'Window/ClosingEvent', 476); +function Window$WindowHandlers(){ + HandlerManager.call(this, null); +} + +defineClass(279, 203, {64:1, 26:1}, Window$WindowHandlers); +var Lcom_google_gwt_user_client_Window$WindowHandlers_2_classLit = createForClass('com.google.gwt.user.client', 'Window/WindowHandlers', 279); +function $eventGetTypeInt(eventType){ + switch (eventType) { + case 'blur': + return $intern_42; + case 'change': + return $intern_24; + case 'click': + return 1; + case 'dblclick': + return 2; + case 'focus': + return $intern_43; + case 'keydown': + return 128; + case 'keypress': + return 256; + case 'keyup': + return 512; + case 'load': + return $intern_44; + case 'losecapture': + return 8192; + case 'mousedown': + return 4; + case 'mousemove': + return 64; + case 'mouseout': + return 32; + case 'mouseover': + return 16; + case 'mouseup': + return 8; + case 'scroll': + return $intern_45; + case 'error': + return $intern_46; + case 'DOMMouseScroll': + case 'mousewheel': + return $intern_47; + case 'contextmenu': + return $intern_48; + case 'paste': + return $intern_29; + case 'touchstart': + return $intern_49; + case 'touchmove': + return $intern_50; + case 'touchend': + return $intern_30; + case 'touchcancel': + return 8388608; + case 'gesturestart': + return $intern_51; + case 'gesturechange': + return 33554432; + case 'gestureend': + return $intern_52; + default:return -1; + } +} + +function $maybeInitializeEventSystem(){ + if (!eventSystemIsInitialized) { + $initEventSystem(); + eventSystemIsInitialized = true; + } +} + +function getEventListener_0(elem){ + var maybeListener = elem.__listener; + return !instanceOfJso(maybeListener) && instanceOf(maybeListener, 28)?maybeListener:null; +} + +function setEventListener(elem, listener){ + elem.__listener = listener; +} + +var eventSystemIsInitialized = false; +function $initEventSystem(){ + $wnd.__gwt_globalEventArray == null && ($wnd.__gwt_globalEventArray = new Array); + $wnd.__gwt_globalEventArray[$wnd.__gwt_globalEventArray.length] = $entry(function(){ + return previewEvent($wnd.event); + } + ); + var dispatchEvent_0 = $entry(function(){ + var oldEventTarget = currentEventTarget; + currentEventTarget = this; + if ($wnd.event.returnValue == null) { + $wnd.event.returnValue = true; + if (!previewEventImpl()) { + currentEventTarget = oldEventTarget; + return; + } + } + var getEventListener = getEventListener_0; + var listener, curElem = this; + while (curElem && !(listener = getEventListener(curElem))) { + curElem = curElem.parentElement; + } + listener && dispatchEvent_1($wnd.event, curElem, listener); + currentEventTarget = oldEventTarget; + } + ); + var dispatchDblClickEvent = $entry(function(){ + var newEvent = $doc.createEventObject(); + $wnd.event.returnValue == null && $wnd.event.srcElement.fireEvent && $wnd.event.srcElement.fireEvent('onclick', newEvent); + if (this.__eventBits & 2) { + dispatchEvent_0.call(this); + } + else if ($wnd.event.returnValue == null) { + $wnd.event.returnValue = true; + previewEventImpl(); + } + } + ); + var dispatchUnhandledEvent = $entry(function(){ + this.__gwtLastUnhandledEvent = $wnd.event.type; + dispatchEvent_0.call(this); + } + ); + var moduleName = ($clinit_Impl() , $moduleName).replace(/\./g, '_'); + $wnd['__gwt_dispatchEvent_' + moduleName] = dispatchEvent_0; + callDispatchEvent = (new Function('w', 'return function() { w.__gwt_dispatchEvent_' + moduleName + '.call(this) }'))($wnd); + $wnd['__gwt_dispatchDblClickEvent_' + moduleName] = dispatchDblClickEvent; + callDispatchDblClickEvent = (new Function('w', 'return function() { w.__gwt_dispatchDblClickEvent_' + moduleName + '.call(this)}'))($wnd); + $wnd['__gwt_dispatchUnhandledEvent_' + moduleName] = dispatchUnhandledEvent; + callDispatchUnhandledEvent = (new Function('w', 'return function() { w.__gwt_dispatchUnhandledEvent_' + moduleName + '.call(this)}'))($wnd); + callDispatchOnLoadEvent = (new Function('w', 'return function() { w.__gwt_dispatchUnhandledEvent_' + moduleName + '.call(w.event.srcElement)}'))($wnd); + var bodyDispatcher = $entry(function(){ + dispatchEvent_0.call($doc.body); + } + ); + var bodyDblClickDispatcher = $entry(function(){ + dispatchDblClickEvent.call($doc.body); + } + ); + $doc.body.attachEvent('onclick', bodyDispatcher); + $doc.body.attachEvent('onmousedown', bodyDispatcher); + $doc.body.attachEvent('onmouseup', bodyDispatcher); + $doc.body.attachEvent('onmousemove', bodyDispatcher); + $doc.body.attachEvent('onmousewheel', bodyDispatcher); + $doc.body.attachEvent('onkeydown', bodyDispatcher); + $doc.body.attachEvent('onkeypress', bodyDispatcher); + $doc.body.attachEvent('onkeyup', bodyDispatcher); + $doc.body.attachEvent('onfocus', bodyDispatcher); + $doc.body.attachEvent('onblur', bodyDispatcher); + $doc.body.attachEvent('ondblclick', bodyDblClickDispatcher); + $doc.body.attachEvent('oncontextmenu', bodyDispatcher); +} + +function $insertChild(parent_0, child, index_0){ + index_0 >= parent_0.children.length?parent_0.appendChild(child):parent_0.insertBefore(child, parent_0.children[index_0]); +} + +function $sinkEventsImpl(elem, bits){ + var chMask = (elem.__eventBits || 0) ^ bits; + elem.__eventBits = bits; + if (!chMask) + return; + chMask & 1 && (elem.onclick = bits & 1?callDispatchEvent:null); + chMask & 3 && (elem.ondblclick = bits & 3?callDispatchDblClickEvent:null); + chMask & 4 && (elem.onmousedown = bits & 4?callDispatchEvent:null); + chMask & 8 && (elem.onmouseup = bits & 8?callDispatchEvent:null); + chMask & 16 && (elem.onmouseover = bits & 16?callDispatchEvent:null); + chMask & 32 && (elem.onmouseout = bits & 32?callDispatchEvent:null); + chMask & 64 && (elem.onmousemove = bits & 64?callDispatchEvent:null); + chMask & 128 && (elem.onkeydown = bits & 128?callDispatchEvent:null); + chMask & 256 && (elem.onkeypress = bits & 256?callDispatchEvent:null); + chMask & 512 && (elem.onkeyup = bits & 512?callDispatchEvent:null); + chMask & $intern_24 && (elem.onchange = bits & $intern_24?callDispatchEvent:null); + chMask & $intern_43 && (elem.onfocus = bits & $intern_43?callDispatchEvent:null); + chMask & $intern_42 && (elem.onblur = bits & $intern_42?callDispatchEvent:null); + chMask & 8192 && (elem.onlosecapture = bits & 8192?callDispatchEvent:null); + chMask & $intern_45 && (elem.onscroll = bits & $intern_45?callDispatchEvent:null); + chMask & $intern_44 && (elem.nodeName == 'IFRAME'?bits & $intern_44?elem.attachEvent('onload', callDispatchOnLoadEvent):elem.detachEvent('onload', callDispatchOnLoadEvent):(elem.onload = bits & $intern_44?callDispatchUnhandledEvent:null)); + chMask & $intern_46 && (elem.onerror = bits & $intern_46?callDispatchEvent:null); + chMask & $intern_47 && (elem.onmousewheel = bits & $intern_47?callDispatchEvent:null); + chMask & $intern_48 && (elem.oncontextmenu = bits & $intern_48?callDispatchEvent:null); + chMask & $intern_29 && (elem.onpaste = bits & $intern_29?callDispatchEvent:null); +} + +function previewEventImpl(){ + var isCancelled = false; + for (var i = 0; i < $wnd.__gwt_globalEventArray.length; i++) { + !$wnd.__gwt_globalEventArray[i]() && (isCancelled = true); + } + return !isCancelled; +} + +var callDispatchDblClickEvent, callDispatchEvent, callDispatchOnLoadEvent, callDispatchUnhandledEvent; +function $get(this$static, elem){ + var index_0; + index_0 = getIndex(elem); + if (index_0 < 0) { + return null; + } + return $get_2(this$static.uiObjectList, index_0); +} + +function $put(this$static, uiObject){ + var index_0; + if (!this$static.freeList) { + index_0 = this$static.uiObjectList.array.length; + $add_8(this$static.uiObjectList, uiObject); + } + else { + index_0 = this$static.freeList.index_0; + $set_1(this$static.uiObjectList, index_0, uiObject); + this$static.freeList = this$static.freeList.next_0; + } + uiObject.element['__uiObjectID'] = index_0; +} + +function $removeByElement(this$static, elem){ + var index_0; + index_0 = getIndex(elem); + elem['__uiObjectID'] = null; + $set_1(this$static.uiObjectList, index_0, null); + this$static.freeList = new ElementMapperImpl$FreeNode(index_0, this$static.freeList); +} + +function ElementMapperImpl(){ + this.uiObjectList = new ArrayList; +} + +function getIndex(elem){ + var index_0 = elem['__uiObjectID']; + return index_0 == null?-1:index_0; +} + +defineClass(796, 1, {}, ElementMapperImpl); +_.freeList = null; +var Lcom_google_gwt_user_client_impl_ElementMapperImpl_2_classLit = createForClass('com.google.gwt.user.client.impl', 'ElementMapperImpl', 796); +function ElementMapperImpl$FreeNode(index_0, next){ + this.index_0 = index_0; + this.next_0 = next; +} + +defineClass(797, 1, {}, ElementMapperImpl$FreeNode); +_.index_0 = 0; +var Lcom_google_gwt_user_client_impl_ElementMapperImpl$FreeNode_2_classLit = createForClass('com.google.gwt.user.client.impl', 'ElementMapperImpl/FreeNode', 797); +function $initHandler(initFunc, cmd){ + var scriptElem; + scriptElem = $createScriptElement($doc, initFunc); + $appendChild($doc.body, scriptElem); + cmd.execute_1(); + $removeChild($doc.body, scriptElem); +} + +function WindowImplIE$1(){ +} + +defineClass(549, 1, {}, WindowImplIE$1); +_.execute_1 = function execute_5(){ + $wnd.__gwt_initWindowCloseHandler($entry(onClosing), $entry(onClosed)); +} +; +var Lcom_google_gwt_user_client_impl_WindowImplIE$1_2_classLit = createForClass('com.google.gwt.user.client.impl', 'WindowImplIE/1', 549); +function WindowImplIE$2(){ +} + +defineClass(550, 1, {}, WindowImplIE$2); +_.execute_1 = function execute_6(){ + $wnd.__gwt_initWindowResizeHandler($entry(onResize_0)); +} +; +var Lcom_google_gwt_user_client_impl_WindowImplIE$2_2_classLit = createForClass('com.google.gwt.user.client.impl', 'WindowImplIE/2', 550); +function $adopt(this$static, child){ + $setParent(child, this$static); +} + +defineClass(958, 25, $intern_53); +_.doAttachChildren = function doAttachChildren_0(){ + tryCommand(this, ($clinit_AttachDetachException() , attachCommand)); +} +; +_.doDetachChildren = function doDetachChildren_0(){ + tryCommand(this, ($clinit_AttachDetachException() , detachCommand)); +} +; +var Lcom_google_gwt_user_client_ui_Panel_2_classLit = createForClass('com.google.gwt.user.client.ui', 'Panel', 958); +function $add(this$static, child, container){ + $removeFromParent(child); + $add_6(this$static.children_0, child); + $appendChild(container, resolve(child.element)); + $setParent(child, this$static); +} + +function $adjustIndex(this$static, child, beforeIndex){ + var idx; + $checkIndexBoundsForInsertion(this$static, beforeIndex); + if (child.parent_0 == this$static) { + idx = $indexOf(this$static.children_0, child); + idx < beforeIndex && --beforeIndex; + } + return beforeIndex; +} + +function $checkIndexBoundsForInsertion(this$static, index_0){ + if (index_0 < 0 || index_0 > this$static.children_0.size_0) { + throw toJs(new IndexOutOfBoundsException); + } +} + +function $getWidgetIndex(this$static, child){ + return $indexOf(this$static.children_0, child); +} + +function $insert(this$static, child, container, beforeIndex){ + beforeIndex = $adjustIndex(this$static, child, beforeIndex); + $removeFromParent(child); + $insert_3(this$static.children_0, child, beforeIndex); + $appendChild(container, resolve(child.element)); + $setParent(child, this$static); +} + +function $remove(this$static, index_0){ + return $remove_4(this$static, $get_0(this$static.children_0, index_0)); +} + +function $remove_0(this$static, w){ + var elem; + if (w.parent_0 != this$static) { + return false; + } + try { + $setParent(w, null); + } + finally { + elem = w.element; + $removeChild($getParentElement(elem), elem); + $remove_6(this$static.children_0, w); + } + return true; +} + +function ComplexPanel(){ + this.children_0 = new WidgetCollection(this); +} + +defineClass(230, 958, $intern_53); +_.iterator = function iterator_0(){ + return new WidgetCollection$WidgetIterator(this.children_0); +} +; +_.remove_0 = function remove_0(w){ + return $remove_0(this, w); +} +; +var Lcom_google_gwt_user_client_ui_ComplexPanel_2_classLit = createForClass('com.google.gwt.user.client.ui', 'ComplexPanel', 230); +function $add_0(this$static, w){ + $add(this$static, w, this$static.element); +} + +function $remove_1(this$static, w){ + var removed; + removed = $remove_0(this$static, w); + removed && changeToStaticPositioning(w.element); + return removed; +} + +function changeToStaticPositioning(elem){ + elem.style['left'] = ''; + elem.style['top'] = ''; + elem.style['position'] = ''; +} + +defineClass(653, 230, $intern_53); +_.remove_0 = function remove_1(w){ + return $remove_1(this, w); +} +; +var Lcom_google_gwt_user_client_ui_AbsolutePanel_2_classLit = createForClass('com.google.gwt.user.client.ui', 'AbsolutePanel', 653); +function create_1(resource){ + return new ClippedImagePrototype(resource.url_0, resource.left_0, resource.top_0, resource.width_0, resource.height); +} + +defineClass(972, 1, {}); +var Lcom_google_gwt_user_client_ui_AbstractImagePrototype_2_classLit = createForClass('com.google.gwt.user.client.ui', 'AbstractImagePrototype', 972); +function $clinit_HasHorizontalAlignment(){ + $clinit_HasHorizontalAlignment = emptyMethod; + ALIGN_CENTER = new HasHorizontalAlignment$HorizontalAlignmentConstant(($clinit_Style$TextAlign() , 'center')); + new HasHorizontalAlignment$HorizontalAlignmentConstant('justify'); + ALIGN_LEFT = new HasHorizontalAlignment$HorizontalAlignmentConstant('left'); + ALIGN_RIGHT = new HasHorizontalAlignment$HorizontalAlignmentConstant('right'); + ALIGN_LOCALE_START = ($clinit_LocaleInfo() , ALIGN_LEFT); + ALIGN_LOCALE_END = ALIGN_RIGHT; + ALIGN_DEFAULT = ALIGN_LOCALE_START; +} + +var ALIGN_CENTER, ALIGN_DEFAULT, ALIGN_LEFT, ALIGN_LOCALE_END, ALIGN_LOCALE_START, ALIGN_RIGHT; +function Anchor_0(text_0, href_0){ + $setElement(this, $createElement($doc, 'a')); + this.element.className = 'gwt-Anchor'; + this.directionalTextHelper = new DirectionalTextHelper(this.element); + $setTextOrHtml(this.directionalTextHelper, text_0, false); + $setHref(this.element, href_0); +} + +defineClass(191, 81, {72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 26:1, 133:1, 58:1, 28:1, 81:1, 118:1, 241:1, 218:1, 104:1, 117:1, 57:1, 138:1, 51:1, 23:1, 198:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}, Anchor_0); +_.getTabIndex = function getTabIndex_0(){ + return this.element.tabIndex; +} +; +_.setTabIndex = function setTabIndex_0(index_0){ + $setTabIndex(this.element, index_0); +} +; +var Lcom_google_gwt_user_client_ui_Anchor_2_classLit = createForClass('com.google.gwt.user.client.ui', 'Anchor', 191); +function $clinit_AttachDetachException(){ + $clinit_AttachDetachException = emptyMethod; + attachCommand = new AttachDetachException$1; + detachCommand = new AttachDetachException$2; +} + +function AttachDetachException(causes){ + UmbrellaException_0.call(this, causes); +} + +function tryCommand(hasWidgets, c){ + $clinit_AttachDetachException(); + var caught, e, w, w$iterator; + caught = null; + for (w$iterator = hasWidgets.iterator(); w$iterator.hasNext_0();) { + w = w$iterator.next_1(); + try { + c.execute_2(w); + } + catch ($e0) { + $e0 = toJava($e0); + if (instanceOf($e0, 39)) { + e = $e0; + !caught && (caught = new HashSet); + $put_0(caught.map_0, e, caught); + } + else + throw toJs($e0); + } + } + if (caught) { + throw toJs(new AttachDetachException(caught)); + } +} + +defineClass(555, 326, $intern_19, AttachDetachException); +var attachCommand, detachCommand; +var Lcom_google_gwt_user_client_ui_AttachDetachException_2_classLit = createForClass('com.google.gwt.user.client.ui', 'AttachDetachException', 555); +function AttachDetachException$1(){ +} + +defineClass(556, 1, {}, AttachDetachException$1); +_.execute_2 = function execute_7(w){ + w.onAttach(); +} +; +var Lcom_google_gwt_user_client_ui_AttachDetachException$1_2_classLit = createForClass('com.google.gwt.user.client.ui', 'AttachDetachException/1', 556); +function AttachDetachException$2(){ +} + +defineClass(557, 1, {}, AttachDetachException$2); +_.execute_2 = function execute_8(w){ + w.onDetach(); +} +; +var Lcom_google_gwt_user_client_ui_AttachDetachException$2_2_classLit = createForClass('com.google.gwt.user.client.ui', 'AttachDetachException/2', 557); +function $setHTML(this$static, html){ + $setInnerHTML(this$static.element, html); +} + +function ButtonBase(elem){ + FocusWidget.call(this, elem); +} + +defineClass(184, 81, {72:1, 121:1, 95:1, 124:1, 86:1, 99:1, 123:1, 70:1, 71:1, 73:1, 74:1, 76:1, 75:1, 77:1, 78:1, 79:1, 122:1, 97:1, 98:1, 96:1, 126:1, 127:1, 125:1, 87:1, 91:1, 89:1, 90:1, 88:1, 92:1, 103:1, 102:1, 101:1, 100:1, 29:1, 26:1, 58:1, 28:1, 184:1, 81:1, 118:1, 104:1, 117:1, 57:1, 51:1, 23:1, 30:1, 93:1, 119:1, 120:1, 94:1, 21:1, 25:1}); +var Lcom_google_gwt_user_client_ui_ButtonBase_2_classLit = createForClass('com.google.gwt.user.client.ui', 'ButtonBase', 184); +function Button(){ + ButtonBase.call(this, $doc.createElement("