commit beb7155b4a887df640d2e1ddc5523d8bba85b005 Author: Simon Forman Date: Sat Apr 14 18:13:13 2018 -0700 Initial move of code from git repo. diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000..6114b72 --- /dev/null +++ b/MANIFEST @@ -0,0 +1,14 @@ +# file GENERATED by distutils, do NOT edit +COPYING +README +setup.py +archive/Joy-Programming.zip +archive/README +joy/__init__.py +joy/__main__.py +joy/joy.py +joy/library.py +joy/parser.py +joy/utils/__init__.py +joy/utils/pretty_print.py +joy/utils/stack.py diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..8bd646c --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,3 @@ +include archive/* +include COPYING +recursive-include joy *.py diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dea37d2 --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +# My make-fu style is old and tired. I just want to have a few helper commands. + +TESTDIR = ./test00 + +.PHONY: clean sdist test docs + + +clean: + $(RM) -r Joypy.egg-info/ dist/ $(TESTDIR) + find . -name '*.pyc' | xargs $(RM) + +sdist: + python ./setup.py sdist + +test: sdist + $(RM) -r $(TESTDIR) + virtualenv --system-site-packages --never-download $(TESTDIR) + . $(TESTDIR)/bin/activate && \ + pip install --no-cache-dir --no-index ./dist/Joypy-0.1.tar.gz + echo "Type: source $(TESTDIR)/bin/activate" + + +docs: + cd ./docs && python -m nbconvert --to html *.ipynb + cd ./docs && python -m nbconvert --to markdown *.ipynb diff --git a/README b/README new file mode 100644 index 0000000..13ee8d6 --- /dev/null +++ b/README @@ -0,0 +1,237 @@ + ____ ____ _ _____ _____ + | _ \| _ \ / \ | ___|_ _| + | | | | |_) | / A \ | |_ | | + | |_| | _ < / ___ \| _| | | + |____/|_| \_\_/ \_\_| |_| + +-------------------------------------------------- + + + Joypy + + A dialect of Joy in Python. + + +-------------------------------------------------- + + +Copyright © 2014, 2015, 2017 Simon Forman + +This file is part of Joypy + +Joypy is free software: you can redistribute it and/or modify it under the +terms of the GNU General Public License as published by the Free Software +Foundation, either version 3 of the License, or (at your option) any later +version. + +Joypy 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 +Joypy. If not see . + + +-------------------------------------------------- + + +§ Introduction + +Joy is a programming language created by Manfred von Thun that is easy to +use and understand and has many other nice properties. This Python +package implements an interpreter for a dialect of Joy that attempts to +stay very close to the spirit of Joy but does not precisely match the +behaviour of the original version(s) written in C. + +The main difference between Joypy and the originals, other than being +written in Python, is that it works by the "Continuation-Passing Style". +In Joy, control-flow is done by combinators that expect quoted programs +on the stack and execute them in various ways. In Joypy they work by +changing the pending expression that the interpreter is about to execute. +In concrete terms, the combinators could work by making recursive calls +to the interpreter and all intermediate state would be held in the call +stack of the implementation language, in this Joypy implementation they +work instead by changing the pending expression and intermediate state +is put there. + +As I study Joy I find that it is very aptly named. It is clear, concise, +and ameniable to advanced techniques for constructing bug-free software. + +Developed by Manfred von Thun, don't know much about him, not much on +the web about Joy and von Thun (Von Thun?) See references below. + +Because it has desirable properties (concise, highly factored) the +programming process changes, the ratio of designing to writing code +shifts in favor of design. The documentation becomes extensive while +the code shrinks to stable bodies of small well-factored incantations +that are highly expressive, much like mathematical papers consist of +large bodies of exposition interlaced with mathematical formula that +concisely and precisely express the meaning of the text. + +The time and attention of the programmer shifts from thinking about the +language to thinking in the language, and the development process feels +more like deriving mathematical truths than like writing ad-hoc +solutions. + +I hope that this package is useful in the sense that it provides an +additional joy interpreter (the binary in the archive from La Trobe seems +to run just fine on my modern Linux machine!) But I also hope that you +can read and understand the Python code and play with the implementation +itself. + +The best source (no pun intended) for learning about Joy is the +information made available at the website of La Trobe University (see the +references section below for the URL) which contains source code for the +original C interpreter, Joy language source code for various functions, +and a great deal of fascinating material mostly written by Von Thun on +Joy and its deeper facets as well as how to program in it and several +interesting aspects. It's quite a treasure trove. + + +§ Installation + +From PyPI in the usual way, e.g.: + + pip install joypy + +Or if you have downloaded the source, from the joypy directory: + + python ./setup.py install + +Or you can run the module from the joypy directory (see below.) + +To start a crude REPL: + + python -m joy + + +§ Basics of Joy + +Joy is stack-based. There is a main stack that holds data items: +integers, floats, strings, functions, and sequences or quotes which hold +data items themselves. + + 23 1.8 'a string' "another" dup [21 18 /] [1 [2 [3]]] + +A Joy expression is just a sequence of items, also called lists. +Sequences intended as programs are called "quoted programs". The +evaluation proceeds by iterating through the terms in the expression, +putting all literals onto the main stack and executing functions as they +are encountered. Functions receive the current stack and return the next +stack. + +The main loop is very simple as most of the action happens through what +are called "combinators", which accept quoted programs on the stack and +run them in various ways. These combinators factor specific patterns +that provide the effect of control-flow in other languages (such as ifte +which is like if..then..else..) Combinators receive the current +expession in addition to the stack and return the next expression. As +mentioned above, the combinators in Joypy work by changing the pending +expression before returning it. + +In general, where otherwise unspecified, the semantics of Joypy are that +of the underlying Python. That means, for example, that integers are +unbounded (whatever your machine can handle), strings cannot be added to +integers but can be multiplied, Boolean True and False are effectively +identical to ints 1 and 0, empty sequences are considered False, etc. + +Nothing is done about Python exceptions currently, although it would be +possible to capture the stack and expression just before the exception +and build a robust and flexible error handler. Because they are both +just datastructures, you could immediately retry them under a debugger, +or edit either or both of the stack and expression. All state is in one +or the other. + +§ Literals and Simple Functions + + joy? 1 2 3 + -> 3 2 1 + + joy? + + -> 5 1 + + joy? + + -> 6 + + joy? 7 + -> 7 6 + + joy? * + -> 42 + + joy? + + +§ Simple Combinators + + joy? 23 [0 >] [dup --] while + + -> 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 + + +TODO: + +§ Definitions and More Elaborate Functions + Refactoring + +§ Programming and Metaprogramming + +§ Further Reading + + +-------------------------------------------------- + + +This Implementation + +Run with: + + python -m joy + +joypy + |-- COPYING - license + |-- README - this file + | + |-- archive - info on Joy + | |-- Joy-Programming.zip + | `-- README + | + |-- docs - Various Examples and Demos + | |-- * - Jupyter Notebooks on Joypy and supporting modules + | `-- README - Table of Contents + | + |-- joy + | |-- joy.py - main loop, REPL + | |-- library.py - Functions, Combinators, Definitions + | |-- parser.py - convert text to Joy datastructures + | | + | `-- utils + | |-- pretty_print.py - convert Joy datastructures to text + | `-- stack.py - work with stacks + | + `-- setup.py + + +-------------------------------------------------- + + +References + + +Wikipedia entry for Joy: +https://en.wikipedia.org/wiki/Joy_%28programming_language%29 + + +Homepage at La Trobe University: +http://www.latrobe.edu.au/humanities/research/research-projects/past-projects/joy-programming-language + + +Misc... + +Stack based - literals (as functions) - functions - combinators - +Refactoring and making new definitions - traces and comparing +performance - metaprogramming as programming, even the lowly integer +range function can be expressed in two phases: building a specialized +program and then executing it with a combinator - ?Partial evaluation? +- ?memoized dynamic dependency graphs? - algebra + diff --git a/archive/Joy-Programming.zip b/archive/Joy-Programming.zip new file mode 100644 index 0000000..8ff99e7 Binary files /dev/null and b/archive/Joy-Programming.zip differ diff --git a/archive/README b/archive/README new file mode 100644 index 0000000..b50e9d8 --- /dev/null +++ b/archive/README @@ -0,0 +1,4 @@ +This directory contains a copy of the material available from La Trobe +distributed in accordance with their respective licenses. + + Joy-Programming.zip - Material on Joy from Manfred von Thun, et. al. diff --git a/build/lib/joy/__init__.py b/build/lib/joy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib/joy/__main__.py b/build/lib/joy/__main__.py new file mode 100644 index 0000000..1b436bc --- /dev/null +++ b/build/lib/joy/__main__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +from .library import initialize +from .joy import repl + +print '''\ +Joypy - Copyright © 2017 Simon Forman +This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty". +This is free software, and you are welcome to redistribute it +under certain conditions; type "sharing" for details. +Type "words" to see a list of all words, and "[] help" to print the +docs for a word. +''' +stack = repl(dictionary=initialize()) diff --git a/build/lib/joy/joy.py b/build/lib/joy/joy.py new file mode 100644 index 0000000..aa04505 --- /dev/null +++ b/build/lib/joy/joy.py @@ -0,0 +1,125 @@ +# -*- coding: utf-8 -*- +''' + + +A dialect of Joy in Python. + + +Joy is a programming language created by Manfred von Thun that is easy to +use and understand and has many other nice properties. This Python script +is an interpreter for a dialect of Joy that attempts to stay very close +to the spirit of Joy but does not precisely match the behaviour of the +original version(s) written in C. A Tkinter GUI is provided as well. + + + Copyright © 2014, 2016, 2017 Simon Forman + + This file is part of Joypy. + + Joypy is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Joypy 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 Joypy. If not see . + + +§ joy() + +The basic joy() function is quite straightforward. It iterates through a +sequence of terms which are either literals (strings, numbers, sequences) +or functions. Literals are put onto the stack and functions are +executed. + +Every Joy function is an unary mapping from stacks to stacks. Even +literals are considered to be functions that accept a stack and return a +new stack with the literal value on top. + +Exports: + + joy(stack, expression, dictionary, viewer=None) + + run(text, stack, dictionary, viewer=None) + + repl(stack=(), dictionary=()) + +''' +from __future__ import print_function +try: + input = raw_input +except NameError: + pass +from traceback import print_exc, format_exc +from .parser import text_to_expression, ParseError, Symbol +from .utils.stack import stack_to_string +from .utils.pretty_print import TracePrinter + + +def joy(stack, expression, dictionary, viewer=None): + ''' + Evaluate the Joy expression on the stack. + ''' + while expression: + + if viewer: viewer(stack, expression) + + term, expression = expression + if isinstance(term, Symbol): + term = dictionary[term] + stack, expression, dictionary = term(stack, expression, dictionary) + else: + stack = term, stack + + if viewer: viewer(stack, expression) + return stack, expression, dictionary + + +def run(text, stack, dictionary, viewer=None): + ''' + Return the stack resulting from running the Joy code text on the stack. + ''' + try: + expression = text_to_expression(text) + except ParseError as err: + print('Err:', err.message) + return stack, (), dictionary + return joy(stack, expression, dictionary, viewer) + + +def repl(stack=(), dictionary=None): + ''' + Read-Evaluate-Print Loop + + Accept input and run it on the stack, loop. + ''' + if dictionary is None: + dictionary = {} + try: + while True: + print() + print(stack_to_string(stack), '<-top') + print() + try: + text = input('joy? ') + except (EOFError, KeyboardInterrupt): + break + viewer = TracePrinter() + try: + stack, _, dictionary = run(text, stack, dictionary, viewer.viewer) + except: + exc = format_exc() # Capture the exception. + viewer.print_() # Print the Joy trace. + print('-' * 73) + print(exc) # Print the original exception. + else: + viewer.print_() + except: + print_exc() + print() + return stack diff --git a/build/lib/joy/library.py b/build/lib/joy/library.py new file mode 100644 index 0000000..416a3e3 --- /dev/null +++ b/build/lib/joy/library.py @@ -0,0 +1,1295 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +from inspect import getdoc +import operator, math + +from .parser import text_to_expression, Symbol +from .utils.stack import list_to_stack, iter_stack, pick, pushback + + +ALIASES = ( + ('add', ['+']), + ('and', ['&']), + ('mul', ['*']), + ('truediv', ['/']), + ('mod', ['%', 'rem', 'remainder', 'modulus']), + ('eq', ['=']), + ('ge', ['>=']), + ('getitem', ['pick', 'at']), + ('gt', ['>']), + ('le', ['<=']), + ('lshift', ['<<']), + ('lt', ['<']), + ('ne', ['<>', '!=']), + ('rshift', ['>>']), + ('sub', ['-']), + ('xor', ['^']), + ('succ', ['++']), + ('pred', ['--']), + ('rolldown', ['roll<']), + ('rollup', ['roll>']), + ('id', ['•']), + ) + + +def add_aliases(D, A=ALIASES): + ''' + Given a dict and a iterable of (name, [alias, ...]) pairs, create + additional entries in the dict mapping each alias to the named function + if it's in the dict. Aliases for functions not in the dict are ignored. + ''' + for name, aliases in A: + try: + F = D[name] + except KeyError: + continue + for alias in aliases: + D[alias] = F + + +definitions = ('''\ +second == rest first +third == rest rest first +of == swap at +product == 1 swap [*] step +swons == swap cons +swoncat == swap concat +flatten == [] swap [concat] step +unit == [] cons +quoted == [unit] dip +unquoted == [i] dip +enstacken == stack [clear] dip +disenstacken == ? [uncons ?] loop pop +? == dup truthy +dinfrirst == dip infra first +nullary == [stack] dinfrirst +unary == [stack [pop] dip] dinfrirst +binary == [stack [popop] dip] dinfrirst +ternary == [stack [popop pop] dip] dinfrirst +pam == [i] map +run == [] swap infra +sqr == dup mul +size == 0 swap [pop ++] step +cleave == [i] app2 [popd] dip +average == [sum 1.0 *] [size] cleave / +gcd == 1 [tuck modulus dup 0 >] loop pop +least_fraction == dup [gcd] infra [div] concat map +*fraction == [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons +*fraction0 == concat [[swap] dip * [*] dip] infra +down_to_zero == [0 >] [dup --] while +range_to_zero == unit [down_to_zero] infra +anamorphism == [pop []] swap [dip swons] genrec +range == [0 <=] [1 - dup] anamorphism +while == swap [nullary] cons dup dipd concat loop +dudipd == dup dipd +primrec == [i] genrec +step_zero == 0 roll> step +''' + +##Zipper +##z-down == [] swap uncons swap +##z-up == swons swap shunt +##z-right == [swons] cons dip uncons swap +##z-left == swons [uncons swap] dip swap + +##Quadratic Formula +##divisor == popop 2 * +##minusb == pop neg +##radical == swap dup * rollup * 4 * - sqrt +##root1 == + swap / +##root2 == - swap / +##q0 == [[divisor] [minusb] [radical]] pam +##q1 == [[root1] [root2]] pam +##quadratic == [q0] ternary i [q1] ternary + +# Project Euler +##'''\ +##PE1.1 == + dup [+] dip +##PE1.2 == dup [3 & PE1.1] dip 2 >> +##PE1.3 == 14811 swap [PE1.2] times pop +##PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop +##''' +#PE1.2 == [PE1.1] step +#PE1 == 0 0 66 [[3 2 1 3 1 2 3] PE1.2] times [3 2 1 3] PE1.2 pop +) + + +class FunctionWrapper(object): + ''' + Allow functions to have a nice repr(). + + At some point it's likely this class and its subclasses would gain + machinery to support type checking and inference. + ''' + + def __init__(self, f): + self.f = f + self.name = f.__name__.rstrip('_') # Don't shadow builtins. + self.__doc__ = f.__doc__ or str(f) + + def __call__(self, stack, expression, dictionary): + ''' + Functions in general receive and return all three. + ''' + return self.f(stack, expression, dictionary) + + def __repr__(self): + return self.name + + +class SimpleFunctionWrapper(FunctionWrapper): + ''' + Wrap functions that take and return just a stack. + ''' + + def __call__(self, stack, expression, dictionary): + return self.f(stack), expression, dictionary + + +class BinaryBuiltinWrapper(FunctionWrapper): + ''' + Wrap functions that take two arguments and return a single result. + ''' + + def __call__(self, stack, expression, dictionary): + (a, (b, stack)) = stack + result = self.f(b, a) + return (result, stack), expression, dictionary + + +class UnaryBuiltinWrapper(FunctionWrapper): + ''' + Wrap functions that take one argument and return a single result. + ''' + + def __call__(self, stack, expression, dictionary): + (a, stack) = stack + result = self.f(a) + return (result, stack), expression, dictionary + + +class DefinitionWrapper(FunctionWrapper): + ''' + Provide implementation of defined functions, and some helper methods. + ''' + + def __init__(self, name, body_text, doc=None): + self.name = self.__name__ = name + self.body = text_to_expression(body_text) + self._body = tuple(iter_stack(self.body)) + self.__doc__ = doc or body_text + + def __call__(self, stack, expression, dictionary): + expression = list_to_stack(self._body, expression) + return stack, expression, dictionary + + @classmethod + def parse_definition(class_, defi): + ''' + Given some text describing a Joy function definition parse it and + return a DefinitionWrapper. + ''' + name, proper, body_text = (n.strip() for n in defi.partition('==')) + if not proper: + raise ValueError('Definition %r failed' % (defi,)) + return class_(name, body_text) + + @classmethod + def add_definitions(class_, defs, dictionary): + for definition in _text_to_defs(defs): + class_.add_def(definition, dictionary) + + @classmethod + def add_def(class_, definition, dictionary): + F = class_.parse_definition(definition) + dictionary[F.name] = F + + +def _text_to_defs(text): + return filter(None, (line.strip() for line in text.splitlines())) + + +# +# Functions +# + + +def parse((text, stack)): + '''Parse the string on the stack to a Joy expression.''' + expression = text_to_expression(text) + return expression, stack + + +def first(((head, tail), stack)): + '''first == uncons pop''' + return head, stack + + +def rest(((head, tail), stack)): + '''rest == uncons popd''' + return tail, stack + + +def truthy(stack): + '''Coerce the item on the top of the stack to its Boolean value.''' + n, stack = stack + return bool(n), stack + + +def getitem(stack): + ''' + getitem == drop first + + Expects an integer and a quote on the stack and returns the item at the + nth position in the quote counting from 0. + + [a b c d] 0 getitem + ------------------------- + a + + ''' + n, (Q, stack) = stack + return pick(Q, n), stack + + +def drop(stack): + ''' + drop == [rest] times + + Expects an integer and a quote on the stack and returns the quote with + n items removed off the top. + + [a b c d] 2 drop + ---------------------- + [c d] + + ''' + n, (Q, stack) = stack + while n > 0: + try: + _, Q = Q + except ValueError: + raise IndexError + n -= 1 + return Q, stack + + +def take(stack): + ''' + Expects an integer and a quote on the stack and returns the quote with + just the top n items in reverse order (because that's easier and you can + use reverse if needed.) + + [a b c d] 2 take + ---------------------- + [b a] + + ''' + n, (Q, stack) = stack + x = () + while n > 0: + try: + item, Q = Q + except ValueError: + raise IndexError + x = item, x + n -= 1 + return x, stack + + +def choice(stack): + ''' + Use a Boolean value to select one of two items. + + A B False choice + ---------------------- + A + + + A B True choice + --------------------- + B + + Currently Python semantics are used to evaluate the "truthiness" of the + Boolean value (so empty string, zero, etc. are counted as false, etc.) + ''' + (if_, (then, (else_, stack))) = stack + return then if if_ else else_, stack + + +def select(stack): + ''' + Use a Boolean value to select one of two items from a sequence. + + [A B] False select + ------------------------ + A + + + [A B] True select + ----------------------- + B + + The sequence can contain more than two items but not fewer. + Currently Python semantics are used to evaluate the "truthiness" of the + Boolean value (so empty string, zero, etc. are counted as false, etc.) + ''' + (flag, (choices, stack)) = stack + (else_, (then, _)) = choices + return then if flag else else_, stack + + +def max_(S): + '''Given a list find the maximum.''' + tos, stack = S + return max(iter_stack(tos)), stack + + +def min_(S): + '''Given a list find the minimum.''' + tos, stack = S + return min(iter_stack(tos)), stack + + +def sum_(S): + '''Given a quoted sequence of numbers return the sum. + + sum == 0 swap [+] step + ''' + tos, stack = S + return sum(iter_stack(tos)), stack + + +def remove(S): + ''' + Expects an item on the stack and a quote under it and removes that item + from the the quote. The item is only removed once. + + [1 2 3 1] 1 remove + ------------------------ + [2 3 1] + + ''' + (tos, (second, stack)) = S + l = list(iter_stack(second)) + l.remove(tos) + return list_to_stack(l), stack + + +def unique(S): + '''Given a list remove duplicate items.''' + tos, stack = S + I = list(iter_stack(tos)) + list_to_stack(sorted(set(I), key=I.index)) + return list_to_stack(sorted(set(I), key=I.index)), stack + + +def sort_(S): + '''Given a list return it sorted.''' + tos, stack = S + return list_to_stack(sorted(iter_stack(tos))), stack + + +def cons(S): + ''' + The cons operator expects a list on top of the stack and the potential + member below. The effect is to add the potential member into the + aggregate. + ''' + (tos, (second, stack)) = S + return (second, tos), stack + + +def uncons(S): + ''' + Inverse of cons, removes an item from the top of the list on the stack + and places it under the remaining list. + ''' + (tos, stack) = S + item, tos = tos + return tos, (item, stack) + + +def clear(stack): + '''Clear everything from the stack. + + ... clear + --------------- + + ''' + return () + + +def dup(S): + '''Duplicate the top item on the stack.''' + (tos, stack) = S + return tos, (tos, stack) + + +def over(S): + ''' + Copy the second item down on the stack to the top of the stack. + + a b over + -------------- + a b a + + ''' + second = S[1][0] + return second, S + + +def tuck(S): + ''' + Copy the item at TOS under the second item of the stack. + + a b tuck + -------------- + b a b + + ''' + (tos, (second, stack)) = S + return tos, (second, (tos, stack)) + + +def swap(S): + '''Swap the top two items on stack.''' + (tos, (second, stack)) = S + return second, (tos, stack) + + +def swaack(stack): + '''swap stack''' + old_stack, stack = stack + return stack, old_stack + + +def stack_(stack): + ''' + The stack operator pushes onto the stack a list containing all the + elements of the stack. + ''' + return stack, stack + + +def unstack(S): + ''' + The unstack operator expects a list on top of the stack and makes that + the stack discarding the rest of the stack. + ''' + (tos, stack) = S + return tos + + +def pop(S): + '''Pop and discard the top item from the stack.''' + (tos, stack) = S + return stack + + +def popd(S): + '''Pop and discard the second item from the stack.''' + (tos, (second, stack)) = S + return tos, stack + + +def popdd(S): + '''Pop and discard the third item from the stack.''' + (tos, (second, (third, stack))) = S + return tos, (second, stack) + + +def popop(S): + '''Pop and discard the first and second items from the stack.''' + (tos, (second, stack)) = S + return stack + + +def dupd(S): + '''Duplicate the second item on the stack.''' + (tos, (second, stack)) = S + return tos, (second, (second, stack)) + + +def reverse(S): + '''Reverse the list on the top of the stack. + + reverse == [] swap shunt + ''' + (tos, stack) = S + res = () + for term in iter_stack(tos): + res = term, res + return res, stack + + +def concat(S): + '''Concatinate the two lists on the top of the stack.''' + (tos, (second, stack)) = S + for term in reversed(list(iter_stack(second))): + tos = term, tos + return tos, stack + + +def shunt((tos, (second, stack))): + ''' + shunt == [swons] step + + Like concat but reverses the top list into the second. + ''' + while tos: + term, tos = tos + second = term, second + return second, stack + + +def zip_(S): + ''' + Replace the two lists on the top of the stack with a list of the pairs + from each list. The smallest list sets the length of the result list. + ''' + (tos, (second, stack)) = S + accumulator = [ + (a, (b, ())) + for a, b in zip(iter_stack(tos), iter_stack(second)) + ] + return list_to_stack(accumulator), stack + + +def succ(S): + '''Increment TOS.''' + (tos, stack) = S + return tos + 1, stack + + +def pred(S): + '''Decrement TOS.''' + (tos, stack) = S + return tos - 1, stack + + +def pm(stack): + ''' + Plus or minus + + a b pm + ------------- + a+b a-b + + ''' + a, (b, stack) = stack + p, m, = b + a, b - a + return m, (p, stack) + + +def floor(n): + return int(math.floor(n)) + +floor.__doc__ = math.floor.__doc__ + + +def divmod_(S): + a, (b, stack) = S + d, m = divmod(a, b) + return d, (m, stack) + +divmod_.__doc__ = divmod.__doc__ + + +def sqrt(a): + ''' + Return the square root of the number a. + Negative numbers return complex roots. + ''' + try: + r = math.sqrt(a) + except ValueError: + assert a < 0, repr(a) + r = math.sqrt(-a) * 1j + return r + + +def rollup(S): + '''a b c -> b c a''' + (a, (b, (c, stack))) = S + return b, (c, (a, stack)) + + +def rolldown(S): + '''a b c -> c a b''' + (a, (b, (c, stack))) = S + return c, (a, (b, stack)) + + +#def execute(S): +# (text, stack) = S +# if isinstance(text, str): +# return run(text, stack) +# return stack + + +def id_(stack): + return stack + + +def void(stack): + form, stack = stack + return _void(form), stack + + +def _void(form): + return any(not _void(i) for i in iter_stack(form)) + + + +## transpose +## sign +## take + + +def words(stack, expression, dictionary): + '''Print all the words in alphabetical order.''' + print(' '.join(sorted(dictionary))) + return stack, expression, dictionary + + +def sharing(stack, expression, dictionary): + '''Print redistribution information.''' + print("You may convey verbatim copies of the Program's source code as" + ' you receive it, in any medium, provided that you conspicuously' + ' and appropriately publish on each copy an appropriate copyright' + ' notice; keep intact all notices stating that this License and' + ' any non-permissive terms added in accord with section 7 apply' + ' to the code; keep intact all notices of the absence of any' + ' warranty; and give all recipients a copy of this License along' + ' with the Program.' + ' You should have received a copy of the GNU General Public License' + ' along with Joypy. If not see .') + return stack, expression, dictionary + + +def warranty(stack, expression, dictionary): + '''Print warranty information.''' + print('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.') + return stack, expression, dictionary + + +# def simple_manual(stack): +# ''' +# Print words and help for each word. +# ''' +# for name, f in sorted(FUNCTIONS.items()): +# d = getdoc(f) +# boxline = '+%s+' % ('-' * (len(name) + 2)) +# print('\n'.join(( +# boxline, +# '| %s |' % (name,), +# boxline, +# d if d else ' ...', +# '', +# '--' * 40, +# '', +# ))) +# return stack + + +def help_(S, expression, dictionary): + '''Accepts a quoted symbol on the top of the stack and prints its docs.''' + ((symbol, _), stack) = S + word = dictionary[symbol] + print(getdoc(word)) + return stack, expression, dictionary + + +# +# § Combinators +# + + +# Several combinators depend on other words in their definitions, +# we use symbols to prevent hard-coding these, so in theory, you +# could change the word in the dictionary to use different semantics. +S_choice = Symbol('choice') +S_first = Symbol('first') +S_getitem = Symbol('getitem') +S_genrec = Symbol('genrec') +S_loop = Symbol('loop') +S_i = Symbol('i') +S_ifte = Symbol('ifte') +S_infra = Symbol('infra') +S_step = Symbol('step') +S_times = Symbol('times') +S_swaack = Symbol('swaack') +S_truthy = Symbol('truthy') + + +def i(stack, expression, dictionary): + ''' + The i combinator expects a quoted program on the stack and unpacks it + onto the pending expression for evaluation. + + [Q] i + ----------- + Q + + ''' + quote, stack = stack + return stack, pushback(quote, expression), dictionary + + +def x(stack, expression, dictionary): + ''' + x == dup i + + ... [Q] x = ... [Q] dup i + ... [Q] x = ... [Q] [Q] i + ... [Q] x = ... [Q] Q + + ''' + quote, _ = stack + return stack, pushback(quote, expression), dictionary + + +def b(stack, expression, dictionary): + ''' + b == [i] dip i + + ... [P] [Q] b == ... [P] i [Q] i + ... [P] [Q] b == ... P Q + + ''' + q, (p, (stack)) = stack + return stack, pushback(p, pushback(q, expression)), dictionary + + +def dupdip(stack, expression, dictionary): + ''' + [F] dupdip == dup [F] dip + + ... a [F] dupdip + ... a dup [F] dip + ... a a [F] dip + ... a F a + + ''' + F, stack = stack + a = stack[0] + return stack, pushback(F, (a, expression)), dictionary + + +def infra(stack, expression, dictionary): + ''' + Accept a quoted program and a list on the stack and run the program + with the list as its stack. + + ... [a b c] [Q] . infra + ----------------------------- + c b a . Q [...] swaack + + ''' + (quote, (aggregate, stack)) = stack + return aggregate, pushback(quote, (stack, (S_swaack, expression))), dictionary + + +def genrec(stack, expression, dictionary): + ''' + General Recursion Combinator. + + [if] [then] [rec1] [rec2] genrec + --------------------------------------------------------------------- + [if] [then] [rec1 [[if] [then] [rec1] [rec2] genrec] rec2] ifte + + From "Recursion Theory and Joy" (j05cmp.html) by Manfred von Thun: + "The genrec combinator takes four program parameters in addition to + whatever data parameters it needs. Fourth from the top is an if-part, + followed by a then-part. If the if-part yields true, then the then-part + is executed and the combinator terminates. The other two parameters are + the rec1-part and the rec2-part. If the if-part yields false, the + rec1-part is executed. Following that the four program parameters and + the combinator are again pushed onto the stack bundled up in a quoted + form. Then the rec2-part is executed, where it will find the bundled + form. Typically it will then execute the bundled form, either with i or + with app2, or some other combinator." + + The way to design one of these is to fix your base case [then] and the + test [if], and then treat rec1 and rec2 as an else-part "sandwiching" + a quotation of the whole function. + + For example, given a (general recursive) function 'F': + + F == [I] [T] [R1] [R2] genrec + + If the [I] if-part fails you must derive R1 and R2 from: + + ... R1 [F] R2 + + Just set the stack arguments in front, and figure out what R1 and R2 + have to do to apply the quoted [F] in the proper way. In effect, the + genrec combinator turns into an ifte combinator with a quoted copy of + the original definition in the else-part: + + F == [I] [T] [R1] [R2] genrec + == [I] [T] [R1 [F] R2] ifte + + (Primitive recursive functions are those where R2 == i. + + P == [I] [T] [R] primrec + == [I] [T] [R [P] i] ifte + == [I] [T] [R P] ifte + ) + ''' + (rec2, (rec1, stack)) = stack + (then, (if_, _)) = stack + F = (if_, (then, (rec1, (rec2, (S_genrec, ()))))) + else_ = pushback(rec1, (F, rec2)) + return (else_, stack), (S_ifte, expression), dictionary + + +def map_(S, expression, dictionary): + ''' + Run the quoted program on TOS on the items in the list under it, push a + new list with the results (in place of the program and original list. + ''' +# (quote, (aggregate, stack)) = S +# results = list_to_stack([ +# joy((term, stack), quote, dictionary)[0][0] +# for term in iter_stack(aggregate) +# ]) +# return (results, stack), expression, dictionary + (quote, (aggregate, stack)) = S + if not aggregate: + return (aggregate, stack), expression, dictionary + batch = () + for term in iter_stack(aggregate): + s = term, stack + batch = (s, (quote, (S_infra, (S_first, batch)))) + stack = (batch, ((), stack)) + return stack, (S_infra, expression), dictionary + + +#def cleave(S, expression, dictionary): +# ''' +# The cleave combinator expects two quotations, and below that an item X. +# It first executes [P], with X on top, and saves the top result element. +# Then it executes [Q], again with X, and saves the top result. +# Finally it restores the stack to what it was below X and pushes the two +# results P(X) and Q(X). +# ''' +# (Q, (P, (x, stack))) = S +# p = joy((x, stack), P, dictionary)[0][0] +# q = joy((x, stack), Q, dictionary)[0][0] +# return (q, (p, stack)), expression, dictionary + + +def branch(stack, expression, dictionary): + ''' + Use a Boolean value to select one of two quoted programs to run. + + branch == roll< choice i + + + False [F] [T] branch + -------------------------- + F + + True [F] [T] branch + ------------------------- + T + + ''' + (then, (else_, (flag, stack))) = stack + return stack, pushback(then if flag else else_, expression), dictionary + + +def ifte(stack, expression, dictionary): + ''' + If-Then-Else Combinator + + ... [if] [then] [else] ifte + --------------------------------------------------- + ... [[else] [then]] [...] [if] infra select i + + + + + ... [if] [then] [else] ifte + ------------------------------------------------------- + ... [else] [then] [...] [if] infra first choice i + + + Has the effect of grabbing a copy of the stack on which to run the + if-part using infra. + ''' + (else_, (then, (if_, stack))) = stack + expression = (S_infra, (S_first, (S_choice, (S_i, expression)))) + stack = (if_, (stack, (then, (else_, stack)))) + return stack, expression, dictionary + + +def dip(stack, expression, dictionary): + ''' + The dip combinator expects a quoted program on the stack and below it + some item, it hoists the item into the expression and runs the program + on the rest of the stack. + + ... x [Q] dip + ------------------- + ... Q x + + ''' + (quote, (x, stack)) = stack + expression = (x, expression) + return stack, pushback(quote, expression), dictionary + + +def dipd(S, expression, dictionary): + ''' + Like dip but expects two items. + + ... y x [Q] dip + --------------------- + ... Q y x + + ''' + (quote, (x, (y, stack))) = S + expression = (y, (x, expression)) + return stack, pushback(quote, expression), dictionary + + +def dipdd(S, expression, dictionary): + ''' + Like dip but expects three items. + + ... z y x [Q] dip + ----------------------- + ... Q z y x + + ''' + (quote, (x, (y, (z, stack)))) = S + expression = (z, (y, (x, expression))) + return stack, pushback(quote, expression), dictionary + + +def app1(S, expression, dictionary): + ''' + Given a quoted program on TOS and anything as the second stack item run + the program and replace the two args with the first result of the + program. + + ... x [Q] . app1 + ----------------------------------- + ... [x ...] [Q] . infra first + ''' + (quote, (x, stack)) = S + stack = (quote, ((x, stack), stack)) + expression = (S_infra, (S_first, expression)) + return stack, expression, dictionary + + +def app2(S, expression, dictionary): + '''Like app1 with two items. + + ... y x [Q] . app2 + ----------------------------------- + ... [y ...] [Q] . infra first + [x ...] [Q] infra first + + ''' + (quote, (x, (y, stack))) = S + expression = (S_infra, (S_first, + ((x, stack), (quote, (S_infra, (S_first, + expression)))))) + stack = (quote, ((y, stack), stack)) + return stack, expression, dictionary + + +def app3(S, expression, dictionary): + '''Like app1 with three items. + + ... z y x [Q] . app3 + ----------------------------------- + ... [z ...] [Q] . infra first + [y ...] [Q] infra first + [x ...] [Q] infra first + + ''' + (quote, (x, (y, (z, stack)))) = S + expression = (S_infra, (S_first, + ((y, stack), (quote, (S_infra, (S_first, + ((x, stack), (quote, (S_infra, (S_first, + expression)))))))))) + stack = (quote, ((z, stack), stack)) + return stack, expression, dictionary + + +def step(S, expression, dictionary): + ''' + Run a quoted program on each item in a sequence. + + ... [] [Q] . step + ----------------------- + ... . + + + ... [a] [Q] . step + ------------------------ + ... a . Q + + + ... [a b c] [Q] . step + ---------------------------------------- + ... a . Q [b c] [Q] step + + The step combinator executes the quotation on each member of the list + on top of the stack. + ''' + (quote, (aggregate, stack)) = S + if not aggregate: + return stack, expression, dictionary + head, tail = aggregate + stack = quote, (head, stack) + if tail: + expression = tail, (quote, (S_step, expression)) + expression = S_i, expression + return stack, expression, dictionary + + +def times(stack, expression, dictionary): + ''' + times == [-- dip] cons [swap] infra [0 >] swap while pop + + ... n [Q] . times + --------------------- w/ n <= 0 + ... . + + + ... 1 [Q] . times + --------------------------------- + ... . Q + + + ... n [Q] . times + --------------------------------- w/ n > 1 + ... . Q (n - 1) [Q] times + + ''' + # times == [-- dip] cons [swap] infra [0 >] swap while pop + (quote, (n, stack)) = stack + if n <= 0: + return stack, expression, dictionary + n -= 1 + if n: + expression = n, (quote, (S_times, expression)) + expression = pushback(quote, expression) + return stack, expression, dictionary + + +# The current definition above works like this: + +# [P] [Q] while +# -------------------------------------- +# [P] nullary [Q [P] nullary] loop + +# while == [pop i not] [popop] [dudipd] primrec + +#def while_(S, expression, dictionary): +# '''[if] [body] while''' +# (body, (if_, stack)) = S +# while joy(stack, if_, dictionary)[0][0]: +# stack = joy(stack, body, dictionary)[0] +# return stack, expression, dictionary + + +def loop(stack, expression, dictionary): + ''' + Basic loop combinator. + + ... True [Q] loop + ----------------------- + ... Q [Q] loop + + ... False [Q] loop + ------------------------ + ... + + ''' + quote, (flag, stack) = stack + if flag: + expression = pushback(quote, (quote, (S_loop, expression))) + return stack, expression, dictionary + + +#def nullary(S, expression, dictionary): +# ''' +# Run the program on TOS and return its first result without consuming +# any of the stack (except the program on TOS.) +# ''' +# (quote, stack) = S +# result = joy(stack, quote, dictionary) +# return (result[0][0], stack), expression, dictionary +# +# +#def unary(S, expression, dictionary): +# (quote, stack) = S +# _, return_stack = stack +# result = joy(stack, quote, dictionary)[0] +# return (result[0], return_stack), expression, dictionary +# +# +#def binary(S, expression, dictionary): +# (quote, stack) = S +# _, (_, return_stack) = stack +# result = joy(stack, quote, dictionary)[0] +# return (result[0], return_stack), expression, dictionary +# +# +#def ternary(S, expression, dictionary): +# (quote, stack) = S +# _, (_, (_, return_stack)) = stack +# result = joy(stack, quote, dictionary)[0] +# return (result[0], return_stack), expression, dictionary + + +builtins = ( + BinaryBuiltinWrapper(operator.add), + BinaryBuiltinWrapper(operator.and_), + BinaryBuiltinWrapper(operator.div), + BinaryBuiltinWrapper(operator.eq), + BinaryBuiltinWrapper(operator.floordiv), + BinaryBuiltinWrapper(operator.ge), + BinaryBuiltinWrapper(operator.gt), + BinaryBuiltinWrapper(operator.le), + BinaryBuiltinWrapper(operator.lshift), + BinaryBuiltinWrapper(operator.lt), + BinaryBuiltinWrapper(operator.mod), + BinaryBuiltinWrapper(operator.mul), + BinaryBuiltinWrapper(operator.ne), + BinaryBuiltinWrapper(operator.or_), + BinaryBuiltinWrapper(operator.pow), + BinaryBuiltinWrapper(operator.rshift), + BinaryBuiltinWrapper(operator.sub), + BinaryBuiltinWrapper(operator.truediv), + BinaryBuiltinWrapper(operator.xor), + + UnaryBuiltinWrapper(abs), + UnaryBuiltinWrapper(floor), + UnaryBuiltinWrapper(operator.neg), + UnaryBuiltinWrapper(operator.not_), + UnaryBuiltinWrapper(sqrt), + ) + + +combinators = ( + FunctionWrapper(app1), + FunctionWrapper(app2), + FunctionWrapper(app3), + FunctionWrapper(b), + FunctionWrapper(branch), +# FunctionWrapper(binary), +# FunctionWrapper(cleave), + FunctionWrapper(dip), + FunctionWrapper(dipd), + FunctionWrapper(dipdd), + FunctionWrapper(dupdip), + FunctionWrapper(genrec), + FunctionWrapper(help_), + FunctionWrapper(i), + FunctionWrapper(ifte), + FunctionWrapper(infra), + FunctionWrapper(loop), + FunctionWrapper(map_), +# FunctionWrapper(nullary), + FunctionWrapper(step), + FunctionWrapper(times), +# FunctionWrapper(ternary), +# FunctionWrapper(unary), +# FunctionWrapper(while_), + FunctionWrapper(words), + FunctionWrapper(x), + ) + + +primitives = ( + SimpleFunctionWrapper(choice), + SimpleFunctionWrapper(clear), + SimpleFunctionWrapper(concat), + SimpleFunctionWrapper(cons), + SimpleFunctionWrapper(divmod_), + SimpleFunctionWrapper(drop), + SimpleFunctionWrapper(dup), + SimpleFunctionWrapper(dupd), + SimpleFunctionWrapper(first), + SimpleFunctionWrapper(getitem), + SimpleFunctionWrapper(id_), + SimpleFunctionWrapper(max_), + SimpleFunctionWrapper(min_), + SimpleFunctionWrapper(over), + SimpleFunctionWrapper(parse), + SimpleFunctionWrapper(pm), + SimpleFunctionWrapper(pop), + SimpleFunctionWrapper(popd), + SimpleFunctionWrapper(popdd), + SimpleFunctionWrapper(popop), + SimpleFunctionWrapper(pred), + SimpleFunctionWrapper(remove), + SimpleFunctionWrapper(rest), + SimpleFunctionWrapper(reverse), + SimpleFunctionWrapper(rolldown), + SimpleFunctionWrapper(rollup), + SimpleFunctionWrapper(select), + SimpleFunctionWrapper(shunt), + SimpleFunctionWrapper(sort_), + SimpleFunctionWrapper(stack_), + SimpleFunctionWrapper(succ), + SimpleFunctionWrapper(sum_), + SimpleFunctionWrapper(swaack), + SimpleFunctionWrapper(swap), + SimpleFunctionWrapper(take), + SimpleFunctionWrapper(truthy), + SimpleFunctionWrapper(tuck), + SimpleFunctionWrapper(uncons), + SimpleFunctionWrapper(unique), + SimpleFunctionWrapper(unstack), + SimpleFunctionWrapper(unstack), + SimpleFunctionWrapper(void), + SimpleFunctionWrapper(zip_), + + FunctionWrapper(sharing), + FunctionWrapper(warranty), + ) + + +def initialize(dictionary=None): + if dictionary is None: + dictionary = {} + dictionary.update((F.name, F) for F in builtins) + dictionary.update((F.name, F) for F in combinators) + dictionary.update((F.name, F) for F in primitives) + add_aliases(dictionary) + DefinitionWrapper.add_definitions(definitions, dictionary) + return dictionary diff --git a/build/lib/joy/parser.py b/build/lib/joy/parser.py new file mode 100644 index 0000000..dc6411f --- /dev/null +++ b/build/lib/joy/parser.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2016, 2017 Simon Forman +# +# This file is part of Joypy. +# +# Joypy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Joypy 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 Joypy. If not see . +# +''' + + +§ Converting text to a joy expression. + +This module exports a single function: + + text_to_expression(text) + +As well as a single Symbol class and a single Exception type: + + ParseError + +When supplied with a string this function returns a Python datastructure +that represents the Joy datastructure described by the text expression. +Any unbalanced square brackets will raise a ParseError. +''' +from re import Scanner +from .utils.stack import list_to_stack + + +class Symbol(str): + __repr__ = str.__str__ + + +def text_to_expression(text): + ''' + Convert a text to a Joy expression. + ''' + return _parse(_tokenize(text)) + + +class ParseError(ValueError): pass + + +def _tokenize(text): + ''' + Convert a text into a stream of tokens, converting symbols using + symbol(token). Raise ValueError (with some of the failing text) + if the scan fails. + ''' + tokens, rest = _scanner.scan(text) + if rest: + raise ParseError( + 'Scan failed at position %i, %r' + % (len(text) - len(rest), rest[:10]) + ) + return tokens + + +def _parse(tokens): + ''' + Return a stack/list expression of the tokens. + ''' + frame = [] + stack = [] + for tok in tokens: + if tok == '[': + stack.append(frame) + frame = [] + stack[-1].append(frame) + elif tok == ']': + try: + frame = stack.pop() + except IndexError: + raise ParseError('One or more extra closing brackets.') + frame[-1] = list_to_stack(frame[-1]) + else: + frame.append(tok) + if stack: + raise ParseError('One or more unclosed brackets.') + return list_to_stack(frame) + + +def _scan_identifier(scanner, token): return Symbol(token) +def _scan_bracket(scanner, token): return token +def _scan_float(scanner, token): return float(token) +def _scan_int(scanner, token): return int(token) +def _scan_dstr(scanner, token): return token[1:-1].replace('\\"', '"') +def _scan_sstr(scanner, token): return token[1:-1].replace("\\'", "'") + + +_scanner = Scanner([ + (r'-?\d+\.\d*', _scan_float), + (r'-?\d+', _scan_int), + (r'[•\w!@$%^&*()_+<>?|\/;:`~,.=-]+', _scan_identifier), + (r'\[|\]', _scan_bracket), + (r'"(?:[^"\\]|\\.)*"', _scan_dstr), + (r"'(?:[^'\\]|\\.)*'", _scan_sstr), + (r'\s+', None), + ]) diff --git a/build/lib/joy/utils/__init__.py b/build/lib/joy/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/build/lib/joy/utils/pretty_print.py b/build/lib/joy/utils/pretty_print.py new file mode 100644 index 0000000..98b12e6 --- /dev/null +++ b/build/lib/joy/utils/pretty_print.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2016 Simon Forman +# +# This file is part of Joypy. +# +# Joypy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Joypy 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 Joypy. If not see . +# +''' +Pretty printing support. + +This is what does the formatting, e.g.: + + . 23 18 mul 99 add + 23 . 18 mul 99 add + 23 18 . mul 99 add + 414 . 99 add + 414 99 . add + 513 . + +''' +# (Kinda clunky and hacky. This should be swapped out in favor of much +# smarter stuff.) +from __future__ import print_function +from traceback import print_exc +from .stack import expression_to_string, stack_to_string + + +class TracePrinter(object): + + def __init__(self): + self.history = [] + + def viewer(self, stack, expression): + '''Pass this method as the viewer to joy() function.''' + self.history.append((stack, expression)) + + def __str__(self): + return '\n'.join(self.go()) + + def go(self): + max_stack_length = 0 + lines = [] + for stack, expression in self.history: + stack = stack_to_string(stack) + expression = expression_to_string(expression) + n = len(stack) + if n > max_stack_length: + max_stack_length = n + lines.append((n, '%s . %s' % (stack, expression))) + return [ # Prefix spaces to line up '.'s. + (' ' * (max_stack_length - length) + line) + for length, line in lines + ] + + def print_(self): + try: + print(self) + except: + print_exc() + print('Exception while printing viewer.') diff --git a/build/lib/joy/utils/stack.py b/build/lib/joy/utils/stack.py new file mode 100644 index 0000000..e3f8dd9 --- /dev/null +++ b/build/lib/joy/utils/stack.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +''' + + +§ Stack + + +When talking about Joy we use the terms "stack", "list", "sequence" and +"aggregate" to mean the same thing: a simple datatype that permits +certain operations such as iterating and pushing and popping values from +(at least) one end. + +We use the venerable two-tuple recursive form of sequences where the +empty tuple () is the empty stack and (head, rest) gives the recursive +form of a stack with one or more items on it. + + () + (1, ()) + (2, (1, ())) + (3, (2, (1, ()))) + ... + +And so on. + + +We have two very simple functions to build up a stack from a Python +iterable and also to iterate through a stack and yield its items +one-by-one in order, and two functions to generate string representations +of stacks: + + list_to_stack() + + iter_stack() + + expression_to_string() (prints left-to-right) + + stack_to_string() (prints right-to-left) + + +A word about the stack data structure. + +Python has very nice "tuple packing and unpacking" in its syntax which +means we can directly "unpack" the expected arguments to a Joy function. + +For example: + + def dup(stack): + head, tail = stack + return head, (head, tail) + +We replace the argument "stack" by the expected structure of the stack, +in this case "(head, tail)", and Python takes care of de-structuring the +incoming argument and assigning values to the names. Note that Python +syntax doesn't require parentheses around tuples used in expressions +where they would be redundant. +''' + + +def list_to_stack(el, stack=()): + '''Convert a list (or other sequence) to a stack. + + [1, 2, 3] -> (1, (2, (3, ()))) + + ''' + for item in reversed(el): + stack = item, stack + return stack + + +def iter_stack(stack): + '''Iterate through the items on the stack.''' + while stack: + item, stack = stack + yield item + + +def stack_to_string(stack): + ''' + Return a "pretty print" string for a stack. + + The items are written right-to-left: + + (top, (second, ...)) -> '... second top' + ''' + f = lambda stack: reversed(list(iter_stack(stack))) + return _to_string(stack, f) + + +def expression_to_string(expression): + ''' + Return a "pretty print" string for a expression. + + The items are written left-to-right: + + (top, (second, ...)) -> 'top second ...' + ''' + return _to_string(expression, iter_stack) + + +def _to_string(stack, f): + if isinstance(stack, long): return str(stack).rstrip('L') + if not isinstance(stack, tuple): return repr(stack) + if not stack: return '' # shortcut + return ' '.join(map(_s, f(stack))) + + +_s = lambda s: ( + '[%s]' % expression_to_string(s) if isinstance(s, tuple) + else str(s).rstrip('L') if isinstance(s, long) + else repr(s) + ) + + +def pushback(quote, expression): + '''Concatinate quote onto expression. + + In joy [1 2] [3 4] would become [1 2 3 4]. + ''' + return list_to_stack(list(iter_stack(quote)), expression) + + +def pick(s, n): + ''' + Find the nth item on the stack. (Pick with zero is the same as "dup".) + ''' + if n < 0: + raise ValueError + while True: + try: + item, s = s + except ValueError: + raise IndexError + n -= 1 + if n < 0: + break + return item diff --git a/docs/0. This Implementation of Joy in Python.html b/docs/0. This Implementation of Joy in Python.html new file mode 100644 index 0000000..6982023 --- /dev/null +++ b/docs/0. This Implementation of Joy in Python.html @@ -0,0 +1,12620 @@ + + + +0. This Implementation of Joy in Python + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Joypy

Joy in Python

This implementation is meant as a tool for exploring the programming model and method of Joy. Python seems like a great implementation language for Joy for several reasons.

+

We can lean on the Python immutable types for our basic semantics and types: ints, floats, strings, and tuples, which enforces functional purity. We get garbage collection for free. Compilation via Cython. Glue language with loads of libraries.

+ +
+
+
+
+
+
+
+

Read-Eval-Print Loop (REPL)

The main way to interact with the Joy interpreter is through a simple REPL that you start by running the package:

+ +
$ python -m joy
+Joypy - Copyright © 2017 Simon Forman
+This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty".
+This is free software, and you are welcome to redistribute it
+under certain conditions; type "sharing" for details.
+Type "words" to see a list of all words, and "[<name>] help" to print the
+docs for a word.
+
+
+ <-top
+
+joy? _
+
+
+

The <-top marker points to the top of the (initially empty) stack. You can enter Joy notation at the prompt and a trace of evaluation will be printed followed by the stack and prompt again:

+ +
joy? 23 sqr 18 +
+       . 23 sqr 18 +
+    23 . sqr 18 +
+    23 . dup mul 18 +
+ 23 23 . mul 18 +
+   529 . 18 +
+529 18 . +
+   547 . 
+
+547 <-top
+
+joy? 
+ +
+
+
+
+
+
+
+

Stacks (aka list, quote, sequence, etc.)

In Joy, in addition to the types Boolean, integer, float, and string, there is a single sequence type represented by enclosing a sequence of terms in brackets [...]. This sequence type is used to represent both the stack and the expression. It is a cons list made from Python tuples.

+ +
+
+
+
+
+
In [1]:
+
+
+
import inspect
+import joy.utils.stack
+
+
+print inspect.getdoc(joy.utils.stack)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
§ Stack
+
+
+When talking about Joy we use the terms "stack", "list", "sequence" and
+"aggregate" to mean the same thing: a simple datatype that permits
+certain operations such as iterating and pushing and popping values from
+(at least) one end.
+
+We use the venerable two-tuple recursive form of sequences where the
+empty tuple () is the empty stack and (head, rest) gives the recursive
+form of a stack with one or more items on it.
+
+  ()
+  (1, ())
+  (2, (1, ()))
+  (3, (2, (1, ())))
+  ...
+
+And so on.
+
+
+We have two very simple functions to build up a stack from a Python
+iterable and also to iterate through a stack and yield its items
+one-by-one in order, and two functions to generate string representations
+of stacks:
+
+  list_to_stack()
+
+  iter_stack()
+
+  expression_to_string()  (prints left-to-right)
+
+  stack_to_string()  (prints right-to-left)
+
+
+A word about the stack data structure.
+
+Python has very nice "tuple packing and unpacking" in its syntax which
+means we can directly "unpack" the expected arguments to a Joy function.
+
+For example:
+
+  def dup(stack):
+    head, tail = stack
+    return head, (head, tail)
+
+We replace the argument "stack" by the expected structure of the stack,
+in this case "(head, tail)", and Python takes care of de-structuring the
+incoming argument and assigning values to the names.  Note that Python
+syntax doesn't require parentheses around tuples used in expressions
+where they would be redundant.
+
+
+
+ +
+
+ +
+
+
+
+
+

The utility functions maintain order.

The 0th item in the list will be on the top of the stack and vise versa.

+ +
+
+
+
+
+
In [2]:
+
+
+
joy.utils.stack.list_to_stack([1, 2, 3])
+
+ +
+
+
+ +
+
+ + +
+ +
Out[2]:
+ + + + +
+
(1, (2, (3, ())))
+
+ +
+ +
+
+ +
+
+
+
In [3]:
+
+
+
list(joy.utils.stack.iter_stack((1, (2, (3, ())))))
+
+ +
+
+
+ +
+
+ + +
+ +
Out[3]:
+ + + + +
+
[1, 2, 3]
+
+ +
+ +
+
+ +
+
+
+
+
+

This requires reversing the sequence (or iterating backwards) otherwise:

+ +
+
+
+
+
+
In [4]:
+
+
+
stack = ()
+
+for n in [1, 2, 3]:
+    stack = n, stack
+
+print stack
+print list(joy.utils.stack.iter_stack(stack))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
(3, (2, (1, ())))
+[3, 2, 1]
+
+
+
+ +
+
+ +
+
+
+
+
+

Purely Functional Datastructures.

Because Joy lists are made out of Python tuples they are immutable, so all Joy datastructures are purely functional.

+ +
+
+
+
+
+
+
+

The joy() function.

An Interpreter

The joy() function is extrememly simple. It accepts a stack, an expression, and a dictionary, and it iterates through the expression putting values onto the stack and delegating execution to functions it looks up in the dictionary.

+

Each function is passed the stack, expression, and dictionary and returns them. Whatever the function returns becomes the new stack, expression, and dictionary. (The dictionary is passed to enable e.g. writing words that let you enter new words into the dictionary at runtime, which nothing does yet and may be a bad idea, and the help command.)

+ +
+
+
+
+
+
In [5]:
+
+
+
import joy.joy
+
+print inspect.getsource(joy.joy.joy)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
def joy(stack, expression, dictionary, viewer=None):
+  '''
+  Evaluate the Joy expression on the stack.
+  '''
+  while expression:
+
+    if viewer: viewer(stack, expression)
+
+    term, expression = expression
+    if isinstance(term, Symbol):
+      term = dictionary[term]
+      stack, expression, dictionary = term(stack, expression, dictionary)
+    else:
+      stack = term, stack
+
+  if viewer: viewer(stack, expression)
+  return stack, expression, dictionary
+
+
+
+
+ +
+
+ +
+
+
+
+
+

View function

The joy() function accepts a "viewer" function which it calls on each iteration passing the current stack and expression just before evaluation. This can be used for tracing, breakpoints, retrying after exceptions, or interrupting an evaluation and saving to disk or sending over the network to resume later. The stack and expression together contain all the state of the computation at each step.

+ +
+
+
+
+
+
+
+

The TracePrinter.

A viewer records each step of the evaluation of a Joy program. The TracePrinter has a facility for printing out a trace of the evaluation, one line per step. Each step is aligned to the current interpreter position, signified by a period separating the stack on the left from the pending expression ("continuation") on the right.

+ +
+
+
+
+
+
+
+

Continuation-Passing Style

One day I thought, What happens if you rewrite Joy to use CSP? I made all the functions accept and return the expression as well as the stack and found that all the combinators could be rewritten to work by modifying the expression rather than making recursive calls to the joy() function.

+ +
+
+
+
+
+
+
+

Parser

+
+
+
+
+
+
In [6]:
+
+
+
import joy.parser
+
+print inspect.getdoc(joy.parser)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
§ Converting text to a joy expression.
+
+This module exports a single function:
+
+  text_to_expression(text)
+
+As well as a single Symbol class and a single Exception type:
+
+  ParseError
+
+When supplied with a string this function returns a Python datastructure
+that represents the Joy datastructure described by the text expression.
+Any unbalanced square brackets will raise a ParseError.
+
+
+
+ +
+
+ +
+
+
+
+
+

The parser is extremely simple, the undocumented re.Scanner class does most of the tokenizing work and then you just build the tuple structure out of the tokens. There's no Abstract Syntax Tree or anything like that.

+ +
+
+
+
+
+
In [7]:
+
+
+
print inspect.getsource(joy.parser._parse)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
def _parse(tokens):
+  '''
+  Return a stack/list expression of the tokens.
+  '''
+  frame = []
+  stack = []
+  for tok in tokens:
+    if tok == '[':
+      stack.append(frame)
+      frame = []
+      stack[-1].append(frame)
+    elif tok == ']':
+      try:
+        frame = stack.pop()
+      except IndexError:
+        raise ParseError('One or more extra closing brackets.')
+      frame[-1] = list_to_stack(frame[-1])
+    else:
+      frame.append(tok)
+  if stack:
+    raise ParseError('One or more unclosed brackets.')
+  return list_to_stack(frame)
+
+
+
+
+ +
+
+ +
+
+
+
+
+

That's pretty much all there is to it.

+ +
+
+
+
+
+
In [8]:
+
+
+
joy.parser.text_to_expression('1 2 3 4 5')  # A simple sequence.
+
+ +
+
+
+ +
+
+ + +
+ +
Out[8]:
+ + + + +
+
(1, (2, (3, (4, (5, ())))))
+
+ +
+ +
+
+ +
+
+
+
In [9]:
+
+
+
joy.parser.text_to_expression('[1 2 3] 4 5')  # Three items, the first is a list with three items
+
+ +
+
+
+ +
+
+ + +
+ +
Out[9]:
+ + + + +
+
((1, (2, (3, ()))), (4, (5, ())))
+
+ +
+ +
+
+ +
+
+
+
In [10]:
+
+
+
joy.parser.text_to_expression('1 23 ["four" [-5.0] cons] 8888')  # A mixed bag. cons is
+                                                                 # a Symbol, no lookup at
+                                                                 # parse-time.  Haiku docs.
+
+ +
+
+
+ +
+
+ + +
+ +
Out[10]:
+ + + + +
+
(1, (23, (('four', ((-5.0, ()), (cons, ()))), (8888, ()))))
+
+ +
+ +
+
+ +
+
+
+
In [11]:
+
+
+
joy.parser.text_to_expression('[][][][][]')  # Five empty lists.
+
+ +
+
+
+ +
+
+ + +
+ +
Out[11]:
+ + + + +
+
((), ((), ((), ((), ((), ())))))
+
+ +
+ +
+
+ +
+
+
+
In [12]:
+
+
+
joy.parser.text_to_expression('[[[[[]]]]]')  # Five nested lists.
+
+ +
+
+
+ +
+
+ + +
+ +
Out[12]:
+ + + + +
+
((((((), ()), ()), ()), ()), ())
+
+ +
+ +
+
+ +
+
+
+
+
+

Library

The Joy library of functions (aka commands, or "words" after Forth usage) encapsulates all the actual functionality (no pun intended) of the Joy system. There are simple functions such as addition add (or +, the library module supports aliases), and combinators which provide control-flow and higher-order operations.

+ +
+
+
+
+
+
In [13]:
+
+
+
import joy.library
+
+print ' '.join(sorted(joy.library.initialize()))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
!= % & * *fraction *fraction0 + ++ - -- / < << <= <> = > >= >> ? ^ add anamorphism and app1 app2 app3 average b binary branch choice clear cleave concat cons dinfrirst dip dipd dipdd disenstacken div down_to_zero dudipd dup dupd dupdip enstacken eq first flatten floordiv gcd ge genrec getitem gt help i id ifte infra le least_fraction loop lshift lt map min mod modulus mul ne neg not nullary or over pam parse pm pop popd popdd popop pow pred primrec product quoted range range_to_zero rem remainder remove rest reverse roll< roll> rolldown rollup rshift run second select sharing shunt size sqr sqrt stack step sub succ sum swaack swap swoncat swons ternary third times truediv truthy tuck unary uncons unit unquoted unstack void warranty while words x xor zip •
+
+
+
+ +
+
+ +
+
+
+
+
+

Many of the functions are defined in Python, like dip:

+ +
+
+
+
+
+
In [14]:
+
+
+
print inspect.getsource(joy.library.dip)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
def dip(stack, expression, dictionary):
+  (quote, (x, stack)) = stack
+  expression = x, expression
+  return stack, pushback(quote, expression), dictionary
+
+
+
+
+ +
+
+ +
+
+
+
+
+

Some functions are defined in equations in terms of other functions. When the interpreter executes a definition function that function just pushes its body expression onto the pending expression (the continuation) and returns control to the interpreter.

+ +
+
+
+
+
+
In [15]:
+
+
+
print joy.library.definitions
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
second == rest first
+third == rest rest first
+product == 1 swap [*] step
+swons == swap cons
+swoncat == swap concat
+flatten == [] swap [concat] step
+unit == [] cons
+quoted == [unit] dip
+unquoted == [i] dip
+enstacken == stack [clear] dip
+disenstacken == ? [uncons ?] loop pop
+? == dup truthy
+dinfrirst == dip infra first
+nullary == [stack] dinfrirst
+unary == [stack [pop] dip] dinfrirst
+binary == [stack [popop] dip] dinfrirst
+ternary == [stack [popop pop] dip] dinfrirst
+pam == [i] map
+run == [] swap infra
+sqr == dup mul
+size == 0 swap [pop ++] step
+cleave == [i] app2 [popd] dip
+average == [sum 1.0 *] [size] cleave /
+gcd == 1 [tuck modulus dup 0 >] loop pop
+least_fraction == dup [gcd] infra [div] concat map
+*fraction == [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons
+*fraction0 == concat [[swap] dip * [*] dip] infra
+down_to_zero == [0 >] [dup --] while
+range_to_zero == unit [down_to_zero] infra
+anamorphism == [pop []] swap [dip swons] genrec
+range == [0 <=] [1 - dup] anamorphism
+while == swap [nullary] cons dup dipd concat loop
+dudipd == dup dipd
+primrec == [i] genrec
+
+
+
+
+ +
+
+ +
+
+
+
+
+

Currently, there's no function to add new definitions to the dictionary from "within" Joy code itself. Adding new definitions remains a meta-interpreter action. You have to do it yourself, in Python, and wash your hands afterward.

+

It would be simple enough to define one, but it would open the door to name binding and break the idea that all state is captured in the stack and expression. There's an implicit standard dictionary that defines the actual semantics of the syntactic stack and expression datastructures (which only contain symbols, not the actual functions. Pickle some and see for yourself.)

+

"There should be only one."

Which brings me to talking about one of my hopes and dreams for this notation: "There should be only one." What I mean is that there should be one universal standard dictionary of commands, and all bespoke work done in a UI for purposes takes place by direct interaction and macros. There would be a Grand Refactoring biannually (two years, not six months, that's semi-annually) where any new definitions factored out of the usage and macros of the previous time, along with new algorithms and such, were entered into the dictionary and posted to e.g. IPFS.

+

Code should not burgeon wildly, as it does today. The variety of code should map more-or-less to the well-factored variety of human computably-solvable problems. There shouldn't be dozens of chat apps, JS frameworks, programming languages. It's a waste of time, a fractal "thundering herd" attack on human mentality.

+

Literary Code Library

If you read over the other notebooks you'll see that developing code in Joy is a lot like doing simple mathematics, and the descriptions of the code resemble math papers. The code also works the first time, no bugs. If you have any experience programming at all, you are probably skeptical, as I was, but it seems to work: deriving code mathematically seems to lead to fewer errors.

+

But my point now is that this great ratio of textual explanation to wind up with code that consists of a few equations and could fit on an index card is highly desirable. Less code has fewer errors. The structure of Joy engenders a kind of thinking that seems to be very effective for developing structured processes.

+

There seems to be an elegance and power to the notation.

+ +
+
+
+
+
+
In [ ]:
+
+
+
  
+
+ +
+
+
+ +
+
+
+ + + + + + diff --git a/docs/0. This Implementation of Joy in Python.ipynb b/docs/0. This Implementation of Joy in Python.ipynb new file mode 100644 index 0000000..a97a93e --- /dev/null +++ b/docs/0. This Implementation of Joy in Python.ipynb @@ -0,0 +1,650 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Joypy\n", + "## Joy in Python\n", + "\n", + "This implementation is meant as a tool for exploring the programming model and method of Joy. Python seems like a great implementation language for Joy for several reasons.\n", + "\n", + "We can lean on the Python immutable types for our basic semantics and types: ints, floats, strings, and tuples, which enforces functional purity. We get garbage collection for free. Compilation via Cython. Glue language with loads of libraries." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### [Read-Eval-Print Loop (REPL)](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)\n", + "The main way to interact with the Joy interpreter is through a simple [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) that you start by running the package:\n", + "\n", + " $ python -m joy\n", + " Joypy - Copyright © 2017 Simon Forman\n", + " This program comes with ABSOLUTELY NO WARRANTY; for details type \"warranty\".\n", + " This is free software, and you are welcome to redistribute it\n", + " under certain conditions; type \"sharing\" for details.\n", + " Type \"words\" to see a list of all words, and \"[] help\" to print the\n", + " docs for a word.\n", + "\n", + "\n", + " <-top\n", + "\n", + " joy? _\n", + "\n", + "The `<-top` marker points to the top of the (initially empty) stack. You can enter Joy notation at the prompt and a [trace of evaluation](#The-TracePrinter.) will be printed followed by the stack and prompt again:\n", + "\n", + " joy? 23 sqr 18 +\n", + " . 23 sqr 18 +\n", + " 23 . sqr 18 +\n", + " 23 . dup mul 18 +\n", + " 23 23 . mul 18 +\n", + " 529 . 18 +\n", + " 529 18 . +\n", + " 547 . \n", + "\n", + " 547 <-top\n", + "\n", + " joy? \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Stacks (aka list, quote, sequence, etc.)\n", + "\n", + "In Joy, in addition to the types Boolean, integer, float, and string, there is a single sequence type represented by enclosing a sequence of terms in brackets `[...]`. This sequence type is used to represent both the stack and the expression. It is a [cons list](https://en.wikipedia.org/wiki/Cons#Lists) made from Python tuples." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "§ Stack\n", + "\n", + "\n", + "When talking about Joy we use the terms \"stack\", \"list\", \"sequence\" and\n", + "\"aggregate\" to mean the same thing: a simple datatype that permits\n", + "certain operations such as iterating and pushing and popping values from\n", + "(at least) one end.\n", + "\n", + "We use the venerable two-tuple recursive form of sequences where the\n", + "empty tuple () is the empty stack and (head, rest) gives the recursive\n", + "form of a stack with one or more items on it.\n", + "\n", + " ()\n", + " (1, ())\n", + " (2, (1, ()))\n", + " (3, (2, (1, ())))\n", + " ...\n", + "\n", + "And so on.\n", + "\n", + "\n", + "We have two very simple functions to build up a stack from a Python\n", + "iterable and also to iterate through a stack and yield its items\n", + "one-by-one in order, and two functions to generate string representations\n", + "of stacks:\n", + "\n", + " list_to_stack()\n", + "\n", + " iter_stack()\n", + "\n", + " expression_to_string() (prints left-to-right)\n", + "\n", + " stack_to_string() (prints right-to-left)\n", + "\n", + "\n", + "A word about the stack data structure.\n", + "\n", + "Python has very nice \"tuple packing and unpacking\" in its syntax which\n", + "means we can directly \"unpack\" the expected arguments to a Joy function.\n", + "\n", + "For example:\n", + "\n", + " def dup(stack):\n", + " head, tail = stack\n", + " return head, (head, tail)\n", + "\n", + "We replace the argument \"stack\" by the expected structure of the stack,\n", + "in this case \"(head, tail)\", and Python takes care of de-structuring the\n", + "incoming argument and assigning values to the names. Note that Python\n", + "syntax doesn't require parentheses around tuples used in expressions\n", + "where they would be redundant.\n" + ] + } + ], + "source": [ + "import inspect\n", + "import joy.utils.stack\n", + "\n", + "\n", + "print inspect.getdoc(joy.utils.stack)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The utility functions maintain order.\n", + "The 0th item in the list will be on the top of the stack and *vise versa*." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, (2, (3, ())))" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "joy.utils.stack.list_to_stack([1, 2, 3])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[1, 2, 3]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(joy.utils.stack.iter_stack((1, (2, (3, ())))))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This requires reversing the sequence (or iterating backwards) otherwise:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(3, (2, (1, ())))\n", + "[3, 2, 1]\n" + ] + } + ], + "source": [ + "stack = ()\n", + "\n", + "for n in [1, 2, 3]:\n", + " stack = n, stack\n", + "\n", + "print stack\n", + "print list(joy.utils.stack.iter_stack(stack))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Purely Functional Datastructures.\n", + "Because Joy lists are made out of Python tuples they are immutable, so all Joy datastructures are *[purely functional](https://en.wikipedia.org/wiki/Purely_functional_data_structure)*." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The `joy()` function.\n", + "## An Interpreter\n", + "The `joy()` function is extrememly simple. It accepts a stack, an expression, and a dictionary, and it iterates through the expression putting values onto the stack and delegating execution to functions it looks up in the dictionary.\n", + "\n", + "Each function is passed the stack, expression, and dictionary and returns them. Whatever the function returns becomes the new stack, expression, and dictionary. (The dictionary is passed to enable e.g. writing words that let you enter new words into the dictionary at runtime, which nothing does yet and may be a bad idea, and the `help` command.)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "def joy(stack, expression, dictionary, viewer=None):\n", + " '''\n", + " Evaluate the Joy expression on the stack.\n", + " '''\n", + " while expression:\n", + "\n", + " if viewer: viewer(stack, expression)\n", + "\n", + " term, expression = expression\n", + " if isinstance(term, Symbol):\n", + " term = dictionary[term]\n", + " stack, expression, dictionary = term(stack, expression, dictionary)\n", + " else:\n", + " stack = term, stack\n", + "\n", + " if viewer: viewer(stack, expression)\n", + " return stack, expression, dictionary\n", + "\n" + ] + } + ], + "source": [ + "import joy.joy\n", + "\n", + "print inspect.getsource(joy.joy.joy)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### View function\n", + "The `joy()` function accepts a \"viewer\" function which it calls on each iteration passing the current stack and expression just before evaluation. This can be used for tracing, breakpoints, retrying after exceptions, or interrupting an evaluation and saving to disk or sending over the network to resume later. The stack and expression together contain all the state of the computation at each step." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The `TracePrinter`.\n", + "\n", + "A `viewer` records each step of the evaluation of a Joy program. The `TracePrinter` has a facility for printing out a trace of the evaluation, one line per step. Each step is aligned to the current interpreter position, signified by a period separating the stack on the left from the pending expression (\"continuation\") on the right." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### [Continuation-Passing Style](https://en.wikipedia.org/wiki/Continuation-passing_style)\n", + "One day I thought, What happens if you rewrite Joy to use [CSP](https://en.wikipedia.org/wiki/Continuation-passing_style)? I made all the functions accept and return the expression as well as the stack and found that all the combinators could be rewritten to work by modifying the expression rather than making recursive calls to the `joy()` function." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Parser" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "§ Converting text to a joy expression.\n", + "\n", + "This module exports a single function:\n", + "\n", + " text_to_expression(text)\n", + "\n", + "As well as a single Symbol class and a single Exception type:\n", + "\n", + " ParseError\n", + "\n", + "When supplied with a string this function returns a Python datastructure\n", + "that represents the Joy datastructure described by the text expression.\n", + "Any unbalanced square brackets will raise a ParseError.\n" + ] + } + ], + "source": [ + "import joy.parser\n", + "\n", + "print inspect.getdoc(joy.parser)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The parser is extremely simple, the undocumented `re.Scanner` class does most of the tokenizing work and then you just build the tuple structure out of the tokens. There's no Abstract Syntax Tree or anything like that." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "def _parse(tokens):\n", + " '''\n", + " Return a stack/list expression of the tokens.\n", + " '''\n", + " frame = []\n", + " stack = []\n", + " for tok in tokens:\n", + " if tok == '[':\n", + " stack.append(frame)\n", + " frame = []\n", + " stack[-1].append(frame)\n", + " elif tok == ']':\n", + " try:\n", + " frame = stack.pop()\n", + " except IndexError:\n", + " raise ParseError('One or more extra closing brackets.')\n", + " frame[-1] = list_to_stack(frame[-1])\n", + " else:\n", + " frame.append(tok)\n", + " if stack:\n", + " raise ParseError('One or more unclosed brackets.')\n", + " return list_to_stack(frame)\n", + "\n" + ] + } + ], + "source": [ + "print inspect.getsource(joy.parser._parse)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That's pretty much all there is to it." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, (2, (3, (4, (5, ())))))" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "joy.parser.text_to_expression('1 2 3 4 5') # A simple sequence." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((1, (2, (3, ()))), (4, (5, ())))" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "joy.parser.text_to_expression('[1 2 3] 4 5') # Three items, the first is a list with three items" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, (23, (('four', ((-5.0, ()), (cons, ()))), (8888, ()))))" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "joy.parser.text_to_expression('1 23 [\"four\" [-5.0] cons] 8888') # A mixed bag. cons is\n", + " # a Symbol, no lookup at\n", + " # parse-time. Haiku docs." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((), ((), ((), ((), ((), ())))))" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "joy.parser.text_to_expression('[][][][][]') # Five empty lists." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((((((), ()), ()), ()), ()), ())" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "joy.parser.text_to_expression('[[[[[]]]]]') # Five nested lists." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Library\n", + "The Joy library of functions (aka commands, or \"words\" after Forth usage) encapsulates all the actual functionality (no pun intended) of the Joy system. There are simple functions such as addition `add` (or `+`, the library module supports aliases), and combinators which provide control-flow and higher-order operations." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "!= % & * *fraction *fraction0 + ++ - -- / < << <= <> = > >= >> ? ^ add anamorphism and app1 app2 app3 average b binary branch choice clear cleave concat cons dinfrirst dip dipd dipdd disenstacken div down_to_zero dudipd dup dupd dupdip enstacken eq first flatten floordiv gcd ge genrec getitem gt help i id ifte infra le least_fraction loop lshift lt map min mod modulus mul ne neg not nullary or over pam parse pm pop popd popdd popop pow pred primrec product quoted range range_to_zero rem remainder remove rest reverse roll< roll> rolldown rollup rshift run second select sharing shunt size sqr sqrt stack step sub succ sum swaack swap swoncat swons ternary third times truediv truthy tuck unary uncons unit unquoted unstack void warranty while words x xor zip •\n" + ] + } + ], + "source": [ + "import joy.library\n", + "\n", + "print ' '.join(sorted(joy.library.initialize()))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Many of the functions are defined in Python, like `dip`:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "def dip(stack, expression, dictionary):\n", + " (quote, (x, stack)) = stack\n", + " expression = x, expression\n", + " return stack, pushback(quote, expression), dictionary\n", + "\n" + ] + } + ], + "source": [ + "print inspect.getsource(joy.library.dip)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Some functions are defined in equations in terms of other functions. When the interpreter executes a definition function that function just pushes its body expression onto the pending expression (the continuation) and returns control to the interpreter." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "second == rest first\n", + "third == rest rest first\n", + "product == 1 swap [*] step\n", + "swons == swap cons\n", + "swoncat == swap concat\n", + "flatten == [] swap [concat] step\n", + "unit == [] cons\n", + "quoted == [unit] dip\n", + "unquoted == [i] dip\n", + "enstacken == stack [clear] dip\n", + "disenstacken == ? [uncons ?] loop pop\n", + "? == dup truthy\n", + "dinfrirst == dip infra first\n", + "nullary == [stack] dinfrirst\n", + "unary == [stack [pop] dip] dinfrirst\n", + "binary == [stack [popop] dip] dinfrirst\n", + "ternary == [stack [popop pop] dip] dinfrirst\n", + "pam == [i] map\n", + "run == [] swap infra\n", + "sqr == dup mul\n", + "size == 0 swap [pop ++] step\n", + "cleave == [i] app2 [popd] dip\n", + "average == [sum 1.0 *] [size] cleave /\n", + "gcd == 1 [tuck modulus dup 0 >] loop pop\n", + "least_fraction == dup [gcd] infra [div] concat map\n", + "*fraction == [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons\n", + "*fraction0 == concat [[swap] dip * [*] dip] infra\n", + "down_to_zero == [0 >] [dup --] while\n", + "range_to_zero == unit [down_to_zero] infra\n", + "anamorphism == [pop []] swap [dip swons] genrec\n", + "range == [0 <=] [1 - dup] anamorphism\n", + "while == swap [nullary] cons dup dipd concat loop\n", + "dudipd == dup dipd\n", + "primrec == [i] genrec\n", + "\n" + ] + } + ], + "source": [ + "print joy.library.definitions" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Currently, there's no function to add new definitions to the dictionary from \"within\" Joy code itself. Adding new definitions remains a meta-interpreter action. You have to do it yourself, in Python, and wash your hands afterward.\n", + "\n", + "It would be simple enough to define one, but it would open the door to *name binding* and break the idea that all state is captured in the stack and expression. There's an implicit *standard dictionary* that defines the actual semantics of the syntactic stack and expression datastructures (which only contain symbols, not the actual functions. Pickle some and see for yourself.)\n", + "\n", + "#### \"There should be only one.\"\n", + "\n", + "Which brings me to talking about one of my hopes and dreams for this notation: \"There should be only one.\" What I mean is that there should be one universal standard dictionary of commands, and all bespoke work done in a UI for purposes takes place by direct interaction and macros. There would be a *Grand Refactoring* biannually (two years, not six months, that's semi-annually) where any new definitions factored out of the usage and macros of the previous time, along with new algorithms and such, were entered into the dictionary and posted to e.g. IPFS.\n", + "\n", + "Code should not burgeon wildly, as it does today. The variety of code should map more-or-less to the well-factored variety of human computably-solvable problems. There shouldn't be dozens of chat apps, JS frameworks, programming languages. It's a waste of time, a [fractal \"thundering herd\" attack](https://en.wikipedia.org/wiki/Thundering_herd_problem) on human mentality.\n", + "\n", + "#### Literary Code Library\n", + "\n", + "If you read over the other notebooks you'll see that developing code in Joy is a lot like doing simple mathematics, and the descriptions of the code resemble math papers. The code also works the first time, no bugs. If you have any experience programming at all, you are probably skeptical, as I was, but it seems to work: deriving code mathematically seems to lead to fewer errors.\n", + "\n", + "But my point now is that this great ratio of textual explanation to wind up with code that consists of a few equations and could fit on an index card is highly desirable. Less code has fewer errors. The structure of Joy engenders a kind of thinking that seems to be very effective for developing structured processes.\n", + "\n", + "There seems to be an elegance and power to the notation.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + " " + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/0. This Implementation of Joy in Python.md b/docs/0. This Implementation of Joy in Python.md new file mode 100644 index 0000000..d3871fa --- /dev/null +++ b/docs/0. This Implementation of Joy in Python.md @@ -0,0 +1,410 @@ + +# Joypy +## Joy in Python + +This implementation is meant as a tool for exploring the programming model and method of Joy. Python seems like a great implementation language for Joy for several reasons. + +We can lean on the Python immutable types for our basic semantics and types: ints, floats, strings, and tuples, which enforces functional purity. We get garbage collection for free. Compilation via Cython. Glue language with loads of libraries. + +### [Read-Eval-Print Loop (REPL)](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) +The main way to interact with the Joy interpreter is through a simple [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) that you start by running the package: + + $ python -m joy + Joypy - Copyright © 2017 Simon Forman + This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty". + This is free software, and you are welcome to redistribute it + under certain conditions; type "sharing" for details. + Type "words" to see a list of all words, and "[] help" to print the + docs for a word. + + + <-top + + joy? _ + +The `<-top` marker points to the top of the (initially empty) stack. You can enter Joy notation at the prompt and a [trace of evaluation](#The-TracePrinter.) will be printed followed by the stack and prompt again: + + joy? 23 sqr 18 + + . 23 sqr 18 + + 23 . sqr 18 + + 23 . dup mul 18 + + 23 23 . mul 18 + + 529 . 18 + + 529 18 . + + 547 . + + 547 <-top + + joy? + + +# Stacks (aka list, quote, sequence, etc.) + +In Joy, in addition to the types Boolean, integer, float, and string, there is a single sequence type represented by enclosing a sequence of terms in brackets `[...]`. This sequence type is used to represent both the stack and the expression. It is a [cons list](https://en.wikipedia.org/wiki/Cons#Lists) made from Python tuples. + + +```python +import inspect +import joy.utils.stack + + +print inspect.getdoc(joy.utils.stack) +``` + + § Stack + + + When talking about Joy we use the terms "stack", "list", "sequence" and + "aggregate" to mean the same thing: a simple datatype that permits + certain operations such as iterating and pushing and popping values from + (at least) one end. + + We use the venerable two-tuple recursive form of sequences where the + empty tuple () is the empty stack and (head, rest) gives the recursive + form of a stack with one or more items on it. + + () + (1, ()) + (2, (1, ())) + (3, (2, (1, ()))) + ... + + And so on. + + + We have two very simple functions to build up a stack from a Python + iterable and also to iterate through a stack and yield its items + one-by-one in order, and two functions to generate string representations + of stacks: + + list_to_stack() + + iter_stack() + + expression_to_string() (prints left-to-right) + + stack_to_string() (prints right-to-left) + + + A word about the stack data structure. + + Python has very nice "tuple packing and unpacking" in its syntax which + means we can directly "unpack" the expected arguments to a Joy function. + + For example: + + def dup(stack): + head, tail = stack + return head, (head, tail) + + We replace the argument "stack" by the expected structure of the stack, + in this case "(head, tail)", and Python takes care of de-structuring the + incoming argument and assigning values to the names. Note that Python + syntax doesn't require parentheses around tuples used in expressions + where they would be redundant. + + +### The utility functions maintain order. +The 0th item in the list will be on the top of the stack and *vise versa*. + + +```python +joy.utils.stack.list_to_stack([1, 2, 3]) +``` + + + + + (1, (2, (3, ()))) + + + + +```python +list(joy.utils.stack.iter_stack((1, (2, (3, ()))))) +``` + + + + + [1, 2, 3] + + + +This requires reversing the sequence (or iterating backwards) otherwise: + + +```python +stack = () + +for n in [1, 2, 3]: + stack = n, stack + +print stack +print list(joy.utils.stack.iter_stack(stack)) +``` + + (3, (2, (1, ()))) + [3, 2, 1] + + +### Purely Functional Datastructures. +Because Joy lists are made out of Python tuples they are immutable, so all Joy datastructures are *[purely functional](https://en.wikipedia.org/wiki/Purely_functional_data_structure)*. + +# The `joy()` function. +## An Interpreter +The `joy()` function is extrememly simple. It accepts a stack, an expression, and a dictionary, and it iterates through the expression putting values onto the stack and delegating execution to functions it looks up in the dictionary. + +Each function is passed the stack, expression, and dictionary and returns them. Whatever the function returns becomes the new stack, expression, and dictionary. (The dictionary is passed to enable e.g. writing words that let you enter new words into the dictionary at runtime, which nothing does yet and may be a bad idea, and the `help` command.) + + +```python +import joy.joy + +print inspect.getsource(joy.joy.joy) +``` + + def joy(stack, expression, dictionary, viewer=None): + ''' + Evaluate the Joy expression on the stack. + ''' + while expression: + + if viewer: viewer(stack, expression) + + term, expression = expression + if isinstance(term, Symbol): + term = dictionary[term] + stack, expression, dictionary = term(stack, expression, dictionary) + else: + stack = term, stack + + if viewer: viewer(stack, expression) + return stack, expression, dictionary + + + +### View function +The `joy()` function accepts a "viewer" function which it calls on each iteration passing the current stack and expression just before evaluation. This can be used for tracing, breakpoints, retrying after exceptions, or interrupting an evaluation and saving to disk or sending over the network to resume later. The stack and expression together contain all the state of the computation at each step. + +### The `TracePrinter`. + +A `viewer` records each step of the evaluation of a Joy program. The `TracePrinter` has a facility for printing out a trace of the evaluation, one line per step. Each step is aligned to the current interpreter position, signified by a period separating the stack on the left from the pending expression ("continuation") on the right. + +### [Continuation-Passing Style](https://en.wikipedia.org/wiki/Continuation-passing_style) +One day I thought, What happens if you rewrite Joy to use [CSP](https://en.wikipedia.org/wiki/Continuation-passing_style)? I made all the functions accept and return the expression as well as the stack and found that all the combinators could be rewritten to work by modifying the expression rather than making recursive calls to the `joy()` function. + +# Parser + + +```python +import joy.parser + +print inspect.getdoc(joy.parser) +``` + + § Converting text to a joy expression. + + This module exports a single function: + + text_to_expression(text) + + As well as a single Symbol class and a single Exception type: + + ParseError + + When supplied with a string this function returns a Python datastructure + that represents the Joy datastructure described by the text expression. + Any unbalanced square brackets will raise a ParseError. + + +The parser is extremely simple, the undocumented `re.Scanner` class does most of the tokenizing work and then you just build the tuple structure out of the tokens. There's no Abstract Syntax Tree or anything like that. + + +```python +print inspect.getsource(joy.parser._parse) +``` + + def _parse(tokens): + ''' + Return a stack/list expression of the tokens. + ''' + frame = [] + stack = [] + for tok in tokens: + if tok == '[': + stack.append(frame) + frame = [] + stack[-1].append(frame) + elif tok == ']': + try: + frame = stack.pop() + except IndexError: + raise ParseError('One or more extra closing brackets.') + frame[-1] = list_to_stack(frame[-1]) + else: + frame.append(tok) + if stack: + raise ParseError('One or more unclosed brackets.') + return list_to_stack(frame) + + + +That's pretty much all there is to it. + + +```python +joy.parser.text_to_expression('1 2 3 4 5') # A simple sequence. +``` + + + + + (1, (2, (3, (4, (5, ()))))) + + + + +```python +joy.parser.text_to_expression('[1 2 3] 4 5') # Three items, the first is a list with three items +``` + + + + + ((1, (2, (3, ()))), (4, (5, ()))) + + + + +```python +joy.parser.text_to_expression('1 23 ["four" [-5.0] cons] 8888') # A mixed bag. cons is + # a Symbol, no lookup at + # parse-time. Haiku docs. +``` + + + + + (1, (23, (('four', ((-5.0, ()), (cons, ()))), (8888, ())))) + + + + +```python +joy.parser.text_to_expression('[][][][][]') # Five empty lists. +``` + + + + + ((), ((), ((), ((), ((), ()))))) + + + + +```python +joy.parser.text_to_expression('[[[[[]]]]]') # Five nested lists. +``` + + + + + ((((((), ()), ()), ()), ()), ()) + + + +# Library +The Joy library of functions (aka commands, or "words" after Forth usage) encapsulates all the actual functionality (no pun intended) of the Joy system. There are simple functions such as addition `add` (or `+`, the library module supports aliases), and combinators which provide control-flow and higher-order operations. + + +```python +import joy.library + +print ' '.join(sorted(joy.library.initialize())) +``` + + != % & * *fraction *fraction0 + ++ - -- / < << <= <> = > >= >> ? ^ add anamorphism and app1 app2 app3 average b binary branch choice clear cleave concat cons dinfrirst dip dipd dipdd disenstacken div down_to_zero dudipd dup dupd dupdip enstacken eq first flatten floordiv gcd ge genrec getitem gt help i id ifte infra le least_fraction loop lshift lt map min mod modulus mul ne neg not nullary or over pam parse pm pop popd popdd popop pow pred primrec product quoted range range_to_zero rem remainder remove rest reverse roll< roll> rolldown rollup rshift run second select sharing shunt size sqr sqrt stack step sub succ sum swaack swap swoncat swons ternary third times truediv truthy tuck unary uncons unit unquoted unstack void warranty while words x xor zip • + + +Many of the functions are defined in Python, like `dip`: + + +```python +print inspect.getsource(joy.library.dip) +``` + + def dip(stack, expression, dictionary): + (quote, (x, stack)) = stack + expression = x, expression + return stack, pushback(quote, expression), dictionary + + + +Some functions are defined in equations in terms of other functions. When the interpreter executes a definition function that function just pushes its body expression onto the pending expression (the continuation) and returns control to the interpreter. + + +```python +print joy.library.definitions +``` + + second == rest first + third == rest rest first + product == 1 swap [*] step + swons == swap cons + swoncat == swap concat + flatten == [] swap [concat] step + unit == [] cons + quoted == [unit] dip + unquoted == [i] dip + enstacken == stack [clear] dip + disenstacken == ? [uncons ?] loop pop + ? == dup truthy + dinfrirst == dip infra first + nullary == [stack] dinfrirst + unary == [stack [pop] dip] dinfrirst + binary == [stack [popop] dip] dinfrirst + ternary == [stack [popop pop] dip] dinfrirst + pam == [i] map + run == [] swap infra + sqr == dup mul + size == 0 swap [pop ++] step + cleave == [i] app2 [popd] dip + average == [sum 1.0 *] [size] cleave / + gcd == 1 [tuck modulus dup 0 >] loop pop + least_fraction == dup [gcd] infra [div] concat map + *fraction == [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons + *fraction0 == concat [[swap] dip * [*] dip] infra + down_to_zero == [0 >] [dup --] while + range_to_zero == unit [down_to_zero] infra + anamorphism == [pop []] swap [dip swons] genrec + range == [0 <=] [1 - dup] anamorphism + while == swap [nullary] cons dup dipd concat loop + dudipd == dup dipd + primrec == [i] genrec + + + +Currently, there's no function to add new definitions to the dictionary from "within" Joy code itself. Adding new definitions remains a meta-interpreter action. You have to do it yourself, in Python, and wash your hands afterward. + +It would be simple enough to define one, but it would open the door to *name binding* and break the idea that all state is captured in the stack and expression. There's an implicit *standard dictionary* that defines the actual semantics of the syntactic stack and expression datastructures (which only contain symbols, not the actual functions. Pickle some and see for yourself.) + +#### "There should be only one." + +Which brings me to talking about one of my hopes and dreams for this notation: "There should be only one." What I mean is that there should be one universal standard dictionary of commands, and all bespoke work done in a UI for purposes takes place by direct interaction and macros. There would be a *Grand Refactoring* biannually (two years, not six months, that's semi-annually) where any new definitions factored out of the usage and macros of the previous time, along with new algorithms and such, were entered into the dictionary and posted to e.g. IPFS. + +Code should not burgeon wildly, as it does today. The variety of code should map more-or-less to the well-factored variety of human computably-solvable problems. There shouldn't be dozens of chat apps, JS frameworks, programming languages. It's a waste of time, a [fractal "thundering herd" attack](https://en.wikipedia.org/wiki/Thundering_herd_problem) on human mentality. + +#### Literary Code Library + +If you read over the other notebooks you'll see that developing code in Joy is a lot like doing simple mathematics, and the descriptions of the code resemble math papers. The code also works the first time, no bugs. If you have any experience programming at all, you are probably skeptical, as I was, but it seems to work: deriving code mathematically seems to lead to fewer errors. + +But my point now is that this great ratio of textual explanation to wind up with code that consists of a few equations and could fit on an index card is highly desirable. Less code has fewer errors. The structure of Joy engenders a kind of thinking that seems to be very effective for developing structured processes. + +There seems to be an elegance and power to the notation. + + + +```python + +``` diff --git a/docs/1. Basic Use of Joy in a Notebook.html b/docs/1. Basic Use of Joy in a Notebook.html new file mode 100644 index 0000000..ef8d4b3 --- /dev/null +++ b/docs/1. Basic Use of Joy in a Notebook.html @@ -0,0 +1,12079 @@ + + + +1. Basic Use of Joy in a Notebook + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Preamble

First, import what we need.

+ +
+
+
+
+
+
In [1]:
+
+
+
from joy.joy import run
+from joy.library import initialize
+from joy.utils.stack import stack_to_string
+from joy.utils.pretty_print import TracePrinter
+
+ +
+
+
+ +
+
+
+
+
+

Define a dictionary, an initial stack, and two helper functions to run Joy code and print results for us.

+ +
+
+
+
+
+
In [2]:
+
+
+
D = initialize()
+S = ()
+
+
+def J(text):
+    print stack_to_string(run(text, S, D)[0])
+
+
+def V(text):
+    tp = TracePrinter()
+    run(text, S, D, tp.viewer)
+    tp.print_()
+
+ +
+
+
+ +
+
+
+
+
+

Run some simple programs

+
+
+
+
+
+
In [3]:
+
+
+
J('23 18 +')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
41
+
+
+
+ +
+
+ +
+
+
+
In [4]:
+
+
+
J('45 30 gcd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
15
+
+
+
+ +
+
+ +
+
+
+
+
+

With Viewer

A viewer records each step of the evaluation of a Joy program. The TracePrinter has a facility for printing out a trace of the evaluation, one line per step. Each step is aligned to the current interpreter position, signified by a period separating the stack on the left from the pending expression ("continuation") on the right. I find these traces beautiful, like a kind of art.

+ +
+
+
+
+
+
In [5]:
+
+
+
V('23 18 +')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
      . 23 18 +
+   23 . 18 +
+23 18 . +
+   41 . 
+
+
+
+ +
+
+ +
+
+
+
In [6]:
+
+
+
V('45 30 gcd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                  . 45 30 gcd
+                               45 . 30 gcd
+                            45 30 . gcd
+                            45 30 . 1 [tuck modulus dup 0 >] loop pop
+                          45 30 1 . [tuck modulus dup 0 >] loop pop
+   45 30 1 [tuck modulus dup 0 >] . loop pop
+                            45 30 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                         30 45 30 . modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                            30 15 . dup 0 > [tuck modulus dup 0 >] loop pop
+                         30 15 15 . 0 > [tuck modulus dup 0 >] loop pop
+                       30 15 15 0 . > [tuck modulus dup 0 >] loop pop
+                       30 15 True . [tuck modulus dup 0 >] loop pop
+30 15 True [tuck modulus dup 0 >] . loop pop
+                            30 15 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                         15 30 15 . modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                             15 0 . dup 0 > [tuck modulus dup 0 >] loop pop
+                           15 0 0 . 0 > [tuck modulus dup 0 >] loop pop
+                         15 0 0 0 . > [tuck modulus dup 0 >] loop pop
+                       15 0 False . [tuck modulus dup 0 >] loop pop
+15 0 False [tuck modulus dup 0 >] . loop pop
+                             15 0 . pop
+                               15 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Here's a longer trace.

+ +
+
+
+
+
+
In [7]:
+
+
+
V('96 27 gcd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                  . 96 27 gcd
+                               96 . 27 gcd
+                            96 27 . gcd
+                            96 27 . 1 [tuck modulus dup 0 >] loop pop
+                          96 27 1 . [tuck modulus dup 0 >] loop pop
+   96 27 1 [tuck modulus dup 0 >] . loop pop
+                            96 27 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                         27 96 27 . modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                            27 15 . dup 0 > [tuck modulus dup 0 >] loop pop
+                         27 15 15 . 0 > [tuck modulus dup 0 >] loop pop
+                       27 15 15 0 . > [tuck modulus dup 0 >] loop pop
+                       27 15 True . [tuck modulus dup 0 >] loop pop
+27 15 True [tuck modulus dup 0 >] . loop pop
+                            27 15 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                         15 27 15 . modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                            15 12 . dup 0 > [tuck modulus dup 0 >] loop pop
+                         15 12 12 . 0 > [tuck modulus dup 0 >] loop pop
+                       15 12 12 0 . > [tuck modulus dup 0 >] loop pop
+                       15 12 True . [tuck modulus dup 0 >] loop pop
+15 12 True [tuck modulus dup 0 >] . loop pop
+                            15 12 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                         12 15 12 . modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                             12 3 . dup 0 > [tuck modulus dup 0 >] loop pop
+                           12 3 3 . 0 > [tuck modulus dup 0 >] loop pop
+                         12 3 3 0 . > [tuck modulus dup 0 >] loop pop
+                        12 3 True . [tuck modulus dup 0 >] loop pop
+ 12 3 True [tuck modulus dup 0 >] . loop pop
+                             12 3 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                           3 12 3 . modulus dup 0 > [tuck modulus dup 0 >] loop pop
+                              3 0 . dup 0 > [tuck modulus dup 0 >] loop pop
+                            3 0 0 . 0 > [tuck modulus dup 0 >] loop pop
+                          3 0 0 0 . > [tuck modulus dup 0 >] loop pop
+                        3 0 False . [tuck modulus dup 0 >] loop pop
+ 3 0 False [tuck modulus dup 0 >] . loop pop
+                              3 0 . pop
+                                3 . 
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/1. Basic Use of Joy in a Notebook.ipynb b/docs/1. Basic Use of Joy in a Notebook.ipynb new file mode 100644 index 0000000..7c8f2a3 --- /dev/null +++ b/docs/1. Basic Use of Joy in a Notebook.ipynb @@ -0,0 +1,240 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Preamble\n", + "\n", + "First, import what we need." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.joy import run\n", + "from joy.library import initialize\n", + "from joy.utils.stack import stack_to_string\n", + "from joy.utils.pretty_print import TracePrinter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define a dictionary, an initial stack, and two helper functions to run Joy code and print results for us." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "D = initialize()\n", + "S = ()\n", + "\n", + "\n", + "def J(text):\n", + " print stack_to_string(run(text, S, D)[0])\n", + "\n", + "\n", + "def V(text):\n", + " tp = TracePrinter()\n", + " run(text, S, D, tp.viewer)\n", + " tp.print_()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run some simple programs" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "41\n" + ] + } + ], + "source": [ + "J('23 18 +')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n" + ] + } + ], + "source": [ + "J('45 30 gcd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### With Viewer\n", + "\n", + "A `viewer` records each step of the evaluation of a Joy program. The `TracePrinter` has a facility for printing out a trace of the evaluation, one line per step. Each step is aligned to the current interpreter position, signified by a period separating the stack on the left from the pending expression (\"continuation\") on the right. I find these traces beautiful, like a kind of art." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 23 18 +\n", + " 23 . 18 +\n", + "23 18 . +\n", + " 41 . \n" + ] + } + ], + "source": [ + "V('23 18 +')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 45 30 gcd\n", + " 45 . 30 gcd\n", + " 45 30 . gcd\n", + " 45 30 . 1 [tuck modulus dup 0 >] loop pop\n", + " 45 30 1 . [tuck modulus dup 0 >] loop pop\n", + " 45 30 1 [tuck modulus dup 0 >] . loop pop\n", + " 45 30 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 30 45 30 . modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 30 15 . dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 30 15 15 . 0 > [tuck modulus dup 0 >] loop pop\n", + " 30 15 15 0 . > [tuck modulus dup 0 >] loop pop\n", + " 30 15 True . [tuck modulus dup 0 >] loop pop\n", + "30 15 True [tuck modulus dup 0 >] . loop pop\n", + " 30 15 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 30 15 . modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 0 . dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 0 0 . 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 0 0 0 . > [tuck modulus dup 0 >] loop pop\n", + " 15 0 False . [tuck modulus dup 0 >] loop pop\n", + "15 0 False [tuck modulus dup 0 >] . loop pop\n", + " 15 0 . pop\n", + " 15 . \n" + ] + } + ], + "source": [ + "V('45 30 gcd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a longer trace." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 96 27 gcd\n", + " 96 . 27 gcd\n", + " 96 27 . gcd\n", + " 96 27 . 1 [tuck modulus dup 0 >] loop pop\n", + " 96 27 1 . [tuck modulus dup 0 >] loop pop\n", + " 96 27 1 [tuck modulus dup 0 >] . loop pop\n", + " 96 27 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 27 96 27 . modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 27 15 . dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 27 15 15 . 0 > [tuck modulus dup 0 >] loop pop\n", + " 27 15 15 0 . > [tuck modulus dup 0 >] loop pop\n", + " 27 15 True . [tuck modulus dup 0 >] loop pop\n", + "27 15 True [tuck modulus dup 0 >] . loop pop\n", + " 27 15 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 27 15 . modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 12 . dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 12 12 . 0 > [tuck modulus dup 0 >] loop pop\n", + " 15 12 12 0 . > [tuck modulus dup 0 >] loop pop\n", + " 15 12 True . [tuck modulus dup 0 >] loop pop\n", + "15 12 True [tuck modulus dup 0 >] . loop pop\n", + " 15 12 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 12 15 12 . modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 12 3 . dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 12 3 3 . 0 > [tuck modulus dup 0 >] loop pop\n", + " 12 3 3 0 . > [tuck modulus dup 0 >] loop pop\n", + " 12 3 True . [tuck modulus dup 0 >] loop pop\n", + " 12 3 True [tuck modulus dup 0 >] . loop pop\n", + " 12 3 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 3 12 3 . modulus dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 3 0 . dup 0 > [tuck modulus dup 0 >] loop pop\n", + " 3 0 0 . 0 > [tuck modulus dup 0 >] loop pop\n", + " 3 0 0 0 . > [tuck modulus dup 0 >] loop pop\n", + " 3 0 False . [tuck modulus dup 0 >] loop pop\n", + " 3 0 False [tuck modulus dup 0 >] . loop pop\n", + " 3 0 . pop\n", + " 3 . \n" + ] + } + ], + "source": [ + "V('96 27 gcd')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/1. Basic Use of Joy in a Notebook.md b/docs/1. Basic Use of Joy in a Notebook.md new file mode 100644 index 0000000..a46ae6a --- /dev/null +++ b/docs/1. Basic Use of Joy in a Notebook.md @@ -0,0 +1,137 @@ + +### Preamble + +First, import what we need. + + +```python +from joy.joy import run +from joy.library import initialize +from joy.utils.stack import stack_to_string +from joy.utils.pretty_print import TracePrinter +``` + +Define a dictionary, an initial stack, and two helper functions to run Joy code and print results for us. + + +```python +D = initialize() +S = () + + +def J(text): + print stack_to_string(run(text, S, D)[0]) + + +def V(text): + tp = TracePrinter() + run(text, S, D, tp.viewer) + tp.print_() +``` + +### Run some simple programs + + +```python +J('23 18 +') +``` + + 41 + + + +```python +J('45 30 gcd') +``` + + 15 + + +### With Viewer + +A `viewer` records each step of the evaluation of a Joy program. The `TracePrinter` has a facility for printing out a trace of the evaluation, one line per step. Each step is aligned to the current interpreter position, signified by a period separating the stack on the left from the pending expression ("continuation") on the right. I find these traces beautiful, like a kind of art. + + +```python +V('23 18 +') +``` + + . 23 18 + + 23 . 18 + + 23 18 . + + 41 . + + + +```python +V('45 30 gcd') +``` + + . 45 30 gcd + 45 . 30 gcd + 45 30 . gcd + 45 30 . 1 [tuck modulus dup 0 >] loop pop + 45 30 1 . [tuck modulus dup 0 >] loop pop + 45 30 1 [tuck modulus dup 0 >] . loop pop + 45 30 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop + 30 45 30 . modulus dup 0 > [tuck modulus dup 0 >] loop pop + 30 15 . dup 0 > [tuck modulus dup 0 >] loop pop + 30 15 15 . 0 > [tuck modulus dup 0 >] loop pop + 30 15 15 0 . > [tuck modulus dup 0 >] loop pop + 30 15 True . [tuck modulus dup 0 >] loop pop + 30 15 True [tuck modulus dup 0 >] . loop pop + 30 15 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop + 15 30 15 . modulus dup 0 > [tuck modulus dup 0 >] loop pop + 15 0 . dup 0 > [tuck modulus dup 0 >] loop pop + 15 0 0 . 0 > [tuck modulus dup 0 >] loop pop + 15 0 0 0 . > [tuck modulus dup 0 >] loop pop + 15 0 False . [tuck modulus dup 0 >] loop pop + 15 0 False [tuck modulus dup 0 >] . loop pop + 15 0 . pop + 15 . + + +Here's a longer trace. + + +```python +V('96 27 gcd') +``` + + . 96 27 gcd + 96 . 27 gcd + 96 27 . gcd + 96 27 . 1 [tuck modulus dup 0 >] loop pop + 96 27 1 . [tuck modulus dup 0 >] loop pop + 96 27 1 [tuck modulus dup 0 >] . loop pop + 96 27 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop + 27 96 27 . modulus dup 0 > [tuck modulus dup 0 >] loop pop + 27 15 . dup 0 > [tuck modulus dup 0 >] loop pop + 27 15 15 . 0 > [tuck modulus dup 0 >] loop pop + 27 15 15 0 . > [tuck modulus dup 0 >] loop pop + 27 15 True . [tuck modulus dup 0 >] loop pop + 27 15 True [tuck modulus dup 0 >] . loop pop + 27 15 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop + 15 27 15 . modulus dup 0 > [tuck modulus dup 0 >] loop pop + 15 12 . dup 0 > [tuck modulus dup 0 >] loop pop + 15 12 12 . 0 > [tuck modulus dup 0 >] loop pop + 15 12 12 0 . > [tuck modulus dup 0 >] loop pop + 15 12 True . [tuck modulus dup 0 >] loop pop + 15 12 True [tuck modulus dup 0 >] . loop pop + 15 12 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop + 12 15 12 . modulus dup 0 > [tuck modulus dup 0 >] loop pop + 12 3 . dup 0 > [tuck modulus dup 0 >] loop pop + 12 3 3 . 0 > [tuck modulus dup 0 >] loop pop + 12 3 3 0 . > [tuck modulus dup 0 >] loop pop + 12 3 True . [tuck modulus dup 0 >] loop pop + 12 3 True [tuck modulus dup 0 >] . loop pop + 12 3 . tuck modulus dup 0 > [tuck modulus dup 0 >] loop pop + 3 12 3 . modulus dup 0 > [tuck modulus dup 0 >] loop pop + 3 0 . dup 0 > [tuck modulus dup 0 >] loop pop + 3 0 0 . 0 > [tuck modulus dup 0 >] loop pop + 3 0 0 0 . > [tuck modulus dup 0 >] loop pop + 3 0 False . [tuck modulus dup 0 >] loop pop + 3 0 False [tuck modulus dup 0 >] . loop pop + 3 0 . pop + 3 . + diff --git a/docs/2. Library Examples.html b/docs/2. Library Examples.html new file mode 100644 index 0000000..5e4a892 --- /dev/null +++ b/docs/2. Library Examples.html @@ -0,0 +1,16523 @@ + + + +2. Library Examples + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Examples (and some documentation) for the Words in the Library

+
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V
+
+ +
+
+
+ +
+
+
+
+
+

Stack Chatter

This is what I like to call the functions that just rearrange things on the stack. (One thing I want to mention is that during a hypothetical compilation phase these "stack chatter" words effectively disappear, because we can map the logical stack locations to registers that remain static for the duration of the computation. This remains to be done but it's "off the shelf" technology.)

+ +
+
+
+
+
+
+
+

clear

+
+
+
+
+
+
In [2]:
+
+
+
J('1 2 3 clear')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
+
+
+
+ +
+
+ +
+
+
+
+
+

dup dupd

+
+
+
+
+
+
In [3]:
+
+
+
J('1 2 3 dup')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 3
+
+
+
+ +
+
+ +
+
+
+
In [4]:
+
+
+
J('1 2 3 dupd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 2 3
+
+
+
+ +
+
+ +
+
+
+
+
+

enstacken disenstacken stack unstack

(I may have these paired up wrong. I.e. disenstacken should be unstack and vice versa.)

+ +
+
+
+
+
+
In [5]:
+
+
+
J('1 2 3 enstacken') # Replace the stack with a quote of itself.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 2 1]
+
+
+
+ +
+
+ +
+
+
+
In [6]:
+
+
+
J('4 5 6 [3 2 1] disenstacken')  # Unpack a list onto the stack.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4 5 6 3 2 1
+
+
+
+ +
+
+ +
+
+
+
In [7]:
+
+
+
J('1 2 3 stack')  # Get the stack on the stack.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 [3 2 1]
+
+
+
+ +
+
+ +
+
+
+
In [8]:
+
+
+
J('1 2 3 [4 5 6] unstack')  # Replace the stack with the list on top.
+                            # The items appear reversed but they are not,
+                            # 4 is on the top of both the list and the stack.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6 5 4
+
+
+
+ +
+
+ +
+
+
+
+
+

pop popd popop

+
+
+
+
+
+
In [9]:
+
+
+
J('1 2 3 pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2
+
+
+
+ +
+
+ +
+
+
+
In [10]:
+
+
+
J('1 2 3 popd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 3
+
+
+
+ +
+
+ +
+
+
+
In [11]:
+
+
+
J('1 2 3 popop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1
+
+
+
+ +
+
+ +
+
+
+
+
+

roll< rolldown roll> rollup

The "down" and "up" refer to the movement of two of the top three items (displacing the third.)

+ +
+
+
+
+
+
In [12]:
+
+
+
J('1 2 3 roll<')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2 3 1
+
+
+
+ +
+
+ +
+
+
+
In [13]:
+
+
+
J('1 2 3 roll>')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 1 2
+
+
+
+ +
+
+ +
+
+
+
+
+

swap

+
+
+
+
+
+
In [14]:
+
+
+
J('1 2 3 swap')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 3 2
+
+
+
+ +
+
+ +
+
+
+
+
+

tuck over

+
+
+
+
+
+
In [15]:
+
+
+
J('1 2 3 tuck')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 3 2 3
+
+
+
+ +
+
+ +
+
+
+
In [16]:
+
+
+
J('1 2 3 over')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 2
+
+
+
+ +
+
+ +
+
+
+
+
+

unit quoted unquoted

+
+
+
+
+
+
In [17]:
+
+
+
J('1 2 3 unit')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 [3]
+
+
+
+ +
+
+ +
+
+
+
In [18]:
+
+
+
J('1 2 3 quoted')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 [2] 3
+
+
+
+ +
+
+ +
+
+
+
In [19]:
+
+
+
J('1 [2] 3 unquoted')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3
+
+
+
+ +
+
+ +
+
+
+
In [20]:
+
+
+
V('1 [dup] 3 unquoted')  # Unquoting evaluates.  Be aware.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
              . 1 [dup] 3 unquoted
+            1 . [dup] 3 unquoted
+      1 [dup] . 3 unquoted
+    1 [dup] 3 . unquoted
+    1 [dup] 3 . [i] dip
+1 [dup] 3 [i] . dip
+      1 [dup] . i 3
+            1 . dup 3
+          1 1 . 3
+        1 1 3 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

List words

+
+
+
+
+
+
+
+

concat swoncat shunt

+
+
+
+
+
+
In [21]:
+
+
+
J('[1 2 3] [4 5 6] concat')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 2 3 4 5 6]
+
+
+
+ +
+
+ +
+
+
+
In [22]:
+
+
+
J('[1 2 3] [4 5 6] swoncat')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[4 5 6 1 2 3]
+
+
+
+ +
+
+ +
+
+
+
In [23]:
+
+
+
J('[1 2 3] [4 5 6] shunt')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[6 5 4 1 2 3]
+
+
+
+ +
+
+ +
+
+
+
+
+

cons swons uncons

+
+
+
+
+
+
In [24]:
+
+
+
J('1 [2 3] cons')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 2 3]
+
+
+
+ +
+
+ +
+
+
+
In [25]:
+
+
+
J('[2 3] 1 swons')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 2 3]
+
+
+
+ +
+
+ +
+
+
+
In [26]:
+
+
+
J('[1 2 3] uncons')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 [2 3]
+
+
+
+ +
+
+ +
+
+
+
+
+

first second third rest

+
+
+
+
+
+
In [27]:
+
+
+
J('[1 2 3 4] first')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1
+
+
+
+ +
+
+ +
+
+
+
In [28]:
+
+
+
J('[1 2 3 4] second')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
In [29]:
+
+
+
J('[1 2 3 4] third')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3
+
+
+
+ +
+
+ +
+
+
+
In [30]:
+
+
+
J('[1 2 3 4] rest')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 3 4]
+
+
+
+ +
+
+ +
+
+
+
+
+

flatten

+
+
+
+
+
+
In [31]:
+
+
+
J('[[1] [2 [3] 4] [5 6]] flatten')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 2 [3] 4 5 6]
+
+
+
+ +
+
+ +
+
+
+
+
+

getitem at of drop take

at and getitem are the same function. of == swap at

+ +
+
+
+
+
+
In [32]:
+
+
+
J('[10 11 12 13 14] 2 getitem')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
12
+
+
+
+ +
+
+ +
+
+
+
In [33]:
+
+
+
J('[1 2 3 4] 0 at')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1
+
+
+
+ +
+
+ +
+
+
+
In [34]:
+
+
+
J('2 [1 2 3 4] of')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3
+
+
+
+ +
+
+ +
+
+
+
In [35]:
+
+
+
J('[1 2 3 4] 2 drop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 4]
+
+
+
+ +
+
+ +
+
+
+
In [36]:
+
+
+
J('[1 2 3 4] 2 take')  # reverses the order
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 1]
+
+
+
+ +
+
+ +
+
+
+
+
+

reverse could be defines as reverse == dup size take

+ +
+
+
+
+
+
+
+

remove

+
+
+
+
+
+
In [37]:
+
+
+
J('[1 2 3 1 4] 1 remove')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 3 1 4]
+
+
+
+ +
+
+ +
+
+
+
+
+

reverse

+
+
+
+
+
+
In [38]:
+
+
+
J('[1 2 3 4] reverse')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[4 3 2 1]
+
+
+
+ +
+
+ +
+
+
+
+
+

size

+
+
+
+
+
+
In [39]:
+
+
+
J('[1 1 1 1] size')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4
+
+
+
+ +
+
+ +
+
+
+
+
+

swaack

"Swap stack" swap the list on the top of the stack for the stack, and put the old stack on top of the new one. Think of it as a context switch. Niether of the lists/stacks change their order.

+ +
+
+
+
+
+
In [40]:
+
+
+
J('1 2 3 [4 5 6] swaack')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6 5 4 [3 2 1]
+
+
+
+ +
+
+ +
+
+
+
+
+

choice select

+
+
+
+
+
+
In [41]:
+
+
+
J('23 9 1 choice')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9
+
+
+
+ +
+
+ +
+
+
+
In [42]:
+
+
+
J('23 9 0 choice')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23
+
+
+
+ +
+
+ +
+
+
+
In [43]:
+
+
+
J('[23 9 7] 1 select')  # select is basically getitem, should retire it?
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9
+
+
+
+ +
+
+ +
+
+
+
In [44]:
+
+
+
J('[23 9 7] 0 select')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23
+
+
+
+ +
+
+ +
+
+
+
+
+

zip

+
+
+
+
+
+
In [45]:
+
+
+
J('[1 2 3] [6 5 4] zip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[[6 1] [5 2] [4 3]]
+
+
+
+ +
+
+ +
+
+
+
In [46]:
+
+
+
J('[1 2 3] [6 5 4] zip [sum] map')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[7 7 7]
+
+
+
+ +
+
+ +
+
+
+
+
+

Math words

+
+
+
+
+
+
+
+

+ add

+
+
+
+
+
+
In [47]:
+
+
+
J('23 9 +')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
32
+
+
+
+ +
+
+ +
+
+
+
+
+

- sub

+
+
+
+
+
+
In [48]:
+
+
+
J('23 9 -')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
14
+
+
+
+ +
+
+ +
+
+
+
+
+

* mul

+
+
+
+
+
+
In [49]:
+
+
+
J('23 9 *')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
207
+
+
+
+ +
+
+ +
+
+
+
+
+

/ div floordiv truediv

+
+
+
+
+
+
In [50]:
+
+
+
J('23 9 /')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2.5555555555555554
+
+
+
+ +
+
+ +
+
+
+
In [51]:
+
+
+
J('23 -9 truediv')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-2.5555555555555554
+
+
+
+ +
+
+ +
+
+
+
In [52]:
+
+
+
J('23 9 div')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
In [53]:
+
+
+
J('23 9 floordiv')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
In [54]:
+
+
+
J('23 -9 div')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-3
+
+
+
+ +
+
+ +
+
+
+
In [55]:
+
+
+
J('23 -9 floordiv')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-3
+
+
+
+ +
+
+ +
+
+
+
+
+

% mod modulus rem remainder

+
+
+
+
+
+
In [56]:
+
+
+
J('23 9 %')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5
+
+
+
+ +
+
+ +
+
+
+
+
+

neg

+
+
+
+
+
+
In [57]:
+
+
+
J('23 neg -5 neg')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-23 5
+
+
+
+ +
+
+ +
+
+
+
+
+

pow

+
+
+
+
+
+
In [58]:
+
+
+
J('2 10 pow')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1024
+
+
+
+ +
+
+ +
+
+
+
+
+

sqr sqrt

+
+
+
+
+
+
In [59]:
+
+
+
J('23 sqr')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
529
+
+
+
+ +
+
+ +
+
+
+
In [60]:
+
+
+
J('23 sqrt')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4.795831523312719
+
+
+
+ +
+
+ +
+
+
+
+
+

++ succ -- pred

+
+
+
+
+
+
In [61]:
+
+
+
J('1 ++')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
In [62]:
+
+
+
J('1 --')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0
+
+
+
+ +
+
+ +
+
+
+
+
+

<< lshift >> rshift

+
+
+
+
+
+
In [63]:
+
+
+
J('8 1 <<')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
16
+
+
+
+ +
+
+ +
+
+
+
In [64]:
+
+
+
J('8 1 >>')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4
+
+
+
+ +
+
+ +
+
+
+
+
+

average

+
+
+
+
+
+
In [65]:
+
+
+
J('[1 2 3 5] average')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2.75
+
+
+
+ +
+
+ +
+
+
+
+
+

range range_to_zero down_to_zero

+
+
+
+
+
+
In [66]:
+
+
+
J('5 range')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[4 3 2 1 0]
+
+
+
+ +
+
+ +
+
+
+
In [67]:
+
+
+
J('5 range_to_zero')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[0 1 2 3 4 5]
+
+
+
+ +
+
+ +
+
+
+
In [68]:
+
+
+
J('5 down_to_zero')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5 4 3 2 1 0
+
+
+
+ +
+
+ +
+
+
+
+
+

product

+
+
+
+
+
+
In [69]:
+
+
+
J('[1 2 3 5] product')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
30
+
+
+
+ +
+
+ +
+
+
+
+
+

sum

+
+
+
+
+
+
In [70]:
+
+
+
J('[1 2 3 5] sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
11
+
+
+
+ +
+
+ +
+
+
+
+
+

min

+
+
+
+
+
+
In [71]:
+
+
+
J('[1 2 3 5] min')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1
+
+
+
+ +
+
+ +
+
+
+
+
+

gcd

+
+
+
+
+
+
In [72]:
+
+
+
J('45 30 gcd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
15
+
+
+
+ +
+
+ +
+
+
+
+
+

least_fraction

If we represent fractions as a quoted pair of integers [q d] this word reduces them to their ... least common factors or whatever.

+ +
+
+
+
+
+
In [73]:
+
+
+
J('[45 30] least_fraction')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 2]
+
+
+
+ +
+
+ +
+
+
+
In [74]:
+
+
+
J('[23 12] least_fraction')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[23 12]
+
+
+
+ +
+
+ +
+
+
+
+
+

Logic and Comparison

+
+
+
+
+
+
+
+

? truthy

Get the Boolean value of the item on the top of the stack.

+ +
+
+
+
+
+
In [75]:
+
+
+
J('23 truthy')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
True
+
+
+
+ +
+
+ +
+
+
+
In [76]:
+
+
+
J('[] truthy')  # Python semantics.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
False
+
+
+
+ +
+
+ +
+
+
+
In [77]:
+
+
+
J('0 truthy')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
False
+
+
+
+ +
+
+ +
+
+
+
+
+ +
? == dup truthy
+ +
+
+
+
+
+
In [78]:
+
+
+
V('23 ?')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
        . 23 ?
+     23 . ?
+     23 . dup truthy
+  23 23 . truthy
+23 True . 
+
+
+
+ +
+
+ +
+
+
+
In [79]:
+
+
+
J('[] ?')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[] False
+
+
+
+ +
+
+ +
+
+
+
In [80]:
+
+
+
J('0 ?')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0 False
+
+
+
+ +
+
+ +
+
+
+
+
+

& and

+
+
+
+
+
+
In [81]:
+
+
+
J('23 9 &')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1
+
+
+
+ +
+
+ +
+
+
+
+
+

!= <> ne

+
+
+
+
+
+
In [82]:
+
+
+
J('23 9 !=')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
True
+
+
+
+ +
+
+ +
+
+
+
+
+

The usual suspects:

+
    +
  • < lt
  • +
  • <= le
  • +
  • = eq
  • +
  • > gt
  • +
  • >= ge
  • +
  • not
  • +
  • or
  • +
+ +
+
+
+
+
+
+
+

^ xor

+
+
+
+
+
+
In [83]:
+
+
+
J('1 1 ^')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0
+
+
+
+ +
+
+ +
+
+
+
In [84]:
+
+
+
J('1 0 ^')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1
+
+
+
+ +
+
+ +
+
+
+
+
+

Miscellaneous

+
+
+
+
+
+
+
+

help

+
+
+
+
+
+
In [85]:
+
+
+
J('[help] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Accepts a quoted symbol on the top of the stack and prints its docs.
+
+
+
+
+ +
+
+ +
+
+
+
+
+

parse

+
+
+
+
+
+
In [86]:
+
+
+
J('[parse] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Parse the string on the stack to a Joy expression.
+
+
+
+
+ +
+
+ +
+
+
+
In [87]:
+
+
+
J('1 "2 [3] dup" parse')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 [2 [3] dup]
+
+
+
+ +
+
+ +
+
+
+
+
+

run

Evaluate a quoted Joy sequence.

+ +
+
+
+
+
+
In [88]:
+
+
+
J('[1 2 dup + +] run')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[5]
+
+
+
+ +
+
+ +
+
+
+
+
+

Combinators

+
+
+
+
+
+
+
+

app1 app2 app3

+
+
+
+
+
+
In [89]:
+
+
+
J('[app1] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Given a quoted program on TOS and anything as the second stack item run
+the program and replace the two args with the first result of the
+program.
+
+            ... x [Q] . app1
+   -----------------------------------
+      ... [x ...] [Q] . infra first
+
+
+
+
+ +
+
+ +
+
+
+
In [90]:
+
+
+
J('10 4 [sqr *] app1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10 160
+
+
+
+ +
+
+ +
+
+
+
In [91]:
+
+
+
J('10 3 4 [sqr *] app2')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10 90 160
+
+
+
+ +
+
+ +
+
+
+
In [92]:
+
+
+
J('[app2] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Like app1 with two items.
+
+       ... y x [Q] . app2
+-----------------------------------
+   ... [y ...] [Q] . infra first
+       [x ...] [Q]   infra first
+
+
+
+
+ +
+
+ +
+
+
+
In [93]:
+
+
+
J('10 2 3 4 [sqr *] app3')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10 40 90 160
+
+
+
+ +
+
+ +
+
+
+
+
+

anamorphism

Given an initial value, a predicate function [P], and a generator function [G], the anamorphism combinator creates a sequence.

+ +
   n [P] [G] anamorphism
+---------------------------
+          [...]
+
+
+

Example, range:

+ +
range == [0 <=] [1 - dup] anamorphism
+ +
+
+
+
+
+
In [94]:
+
+
+
J('3 [0 <=] [1 - dup] anamorphism')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 1 0]
+
+
+
+ +
+
+ +
+
+
+
+
+

branch

+
+
+
+
+
+
In [95]:
+
+
+
J('3 4 1 [+] [*] branch')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
12
+
+
+
+ +
+
+ +
+
+
+
In [96]:
+
+
+
J('3 4 0 [+] [*] branch')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
7
+
+
+
+ +
+
+ +
+
+
+
+
+

cleave

+
... x [P] [Q] cleave
+
+
+

From the original Joy docs: "The cleave combinator expects two quotations, and below that an item x +It first executes [P], with x on top, and saves the top result element. +Then it executes [Q], again with x, and saves the top result. +Finally it restores the stack to what it was below x and pushes the two +results P(X) and Q(X)."

+

Note that P and Q can use items from the stack freely, since the stack (below x) is restored. cleave is a kind of parallel primitive, and it would make sense to create a version that uses, e.g. Python threads or something, to actually run P and Q concurrently. The current implementation of cleave is a definition in terms of app2:

+ +
cleave == [i] app2 [popd] dip
+ +
+
+
+
+
+
In [97]:
+
+
+
J('10 2 [+] [-] cleave')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10 12 8
+
+
+
+ +
+
+ +
+
+
+
+
+

dip dipd dipdd

+
+
+
+
+
+
In [98]:
+
+
+
J('1 2 3 4 5 [+] dip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 7 5
+
+
+
+ +
+
+ +
+
+
+
In [99]:
+
+
+
J('1 2 3 4 5 [+] dipd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 5 4 5
+
+
+
+ +
+
+ +
+
+
+
In [100]:
+
+
+
J('1 2 3 4 5 [+] dipdd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 3 4 5
+
+
+
+ +
+
+ +
+
+
+
+
+

dupdip

Expects a quoted program [Q] on the stack and some item under it, dup the item and dip the quoted program under it.

+ +
n [Q] dupdip == n Q n
+ +
+
+
+
+
+
In [101]:
+
+
+
V('23 [++] dupdip *')  # N(N + 1)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
        . 23 [++] dupdip *
+     23 . [++] dupdip *
+23 [++] . dupdip *
+     23 . ++ 23 *
+     24 . 23 *
+  24 23 . *
+    552 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

genrec primrec

+
+
+
+
+
+
In [102]:
+
+
+
J('[genrec] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
General Recursion Combinator.
+
+                        [if] [then] [rec1] [rec2] genrec
+  ---------------------------------------------------------------------
+     [if] [then] [rec1 [[if] [then] [rec1] [rec2] genrec] rec2] ifte
+
+From "Recursion Theory and Joy" (j05cmp.html) by Manfred von Thun:
+"The genrec combinator takes four program parameters in addition to
+whatever data parameters it needs. Fourth from the top is an if-part,
+followed by a then-part. If the if-part yields true, then the then-part
+is executed and the combinator terminates. The other two parameters are
+the rec1-part and the rec2-part. If the if-part yields false, the
+rec1-part is executed. Following that the four program parameters and
+the combinator are again pushed onto the stack bundled up in a quoted
+form. Then the rec2-part is executed, where it will find the bundled
+form. Typically it will then execute the bundled form, either with i or
+with app2, or some other combinator."
+
+The way to design one of these is to fix your base case [then] and the
+test [if], and then treat rec1 and rec2 as an else-part "sandwiching"
+a quotation of the whole function.
+
+For example, given a (general recursive) function 'F':
+
+    F == [I] [T] [R1] [R2] genrec
+
+If the [I] if-part fails you must derive R1 and R2 from:
+
+    ... R1 [F] R2
+
+Just set the stack arguments in front, and figure out what R1 and R2
+have to do to apply the quoted [F] in the proper way.  In effect, the
+genrec combinator turns into an ifte combinator with a quoted copy of
+the original definition in the else-part:
+
+    F == [I] [T] [R1]   [R2] genrec
+      == [I] [T] [R1 [F] R2] ifte
+
+(Primitive recursive functions are those where R2 == i.
+
+    P == [I] [T] [R] primrec
+      == [I] [T] [R [P] i] ifte
+      == [I] [T] [R P] ifte
+)
+
+
+
+
+ +
+
+ +
+
+
+
In [103]:
+
+
+
J('3 [1 <=] [] [dup --] [i *] genrec')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6
+
+
+
+ +
+
+ +
+
+
+
+
+

i

+
+
+
+
+
+
In [104]:
+
+
+
V('1 2 3 [+ +] i')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
            . 1 2 3 [+ +] i
+          1 . 2 3 [+ +] i
+        1 2 . 3 [+ +] i
+      1 2 3 . [+ +] i
+1 2 3 [+ +] . i
+      1 2 3 . + +
+        1 5 . +
+          6 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

ifte

+
[predicate] [then] [else] ifte
+ +
+
+
+
+
+
In [105]:
+
+
+
J('1 2 [1] [+] [*] ifte')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3
+
+
+
+ +
+
+ +
+
+
+
In [106]:
+
+
+
J('1 2 [0] [+] [*] ifte')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
+
+

infra

+
+
+
+
+
+
In [107]:
+
+
+
V('1 2 3 [4 5 6] [* +] infra')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                    . 1 2 3 [4 5 6] [* +] infra
+                  1 . 2 3 [4 5 6] [* +] infra
+                1 2 . 3 [4 5 6] [* +] infra
+              1 2 3 . [4 5 6] [* +] infra
+      1 2 3 [4 5 6] . [* +] infra
+1 2 3 [4 5 6] [* +] . infra
+              6 5 4 . * + [3 2 1] swaack
+               6 20 . + [3 2 1] swaack
+                 26 . [3 2 1] swaack
+         26 [3 2 1] . swaack
+         1 2 3 [26] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

loop

+
+
+
+
+
+
In [108]:
+
+
+
J('[loop] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Basic loop combinator.
+
+   ... True [Q] loop
+-----------------------
+     ... Q [Q] loop
+
+   ... False [Q] loop
+------------------------
+          ...
+
+
+
+
+ +
+
+ +
+
+
+
In [109]:
+
+
+
V('3 dup [1 - dup] loop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
              . 3 dup [1 - dup] loop
+            3 . dup [1 - dup] loop
+          3 3 . [1 - dup] loop
+3 3 [1 - dup] . loop
+            3 . 1 - dup [1 - dup] loop
+          3 1 . - dup [1 - dup] loop
+            2 . dup [1 - dup] loop
+          2 2 . [1 - dup] loop
+2 2 [1 - dup] . loop
+            2 . 1 - dup [1 - dup] loop
+          2 1 . - dup [1 - dup] loop
+            1 . dup [1 - dup] loop
+          1 1 . [1 - dup] loop
+1 1 [1 - dup] . loop
+            1 . 1 - dup [1 - dup] loop
+          1 1 . - dup [1 - dup] loop
+            0 . dup [1 - dup] loop
+          0 0 . [1 - dup] loop
+0 0 [1 - dup] . loop
+            0 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

map pam

+
+
+
+
+
+
In [110]:
+
+
+
J('10 [1 2 3] [*] map')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10 [10 20 30]
+
+
+
+ +
+
+ +
+
+
+
In [111]:
+
+
+
J('10 5 [[*][/][+][-]] pam')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10 5 [50 2.0 15 5]
+
+
+
+ +
+
+ +
+
+
+
+
+

nullary unary binary ternary

Run a quoted program enforcing arity.

+ +
+
+
+
+
+
In [112]:
+
+
+
J('1 2 3 4 5 [+] nullary')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 4 5 9
+
+
+
+ +
+
+ +
+
+
+
In [113]:
+
+
+
J('1 2 3 4 5 [+] unary')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 4 9
+
+
+
+ +
+
+ +
+
+
+
In [114]:
+
+
+
J('1 2 3 4 5 [+] binary')  # + has arity 2 so this is technically pointless...
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 9
+
+
+
+ +
+
+ +
+
+
+
In [115]:
+
+
+
J('1 2 3 4 5 [+] ternary')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 9
+
+
+
+ +
+
+ +
+
+
+
+
+

step

+
+
+
+
+
+
In [116]:
+
+
+
J('[step] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Run a quoted program on each item in a sequence.
+
+        ... [] [Q] . step
+     -----------------------
+               ... .
+
+
+       ... [a] [Q] . step
+    ------------------------
+             ... a . Q
+
+
+   ... [a b c] [Q] . step
+----------------------------------------
+             ... a . Q [b c] [Q] step
+
+The step combinator executes the quotation on each member of the list
+on top of the stack.
+
+
+
+
+ +
+
+ +
+
+
+
In [117]:
+
+
+
V('0 [1 2 3] [+] step')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
              . 0 [1 2 3] [+] step
+            0 . [1 2 3] [+] step
+    0 [1 2 3] . [+] step
+0 [1 2 3] [+] . step
+      0 1 [+] . i [2 3] [+] step
+          0 1 . + [2 3] [+] step
+            1 . [2 3] [+] step
+      1 [2 3] . [+] step
+  1 [2 3] [+] . step
+      1 2 [+] . i [3] [+] step
+          1 2 . + [3] [+] step
+            3 . [3] [+] step
+        3 [3] . [+] step
+    3 [3] [+] . step
+      3 3 [+] . i
+          3 3 . +
+            6 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

times

+
+
+
+
+
+
In [118]:
+
+
+
V('3 2 1 2 [+] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
            . 3 2 1 2 [+] times
+          3 . 2 1 2 [+] times
+        3 2 . 1 2 [+] times
+      3 2 1 . 2 [+] times
+    3 2 1 2 . [+] times
+3 2 1 2 [+] . times
+      3 2 1 . + 1 [+] times
+        3 3 . 1 [+] times
+      3 3 1 . [+] times
+  3 3 1 [+] . times
+        3 3 . +
+          6 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

b

+
+
+
+
+
+
In [119]:
+
+
+
J('[b] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
b == [i] dip i
+
+... [P] [Q] b == ... [P] i [Q] i
+... [P] [Q] b == ... P Q
+
+
+
+
+ +
+
+ +
+
+
+
In [120]:
+
+
+
V('1 2 [3] [4] b')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
            . 1 2 [3] [4] b
+          1 . 2 [3] [4] b
+        1 2 . [3] [4] b
+    1 2 [3] . [4] b
+1 2 [3] [4] . b
+        1 2 . 3 4
+      1 2 3 . 4
+    1 2 3 4 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

while

+
[predicate] [body] while
+ +
+
+
+
+
+
In [121]:
+
+
+
J('3 [0 >] [dup --] while')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 0
+
+
+
+ +
+
+ +
+
+
+
+
+

x

+
+
+
+
+
+
In [122]:
+
+
+
J('[x] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
x == dup i
+
+... [Q] x = ... [Q] dup i
+... [Q] x = ... [Q] [Q] i
+... [Q] x = ... [Q]  Q
+
+
+
+
+ +
+
+ +
+
+
+
In [123]:
+
+
+
V('1 [2] [i 3] x')  # Kind of a pointless example.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
            . 1 [2] [i 3] x
+          1 . [2] [i 3] x
+      1 [2] . [i 3] x
+1 [2] [i 3] . x
+1 [2] [i 3] . i 3
+      1 [2] . i 3 3
+          1 . 2 3 3
+        1 2 . 3 3
+      1 2 3 . 3
+    1 2 3 3 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

void

Implements Laws of Form arithmetic over quote-only datastructures (that is, datastructures that consist soley of containers, without strings or numbers or anything else.)

+ +
+
+
+
+
+
In [124]:
+
+
+
J('[] void')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
False
+
+
+
+ +
+
+ +
+
+
+
In [125]:
+
+
+
J('[[]] void')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
True
+
+
+
+ +
+
+ +
+
+
+
In [126]:
+
+
+
J('[[][[]]] void')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
True
+
+
+
+ +
+
+ +
+
+
+
In [127]:
+
+
+
J('[[[]][[][]]] void')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
False
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/2. Library Examples.ipynb b/docs/2. Library Examples.ipynb new file mode 100644 index 0000000..1349eb4 --- /dev/null +++ b/docs/2. Library Examples.ipynb @@ -0,0 +1,2964 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Examples (and some documentation) for the Words in the Library" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Stack Chatter\n", + "This is what I like to call the functions that just rearrange things on the stack. (One thing I want to mention is that during a hypothetical compilation phase these \"stack chatter\" words effectively disappear, because we can map the logical stack locations to registers that remain static for the duration of the computation. This remains to be done but it's \"off the shelf\" technology.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `clear`" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "J('1 2 3 clear')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `dup` `dupd`" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 3\n" + ] + } + ], + "source": [ + "J('1 2 3 dup')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 2 3\n" + ] + } + ], + "source": [ + "J('1 2 3 dupd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `enstacken` `disenstacken` `stack` `unstack`\n", + "(I may have these paired up wrong. I.e. `disenstacken` should be `unstack` and vice versa.)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 2 1]\n" + ] + } + ], + "source": [ + "J('1 2 3 enstacken') # Replace the stack with a quote of itself." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4 5 6 3 2 1\n" + ] + } + ], + "source": [ + "J('4 5 6 [3 2 1] disenstacken') # Unpack a list onto the stack." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 [3 2 1]\n" + ] + } + ], + "source": [ + "J('1 2 3 stack') # Get the stack on the stack." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6 5 4\n" + ] + } + ], + "source": [ + "J('1 2 3 [4 5 6] unstack') # Replace the stack with the list on top.\n", + " # The items appear reversed but they are not,\n", + " # 4 is on the top of both the list and the stack." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `pop` `popd` `popop`" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2\n" + ] + } + ], + "source": [ + "J('1 2 3 pop')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 3\n" + ] + } + ], + "source": [ + "J('1 2 3 popd')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "J('1 2 3 popop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `roll<` `rolldown` `roll>` `rollup`\n", + "The \"down\" and \"up\" refer to the movement of two of the top three items (displacing the third.)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 3 1\n" + ] + } + ], + "source": [ + "J('1 2 3 roll<')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 1 2\n" + ] + } + ], + "source": [ + "J('1 2 3 roll>')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `swap`" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 3 2\n" + ] + } + ], + "source": [ + "J('1 2 3 swap')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `tuck` `over`" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 3 2 3\n" + ] + } + ], + "source": [ + "J('1 2 3 tuck')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 2\n" + ] + } + ], + "source": [ + "J('1 2 3 over')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `unit` `quoted` `unquoted`" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 [3]\n" + ] + } + ], + "source": [ + "J('1 2 3 unit')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 [2] 3\n" + ] + } + ], + "source": [ + "J('1 2 3 quoted')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3\n" + ] + } + ], + "source": [ + "J('1 [2] 3 unquoted')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 1 [dup] 3 unquoted\n", + " 1 . [dup] 3 unquoted\n", + " 1 [dup] . 3 unquoted\n", + " 1 [dup] 3 . unquoted\n", + " 1 [dup] 3 . [i] dip\n", + "1 [dup] 3 [i] . dip\n", + " 1 [dup] . i 3\n", + " 1 . dup 3\n", + " 1 1 . 3\n", + " 1 1 3 . \n" + ] + } + ], + "source": [ + "V('1 [dup] 3 unquoted') # Unquoting evaluates. Be aware." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# List words" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `concat` `swoncat` `shunt`" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 3 4 5 6]\n" + ] + } + ], + "source": [ + "J('[1 2 3] [4 5 6] concat')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[4 5 6 1 2 3]\n" + ] + } + ], + "source": [ + "J('[1 2 3] [4 5 6] swoncat')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[6 5 4 1 2 3]\n" + ] + } + ], + "source": [ + "J('[1 2 3] [4 5 6] shunt')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `cons` `swons` `uncons`" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 3]\n" + ] + } + ], + "source": [ + "J('1 [2 3] cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 3]\n" + ] + } + ], + "source": [ + "J('[2 3] 1 swons')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 [2 3]\n" + ] + } + ], + "source": [ + "J('[1 2 3] uncons')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `first` `second` `third` `rest`" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] first')" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] second')" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] third')" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 3 4]\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] rest')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `flatten`" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 [3] 4 5 6]\n" + ] + } + ], + "source": [ + "J('[[1] [2 [3] 4] [5 6]] flatten')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `getitem` `at` `of` `drop` `take`\n", + "\n", + "`at` and `getitem` are the same function. `of == swap at`" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12\n" + ] + } + ], + "source": [ + "J('[10 11 12 13 14] 2 getitem')" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] 0 at')" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "J('2 [1 2 3 4] of')" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 4]\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] 2 drop')" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 1]\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] 2 take') # reverses the order" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`reverse` could be defines as `reverse == dup size take`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `remove`" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 3 1 4]\n" + ] + } + ], + "source": [ + "J('[1 2 3 1 4] 1 remove')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `reverse`" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[4 3 2 1]\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] reverse')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `size`" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "J('[1 1 1 1] size')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `swaack`\n", + "\"Swap stack\" swap the list on the top of the stack for the stack, and put the old stack on top of the new one. Think of it as a context switch. Niether of the lists/stacks change their order." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6 5 4 [3 2 1]\n" + ] + } + ], + "source": [ + "J('1 2 3 [4 5 6] swaack')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `choice` `select`" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], + "source": [ + "J('23 9 1 choice')" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23\n" + ] + } + ], + "source": [ + "J('23 9 0 choice')" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], + "source": [ + "J('[23 9 7] 1 select') # select is basically getitem, should retire it?" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23\n" + ] + } + ], + "source": [ + "J('[23 9 7] 0 select')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `zip`" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[6 1] [5 2] [4 3]]\n" + ] + } + ], + "source": [ + "J('[1 2 3] [6 5 4] zip')" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[7 7 7]\n" + ] + } + ], + "source": [ + "J('[1 2 3] [6 5 4] zip [sum] map')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Math words" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `+` `add`" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "32\n" + ] + } + ], + "source": [ + "J('23 9 +')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `-` `sub`" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "14\n" + ] + } + ], + "source": [ + "J('23 9 -')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `*` `mul`" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "207\n" + ] + } + ], + "source": [ + "J('23 9 *')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `/` `div` `floordiv` `truediv`" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.5555555555555554\n" + ] + } + ], + "source": [ + "J('23 9 /')" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-2.5555555555555554\n" + ] + } + ], + "source": [ + "J('23 -9 truediv')" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('23 9 div')" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('23 9 floordiv')" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-3\n" + ] + } + ], + "source": [ + "J('23 -9 div')" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-3\n" + ] + } + ], + "source": [ + "J('23 -9 floordiv')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `%` `mod` `modulus` `rem` `remainder`" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "J('23 9 %')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `neg`" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-23 5\n" + ] + } + ], + "source": [ + "J('23 neg -5 neg')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### pow" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1024\n" + ] + } + ], + "source": [ + "J('2 10 pow')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `sqr` `sqrt`" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "529\n" + ] + } + ], + "source": [ + "J('23 sqr')" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.795831523312719\n" + ] + } + ], + "source": [ + "J('23 sqrt')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `++` `succ` `--` `pred`" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('1 ++')" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "J('1 --')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `<<` `lshift` `>>` `rshift`" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "16\n" + ] + } + ], + "source": [ + "J('8 1 <<')" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "J('8 1 >>')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `average`" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2.75\n" + ] + } + ], + "source": [ + "J('[1 2 3 5] average')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `range` `range_to_zero` `down_to_zero`" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[4 3 2 1 0]\n" + ] + } + ], + "source": [ + "J('5 range')" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 1 2 3 4 5]\n" + ] + } + ], + "source": [ + "J('5 range_to_zero')" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5 4 3 2 1 0\n" + ] + } + ], + "source": [ + "J('5 down_to_zero')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `product`" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "30\n" + ] + } + ], + "source": [ + "J('[1 2 3 5] product')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `sum`" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "11\n" + ] + } + ], + "source": [ + "J('[1 2 3 5] sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `min`" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "J('[1 2 3 5] min')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `gcd`" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n" + ] + } + ], + "source": [ + "J('45 30 gcd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `least_fraction`\n", + "If we represent fractions as a quoted pair of integers [q d] this word reduces them to their ... least common factors or whatever." + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 2]\n" + ] + } + ], + "source": [ + "J('[45 30] least_fraction')" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[23 12]\n" + ] + } + ], + "source": [ + "J('[23 12] least_fraction')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logic and Comparison" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `?` `truthy`\n", + "Get the Boolean value of the item on the top of the stack." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "J('23 truthy')" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "J('[] truthy') # Python semantics." + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "J('0 truthy')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " ? == dup truthy" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 23 ?\n", + " 23 . ?\n", + " 23 . dup truthy\n", + " 23 23 . truthy\n", + "23 True . \n" + ] + } + ], + "source": [ + "V('23 ?')" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[] False\n" + ] + } + ], + "source": [ + "J('[] ?')" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 False\n" + ] + } + ], + "source": [ + "J('0 ?')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `&` `and` " + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "J('23 9 &')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `!=` `<>` `ne`" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "J('23 9 !=')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The usual suspects:\n", + "- `<` `lt`\n", + "- `<=` `le` \n", + "- `=` `eq`\n", + "- `>` `gt`\n", + "- `>=` `ge`\n", + "- `not`\n", + "- `or`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `^` `xor`" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "J('1 1 ^')" + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n" + ] + } + ], + "source": [ + "J('1 0 ^')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Miscellaneous" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `help`" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accepts a quoted symbol on the top of the stack and prints its docs.\n", + "\n" + ] + } + ], + "source": [ + "J('[help] help')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `parse`" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parse the string on the stack to a Joy expression.\n", + "\n" + ] + } + ], + "source": [ + "J('[parse] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 [2 [3] dup]\n" + ] + } + ], + "source": [ + "J('1 \"2 [3] dup\" parse')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `run`\n", + "Evaluate a quoted Joy sequence." + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[5]\n" + ] + } + ], + "source": [ + "J('[1 2 dup + +] run')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Combinators" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `app1` `app2` `app3`" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Given a quoted program on TOS and anything as the second stack item run\n", + "the program and replace the two args with the first result of the\n", + "program.\n", + "\n", + " ... x [Q] . app1\n", + " -----------------------------------\n", + " ... [x ...] [Q] . infra first\n", + "\n" + ] + } + ], + "source": [ + "J('[app1] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 160\n" + ] + } + ], + "source": [ + "J('10 4 [sqr *] app1')" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 90 160\n" + ] + } + ], + "source": [ + "J('10 3 4 [sqr *] app2')" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Like app1 with two items.\n", + "\n", + " ... y x [Q] . app2\n", + "-----------------------------------\n", + " ... [y ...] [Q] . infra first\n", + " [x ...] [Q] infra first\n", + "\n" + ] + } + ], + "source": [ + "J('[app2] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 40 90 160\n" + ] + } + ], + "source": [ + "J('10 2 3 4 [sqr *] app3')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `anamorphism`\n", + "Given an initial value, a predicate function `[P]`, and a generator function `[G]`, the `anamorphism` combinator creates a sequence.\n", + "\n", + " n [P] [G] anamorphism\n", + " ---------------------------\n", + " [...]\n", + "\n", + "Example, `range`:\n", + "\n", + " range == [0 <=] [1 - dup] anamorphism" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 1 0]\n" + ] + } + ], + "source": [ + "J('3 [0 <=] [1 - dup] anamorphism')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `branch`" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12\n" + ] + } + ], + "source": [ + "J('3 4 1 [+] [*] branch')" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7\n" + ] + } + ], + "source": [ + "J('3 4 0 [+] [*] branch')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `cleave`\n", + " ... x [P] [Q] cleave\n", + "\n", + "From the original Joy docs: \"The cleave combinator expects two quotations, and below that an item `x`\n", + "It first executes `[P]`, with `x` on top, and saves the top result element.\n", + "Then it executes `[Q]`, again with `x`, and saves the top result.\n", + "Finally it restores the stack to what it was below `x` and pushes the two\n", + "results P(X) and Q(X).\"\n", + "\n", + "Note that `P` and `Q` can use items from the stack freely, since the stack (below `x`) is restored. `cleave` is a kind of *parallel* primitive, and it would make sense to create a version that uses, e.g. Python threads or something, to actually run `P` and `Q` concurrently. The current implementation of `cleave` is a definition in terms of `app2`:\n", + "\n", + " cleave == [i] app2 [popd] dip" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 12 8\n" + ] + } + ], + "source": [ + "J('10 2 [+] [-] cleave')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `dip` `dipd` `dipdd`" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 7 5\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] dip')" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 5 4 5\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] dipd')" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 3 4 5\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] dipdd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `dupdip`\n", + "Expects a quoted program `[Q]` on the stack and some item under it, `dup` the item and `dip` the quoted program under it.\n", + "\n", + " n [Q] dupdip == n Q n" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 23 [++] dupdip *\n", + " 23 . [++] dupdip *\n", + "23 [++] . dupdip *\n", + " 23 . ++ 23 *\n", + " 24 . 23 *\n", + " 24 23 . *\n", + " 552 . \n" + ] + } + ], + "source": [ + "V('23 [++] dupdip *') # N(N + 1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `genrec` `primrec`" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "General Recursion Combinator.\n", + "\n", + " [if] [then] [rec1] [rec2] genrec\n", + " ---------------------------------------------------------------------\n", + " [if] [then] [rec1 [[if] [then] [rec1] [rec2] genrec] rec2] ifte\n", + "\n", + "From \"Recursion Theory and Joy\" (j05cmp.html) by Manfred von Thun:\n", + "\"The genrec combinator takes four program parameters in addition to\n", + "whatever data parameters it needs. Fourth from the top is an if-part,\n", + "followed by a then-part. If the if-part yields true, then the then-part\n", + "is executed and the combinator terminates. The other two parameters are\n", + "the rec1-part and the rec2-part. If the if-part yields false, the\n", + "rec1-part is executed. Following that the four program parameters and\n", + "the combinator are again pushed onto the stack bundled up in a quoted\n", + "form. Then the rec2-part is executed, where it will find the bundled\n", + "form. Typically it will then execute the bundled form, either with i or\n", + "with app2, or some other combinator.\"\n", + "\n", + "The way to design one of these is to fix your base case [then] and the\n", + "test [if], and then treat rec1 and rec2 as an else-part \"sandwiching\"\n", + "a quotation of the whole function.\n", + "\n", + "For example, given a (general recursive) function 'F':\n", + "\n", + " F == [I] [T] [R1] [R2] genrec\n", + "\n", + "If the [I] if-part fails you must derive R1 and R2 from:\n", + "\n", + " ... R1 [F] R2\n", + "\n", + "Just set the stack arguments in front, and figure out what R1 and R2\n", + "have to do to apply the quoted [F] in the proper way. In effect, the\n", + "genrec combinator turns into an ifte combinator with a quoted copy of\n", + "the original definition in the else-part:\n", + "\n", + " F == [I] [T] [R1] [R2] genrec\n", + " == [I] [T] [R1 [F] R2] ifte\n", + "\n", + "(Primitive recursive functions are those where R2 == i.\n", + "\n", + " P == [I] [T] [R] primrec\n", + " == [I] [T] [R [P] i] ifte\n", + " == [I] [T] [R P] ifte\n", + ")\n", + "\n" + ] + } + ], + "source": [ + "J('[genrec] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "J('3 [1 <=] [] [dup --] [i *] genrec')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `i`" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 1 2 3 [+ +] i\n", + " 1 . 2 3 [+ +] i\n", + " 1 2 . 3 [+ +] i\n", + " 1 2 3 . [+ +] i\n", + "1 2 3 [+ +] . i\n", + " 1 2 3 . + +\n", + " 1 5 . +\n", + " 6 . \n" + ] + } + ], + "source": [ + "V('1 2 3 [+ +] i')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `ifte`\n", + " [predicate] [then] [else] ifte" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "J('1 2 [1] [+] [*] ifte')" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('1 2 [0] [+] [*] ifte')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `infra`" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 1 2 3 [4 5 6] [* +] infra\n", + " 1 . 2 3 [4 5 6] [* +] infra\n", + " 1 2 . 3 [4 5 6] [* +] infra\n", + " 1 2 3 . [4 5 6] [* +] infra\n", + " 1 2 3 [4 5 6] . [* +] infra\n", + "1 2 3 [4 5 6] [* +] . infra\n", + " 6 5 4 . * + [3 2 1] swaack\n", + " 6 20 . + [3 2 1] swaack\n", + " 26 . [3 2 1] swaack\n", + " 26 [3 2 1] . swaack\n", + " 1 2 3 [26] . \n" + ] + } + ], + "source": [ + "V('1 2 3 [4 5 6] [* +] infra')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `loop`" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Basic loop combinator.\n", + "\n", + " ... True [Q] loop\n", + "-----------------------\n", + " ... Q [Q] loop\n", + "\n", + " ... False [Q] loop\n", + "------------------------\n", + " ...\n", + "\n" + ] + } + ], + "source": [ + "J('[loop] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 3 dup [1 - dup] loop\n", + " 3 . dup [1 - dup] loop\n", + " 3 3 . [1 - dup] loop\n", + "3 3 [1 - dup] . loop\n", + " 3 . 1 - dup [1 - dup] loop\n", + " 3 1 . - dup [1 - dup] loop\n", + " 2 . dup [1 - dup] loop\n", + " 2 2 . [1 - dup] loop\n", + "2 2 [1 - dup] . loop\n", + " 2 . 1 - dup [1 - dup] loop\n", + " 2 1 . - dup [1 - dup] loop\n", + " 1 . dup [1 - dup] loop\n", + " 1 1 . [1 - dup] loop\n", + "1 1 [1 - dup] . loop\n", + " 1 . 1 - dup [1 - dup] loop\n", + " 1 1 . - dup [1 - dup] loop\n", + " 0 . dup [1 - dup] loop\n", + " 0 0 . [1 - dup] loop\n", + "0 0 [1 - dup] . loop\n", + " 0 . \n" + ] + } + ], + "source": [ + "V('3 dup [1 - dup] loop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `map` `pam`" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 [10 20 30]\n" + ] + } + ], + "source": [ + "J('10 [1 2 3] [*] map')" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10 5 [50 2.0 15 5]\n" + ] + } + ], + "source": [ + "J('10 5 [[*][/][+][-]] pam')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `nullary` `unary` `binary` `ternary`\n", + "Run a quoted program enforcing [arity](https://en.wikipedia.org/wiki/Arity)." + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 4 5 9\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] nullary')" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 4 9\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] unary')" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 9\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] binary') # + has arity 2 so this is technically pointless..." + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 9\n" + ] + } + ], + "source": [ + "J('1 2 3 4 5 [+] ternary')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `step`" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Run a quoted program on each item in a sequence.\n", + "\n", + " ... [] [Q] . step\n", + " -----------------------\n", + " ... .\n", + "\n", + "\n", + " ... [a] [Q] . step\n", + " ------------------------\n", + " ... a . Q\n", + "\n", + "\n", + " ... [a b c] [Q] . step\n", + "----------------------------------------\n", + " ... a . Q [b c] [Q] step\n", + "\n", + "The step combinator executes the quotation on each member of the list\n", + "on top of the stack.\n", + "\n" + ] + } + ], + "source": [ + "J('[step] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 [1 2 3] [+] step\n", + " 0 . [1 2 3] [+] step\n", + " 0 [1 2 3] . [+] step\n", + "0 [1 2 3] [+] . step\n", + " 0 1 [+] . i [2 3] [+] step\n", + " 0 1 . + [2 3] [+] step\n", + " 1 . [2 3] [+] step\n", + " 1 [2 3] . [+] step\n", + " 1 [2 3] [+] . step\n", + " 1 2 [+] . i [3] [+] step\n", + " 1 2 . + [3] [+] step\n", + " 3 . [3] [+] step\n", + " 3 [3] . [+] step\n", + " 3 [3] [+] . step\n", + " 3 3 [+] . i\n", + " 3 3 . +\n", + " 6 . \n" + ] + } + ], + "source": [ + "V('0 [1 2 3] [+] step')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `times`" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 3 2 1 2 [+] times\n", + " 3 . 2 1 2 [+] times\n", + " 3 2 . 1 2 [+] times\n", + " 3 2 1 . 2 [+] times\n", + " 3 2 1 2 . [+] times\n", + "3 2 1 2 [+] . times\n", + " 3 2 1 . + 1 [+] times\n", + " 3 3 . 1 [+] times\n", + " 3 3 1 . [+] times\n", + " 3 3 1 [+] . times\n", + " 3 3 . +\n", + " 6 . \n" + ] + } + ], + "source": [ + "V('3 2 1 2 [+] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `b`" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "b == [i] dip i\n", + "\n", + "... [P] [Q] b == ... [P] i [Q] i\n", + "... [P] [Q] b == ... P Q\n", + "\n" + ] + } + ], + "source": [ + "J('[b] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 1 2 [3] [4] b\n", + " 1 . 2 [3] [4] b\n", + " 1 2 . [3] [4] b\n", + " 1 2 [3] . [4] b\n", + "1 2 [3] [4] . b\n", + " 1 2 . 3 4\n", + " 1 2 3 . 4\n", + " 1 2 3 4 . \n" + ] + } + ], + "source": [ + "V('1 2 [3] [4] b')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `while`\n", + " [predicate] [body] while" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 0\n" + ] + } + ], + "source": [ + "J('3 [0 >] [dup --] while')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `x`" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x == dup i\n", + "\n", + "... [Q] x = ... [Q] dup i\n", + "... [Q] x = ... [Q] [Q] i\n", + "... [Q] x = ... [Q] Q\n", + "\n" + ] + } + ], + "source": [ + "J('[x] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 1 [2] [i 3] x\n", + " 1 . [2] [i 3] x\n", + " 1 [2] . [i 3] x\n", + "1 [2] [i 3] . x\n", + "1 [2] [i 3] . i 3\n", + " 1 [2] . i 3 3\n", + " 1 . 2 3 3\n", + " 1 2 . 3 3\n", + " 1 2 3 . 3\n", + " 1 2 3 3 . \n" + ] + } + ], + "source": [ + "V('1 [2] [i 3] x') # Kind of a pointless example." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# `void`\n", + "Implements [**Laws of Form** *arithmetic*](https://en.wikipedia.org/wiki/Laws_of_Form#The_primary_arithmetic_.28Chapter_4.29) over quote-only datastructures (that is, datastructures that consist soley of containers, without strings or numbers or anything else.)" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "J('[] void')" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "J('[[]] void')" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "J('[[][[]]] void')" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "False\n" + ] + } + ], + "source": [ + "J('[[[]][[][]]] void')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/2. Library Examples.md b/docs/2. Library Examples.md new file mode 100644 index 0000000..fd70ce7 --- /dev/null +++ b/docs/2. Library Examples.md @@ -0,0 +1,1395 @@ + +# Examples (and some documentation) for the Words in the Library + + +```python +from notebook_preamble import J, V +``` + +# Stack Chatter +This is what I like to call the functions that just rearrange things on the stack. (One thing I want to mention is that during a hypothetical compilation phase these "stack chatter" words effectively disappear, because we can map the logical stack locations to registers that remain static for the duration of the computation. This remains to be done but it's "off the shelf" technology.) + +### `clear` + + +```python +J('1 2 3 clear') +``` + + + + +### `dup` `dupd` + + +```python +J('1 2 3 dup') +``` + + 1 2 3 3 + + + +```python +J('1 2 3 dupd') +``` + + 1 2 2 3 + + +### `enstacken` `disenstacken` `stack` `unstack` +(I may have these paired up wrong. I.e. `disenstacken` should be `unstack` and vice versa.) + + +```python +J('1 2 3 enstacken') # Replace the stack with a quote of itself. +``` + + [3 2 1] + + + +```python +J('4 5 6 [3 2 1] disenstacken') # Unpack a list onto the stack. +``` + + 4 5 6 3 2 1 + + + +```python +J('1 2 3 stack') # Get the stack on the stack. +``` + + 1 2 3 [3 2 1] + + + +```python +J('1 2 3 [4 5 6] unstack') # Replace the stack with the list on top. + # The items appear reversed but they are not, + # 4 is on the top of both the list and the stack. +``` + + 6 5 4 + + +### `pop` `popd` `popop` + + +```python +J('1 2 3 pop') +``` + + 1 2 + + + +```python +J('1 2 3 popd') +``` + + 1 3 + + + +```python +J('1 2 3 popop') +``` + + 1 + + +### `roll<` `rolldown` `roll>` `rollup` +The "down" and "up" refer to the movement of two of the top three items (displacing the third.) + + +```python +J('1 2 3 roll<') +``` + + 2 3 1 + + + +```python +J('1 2 3 roll>') +``` + + 3 1 2 + + +### `swap` + + +```python +J('1 2 3 swap') +``` + + 1 3 2 + + +### `tuck` `over` + + +```python +J('1 2 3 tuck') +``` + + 1 3 2 3 + + + +```python +J('1 2 3 over') +``` + + 1 2 3 2 + + +### `unit` `quoted` `unquoted` + + +```python +J('1 2 3 unit') +``` + + 1 2 [3] + + + +```python +J('1 2 3 quoted') +``` + + 1 [2] 3 + + + +```python +J('1 [2] 3 unquoted') +``` + + 1 2 3 + + + +```python +V('1 [dup] 3 unquoted') # Unquoting evaluates. Be aware. +``` + + . 1 [dup] 3 unquoted + 1 . [dup] 3 unquoted + 1 [dup] . 3 unquoted + 1 [dup] 3 . unquoted + 1 [dup] 3 . [i] dip + 1 [dup] 3 [i] . dip + 1 [dup] . i 3 + 1 . dup 3 + 1 1 . 3 + 1 1 3 . + + +# List words + +### `concat` `swoncat` `shunt` + + +```python +J('[1 2 3] [4 5 6] concat') +``` + + [1 2 3 4 5 6] + + + +```python +J('[1 2 3] [4 5 6] swoncat') +``` + + [4 5 6 1 2 3] + + + +```python +J('[1 2 3] [4 5 6] shunt') +``` + + [6 5 4 1 2 3] + + +### `cons` `swons` `uncons` + + +```python +J('1 [2 3] cons') +``` + + [1 2 3] + + + +```python +J('[2 3] 1 swons') +``` + + [1 2 3] + + + +```python +J('[1 2 3] uncons') +``` + + 1 [2 3] + + +### `first` `second` `third` `rest` + + +```python +J('[1 2 3 4] first') +``` + + 1 + + + +```python +J('[1 2 3 4] second') +``` + + 2 + + + +```python +J('[1 2 3 4] third') +``` + + 3 + + + +```python +J('[1 2 3 4] rest') +``` + + [2 3 4] + + +### `flatten` + + +```python +J('[[1] [2 [3] 4] [5 6]] flatten') +``` + + [1 2 [3] 4 5 6] + + +### `getitem` `at` `of` `drop` `take` + +`at` and `getitem` are the same function. `of == swap at` + + +```python +J('[10 11 12 13 14] 2 getitem') +``` + + 12 + + + +```python +J('[1 2 3 4] 0 at') +``` + + 1 + + + +```python +J('2 [1 2 3 4] of') +``` + + 3 + + + +```python +J('[1 2 3 4] 2 drop') +``` + + [3 4] + + + +```python +J('[1 2 3 4] 2 take') # reverses the order +``` + + [2 1] + + +`reverse` could be defines as `reverse == dup size take` + +### `remove` + + +```python +J('[1 2 3 1 4] 1 remove') +``` + + [2 3 1 4] + + +### `reverse` + + +```python +J('[1 2 3 4] reverse') +``` + + [4 3 2 1] + + +### `size` + + +```python +J('[1 1 1 1] size') +``` + + 4 + + +### `swaack` +"Swap stack" swap the list on the top of the stack for the stack, and put the old stack on top of the new one. Think of it as a context switch. Niether of the lists/stacks change their order. + + +```python +J('1 2 3 [4 5 6] swaack') +``` + + 6 5 4 [3 2 1] + + +### `choice` `select` + + +```python +J('23 9 1 choice') +``` + + 9 + + + +```python +J('23 9 0 choice') +``` + + 23 + + + +```python +J('[23 9 7] 1 select') # select is basically getitem, should retire it? +``` + + 9 + + + +```python +J('[23 9 7] 0 select') +``` + + 23 + + +### `zip` + + +```python +J('[1 2 3] [6 5 4] zip') +``` + + [[6 1] [5 2] [4 3]] + + + +```python +J('[1 2 3] [6 5 4] zip [sum] map') +``` + + [7 7 7] + + +# Math words + +### `+` `add` + + +```python +J('23 9 +') +``` + + 32 + + +### `-` `sub` + + +```python +J('23 9 -') +``` + + 14 + + +### `*` `mul` + + +```python +J('23 9 *') +``` + + 207 + + +### `/` `div` `floordiv` `truediv` + + +```python +J('23 9 /') +``` + + 2.5555555555555554 + + + +```python +J('23 -9 truediv') +``` + + -2.5555555555555554 + + + +```python +J('23 9 div') +``` + + 2 + + + +```python +J('23 9 floordiv') +``` + + 2 + + + +```python +J('23 -9 div') +``` + + -3 + + + +```python +J('23 -9 floordiv') +``` + + -3 + + +### `%` `mod` `modulus` `rem` `remainder` + + +```python +J('23 9 %') +``` + + 5 + + +### `neg` + + +```python +J('23 neg -5 neg') +``` + + -23 5 + + +### pow + + +```python +J('2 10 pow') +``` + + 1024 + + +### `sqr` `sqrt` + + +```python +J('23 sqr') +``` + + 529 + + + +```python +J('23 sqrt') +``` + + 4.795831523312719 + + +### `++` `succ` `--` `pred` + + +```python +J('1 ++') +``` + + 2 + + + +```python +J('1 --') +``` + + 0 + + +### `<<` `lshift` `>>` `rshift` + + +```python +J('8 1 <<') +``` + + 16 + + + +```python +J('8 1 >>') +``` + + 4 + + +### `average` + + +```python +J('[1 2 3 5] average') +``` + + 2.75 + + +### `range` `range_to_zero` `down_to_zero` + + +```python +J('5 range') +``` + + [4 3 2 1 0] + + + +```python +J('5 range_to_zero') +``` + + [0 1 2 3 4 5] + + + +```python +J('5 down_to_zero') +``` + + 5 4 3 2 1 0 + + +### `product` + + +```python +J('[1 2 3 5] product') +``` + + 30 + + +### `sum` + + +```python +J('[1 2 3 5] sum') +``` + + 11 + + +### `min` + + +```python +J('[1 2 3 5] min') +``` + + 1 + + +### `gcd` + + +```python +J('45 30 gcd') +``` + + 15 + + +### `least_fraction` +If we represent fractions as a quoted pair of integers [q d] this word reduces them to their ... least common factors or whatever. + + +```python +J('[45 30] least_fraction') +``` + + [3 2] + + + +```python +J('[23 12] least_fraction') +``` + + [23 12] + + +# Logic and Comparison + +### `?` `truthy` +Get the Boolean value of the item on the top of the stack. + + +```python +J('23 truthy') +``` + + True + + + +```python +J('[] truthy') # Python semantics. +``` + + False + + + +```python +J('0 truthy') +``` + + False + + + ? == dup truthy + + +```python +V('23 ?') +``` + + . 23 ? + 23 . ? + 23 . dup truthy + 23 23 . truthy + 23 True . + + + +```python +J('[] ?') +``` + + [] False + + + +```python +J('0 ?') +``` + + 0 False + + +### `&` `and` + + +```python +J('23 9 &') +``` + + 1 + + +### `!=` `<>` `ne` + + +```python +J('23 9 !=') +``` + + True + + +The usual suspects: +- `<` `lt` +- `<=` `le` +- `=` `eq` +- `>` `gt` +- `>=` `ge` +- `not` +- `or` + +### `^` `xor` + + +```python +J('1 1 ^') +``` + + 0 + + + +```python +J('1 0 ^') +``` + + 1 + + +# Miscellaneous + +### `help` + + +```python +J('[help] help') +``` + + Accepts a quoted symbol on the top of the stack and prints its docs. + + + +### `parse` + + +```python +J('[parse] help') +``` + + Parse the string on the stack to a Joy expression. + + + + +```python +J('1 "2 [3] dup" parse') +``` + + 1 [2 [3] dup] + + +### `run` +Evaluate a quoted Joy sequence. + + +```python +J('[1 2 dup + +] run') +``` + + [5] + + +# Combinators + +### `app1` `app2` `app3` + + +```python +J('[app1] help') +``` + + Given a quoted program on TOS and anything as the second stack item run + the program and replace the two args with the first result of the + program. + + ... x [Q] . app1 + ----------------------------------- + ... [x ...] [Q] . infra first + + + + +```python +J('10 4 [sqr *] app1') +``` + + 10 160 + + + +```python +J('10 3 4 [sqr *] app2') +``` + + 10 90 160 + + + +```python +J('[app2] help') +``` + + Like app1 with two items. + + ... y x [Q] . app2 + ----------------------------------- + ... [y ...] [Q] . infra first + [x ...] [Q] infra first + + + + +```python +J('10 2 3 4 [sqr *] app3') +``` + + 10 40 90 160 + + +### `anamorphism` +Given an initial value, a predicate function `[P]`, and a generator function `[G]`, the `anamorphism` combinator creates a sequence. + + n [P] [G] anamorphism + --------------------------- + [...] + +Example, `range`: + + range == [0 <=] [1 - dup] anamorphism + + +```python +J('3 [0 <=] [1 - dup] anamorphism') +``` + + [2 1 0] + + +### `branch` + + +```python +J('3 4 1 [+] [*] branch') +``` + + 12 + + + +```python +J('3 4 0 [+] [*] branch') +``` + + 7 + + +### `cleave` + ... x [P] [Q] cleave + +From the original Joy docs: "The cleave combinator expects two quotations, and below that an item `x` +It first executes `[P]`, with `x` on top, and saves the top result element. +Then it executes `[Q]`, again with `x`, and saves the top result. +Finally it restores the stack to what it was below `x` and pushes the two +results P(X) and Q(X)." + +Note that `P` and `Q` can use items from the stack freely, since the stack (below `x`) is restored. `cleave` is a kind of *parallel* primitive, and it would make sense to create a version that uses, e.g. Python threads or something, to actually run `P` and `Q` concurrently. The current implementation of `cleave` is a definition in terms of `app2`: + + cleave == [i] app2 [popd] dip + + +```python +J('10 2 [+] [-] cleave') +``` + + 10 12 8 + + +### `dip` `dipd` `dipdd` + + +```python +J('1 2 3 4 5 [+] dip') +``` + + 1 2 7 5 + + + +```python +J('1 2 3 4 5 [+] dipd') +``` + + 1 5 4 5 + + + +```python +J('1 2 3 4 5 [+] dipdd') +``` + + 3 3 4 5 + + +### `dupdip` +Expects a quoted program `[Q]` on the stack and some item under it, `dup` the item and `dip` the quoted program under it. + + n [Q] dupdip == n Q n + + +```python +V('23 [++] dupdip *') # N(N + 1) +``` + + . 23 [++] dupdip * + 23 . [++] dupdip * + 23 [++] . dupdip * + 23 . ++ 23 * + 24 . 23 * + 24 23 . * + 552 . + + +### `genrec` `primrec` + + +```python +J('[genrec] help') +``` + + General Recursion Combinator. + + [if] [then] [rec1] [rec2] genrec + --------------------------------------------------------------------- + [if] [then] [rec1 [[if] [then] [rec1] [rec2] genrec] rec2] ifte + + From "Recursion Theory and Joy" (j05cmp.html) by Manfred von Thun: + "The genrec combinator takes four program parameters in addition to + whatever data parameters it needs. Fourth from the top is an if-part, + followed by a then-part. If the if-part yields true, then the then-part + is executed and the combinator terminates. The other two parameters are + the rec1-part and the rec2-part. If the if-part yields false, the + rec1-part is executed. Following that the four program parameters and + the combinator are again pushed onto the stack bundled up in a quoted + form. Then the rec2-part is executed, where it will find the bundled + form. Typically it will then execute the bundled form, either with i or + with app2, or some other combinator." + + The way to design one of these is to fix your base case [then] and the + test [if], and then treat rec1 and rec2 as an else-part "sandwiching" + a quotation of the whole function. + + For example, given a (general recursive) function 'F': + + F == [I] [T] [R1] [R2] genrec + + If the [I] if-part fails you must derive R1 and R2 from: + + ... R1 [F] R2 + + Just set the stack arguments in front, and figure out what R1 and R2 + have to do to apply the quoted [F] in the proper way. In effect, the + genrec combinator turns into an ifte combinator with a quoted copy of + the original definition in the else-part: + + F == [I] [T] [R1] [R2] genrec + == [I] [T] [R1 [F] R2] ifte + + (Primitive recursive functions are those where R2 == i. + + P == [I] [T] [R] primrec + == [I] [T] [R [P] i] ifte + == [I] [T] [R P] ifte + ) + + + + +```python +J('3 [1 <=] [] [dup --] [i *] genrec') +``` + + 6 + + +### `i` + + +```python +V('1 2 3 [+ +] i') +``` + + . 1 2 3 [+ +] i + 1 . 2 3 [+ +] i + 1 2 . 3 [+ +] i + 1 2 3 . [+ +] i + 1 2 3 [+ +] . i + 1 2 3 . + + + 1 5 . + + 6 . + + +### `ifte` + [predicate] [then] [else] ifte + + +```python +J('1 2 [1] [+] [*] ifte') +``` + + 3 + + + +```python +J('1 2 [0] [+] [*] ifte') +``` + + 2 + + +### `infra` + + +```python +V('1 2 3 [4 5 6] [* +] infra') +``` + + . 1 2 3 [4 5 6] [* +] infra + 1 . 2 3 [4 5 6] [* +] infra + 1 2 . 3 [4 5 6] [* +] infra + 1 2 3 . [4 5 6] [* +] infra + 1 2 3 [4 5 6] . [* +] infra + 1 2 3 [4 5 6] [* +] . infra + 6 5 4 . * + [3 2 1] swaack + 6 20 . + [3 2 1] swaack + 26 . [3 2 1] swaack + 26 [3 2 1] . swaack + 1 2 3 [26] . + + +### `loop` + + +```python +J('[loop] help') +``` + + Basic loop combinator. + + ... True [Q] loop + ----------------------- + ... Q [Q] loop + + ... False [Q] loop + ------------------------ + ... + + + + +```python +V('3 dup [1 - dup] loop') +``` + + . 3 dup [1 - dup] loop + 3 . dup [1 - dup] loop + 3 3 . [1 - dup] loop + 3 3 [1 - dup] . loop + 3 . 1 - dup [1 - dup] loop + 3 1 . - dup [1 - dup] loop + 2 . dup [1 - dup] loop + 2 2 . [1 - dup] loop + 2 2 [1 - dup] . loop + 2 . 1 - dup [1 - dup] loop + 2 1 . - dup [1 - dup] loop + 1 . dup [1 - dup] loop + 1 1 . [1 - dup] loop + 1 1 [1 - dup] . loop + 1 . 1 - dup [1 - dup] loop + 1 1 . - dup [1 - dup] loop + 0 . dup [1 - dup] loop + 0 0 . [1 - dup] loop + 0 0 [1 - dup] . loop + 0 . + + +### `map` `pam` + + +```python +J('10 [1 2 3] [*] map') +``` + + 10 [10 20 30] + + + +```python +J('10 5 [[*][/][+][-]] pam') +``` + + 10 5 [50 2.0 15 5] + + +### `nullary` `unary` `binary` `ternary` +Run a quoted program enforcing [arity](https://en.wikipedia.org/wiki/Arity). + + +```python +J('1 2 3 4 5 [+] nullary') +``` + + 1 2 3 4 5 9 + + + +```python +J('1 2 3 4 5 [+] unary') +``` + + 1 2 3 4 9 + + + +```python +J('1 2 3 4 5 [+] binary') # + has arity 2 so this is technically pointless... +``` + + 1 2 3 9 + + + +```python +J('1 2 3 4 5 [+] ternary') +``` + + 1 2 9 + + +### `step` + + +```python +J('[step] help') +``` + + Run a quoted program on each item in a sequence. + + ... [] [Q] . step + ----------------------- + ... . + + + ... [a] [Q] . step + ------------------------ + ... a . Q + + + ... [a b c] [Q] . step + ---------------------------------------- + ... a . Q [b c] [Q] step + + The step combinator executes the quotation on each member of the list + on top of the stack. + + + + +```python +V('0 [1 2 3] [+] step') +``` + + . 0 [1 2 3] [+] step + 0 . [1 2 3] [+] step + 0 [1 2 3] . [+] step + 0 [1 2 3] [+] . step + 0 1 [+] . i [2 3] [+] step + 0 1 . + [2 3] [+] step + 1 . [2 3] [+] step + 1 [2 3] . [+] step + 1 [2 3] [+] . step + 1 2 [+] . i [3] [+] step + 1 2 . + [3] [+] step + 3 . [3] [+] step + 3 [3] . [+] step + 3 [3] [+] . step + 3 3 [+] . i + 3 3 . + + 6 . + + +### `times` + + +```python +V('3 2 1 2 [+] times') +``` + + . 3 2 1 2 [+] times + 3 . 2 1 2 [+] times + 3 2 . 1 2 [+] times + 3 2 1 . 2 [+] times + 3 2 1 2 . [+] times + 3 2 1 2 [+] . times + 3 2 1 . + 1 [+] times + 3 3 . 1 [+] times + 3 3 1 . [+] times + 3 3 1 [+] . times + 3 3 . + + 6 . + + +### `b` + + +```python +J('[b] help') +``` + + b == [i] dip i + + ... [P] [Q] b == ... [P] i [Q] i + ... [P] [Q] b == ... P Q + + + + +```python +V('1 2 [3] [4] b') +``` + + . 1 2 [3] [4] b + 1 . 2 [3] [4] b + 1 2 . [3] [4] b + 1 2 [3] . [4] b + 1 2 [3] [4] . b + 1 2 . 3 4 + 1 2 3 . 4 + 1 2 3 4 . + + +### `while` + [predicate] [body] while + + +```python +J('3 [0 >] [dup --] while') +``` + + 3 2 1 0 + + +### `x` + + +```python +J('[x] help') +``` + + x == dup i + + ... [Q] x = ... [Q] dup i + ... [Q] x = ... [Q] [Q] i + ... [Q] x = ... [Q] Q + + + + +```python +V('1 [2] [i 3] x') # Kind of a pointless example. +``` + + . 1 [2] [i 3] x + 1 . [2] [i 3] x + 1 [2] . [i 3] x + 1 [2] [i 3] . x + 1 [2] [i 3] . i 3 + 1 [2] . i 3 3 + 1 . 2 3 3 + 1 2 . 3 3 + 1 2 3 . 3 + 1 2 3 3 . + + +# `void` +Implements [**Laws of Form** *arithmetic*](https://en.wikipedia.org/wiki/Laws_of_Form#The_primary_arithmetic_.28Chapter_4.29) over quote-only datastructures (that is, datastructures that consist soley of containers, without strings or numbers or anything else.) + + +```python +J('[] void') +``` + + False + + + +```python +J('[[]] void') +``` + + True + + + +```python +J('[[][[]]] void') +``` + + True + + + +```python +J('[[[]][[][]]] void') +``` + + False + diff --git a/docs/3. Developing a Program.html b/docs/3. Developing a Program.html new file mode 100644 index 0000000..4a6e724 --- /dev/null +++ b/docs/3. Developing a Program.html @@ -0,0 +1,13283 @@ + + + +3. Developing a Program + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Project Euler, first problem: "Multiples of 3 and 5"

+
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
+
+Find the sum of all the multiples of 3 or 5 below 1000.
+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

Let's create a predicate that returns True if a number is a multiple of 3 or 5 and False otherwise.

+ +
+
+
+
+
+
In [2]:
+
+
+
define('P == [3 % not] dupdip 5 % not or')
+
+ +
+
+
+ +
+
+
+
In [3]:
+
+
+
V('80 P')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
             . 80 P
+          80 . P
+          80 . [3 % not] dupdip 5 % not or
+80 [3 % not] . dupdip 5 % not or
+          80 . 3 % not 80 5 % not or
+        80 3 . % not 80 5 % not or
+           2 . not 80 5 % not or
+       False . 80 5 % not or
+    False 80 . 5 % not or
+  False 80 5 . % not or
+     False 0 . not or
+  False True . or
+        True . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Given the predicate function P a suitable program is:

+ +
PE1 == 1000 range [P] filter sum
+
+
+

This function generates a list of the integers from 0 to 999, filters +that list by P, and then sums the result.

+

Logically this is fine, but pragmatically we are doing more work than we +should be; we generate one thousand integers but actually use less than +half of them. A better solution would be to generate just the multiples +we want to sum, and to add them as we go rather than storing them and +adding summing them at the end.

+

At first I had the idea to use two counters and increase them by three +and five, respectively. This way we only generate the terms that we +actually want to sum. We have to proceed by incrementing the counter +that is lower, or if they are equal, the three counter, and we have to +take care not to double add numbers like 15 that are multiples of both +three and five.

+

This seemed a little clunky, so I tried a different approach.

+

Consider the first few terms in the series:

+ +
3 5 6 9 10 12 15 18 20 21 ...
+
+
+

Subtract each number from the one after it (subtracting 0 from 3):

+ +
3 5 6 9 10 12 15 18 20 21 24 25 27 30 ...
+0 3 5 6  9 10 12 15 18 20 21 24 25 27 ...
+-------------------------------------------
+3 2 1 3  1  2  3  3  2  1  3  1  2  3 ...
+
+
+

You get this lovely repeating palindromic sequence:

+ +
3 2 1 3 1 2 3
+
+
+

To make a counter that increments by factors of 3 and 5 you just add +these differences to the counter one-by-one in a loop.

+

To make use of this sequence to increment a counter and sum terms as we +go we need a function that will accept the sum, the counter, and the next +term to add, and that adds the term to the counter and a copy of the +counter to the running sum. This function will do that:

+ +
PE1.1 == + [+] dupdip
+ +
+
+
+
+
+
In [4]:
+
+
+
define('PE1.1 == + [+] dupdip')
+
+ +
+
+
+ +
+
+
+
In [5]:
+
+
+
V('0 0 3 PE1.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
        . 0 0 3 PE1.1
+      0 . 0 3 PE1.1
+    0 0 . 3 PE1.1
+  0 0 3 . PE1.1
+  0 0 3 . + [+] dupdip
+    0 3 . [+] dupdip
+0 3 [+] . dupdip
+    0 3 . + 3
+      3 . 3
+    3 3 . 
+
+
+
+ +
+
+ +
+
+
+
In [6]:
+
+
+
V('0 0 [3 2 1 3 1 2 3] [PE1.1] step')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                            . 0 0 [3 2 1 3 1 2 3] [PE1.1] step
+                          0 . 0 [3 2 1 3 1 2 3] [PE1.1] step
+                        0 0 . [3 2 1 3 1 2 3] [PE1.1] step
+        0 0 [3 2 1 3 1 2 3] . [PE1.1] step
+0 0 [3 2 1 3 1 2 3] [PE1.1] . step
+              0 0 3 [PE1.1] . i [2 1 3 1 2 3] [PE1.1] step
+                      0 0 3 . PE1.1 [2 1 3 1 2 3] [PE1.1] step
+                      0 0 3 . + [+] dupdip [2 1 3 1 2 3] [PE1.1] step
+                        0 3 . [+] dupdip [2 1 3 1 2 3] [PE1.1] step
+                    0 3 [+] . dupdip [2 1 3 1 2 3] [PE1.1] step
+                        0 3 . + 3 [2 1 3 1 2 3] [PE1.1] step
+                          3 . 3 [2 1 3 1 2 3] [PE1.1] step
+                        3 3 . [2 1 3 1 2 3] [PE1.1] step
+          3 3 [2 1 3 1 2 3] . [PE1.1] step
+  3 3 [2 1 3 1 2 3] [PE1.1] . step
+              3 3 2 [PE1.1] . i [1 3 1 2 3] [PE1.1] step
+                      3 3 2 . PE1.1 [1 3 1 2 3] [PE1.1] step
+                      3 3 2 . + [+] dupdip [1 3 1 2 3] [PE1.1] step
+                        3 5 . [+] dupdip [1 3 1 2 3] [PE1.1] step
+                    3 5 [+] . dupdip [1 3 1 2 3] [PE1.1] step
+                        3 5 . + 5 [1 3 1 2 3] [PE1.1] step
+                          8 . 5 [1 3 1 2 3] [PE1.1] step
+                        8 5 . [1 3 1 2 3] [PE1.1] step
+            8 5 [1 3 1 2 3] . [PE1.1] step
+    8 5 [1 3 1 2 3] [PE1.1] . step
+              8 5 1 [PE1.1] . i [3 1 2 3] [PE1.1] step
+                      8 5 1 . PE1.1 [3 1 2 3] [PE1.1] step
+                      8 5 1 . + [+] dupdip [3 1 2 3] [PE1.1] step
+                        8 6 . [+] dupdip [3 1 2 3] [PE1.1] step
+                    8 6 [+] . dupdip [3 1 2 3] [PE1.1] step
+                        8 6 . + 6 [3 1 2 3] [PE1.1] step
+                         14 . 6 [3 1 2 3] [PE1.1] step
+                       14 6 . [3 1 2 3] [PE1.1] step
+             14 6 [3 1 2 3] . [PE1.1] step
+     14 6 [3 1 2 3] [PE1.1] . step
+             14 6 3 [PE1.1] . i [1 2 3] [PE1.1] step
+                     14 6 3 . PE1.1 [1 2 3] [PE1.1] step
+                     14 6 3 . + [+] dupdip [1 2 3] [PE1.1] step
+                       14 9 . [+] dupdip [1 2 3] [PE1.1] step
+                   14 9 [+] . dupdip [1 2 3] [PE1.1] step
+                       14 9 . + 9 [1 2 3] [PE1.1] step
+                         23 . 9 [1 2 3] [PE1.1] step
+                       23 9 . [1 2 3] [PE1.1] step
+               23 9 [1 2 3] . [PE1.1] step
+       23 9 [1 2 3] [PE1.1] . step
+             23 9 1 [PE1.1] . i [2 3] [PE1.1] step
+                     23 9 1 . PE1.1 [2 3] [PE1.1] step
+                     23 9 1 . + [+] dupdip [2 3] [PE1.1] step
+                      23 10 . [+] dupdip [2 3] [PE1.1] step
+                  23 10 [+] . dupdip [2 3] [PE1.1] step
+                      23 10 . + 10 [2 3] [PE1.1] step
+                         33 . 10 [2 3] [PE1.1] step
+                      33 10 . [2 3] [PE1.1] step
+                33 10 [2 3] . [PE1.1] step
+        33 10 [2 3] [PE1.1] . step
+            33 10 2 [PE1.1] . i [3] [PE1.1] step
+                    33 10 2 . PE1.1 [3] [PE1.1] step
+                    33 10 2 . + [+] dupdip [3] [PE1.1] step
+                      33 12 . [+] dupdip [3] [PE1.1] step
+                  33 12 [+] . dupdip [3] [PE1.1] step
+                      33 12 . + 12 [3] [PE1.1] step
+                         45 . 12 [3] [PE1.1] step
+                      45 12 . [3] [PE1.1] step
+                  45 12 [3] . [PE1.1] step
+          45 12 [3] [PE1.1] . step
+            45 12 3 [PE1.1] . i
+                    45 12 3 . PE1.1
+                    45 12 3 . + [+] dupdip
+                      45 15 . [+] dupdip
+                  45 15 [+] . dupdip
+                      45 15 . + 15
+                         60 . 15
+                      60 15 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

So one step through all seven terms brings the counter to 15 and the total to 60.

+ +
+
+
+
+
+
In [7]:
+
+
+
1000 / 15
+
+ +
+
+
+ +
+
+ + +
+ +
Out[7]:
+ + + + +
+
66
+
+ +
+ +
+
+ +
+
+
+
In [8]:
+
+
+
66 * 15
+
+ +
+
+
+ +
+
+ + +
+ +
Out[8]:
+ + + + +
+
990
+
+ +
+ +
+
+ +
+
+
+
In [9]:
+
+
+
1000 - 990
+
+ +
+
+
+ +
+
+ + +
+ +
Out[9]:
+ + + + +
+
10
+
+ +
+ +
+
+ +
+
+
+
+
+

We only want the terms less than 1000.

+ +
+
+
+
+
+
In [10]:
+
+
+
999 - 990
+
+ +
+
+
+ +
+
+ + +
+ +
Out[10]:
+ + + + +
+
9
+
+ +
+ +
+
+ +
+
+
+
+
+

That means we want to run the full list of numbers sixty-six times to get to 990 and then the first four numbers 3 2 1 3 to get to 999.

+ +
+
+
+
+
+
In [11]:
+
+
+
define('PE1 == 0 0 66 [[3 2 1 3 1 2 3] [PE1.1] step] times [3 2 1 3] [PE1.1] step pop')
+
+ +
+
+
+ +
+
+
+
In [12]:
+
+
+
J('PE1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

This form uses no extra storage and produces no unused summands. It's +good but there's one more trick we can apply. The list of seven terms +takes up at least seven bytes. But notice that all of the terms are less +than four, and so each can fit in just two bits. We could store all +seven terms in just fourteen bits and use masking and shifts to pick out +each term as we go. This will use less space and save time loading whole +integer terms from the list.

+ +
    3  2  1  3  1  2  3
+0b 11 10 01 11 01 10 11 == 14811
+ +
+
+
+
+
+
In [13]:
+
+
+
0b11100111011011
+
+ +
+
+
+ +
+
+ + +
+ +
Out[13]:
+ + + + +
+
14811
+
+ +
+ +
+
+ +
+
+
+
In [14]:
+
+
+
define('PE1.2 == [3 & PE1.1] dupdip 2 >>')
+
+ +
+
+
+ +
+
+
+
In [15]:
+
+
+
V('0 0 14811 PE1.2')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                      . 0 0 14811 PE1.2
+                    0 . 0 14811 PE1.2
+                  0 0 . 14811 PE1.2
+            0 0 14811 . PE1.2
+            0 0 14811 . [3 & PE1.1] dupdip 2 >>
+0 0 14811 [3 & PE1.1] . dupdip 2 >>
+            0 0 14811 . 3 & PE1.1 14811 2 >>
+          0 0 14811 3 . & PE1.1 14811 2 >>
+                0 0 3 . PE1.1 14811 2 >>
+                0 0 3 . + [+] dupdip 14811 2 >>
+                  0 3 . [+] dupdip 14811 2 >>
+              0 3 [+] . dupdip 14811 2 >>
+                  0 3 . + 3 14811 2 >>
+                    3 . 3 14811 2 >>
+                  3 3 . 14811 2 >>
+            3 3 14811 . 2 >>
+          3 3 14811 2 . >>
+             3 3 3702 . 
+
+
+
+ +
+
+ +
+
+
+
In [16]:
+
+
+
V('3 3 3702 PE1.2')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                     . 3 3 3702 PE1.2
+                   3 . 3 3702 PE1.2
+                 3 3 . 3702 PE1.2
+            3 3 3702 . PE1.2
+            3 3 3702 . [3 & PE1.1] dupdip 2 >>
+3 3 3702 [3 & PE1.1] . dupdip 2 >>
+            3 3 3702 . 3 & PE1.1 3702 2 >>
+          3 3 3702 3 . & PE1.1 3702 2 >>
+               3 3 2 . PE1.1 3702 2 >>
+               3 3 2 . + [+] dupdip 3702 2 >>
+                 3 5 . [+] dupdip 3702 2 >>
+             3 5 [+] . dupdip 3702 2 >>
+                 3 5 . + 5 3702 2 >>
+                   8 . 5 3702 2 >>
+                 8 5 . 3702 2 >>
+            8 5 3702 . 2 >>
+          8 5 3702 2 . >>
+             8 5 925 . 
+
+
+
+ +
+
+ +
+
+
+
In [17]:
+
+
+
V('0 0 14811 7 [PE1.2] times pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                      . 0 0 14811 7 [PE1.2] times pop
+                    0 . 0 14811 7 [PE1.2] times pop
+                  0 0 . 14811 7 [PE1.2] times pop
+            0 0 14811 . 7 [PE1.2] times pop
+          0 0 14811 7 . [PE1.2] times pop
+  0 0 14811 7 [PE1.2] . times pop
+    0 0 14811 [PE1.2] . i 6 [PE1.2] times pop
+            0 0 14811 . PE1.2 6 [PE1.2] times pop
+            0 0 14811 . [3 & PE1.1] dupdip 2 >> 6 [PE1.2] times pop
+0 0 14811 [3 & PE1.1] . dupdip 2 >> 6 [PE1.2] times pop
+            0 0 14811 . 3 & PE1.1 14811 2 >> 6 [PE1.2] times pop
+          0 0 14811 3 . & PE1.1 14811 2 >> 6 [PE1.2] times pop
+                0 0 3 . PE1.1 14811 2 >> 6 [PE1.2] times pop
+                0 0 3 . + [+] dupdip 14811 2 >> 6 [PE1.2] times pop
+                  0 3 . [+] dupdip 14811 2 >> 6 [PE1.2] times pop
+              0 3 [+] . dupdip 14811 2 >> 6 [PE1.2] times pop
+                  0 3 . + 3 14811 2 >> 6 [PE1.2] times pop
+                    3 . 3 14811 2 >> 6 [PE1.2] times pop
+                  3 3 . 14811 2 >> 6 [PE1.2] times pop
+            3 3 14811 . 2 >> 6 [PE1.2] times pop
+          3 3 14811 2 . >> 6 [PE1.2] times pop
+             3 3 3702 . 6 [PE1.2] times pop
+           3 3 3702 6 . [PE1.2] times pop
+   3 3 3702 6 [PE1.2] . times pop
+     3 3 3702 [PE1.2] . i 5 [PE1.2] times pop
+             3 3 3702 . PE1.2 5 [PE1.2] times pop
+             3 3 3702 . [3 & PE1.1] dupdip 2 >> 5 [PE1.2] times pop
+ 3 3 3702 [3 & PE1.1] . dupdip 2 >> 5 [PE1.2] times pop
+             3 3 3702 . 3 & PE1.1 3702 2 >> 5 [PE1.2] times pop
+           3 3 3702 3 . & PE1.1 3702 2 >> 5 [PE1.2] times pop
+                3 3 2 . PE1.1 3702 2 >> 5 [PE1.2] times pop
+                3 3 2 . + [+] dupdip 3702 2 >> 5 [PE1.2] times pop
+                  3 5 . [+] dupdip 3702 2 >> 5 [PE1.2] times pop
+              3 5 [+] . dupdip 3702 2 >> 5 [PE1.2] times pop
+                  3 5 . + 5 3702 2 >> 5 [PE1.2] times pop
+                    8 . 5 3702 2 >> 5 [PE1.2] times pop
+                  8 5 . 3702 2 >> 5 [PE1.2] times pop
+             8 5 3702 . 2 >> 5 [PE1.2] times pop
+           8 5 3702 2 . >> 5 [PE1.2] times pop
+              8 5 925 . 5 [PE1.2] times pop
+            8 5 925 5 . [PE1.2] times pop
+    8 5 925 5 [PE1.2] . times pop
+      8 5 925 [PE1.2] . i 4 [PE1.2] times pop
+              8 5 925 . PE1.2 4 [PE1.2] times pop
+              8 5 925 . [3 & PE1.1] dupdip 2 >> 4 [PE1.2] times pop
+  8 5 925 [3 & PE1.1] . dupdip 2 >> 4 [PE1.2] times pop
+              8 5 925 . 3 & PE1.1 925 2 >> 4 [PE1.2] times pop
+            8 5 925 3 . & PE1.1 925 2 >> 4 [PE1.2] times pop
+                8 5 1 . PE1.1 925 2 >> 4 [PE1.2] times pop
+                8 5 1 . + [+] dupdip 925 2 >> 4 [PE1.2] times pop
+                  8 6 . [+] dupdip 925 2 >> 4 [PE1.2] times pop
+              8 6 [+] . dupdip 925 2 >> 4 [PE1.2] times pop
+                  8 6 . + 6 925 2 >> 4 [PE1.2] times pop
+                   14 . 6 925 2 >> 4 [PE1.2] times pop
+                 14 6 . 925 2 >> 4 [PE1.2] times pop
+             14 6 925 . 2 >> 4 [PE1.2] times pop
+           14 6 925 2 . >> 4 [PE1.2] times pop
+             14 6 231 . 4 [PE1.2] times pop
+           14 6 231 4 . [PE1.2] times pop
+   14 6 231 4 [PE1.2] . times pop
+     14 6 231 [PE1.2] . i 3 [PE1.2] times pop
+             14 6 231 . PE1.2 3 [PE1.2] times pop
+             14 6 231 . [3 & PE1.1] dupdip 2 >> 3 [PE1.2] times pop
+ 14 6 231 [3 & PE1.1] . dupdip 2 >> 3 [PE1.2] times pop
+             14 6 231 . 3 & PE1.1 231 2 >> 3 [PE1.2] times pop
+           14 6 231 3 . & PE1.1 231 2 >> 3 [PE1.2] times pop
+               14 6 3 . PE1.1 231 2 >> 3 [PE1.2] times pop
+               14 6 3 . + [+] dupdip 231 2 >> 3 [PE1.2] times pop
+                 14 9 . [+] dupdip 231 2 >> 3 [PE1.2] times pop
+             14 9 [+] . dupdip 231 2 >> 3 [PE1.2] times pop
+                 14 9 . + 9 231 2 >> 3 [PE1.2] times pop
+                   23 . 9 231 2 >> 3 [PE1.2] times pop
+                 23 9 . 231 2 >> 3 [PE1.2] times pop
+             23 9 231 . 2 >> 3 [PE1.2] times pop
+           23 9 231 2 . >> 3 [PE1.2] times pop
+              23 9 57 . 3 [PE1.2] times pop
+            23 9 57 3 . [PE1.2] times pop
+    23 9 57 3 [PE1.2] . times pop
+      23 9 57 [PE1.2] . i 2 [PE1.2] times pop
+              23 9 57 . PE1.2 2 [PE1.2] times pop
+              23 9 57 . [3 & PE1.1] dupdip 2 >> 2 [PE1.2] times pop
+  23 9 57 [3 & PE1.1] . dupdip 2 >> 2 [PE1.2] times pop
+              23 9 57 . 3 & PE1.1 57 2 >> 2 [PE1.2] times pop
+            23 9 57 3 . & PE1.1 57 2 >> 2 [PE1.2] times pop
+               23 9 1 . PE1.1 57 2 >> 2 [PE1.2] times pop
+               23 9 1 . + [+] dupdip 57 2 >> 2 [PE1.2] times pop
+                23 10 . [+] dupdip 57 2 >> 2 [PE1.2] times pop
+            23 10 [+] . dupdip 57 2 >> 2 [PE1.2] times pop
+                23 10 . + 10 57 2 >> 2 [PE1.2] times pop
+                   33 . 10 57 2 >> 2 [PE1.2] times pop
+                33 10 . 57 2 >> 2 [PE1.2] times pop
+             33 10 57 . 2 >> 2 [PE1.2] times pop
+           33 10 57 2 . >> 2 [PE1.2] times pop
+             33 10 14 . 2 [PE1.2] times pop
+           33 10 14 2 . [PE1.2] times pop
+   33 10 14 2 [PE1.2] . times pop
+     33 10 14 [PE1.2] . i 1 [PE1.2] times pop
+             33 10 14 . PE1.2 1 [PE1.2] times pop
+             33 10 14 . [3 & PE1.1] dupdip 2 >> 1 [PE1.2] times pop
+ 33 10 14 [3 & PE1.1] . dupdip 2 >> 1 [PE1.2] times pop
+             33 10 14 . 3 & PE1.1 14 2 >> 1 [PE1.2] times pop
+           33 10 14 3 . & PE1.1 14 2 >> 1 [PE1.2] times pop
+              33 10 2 . PE1.1 14 2 >> 1 [PE1.2] times pop
+              33 10 2 . + [+] dupdip 14 2 >> 1 [PE1.2] times pop
+                33 12 . [+] dupdip 14 2 >> 1 [PE1.2] times pop
+            33 12 [+] . dupdip 14 2 >> 1 [PE1.2] times pop
+                33 12 . + 12 14 2 >> 1 [PE1.2] times pop
+                   45 . 12 14 2 >> 1 [PE1.2] times pop
+                45 12 . 14 2 >> 1 [PE1.2] times pop
+             45 12 14 . 2 >> 1 [PE1.2] times pop
+           45 12 14 2 . >> 1 [PE1.2] times pop
+              45 12 3 . 1 [PE1.2] times pop
+            45 12 3 1 . [PE1.2] times pop
+    45 12 3 1 [PE1.2] . times pop
+      45 12 3 [PE1.2] . i pop
+              45 12 3 . PE1.2 pop
+              45 12 3 . [3 & PE1.1] dupdip 2 >> pop
+  45 12 3 [3 & PE1.1] . dupdip 2 >> pop
+              45 12 3 . 3 & PE1.1 3 2 >> pop
+            45 12 3 3 . & PE1.1 3 2 >> pop
+              45 12 3 . PE1.1 3 2 >> pop
+              45 12 3 . + [+] dupdip 3 2 >> pop
+                45 15 . [+] dupdip 3 2 >> pop
+            45 15 [+] . dupdip 3 2 >> pop
+                45 15 . + 15 3 2 >> pop
+                   60 . 15 3 2 >> pop
+                60 15 . 3 2 >> pop
+              60 15 3 . 2 >> pop
+            60 15 3 2 . >> pop
+              60 15 0 . pop
+                60 15 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

And so we have at last:

+ +
+
+
+
+
+
In [18]:
+
+
+
define('PE1 == 0 0 66 [14811 7 [PE1.2] times pop] times 14811 4 [PE1.2] times popop')
+
+ +
+
+
+ +
+
+
+
In [19]:
+
+
+
J('PE1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

Let's refactor.

+ +
  14811 7 [PE1.2] times pop
+  14811 4 [PE1.2] times pop
+  14811 n [PE1.2] times pop
+n 14811 swap [PE1.2] times pop
+ +
+
+
+
+
+
In [20]:
+
+
+
define('PE1.3 == 14811 swap [PE1.2] times pop')
+
+ +
+
+
+ +
+
+
+
+
+

Now we can simplify the definition above:

+ +
+
+
+
+
+
In [21]:
+
+
+
define('PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop')
+
+ +
+
+
+ +
+
+
+
In [22]:
+
+
+
J('PE1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

Here's our joy program all in one place. It doesn't make so much sense, but if you have read through the above description of how it was derived I hope it's clear.

+ +
PE1.1 == + [+] dupdip
+PE1.2 == [3 & PE1.1] dupdip 2 >>
+PE1.3 == 14811 swap [PE1.2] times pop
+PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop
+ +
+
+
+
+
+
+
+

Generator Version

It's a little clunky iterating sixty-six times though the seven numbers then four more. In the Generator Programs notebook we derive a generator that can be repeatedly driven by the x combinator to produce a stream of the seven numbers repeating over and over again.

+ +
+
+
+
+
+
In [23]:
+
+
+
define('PE1.terms == [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]')
+
+ +
+
+
+ +
+
+
+
In [24]:
+
+
+
J('PE1.terms 21 [x] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]
+
+
+
+ +
+
+ +
+
+
+
+
+

We know from above that we need sixty-six times seven then four more terms to reach up to but not over one thousand.

+ +
+
+
+
+
+
In [25]:
+
+
+
J('7 66 * 4 +')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
466
+
+
+
+ +
+
+ +
+
+
+
+
+

Here they are...

+
+
+
+
+
+
In [26]:
+
+
+
J('PE1.terms 466 [x] times pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3
+
+
+
+ +
+
+ +
+
+
+
+
+

...and they do sum to 999.

+
+
+
+
+
+
In [27]:
+
+
+
J('[PE1.terms 466 [x] times pop] run sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
999
+
+
+
+ +
+
+ +
+
+
+
+
+

Now we can use PE1.1 to accumulate the terms as we go, and then pop the generator and the counter from the stack when we're done, leaving just the sum.

+ +
+
+
+
+
+
In [28]:
+
+
+
J('0 0 PE1.terms 466 [x [PE1.1] dip] times popop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

A little further analysis renders iteration unnecessary.

Consider finding the sum of the positive integers less than or equal to ten.

+ +
+
+
+
+
+
In [29]:
+
+
+
J('[10 9 8 7 6 5 4 3 2 1] sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
55
+
+
+
+ +
+
+ +
+
+
+
+
+

Instead of summing them, observe:

+ +
  10  9  8  7  6
++  1  2  3  4  5
+---- -- -- -- --
+  11 11 11 11 11
+
+  11 * 5 = 55
+
+
+

From the above example we can deduce that the sum of the first N positive integers is:

+ +
(N + 1) * N / 2 
+
+
+

(The formula also works for odd values of N, I'll leave that to you if you want to work it out or you can take my word for it.)

+ +
+
+
+
+
+
In [30]:
+
+
+
define('F == dup ++ * 2 floordiv')
+
+ +
+
+
+ +
+
+
+
In [31]:
+
+
+
V('10 F')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
      . 10 F
+   10 . F
+   10 . dup ++ * 2 floordiv
+10 10 . ++ * 2 floordiv
+10 11 . * 2 floordiv
+  110 . 2 floordiv
+110 2 . floordiv
+   55 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Generalizing to Blocks of Terms

We can apply the same reasoning to the PE1 problem.

+

Between 0 and 990 inclusive there are sixty-six "blocks" of seven terms each, starting with:

+ +
[3 5 6 9 10 12 15]
+
+
+

And ending with:

+ +
[978 980 981 984 985 987 990]
+
+
+

If we reverse one of these two blocks and sum pairs...

+ +
+
+
+
+
+
In [32]:
+
+
+
J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[[978 15] [980 12] [981 10] [984 9] [985 6] [987 5] [990 3]]
+
+
+
+ +
+
+ +
+
+
+
In [33]:
+
+
+
J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[993 992 991 993 991 992 993]
+
+
+
+ +
+
+ +
+
+
+
+
+

(Interesting that the sequence of seven numbers appears again in the rightmost digit of each term.)

+ +
+
+
+
+
+
In [34]:
+
+
+
J('[ 3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6945
+
+
+
+ +
+
+ +
+
+
+
+
+

Since there are sixty-six blocks and we are pairing them up, there must be thirty-three pairs, each of which sums to 6945. We also have these additional unpaired terms between 990 and 1000:

+ +
993 995 996 999
+
+
+

So we can give the "sum of all the multiples of 3 or 5 below 1000" like so:

+ +
+
+
+
+
+
In [35]:
+
+
+
J('6945 33 * [993 995 996 999] cons sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

It's worth noting, I think, that this same reasoning holds for any two numbers $n$ and $m$ the multiples of which we hope to sum. The multiples would have a cycle of differences of length $k$ and so we could compute the sum of $Nk$ multiples as above.

+

The sequence of differences will always be a palidrome. Consider an interval spanning the least common multiple of $n$ and $m$:

+ +
|   |   |   |   |   |   |   |
+|      |      |      |      |
+
+
+

Here we have 4 and 7, and you can read off the sequence of differences directly from the diagram: 4 3 1 4 2 2 4 1 3 4.

+

Geometrically, the actual values of $n$ and $m$ and their lcm don't matter, the pattern they make will always be symmetrical around its midpoint. The same reasoning holds for multiples of more than two numbers.

+ +
+
+
+
+
+
+
+

The Simplest Program

+
+
+
+
+
+
+
+

Of course, the simplest joy program for the first Project Euler problem is just:

+ +
PE1 == 233168
+
+
+

Fin.

+ +
+
+
+
+
+ + + + + + diff --git a/docs/3. Developing a Program.ipynb b/docs/3. Developing a Program.ipynb new file mode 100644 index 0000000..0cb1730 --- /dev/null +++ b/docs/3. Developing a Program.ipynb @@ -0,0 +1,1121 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Project Euler, first problem: \"Multiples of 3 and 5\"](https://projecteuler.net/problem=1)\n", + "\n", + " If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.\n", + "\n", + " Find the sum of all the multiples of 3 or 5 below 1000." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's create a predicate that returns `True` if a number is a multiple of 3 or 5 and `False` otherwise." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "define('P == [3 % not] dupdip 5 % not or')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 80 P\n", + " 80 . P\n", + " 80 . [3 % not] dupdip 5 % not or\n", + "80 [3 % not] . dupdip 5 % not or\n", + " 80 . 3 % not 80 5 % not or\n", + " 80 3 . % not 80 5 % not or\n", + " 2 . not 80 5 % not or\n", + " False . 80 5 % not or\n", + " False 80 . 5 % not or\n", + " False 80 5 . % not or\n", + " False 0 . not or\n", + " False True . or\n", + " True . \n" + ] + } + ], + "source": [ + "V('80 P')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Given the predicate function `P` a suitable program is:\n", + "\n", + " PE1 == 1000 range [P] filter sum\n", + "\n", + "This function generates a list of the integers from 0 to 999, filters\n", + "that list by `P`, and then sums the result.\n", + "\n", + "Logically this is fine, but pragmatically we are doing more work than we\n", + "should be; we generate one thousand integers but actually use less than\n", + "half of them. A better solution would be to generate just the multiples\n", + "we want to sum, and to add them as we go rather than storing them and\n", + "adding summing them at the end.\n", + "\n", + "At first I had the idea to use two counters and increase them by three\n", + "and five, respectively. This way we only generate the terms that we\n", + "actually want to sum. We have to proceed by incrementing the counter\n", + "that is lower, or if they are equal, the three counter, and we have to\n", + "take care not to double add numbers like 15 that are multiples of both\n", + "three and five.\n", + "\n", + "This seemed a little clunky, so I tried a different approach.\n", + "\n", + "Consider the first few terms in the series:\n", + "\n", + " 3 5 6 9 10 12 15 18 20 21 ...\n", + "\n", + "Subtract each number from the one after it (subtracting 0 from 3):\n", + "\n", + " 3 5 6 9 10 12 15 18 20 21 24 25 27 30 ...\n", + " 0 3 5 6 9 10 12 15 18 20 21 24 25 27 ...\n", + " -------------------------------------------\n", + " 3 2 1 3 1 2 3 3 2 1 3 1 2 3 ...\n", + "\n", + "You get this lovely repeating palindromic sequence:\n", + "\n", + " 3 2 1 3 1 2 3\n", + "\n", + "To make a counter that increments by factors of 3 and 5 you just add\n", + "these differences to the counter one-by-one in a loop.\n", + "\n", + "\n", + "To make use of this sequence to increment a counter and sum terms as we\n", + "go we need a function that will accept the sum, the counter, and the next\n", + "term to add, and that adds the term to the counter and a copy of the\n", + "counter to the running sum. This function will do that:\n", + "\n", + " PE1.1 == + [+] dupdip" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.1 == + [+] dupdip')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 0 3 PE1.1\n", + " 0 . 0 3 PE1.1\n", + " 0 0 . 3 PE1.1\n", + " 0 0 3 . PE1.1\n", + " 0 0 3 . + [+] dupdip\n", + " 0 3 . [+] dupdip\n", + "0 3 [+] . dupdip\n", + " 0 3 . + 3\n", + " 3 . 3\n", + " 3 3 . \n" + ] + } + ], + "source": [ + "V('0 0 3 PE1.1')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 0 [3 2 1 3 1 2 3] [PE1.1] step\n", + " 0 . 0 [3 2 1 3 1 2 3] [PE1.1] step\n", + " 0 0 . [3 2 1 3 1 2 3] [PE1.1] step\n", + " 0 0 [3 2 1 3 1 2 3] . [PE1.1] step\n", + "0 0 [3 2 1 3 1 2 3] [PE1.1] . step\n", + " 0 0 3 [PE1.1] . i [2 1 3 1 2 3] [PE1.1] step\n", + " 0 0 3 . PE1.1 [2 1 3 1 2 3] [PE1.1] step\n", + " 0 0 3 . + [+] dupdip [2 1 3 1 2 3] [PE1.1] step\n", + " 0 3 . [+] dupdip [2 1 3 1 2 3] [PE1.1] step\n", + " 0 3 [+] . dupdip [2 1 3 1 2 3] [PE1.1] step\n", + " 0 3 . + 3 [2 1 3 1 2 3] [PE1.1] step\n", + " 3 . 3 [2 1 3 1 2 3] [PE1.1] step\n", + " 3 3 . [2 1 3 1 2 3] [PE1.1] step\n", + " 3 3 [2 1 3 1 2 3] . [PE1.1] step\n", + " 3 3 [2 1 3 1 2 3] [PE1.1] . step\n", + " 3 3 2 [PE1.1] . i [1 3 1 2 3] [PE1.1] step\n", + " 3 3 2 . PE1.1 [1 3 1 2 3] [PE1.1] step\n", + " 3 3 2 . + [+] dupdip [1 3 1 2 3] [PE1.1] step\n", + " 3 5 . [+] dupdip [1 3 1 2 3] [PE1.1] step\n", + " 3 5 [+] . dupdip [1 3 1 2 3] [PE1.1] step\n", + " 3 5 . + 5 [1 3 1 2 3] [PE1.1] step\n", + " 8 . 5 [1 3 1 2 3] [PE1.1] step\n", + " 8 5 . [1 3 1 2 3] [PE1.1] step\n", + " 8 5 [1 3 1 2 3] . [PE1.1] step\n", + " 8 5 [1 3 1 2 3] [PE1.1] . step\n", + " 8 5 1 [PE1.1] . i [3 1 2 3] [PE1.1] step\n", + " 8 5 1 . PE1.1 [3 1 2 3] [PE1.1] step\n", + " 8 5 1 . + [+] dupdip [3 1 2 3] [PE1.1] step\n", + " 8 6 . [+] dupdip [3 1 2 3] [PE1.1] step\n", + " 8 6 [+] . dupdip [3 1 2 3] [PE1.1] step\n", + " 8 6 . + 6 [3 1 2 3] [PE1.1] step\n", + " 14 . 6 [3 1 2 3] [PE1.1] step\n", + " 14 6 . [3 1 2 3] [PE1.1] step\n", + " 14 6 [3 1 2 3] . [PE1.1] step\n", + " 14 6 [3 1 2 3] [PE1.1] . step\n", + " 14 6 3 [PE1.1] . i [1 2 3] [PE1.1] step\n", + " 14 6 3 . PE1.1 [1 2 3] [PE1.1] step\n", + " 14 6 3 . + [+] dupdip [1 2 3] [PE1.1] step\n", + " 14 9 . [+] dupdip [1 2 3] [PE1.1] step\n", + " 14 9 [+] . dupdip [1 2 3] [PE1.1] step\n", + " 14 9 . + 9 [1 2 3] [PE1.1] step\n", + " 23 . 9 [1 2 3] [PE1.1] step\n", + " 23 9 . [1 2 3] [PE1.1] step\n", + " 23 9 [1 2 3] . [PE1.1] step\n", + " 23 9 [1 2 3] [PE1.1] . step\n", + " 23 9 1 [PE1.1] . i [2 3] [PE1.1] step\n", + " 23 9 1 . PE1.1 [2 3] [PE1.1] step\n", + " 23 9 1 . + [+] dupdip [2 3] [PE1.1] step\n", + " 23 10 . [+] dupdip [2 3] [PE1.1] step\n", + " 23 10 [+] . dupdip [2 3] [PE1.1] step\n", + " 23 10 . + 10 [2 3] [PE1.1] step\n", + " 33 . 10 [2 3] [PE1.1] step\n", + " 33 10 . [2 3] [PE1.1] step\n", + " 33 10 [2 3] . [PE1.1] step\n", + " 33 10 [2 3] [PE1.1] . step\n", + " 33 10 2 [PE1.1] . i [3] [PE1.1] step\n", + " 33 10 2 . PE1.1 [3] [PE1.1] step\n", + " 33 10 2 . + [+] dupdip [3] [PE1.1] step\n", + " 33 12 . [+] dupdip [3] [PE1.1] step\n", + " 33 12 [+] . dupdip [3] [PE1.1] step\n", + " 33 12 . + 12 [3] [PE1.1] step\n", + " 45 . 12 [3] [PE1.1] step\n", + " 45 12 . [3] [PE1.1] step\n", + " 45 12 [3] . [PE1.1] step\n", + " 45 12 [3] [PE1.1] . step\n", + " 45 12 3 [PE1.1] . i\n", + " 45 12 3 . PE1.1\n", + " 45 12 3 . + [+] dupdip\n", + " 45 15 . [+] dupdip\n", + " 45 15 [+] . dupdip\n", + " 45 15 . + 15\n", + " 60 . 15\n", + " 60 15 . \n" + ] + } + ], + "source": [ + "V('0 0 [3 2 1 3 1 2 3] [PE1.1] step')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So one `step` through all seven terms brings the counter to 15 and the total to 60." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "66" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "1000 / 15" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "990" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "66 * 15" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "1000 - 990" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We only want the terms *less than* 1000." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "999 - 990" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "That means we want to run the full list of numbers sixty-six times to get to 990 and then the first four numbers 3 2 1 3 to get to 999." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1 == 0 0 66 [[3 2 1 3 1 2 3] [PE1.1] step] times [3 2 1 3] [PE1.1] step pop')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('PE1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This form uses no extra storage and produces no unused summands. It's\n", + "good but there's one more trick we can apply. The list of seven terms\n", + "takes up at least seven bytes. But notice that all of the terms are less\n", + "than four, and so each can fit in just two bits. We could store all\n", + "seven terms in just fourteen bits and use masking and shifts to pick out\n", + "each term as we go. This will use less space and save time loading whole\n", + "integer terms from the list.\n", + "\n", + " 3 2 1 3 1 2 3\n", + " 0b 11 10 01 11 01 10 11 == 14811" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "14811" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "0b11100111011011" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.2 == [3 & PE1.1] dupdip 2 >>')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 0 14811 PE1.2\n", + " 0 . 0 14811 PE1.2\n", + " 0 0 . 14811 PE1.2\n", + " 0 0 14811 . PE1.2\n", + " 0 0 14811 . [3 & PE1.1] dupdip 2 >>\n", + "0 0 14811 [3 & PE1.1] . dupdip 2 >>\n", + " 0 0 14811 . 3 & PE1.1 14811 2 >>\n", + " 0 0 14811 3 . & PE1.1 14811 2 >>\n", + " 0 0 3 . PE1.1 14811 2 >>\n", + " 0 0 3 . + [+] dupdip 14811 2 >>\n", + " 0 3 . [+] dupdip 14811 2 >>\n", + " 0 3 [+] . dupdip 14811 2 >>\n", + " 0 3 . + 3 14811 2 >>\n", + " 3 . 3 14811 2 >>\n", + " 3 3 . 14811 2 >>\n", + " 3 3 14811 . 2 >>\n", + " 3 3 14811 2 . >>\n", + " 3 3 3702 . \n" + ] + } + ], + "source": [ + "V('0 0 14811 PE1.2')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 3 3 3702 PE1.2\n", + " 3 . 3 3702 PE1.2\n", + " 3 3 . 3702 PE1.2\n", + " 3 3 3702 . PE1.2\n", + " 3 3 3702 . [3 & PE1.1] dupdip 2 >>\n", + "3 3 3702 [3 & PE1.1] . dupdip 2 >>\n", + " 3 3 3702 . 3 & PE1.1 3702 2 >>\n", + " 3 3 3702 3 . & PE1.1 3702 2 >>\n", + " 3 3 2 . PE1.1 3702 2 >>\n", + " 3 3 2 . + [+] dupdip 3702 2 >>\n", + " 3 5 . [+] dupdip 3702 2 >>\n", + " 3 5 [+] . dupdip 3702 2 >>\n", + " 3 5 . + 5 3702 2 >>\n", + " 8 . 5 3702 2 >>\n", + " 8 5 . 3702 2 >>\n", + " 8 5 3702 . 2 >>\n", + " 8 5 3702 2 . >>\n", + " 8 5 925 . \n" + ] + } + ], + "source": [ + "V('3 3 3702 PE1.2')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 0 14811 7 [PE1.2] times pop\n", + " 0 . 0 14811 7 [PE1.2] times pop\n", + " 0 0 . 14811 7 [PE1.2] times pop\n", + " 0 0 14811 . 7 [PE1.2] times pop\n", + " 0 0 14811 7 . [PE1.2] times pop\n", + " 0 0 14811 7 [PE1.2] . times pop\n", + " 0 0 14811 [PE1.2] . i 6 [PE1.2] times pop\n", + " 0 0 14811 . PE1.2 6 [PE1.2] times pop\n", + " 0 0 14811 . [3 & PE1.1] dupdip 2 >> 6 [PE1.2] times pop\n", + "0 0 14811 [3 & PE1.1] . dupdip 2 >> 6 [PE1.2] times pop\n", + " 0 0 14811 . 3 & PE1.1 14811 2 >> 6 [PE1.2] times pop\n", + " 0 0 14811 3 . & PE1.1 14811 2 >> 6 [PE1.2] times pop\n", + " 0 0 3 . PE1.1 14811 2 >> 6 [PE1.2] times pop\n", + " 0 0 3 . + [+] dupdip 14811 2 >> 6 [PE1.2] times pop\n", + " 0 3 . [+] dupdip 14811 2 >> 6 [PE1.2] times pop\n", + " 0 3 [+] . dupdip 14811 2 >> 6 [PE1.2] times pop\n", + " 0 3 . + 3 14811 2 >> 6 [PE1.2] times pop\n", + " 3 . 3 14811 2 >> 6 [PE1.2] times pop\n", + " 3 3 . 14811 2 >> 6 [PE1.2] times pop\n", + " 3 3 14811 . 2 >> 6 [PE1.2] times pop\n", + " 3 3 14811 2 . >> 6 [PE1.2] times pop\n", + " 3 3 3702 . 6 [PE1.2] times pop\n", + " 3 3 3702 6 . [PE1.2] times pop\n", + " 3 3 3702 6 [PE1.2] . times pop\n", + " 3 3 3702 [PE1.2] . i 5 [PE1.2] times pop\n", + " 3 3 3702 . PE1.2 5 [PE1.2] times pop\n", + " 3 3 3702 . [3 & PE1.1] dupdip 2 >> 5 [PE1.2] times pop\n", + " 3 3 3702 [3 & PE1.1] . dupdip 2 >> 5 [PE1.2] times pop\n", + " 3 3 3702 . 3 & PE1.1 3702 2 >> 5 [PE1.2] times pop\n", + " 3 3 3702 3 . & PE1.1 3702 2 >> 5 [PE1.2] times pop\n", + " 3 3 2 . PE1.1 3702 2 >> 5 [PE1.2] times pop\n", + " 3 3 2 . + [+] dupdip 3702 2 >> 5 [PE1.2] times pop\n", + " 3 5 . [+] dupdip 3702 2 >> 5 [PE1.2] times pop\n", + " 3 5 [+] . dupdip 3702 2 >> 5 [PE1.2] times pop\n", + " 3 5 . + 5 3702 2 >> 5 [PE1.2] times pop\n", + " 8 . 5 3702 2 >> 5 [PE1.2] times pop\n", + " 8 5 . 3702 2 >> 5 [PE1.2] times pop\n", + " 8 5 3702 . 2 >> 5 [PE1.2] times pop\n", + " 8 5 3702 2 . >> 5 [PE1.2] times pop\n", + " 8 5 925 . 5 [PE1.2] times pop\n", + " 8 5 925 5 . [PE1.2] times pop\n", + " 8 5 925 5 [PE1.2] . times pop\n", + " 8 5 925 [PE1.2] . i 4 [PE1.2] times pop\n", + " 8 5 925 . PE1.2 4 [PE1.2] times pop\n", + " 8 5 925 . [3 & PE1.1] dupdip 2 >> 4 [PE1.2] times pop\n", + " 8 5 925 [3 & PE1.1] . dupdip 2 >> 4 [PE1.2] times pop\n", + " 8 5 925 . 3 & PE1.1 925 2 >> 4 [PE1.2] times pop\n", + " 8 5 925 3 . & PE1.1 925 2 >> 4 [PE1.2] times pop\n", + " 8 5 1 . PE1.1 925 2 >> 4 [PE1.2] times pop\n", + " 8 5 1 . + [+] dupdip 925 2 >> 4 [PE1.2] times pop\n", + " 8 6 . [+] dupdip 925 2 >> 4 [PE1.2] times pop\n", + " 8 6 [+] . dupdip 925 2 >> 4 [PE1.2] times pop\n", + " 8 6 . + 6 925 2 >> 4 [PE1.2] times pop\n", + " 14 . 6 925 2 >> 4 [PE1.2] times pop\n", + " 14 6 . 925 2 >> 4 [PE1.2] times pop\n", + " 14 6 925 . 2 >> 4 [PE1.2] times pop\n", + " 14 6 925 2 . >> 4 [PE1.2] times pop\n", + " 14 6 231 . 4 [PE1.2] times pop\n", + " 14 6 231 4 . [PE1.2] times pop\n", + " 14 6 231 4 [PE1.2] . times pop\n", + " 14 6 231 [PE1.2] . i 3 [PE1.2] times pop\n", + " 14 6 231 . PE1.2 3 [PE1.2] times pop\n", + " 14 6 231 . [3 & PE1.1] dupdip 2 >> 3 [PE1.2] times pop\n", + " 14 6 231 [3 & PE1.1] . dupdip 2 >> 3 [PE1.2] times pop\n", + " 14 6 231 . 3 & PE1.1 231 2 >> 3 [PE1.2] times pop\n", + " 14 6 231 3 . & PE1.1 231 2 >> 3 [PE1.2] times pop\n", + " 14 6 3 . PE1.1 231 2 >> 3 [PE1.2] times pop\n", + " 14 6 3 . + [+] dupdip 231 2 >> 3 [PE1.2] times pop\n", + " 14 9 . [+] dupdip 231 2 >> 3 [PE1.2] times pop\n", + " 14 9 [+] . dupdip 231 2 >> 3 [PE1.2] times pop\n", + " 14 9 . + 9 231 2 >> 3 [PE1.2] times pop\n", + " 23 . 9 231 2 >> 3 [PE1.2] times pop\n", + " 23 9 . 231 2 >> 3 [PE1.2] times pop\n", + " 23 9 231 . 2 >> 3 [PE1.2] times pop\n", + " 23 9 231 2 . >> 3 [PE1.2] times pop\n", + " 23 9 57 . 3 [PE1.2] times pop\n", + " 23 9 57 3 . [PE1.2] times pop\n", + " 23 9 57 3 [PE1.2] . times pop\n", + " 23 9 57 [PE1.2] . i 2 [PE1.2] times pop\n", + " 23 9 57 . PE1.2 2 [PE1.2] times pop\n", + " 23 9 57 . [3 & PE1.1] dupdip 2 >> 2 [PE1.2] times pop\n", + " 23 9 57 [3 & PE1.1] . dupdip 2 >> 2 [PE1.2] times pop\n", + " 23 9 57 . 3 & PE1.1 57 2 >> 2 [PE1.2] times pop\n", + " 23 9 57 3 . & PE1.1 57 2 >> 2 [PE1.2] times pop\n", + " 23 9 1 . PE1.1 57 2 >> 2 [PE1.2] times pop\n", + " 23 9 1 . + [+] dupdip 57 2 >> 2 [PE1.2] times pop\n", + " 23 10 . [+] dupdip 57 2 >> 2 [PE1.2] times pop\n", + " 23 10 [+] . dupdip 57 2 >> 2 [PE1.2] times pop\n", + " 23 10 . + 10 57 2 >> 2 [PE1.2] times pop\n", + " 33 . 10 57 2 >> 2 [PE1.2] times pop\n", + " 33 10 . 57 2 >> 2 [PE1.2] times pop\n", + " 33 10 57 . 2 >> 2 [PE1.2] times pop\n", + " 33 10 57 2 . >> 2 [PE1.2] times pop\n", + " 33 10 14 . 2 [PE1.2] times pop\n", + " 33 10 14 2 . [PE1.2] times pop\n", + " 33 10 14 2 [PE1.2] . times pop\n", + " 33 10 14 [PE1.2] . i 1 [PE1.2] times pop\n", + " 33 10 14 . PE1.2 1 [PE1.2] times pop\n", + " 33 10 14 . [3 & PE1.1] dupdip 2 >> 1 [PE1.2] times pop\n", + " 33 10 14 [3 & PE1.1] . dupdip 2 >> 1 [PE1.2] times pop\n", + " 33 10 14 . 3 & PE1.1 14 2 >> 1 [PE1.2] times pop\n", + " 33 10 14 3 . & PE1.1 14 2 >> 1 [PE1.2] times pop\n", + " 33 10 2 . PE1.1 14 2 >> 1 [PE1.2] times pop\n", + " 33 10 2 . + [+] dupdip 14 2 >> 1 [PE1.2] times pop\n", + " 33 12 . [+] dupdip 14 2 >> 1 [PE1.2] times pop\n", + " 33 12 [+] . dupdip 14 2 >> 1 [PE1.2] times pop\n", + " 33 12 . + 12 14 2 >> 1 [PE1.2] times pop\n", + " 45 . 12 14 2 >> 1 [PE1.2] times pop\n", + " 45 12 . 14 2 >> 1 [PE1.2] times pop\n", + " 45 12 14 . 2 >> 1 [PE1.2] times pop\n", + " 45 12 14 2 . >> 1 [PE1.2] times pop\n", + " 45 12 3 . 1 [PE1.2] times pop\n", + " 45 12 3 1 . [PE1.2] times pop\n", + " 45 12 3 1 [PE1.2] . times pop\n", + " 45 12 3 [PE1.2] . i pop\n", + " 45 12 3 . PE1.2 pop\n", + " 45 12 3 . [3 & PE1.1] dupdip 2 >> pop\n", + " 45 12 3 [3 & PE1.1] . dupdip 2 >> pop\n", + " 45 12 3 . 3 & PE1.1 3 2 >> pop\n", + " 45 12 3 3 . & PE1.1 3 2 >> pop\n", + " 45 12 3 . PE1.1 3 2 >> pop\n", + " 45 12 3 . + [+] dupdip 3 2 >> pop\n", + " 45 15 . [+] dupdip 3 2 >> pop\n", + " 45 15 [+] . dupdip 3 2 >> pop\n", + " 45 15 . + 15 3 2 >> pop\n", + " 60 . 15 3 2 >> pop\n", + " 60 15 . 3 2 >> pop\n", + " 60 15 3 . 2 >> pop\n", + " 60 15 3 2 . >> pop\n", + " 60 15 0 . pop\n", + " 60 15 . \n" + ] + } + ], + "source": [ + "V('0 0 14811 7 [PE1.2] times pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And so we have at last:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1 == 0 0 66 [14811 7 [PE1.2] times pop] times 14811 4 [PE1.2] times popop')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('PE1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's refactor.\n", + "\n", + " 14811 7 [PE1.2] times pop\n", + " 14811 4 [PE1.2] times pop\n", + " 14811 n [PE1.2] times pop\n", + " n 14811 swap [PE1.2] times pop" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.3 == 14811 swap [PE1.2] times pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can simplify the definition above:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('PE1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's our joy program all in one place. It doesn't make so much sense, but if you have read through the above description of how it was derived I hope it's clear.\n", + "\n", + " PE1.1 == + [+] dupdip\n", + " PE1.2 == [3 & PE1.1] dupdip 2 >>\n", + " PE1.3 == 14811 swap [PE1.2] times pop\n", + " PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generator Version\n", + "It's a little clunky iterating sixty-six times though the seven numbers then four more. In the _Generator Programs_ notebook we derive a generator that can be repeatedly driven by the `x` combinator to produce a stream of the seven numbers repeating over and over again." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.terms == [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]')" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]\n" + ] + } + ], + "source": [ + "J('PE1.terms 21 [x] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We know from above that we need sixty-six times seven then four more terms to reach up to but not over one thousand." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "466\n" + ] + } + ], + "source": [ + "J('7 66 * 4 +')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Here they are..." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3\n" + ] + } + ], + "source": [ + "J('PE1.terms 466 [x] times pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ...and they do sum to 999." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "999\n" + ] + } + ], + "source": [ + "J('[PE1.terms 466 [x] times pop] run sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use `PE1.1` to accumulate the terms as we go, and then `pop` the generator and the counter from the stack when we're done, leaving just the sum." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('0 0 PE1.terms 466 [x [PE1.1] dip] times popop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A little further analysis renders iteration unnecessary.\n", + "Consider finding the sum of the positive integers less than or equal to ten." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "55\n" + ] + } + ], + "source": [ + "J('[10 9 8 7 6 5 4 3 2 1] sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Instead of summing them, [observe](https://en.wikipedia.org/wiki/File:Animated_proof_for_the_formula_giving_the_sum_of_the_first_integers_1%2B2%2B...%2Bn.gif):\n", + "\n", + " 10 9 8 7 6\n", + " + 1 2 3 4 5\n", + " ---- -- -- -- --\n", + " 11 11 11 11 11\n", + " \n", + " 11 * 5 = 55\n", + "\n", + "From the above example we can deduce that the sum of the first N positive integers is:\n", + "\n", + " (N + 1) * N / 2 \n", + "\n", + "(The formula also works for odd values of N, I'll leave that to you if you want to work it out or you can take my word for it.)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "define('F == dup ++ * 2 floordiv')" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 10 F\n", + " 10 . F\n", + " 10 . dup ++ * 2 floordiv\n", + "10 10 . ++ * 2 floordiv\n", + "10 11 . * 2 floordiv\n", + " 110 . 2 floordiv\n", + "110 2 . floordiv\n", + " 55 . \n" + ] + } + ], + "source": [ + "V('10 F')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generalizing to Blocks of Terms\n", + "We can apply the same reasoning to the PE1 problem.\n", + "\n", + "Between 0 and 990 inclusive there are sixty-six \"blocks\" of seven terms each, starting with:\n", + "\n", + " [3 5 6 9 10 12 15]\n", + " \n", + "And ending with:\n", + "\n", + " [978 980 981 984 985 987 990]\n", + " \n", + "If we reverse one of these two blocks and sum pairs..." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[978 15] [980 12] [981 10] [984 9] [985 6] [987 5] [990 3]]\n" + ] + } + ], + "source": [ + "J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip')" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[993 992 991 993 991 992 993]\n" + ] + } + ], + "source": [ + "J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(Interesting that the sequence of seven numbers appears again in the rightmost digit of each term.)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6945\n" + ] + } + ], + "source": [ + "J('[ 3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since there are sixty-six blocks and we are pairing them up, there must be thirty-three pairs, each of which sums to 6945. We also have these additional unpaired terms between 990 and 1000:\n", + "\n", + " 993 995 996 999\n", + " \n", + "So we can give the \"sum of all the multiples of 3 or 5 below 1000\" like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('6945 33 * [993 995 996 999] cons sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's worth noting, I think, that this same reasoning holds for any two numbers $n$ and $m$ the multiples of which we hope to sum. The multiples would have a cycle of differences of length $k$ and so we could compute the sum of $Nk$ multiples as above.\n", + "\n", + "The sequence of differences will always be a palidrome. Consider an interval spanning the least common multiple of $n$ and $m$:\n", + "\n", + " | | | | | | | |\n", + " | | | | |\n", + " \n", + "Here we have 4 and 7, and you can read off the sequence of differences directly from the diagram: 4 3 1 4 2 2 4 1 3 4.\n", + " \n", + "Geometrically, the actual values of $n$ and $m$ and their *lcm* don't matter, the pattern they make will always be symmetrical around its midpoint. The same reasoning holds for multiples of more than two numbers." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Simplest Program" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Of course, the simplest joy program for the first Project Euler problem is just:\n", + "\n", + " PE1 == 233168\n", + "\n", + "Fin." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/3. Developing a Program.md b/docs/3. Developing a Program.md new file mode 100644 index 0000000..f68f30a --- /dev/null +++ b/docs/3. Developing a Program.md @@ -0,0 +1,694 @@ + +# [Project Euler, first problem: "Multiples of 3 and 5"](https://projecteuler.net/problem=1) + + If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. + + Find the sum of all the multiples of 3 or 5 below 1000. + + +```python +from notebook_preamble import J, V, define +``` + +Let's create a predicate that returns `True` if a number is a multiple of 3 or 5 and `False` otherwise. + + +```python +define('P == [3 % not] dupdip 5 % not or') +``` + + +```python +V('80 P') +``` + + . 80 P + 80 . P + 80 . [3 % not] dupdip 5 % not or + 80 [3 % not] . dupdip 5 % not or + 80 . 3 % not 80 5 % not or + 80 3 . % not 80 5 % not or + 2 . not 80 5 % not or + False . 80 5 % not or + False 80 . 5 % not or + False 80 5 . % not or + False 0 . not or + False True . or + True . + + +Given the predicate function `P` a suitable program is: + + PE1 == 1000 range [P] filter sum + +This function generates a list of the integers from 0 to 999, filters +that list by `P`, and then sums the result. + +Logically this is fine, but pragmatically we are doing more work than we +should be; we generate one thousand integers but actually use less than +half of them. A better solution would be to generate just the multiples +we want to sum, and to add them as we go rather than storing them and +adding summing them at the end. + +At first I had the idea to use two counters and increase them by three +and five, respectively. This way we only generate the terms that we +actually want to sum. We have to proceed by incrementing the counter +that is lower, or if they are equal, the three counter, and we have to +take care not to double add numbers like 15 that are multiples of both +three and five. + +This seemed a little clunky, so I tried a different approach. + +Consider the first few terms in the series: + + 3 5 6 9 10 12 15 18 20 21 ... + +Subtract each number from the one after it (subtracting 0 from 3): + + 3 5 6 9 10 12 15 18 20 21 24 25 27 30 ... + 0 3 5 6 9 10 12 15 18 20 21 24 25 27 ... + ------------------------------------------- + 3 2 1 3 1 2 3 3 2 1 3 1 2 3 ... + +You get this lovely repeating palindromic sequence: + + 3 2 1 3 1 2 3 + +To make a counter that increments by factors of 3 and 5 you just add +these differences to the counter one-by-one in a loop. + + +To make use of this sequence to increment a counter and sum terms as we +go we need a function that will accept the sum, the counter, and the next +term to add, and that adds the term to the counter and a copy of the +counter to the running sum. This function will do that: + + PE1.1 == + [+] dupdip + + +```python +define('PE1.1 == + [+] dupdip') +``` + + +```python +V('0 0 3 PE1.1') +``` + + . 0 0 3 PE1.1 + 0 . 0 3 PE1.1 + 0 0 . 3 PE1.1 + 0 0 3 . PE1.1 + 0 0 3 . + [+] dupdip + 0 3 . [+] dupdip + 0 3 [+] . dupdip + 0 3 . + 3 + 3 . 3 + 3 3 . + + + +```python +V('0 0 [3 2 1 3 1 2 3] [PE1.1] step') +``` + + . 0 0 [3 2 1 3 1 2 3] [PE1.1] step + 0 . 0 [3 2 1 3 1 2 3] [PE1.1] step + 0 0 . [3 2 1 3 1 2 3] [PE1.1] step + 0 0 [3 2 1 3 1 2 3] . [PE1.1] step + 0 0 [3 2 1 3 1 2 3] [PE1.1] . step + 0 0 3 [PE1.1] . i [2 1 3 1 2 3] [PE1.1] step + 0 0 3 . PE1.1 [2 1 3 1 2 3] [PE1.1] step + 0 0 3 . + [+] dupdip [2 1 3 1 2 3] [PE1.1] step + 0 3 . [+] dupdip [2 1 3 1 2 3] [PE1.1] step + 0 3 [+] . dupdip [2 1 3 1 2 3] [PE1.1] step + 0 3 . + 3 [2 1 3 1 2 3] [PE1.1] step + 3 . 3 [2 1 3 1 2 3] [PE1.1] step + 3 3 . [2 1 3 1 2 3] [PE1.1] step + 3 3 [2 1 3 1 2 3] . [PE1.1] step + 3 3 [2 1 3 1 2 3] [PE1.1] . step + 3 3 2 [PE1.1] . i [1 3 1 2 3] [PE1.1] step + 3 3 2 . PE1.1 [1 3 1 2 3] [PE1.1] step + 3 3 2 . + [+] dupdip [1 3 1 2 3] [PE1.1] step + 3 5 . [+] dupdip [1 3 1 2 3] [PE1.1] step + 3 5 [+] . dupdip [1 3 1 2 3] [PE1.1] step + 3 5 . + 5 [1 3 1 2 3] [PE1.1] step + 8 . 5 [1 3 1 2 3] [PE1.1] step + 8 5 . [1 3 1 2 3] [PE1.1] step + 8 5 [1 3 1 2 3] . [PE1.1] step + 8 5 [1 3 1 2 3] [PE1.1] . step + 8 5 1 [PE1.1] . i [3 1 2 3] [PE1.1] step + 8 5 1 . PE1.1 [3 1 2 3] [PE1.1] step + 8 5 1 . + [+] dupdip [3 1 2 3] [PE1.1] step + 8 6 . [+] dupdip [3 1 2 3] [PE1.1] step + 8 6 [+] . dupdip [3 1 2 3] [PE1.1] step + 8 6 . + 6 [3 1 2 3] [PE1.1] step + 14 . 6 [3 1 2 3] [PE1.1] step + 14 6 . [3 1 2 3] [PE1.1] step + 14 6 [3 1 2 3] . [PE1.1] step + 14 6 [3 1 2 3] [PE1.1] . step + 14 6 3 [PE1.1] . i [1 2 3] [PE1.1] step + 14 6 3 . PE1.1 [1 2 3] [PE1.1] step + 14 6 3 . + [+] dupdip [1 2 3] [PE1.1] step + 14 9 . [+] dupdip [1 2 3] [PE1.1] step + 14 9 [+] . dupdip [1 2 3] [PE1.1] step + 14 9 . + 9 [1 2 3] [PE1.1] step + 23 . 9 [1 2 3] [PE1.1] step + 23 9 . [1 2 3] [PE1.1] step + 23 9 [1 2 3] . [PE1.1] step + 23 9 [1 2 3] [PE1.1] . step + 23 9 1 [PE1.1] . i [2 3] [PE1.1] step + 23 9 1 . PE1.1 [2 3] [PE1.1] step + 23 9 1 . + [+] dupdip [2 3] [PE1.1] step + 23 10 . [+] dupdip [2 3] [PE1.1] step + 23 10 [+] . dupdip [2 3] [PE1.1] step + 23 10 . + 10 [2 3] [PE1.1] step + 33 . 10 [2 3] [PE1.1] step + 33 10 . [2 3] [PE1.1] step + 33 10 [2 3] . [PE1.1] step + 33 10 [2 3] [PE1.1] . step + 33 10 2 [PE1.1] . i [3] [PE1.1] step + 33 10 2 . PE1.1 [3] [PE1.1] step + 33 10 2 . + [+] dupdip [3] [PE1.1] step + 33 12 . [+] dupdip [3] [PE1.1] step + 33 12 [+] . dupdip [3] [PE1.1] step + 33 12 . + 12 [3] [PE1.1] step + 45 . 12 [3] [PE1.1] step + 45 12 . [3] [PE1.1] step + 45 12 [3] . [PE1.1] step + 45 12 [3] [PE1.1] . step + 45 12 3 [PE1.1] . i + 45 12 3 . PE1.1 + 45 12 3 . + [+] dupdip + 45 15 . [+] dupdip + 45 15 [+] . dupdip + 45 15 . + 15 + 60 . 15 + 60 15 . + + +So one `step` through all seven terms brings the counter to 15 and the total to 60. + + +```python +1000 / 15 +``` + + + + + 66 + + + + +```python +66 * 15 +``` + + + + + 990 + + + + +```python +1000 - 990 +``` + + + + + 10 + + + +We only want the terms *less than* 1000. + + +```python +999 - 990 +``` + + + + + 9 + + + +That means we want to run the full list of numbers sixty-six times to get to 990 and then the first four numbers 3 2 1 3 to get to 999. + + +```python +define('PE1 == 0 0 66 [[3 2 1 3 1 2 3] [PE1.1] step] times [3 2 1 3] [PE1.1] step pop') +``` + + +```python +J('PE1') +``` + + 233168 + + +This form uses no extra storage and produces no unused summands. It's +good but there's one more trick we can apply. The list of seven terms +takes up at least seven bytes. But notice that all of the terms are less +than four, and so each can fit in just two bits. We could store all +seven terms in just fourteen bits and use masking and shifts to pick out +each term as we go. This will use less space and save time loading whole +integer terms from the list. + + 3 2 1 3 1 2 3 + 0b 11 10 01 11 01 10 11 == 14811 + + +```python +0b11100111011011 +``` + + + + + 14811 + + + + +```python +define('PE1.2 == [3 & PE1.1] dupdip 2 >>') +``` + + +```python +V('0 0 14811 PE1.2') +``` + + . 0 0 14811 PE1.2 + 0 . 0 14811 PE1.2 + 0 0 . 14811 PE1.2 + 0 0 14811 . PE1.2 + 0 0 14811 . [3 & PE1.1] dupdip 2 >> + 0 0 14811 [3 & PE1.1] . dupdip 2 >> + 0 0 14811 . 3 & PE1.1 14811 2 >> + 0 0 14811 3 . & PE1.1 14811 2 >> + 0 0 3 . PE1.1 14811 2 >> + 0 0 3 . + [+] dupdip 14811 2 >> + 0 3 . [+] dupdip 14811 2 >> + 0 3 [+] . dupdip 14811 2 >> + 0 3 . + 3 14811 2 >> + 3 . 3 14811 2 >> + 3 3 . 14811 2 >> + 3 3 14811 . 2 >> + 3 3 14811 2 . >> + 3 3 3702 . + + + +```python +V('3 3 3702 PE1.2') +``` + + . 3 3 3702 PE1.2 + 3 . 3 3702 PE1.2 + 3 3 . 3702 PE1.2 + 3 3 3702 . PE1.2 + 3 3 3702 . [3 & PE1.1] dupdip 2 >> + 3 3 3702 [3 & PE1.1] . dupdip 2 >> + 3 3 3702 . 3 & PE1.1 3702 2 >> + 3 3 3702 3 . & PE1.1 3702 2 >> + 3 3 2 . PE1.1 3702 2 >> + 3 3 2 . + [+] dupdip 3702 2 >> + 3 5 . [+] dupdip 3702 2 >> + 3 5 [+] . dupdip 3702 2 >> + 3 5 . + 5 3702 2 >> + 8 . 5 3702 2 >> + 8 5 . 3702 2 >> + 8 5 3702 . 2 >> + 8 5 3702 2 . >> + 8 5 925 . + + + +```python +V('0 0 14811 7 [PE1.2] times pop') +``` + + . 0 0 14811 7 [PE1.2] times pop + 0 . 0 14811 7 [PE1.2] times pop + 0 0 . 14811 7 [PE1.2] times pop + 0 0 14811 . 7 [PE1.2] times pop + 0 0 14811 7 . [PE1.2] times pop + 0 0 14811 7 [PE1.2] . times pop + 0 0 14811 [PE1.2] . i 6 [PE1.2] times pop + 0 0 14811 . PE1.2 6 [PE1.2] times pop + 0 0 14811 . [3 & PE1.1] dupdip 2 >> 6 [PE1.2] times pop + 0 0 14811 [3 & PE1.1] . dupdip 2 >> 6 [PE1.2] times pop + 0 0 14811 . 3 & PE1.1 14811 2 >> 6 [PE1.2] times pop + 0 0 14811 3 . & PE1.1 14811 2 >> 6 [PE1.2] times pop + 0 0 3 . PE1.1 14811 2 >> 6 [PE1.2] times pop + 0 0 3 . + [+] dupdip 14811 2 >> 6 [PE1.2] times pop + 0 3 . [+] dupdip 14811 2 >> 6 [PE1.2] times pop + 0 3 [+] . dupdip 14811 2 >> 6 [PE1.2] times pop + 0 3 . + 3 14811 2 >> 6 [PE1.2] times pop + 3 . 3 14811 2 >> 6 [PE1.2] times pop + 3 3 . 14811 2 >> 6 [PE1.2] times pop + 3 3 14811 . 2 >> 6 [PE1.2] times pop + 3 3 14811 2 . >> 6 [PE1.2] times pop + 3 3 3702 . 6 [PE1.2] times pop + 3 3 3702 6 . [PE1.2] times pop + 3 3 3702 6 [PE1.2] . times pop + 3 3 3702 [PE1.2] . i 5 [PE1.2] times pop + 3 3 3702 . PE1.2 5 [PE1.2] times pop + 3 3 3702 . [3 & PE1.1] dupdip 2 >> 5 [PE1.2] times pop + 3 3 3702 [3 & PE1.1] . dupdip 2 >> 5 [PE1.2] times pop + 3 3 3702 . 3 & PE1.1 3702 2 >> 5 [PE1.2] times pop + 3 3 3702 3 . & PE1.1 3702 2 >> 5 [PE1.2] times pop + 3 3 2 . PE1.1 3702 2 >> 5 [PE1.2] times pop + 3 3 2 . + [+] dupdip 3702 2 >> 5 [PE1.2] times pop + 3 5 . [+] dupdip 3702 2 >> 5 [PE1.2] times pop + 3 5 [+] . dupdip 3702 2 >> 5 [PE1.2] times pop + 3 5 . + 5 3702 2 >> 5 [PE1.2] times pop + 8 . 5 3702 2 >> 5 [PE1.2] times pop + 8 5 . 3702 2 >> 5 [PE1.2] times pop + 8 5 3702 . 2 >> 5 [PE1.2] times pop + 8 5 3702 2 . >> 5 [PE1.2] times pop + 8 5 925 . 5 [PE1.2] times pop + 8 5 925 5 . [PE1.2] times pop + 8 5 925 5 [PE1.2] . times pop + 8 5 925 [PE1.2] . i 4 [PE1.2] times pop + 8 5 925 . PE1.2 4 [PE1.2] times pop + 8 5 925 . [3 & PE1.1] dupdip 2 >> 4 [PE1.2] times pop + 8 5 925 [3 & PE1.1] . dupdip 2 >> 4 [PE1.2] times pop + 8 5 925 . 3 & PE1.1 925 2 >> 4 [PE1.2] times pop + 8 5 925 3 . & PE1.1 925 2 >> 4 [PE1.2] times pop + 8 5 1 . PE1.1 925 2 >> 4 [PE1.2] times pop + 8 5 1 . + [+] dupdip 925 2 >> 4 [PE1.2] times pop + 8 6 . [+] dupdip 925 2 >> 4 [PE1.2] times pop + 8 6 [+] . dupdip 925 2 >> 4 [PE1.2] times pop + 8 6 . + 6 925 2 >> 4 [PE1.2] times pop + 14 . 6 925 2 >> 4 [PE1.2] times pop + 14 6 . 925 2 >> 4 [PE1.2] times pop + 14 6 925 . 2 >> 4 [PE1.2] times pop + 14 6 925 2 . >> 4 [PE1.2] times pop + 14 6 231 . 4 [PE1.2] times pop + 14 6 231 4 . [PE1.2] times pop + 14 6 231 4 [PE1.2] . times pop + 14 6 231 [PE1.2] . i 3 [PE1.2] times pop + 14 6 231 . PE1.2 3 [PE1.2] times pop + 14 6 231 . [3 & PE1.1] dupdip 2 >> 3 [PE1.2] times pop + 14 6 231 [3 & PE1.1] . dupdip 2 >> 3 [PE1.2] times pop + 14 6 231 . 3 & PE1.1 231 2 >> 3 [PE1.2] times pop + 14 6 231 3 . & PE1.1 231 2 >> 3 [PE1.2] times pop + 14 6 3 . PE1.1 231 2 >> 3 [PE1.2] times pop + 14 6 3 . + [+] dupdip 231 2 >> 3 [PE1.2] times pop + 14 9 . [+] dupdip 231 2 >> 3 [PE1.2] times pop + 14 9 [+] . dupdip 231 2 >> 3 [PE1.2] times pop + 14 9 . + 9 231 2 >> 3 [PE1.2] times pop + 23 . 9 231 2 >> 3 [PE1.2] times pop + 23 9 . 231 2 >> 3 [PE1.2] times pop + 23 9 231 . 2 >> 3 [PE1.2] times pop + 23 9 231 2 . >> 3 [PE1.2] times pop + 23 9 57 . 3 [PE1.2] times pop + 23 9 57 3 . [PE1.2] times pop + 23 9 57 3 [PE1.2] . times pop + 23 9 57 [PE1.2] . i 2 [PE1.2] times pop + 23 9 57 . PE1.2 2 [PE1.2] times pop + 23 9 57 . [3 & PE1.1] dupdip 2 >> 2 [PE1.2] times pop + 23 9 57 [3 & PE1.1] . dupdip 2 >> 2 [PE1.2] times pop + 23 9 57 . 3 & PE1.1 57 2 >> 2 [PE1.2] times pop + 23 9 57 3 . & PE1.1 57 2 >> 2 [PE1.2] times pop + 23 9 1 . PE1.1 57 2 >> 2 [PE1.2] times pop + 23 9 1 . + [+] dupdip 57 2 >> 2 [PE1.2] times pop + 23 10 . [+] dupdip 57 2 >> 2 [PE1.2] times pop + 23 10 [+] . dupdip 57 2 >> 2 [PE1.2] times pop + 23 10 . + 10 57 2 >> 2 [PE1.2] times pop + 33 . 10 57 2 >> 2 [PE1.2] times pop + 33 10 . 57 2 >> 2 [PE1.2] times pop + 33 10 57 . 2 >> 2 [PE1.2] times pop + 33 10 57 2 . >> 2 [PE1.2] times pop + 33 10 14 . 2 [PE1.2] times pop + 33 10 14 2 . [PE1.2] times pop + 33 10 14 2 [PE1.2] . times pop + 33 10 14 [PE1.2] . i 1 [PE1.2] times pop + 33 10 14 . PE1.2 1 [PE1.2] times pop + 33 10 14 . [3 & PE1.1] dupdip 2 >> 1 [PE1.2] times pop + 33 10 14 [3 & PE1.1] . dupdip 2 >> 1 [PE1.2] times pop + 33 10 14 . 3 & PE1.1 14 2 >> 1 [PE1.2] times pop + 33 10 14 3 . & PE1.1 14 2 >> 1 [PE1.2] times pop + 33 10 2 . PE1.1 14 2 >> 1 [PE1.2] times pop + 33 10 2 . + [+] dupdip 14 2 >> 1 [PE1.2] times pop + 33 12 . [+] dupdip 14 2 >> 1 [PE1.2] times pop + 33 12 [+] . dupdip 14 2 >> 1 [PE1.2] times pop + 33 12 . + 12 14 2 >> 1 [PE1.2] times pop + 45 . 12 14 2 >> 1 [PE1.2] times pop + 45 12 . 14 2 >> 1 [PE1.2] times pop + 45 12 14 . 2 >> 1 [PE1.2] times pop + 45 12 14 2 . >> 1 [PE1.2] times pop + 45 12 3 . 1 [PE1.2] times pop + 45 12 3 1 . [PE1.2] times pop + 45 12 3 1 [PE1.2] . times pop + 45 12 3 [PE1.2] . i pop + 45 12 3 . PE1.2 pop + 45 12 3 . [3 & PE1.1] dupdip 2 >> pop + 45 12 3 [3 & PE1.1] . dupdip 2 >> pop + 45 12 3 . 3 & PE1.1 3 2 >> pop + 45 12 3 3 . & PE1.1 3 2 >> pop + 45 12 3 . PE1.1 3 2 >> pop + 45 12 3 . + [+] dupdip 3 2 >> pop + 45 15 . [+] dupdip 3 2 >> pop + 45 15 [+] . dupdip 3 2 >> pop + 45 15 . + 15 3 2 >> pop + 60 . 15 3 2 >> pop + 60 15 . 3 2 >> pop + 60 15 3 . 2 >> pop + 60 15 3 2 . >> pop + 60 15 0 . pop + 60 15 . + + +And so we have at last: + + +```python +define('PE1 == 0 0 66 [14811 7 [PE1.2] times pop] times 14811 4 [PE1.2] times popop') +``` + + +```python +J('PE1') +``` + + 233168 + + +Let's refactor. + + 14811 7 [PE1.2] times pop + 14811 4 [PE1.2] times pop + 14811 n [PE1.2] times pop + n 14811 swap [PE1.2] times pop + + +```python +define('PE1.3 == 14811 swap [PE1.2] times pop') +``` + +Now we can simplify the definition above: + + +```python +define('PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop') +``` + + +```python +J('PE1') +``` + + 233168 + + +Here's our joy program all in one place. It doesn't make so much sense, but if you have read through the above description of how it was derived I hope it's clear. + + PE1.1 == + [+] dupdip + PE1.2 == [3 & PE1.1] dupdip 2 >> + PE1.3 == 14811 swap [PE1.2] times pop + PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop + +# Generator Version +It's a little clunky iterating sixty-six times though the seven numbers then four more. In the _Generator Programs_ notebook we derive a generator that can be repeatedly driven by the `x` combinator to produce a stream of the seven numbers repeating over and over again. + + +```python +define('PE1.terms == [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons]') +``` + + +```python +J('PE1.terms 21 [x] times') +``` + + 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [dup [pop 14811] [] branch [3 &] dupdip 2 >>] dip rest cons] + + +We know from above that we need sixty-six times seven then four more terms to reach up to but not over one thousand. + + +```python +J('7 66 * 4 +') +``` + + 466 + + +### Here they are... + + +```python +J('PE1.terms 466 [x] times pop') +``` + + 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 + + +### ...and they do sum to 999. + + +```python +J('[PE1.terms 466 [x] times pop] run sum') +``` + + 999 + + +Now we can use `PE1.1` to accumulate the terms as we go, and then `pop` the generator and the counter from the stack when we're done, leaving just the sum. + + +```python +J('0 0 PE1.terms 466 [x [PE1.1] dip] times popop') +``` + + 233168 + + +# A little further analysis renders iteration unnecessary. +Consider finding the sum of the positive integers less than or equal to ten. + + +```python +J('[10 9 8 7 6 5 4 3 2 1] sum') +``` + + 55 + + +Instead of summing them, [observe](https://en.wikipedia.org/wiki/File:Animated_proof_for_the_formula_giving_the_sum_of_the_first_integers_1%2B2%2B...%2Bn.gif): + + 10 9 8 7 6 + + 1 2 3 4 5 + ---- -- -- -- -- + 11 11 11 11 11 + + 11 * 5 = 55 + +From the above example we can deduce that the sum of the first N positive integers is: + + (N + 1) * N / 2 + +(The formula also works for odd values of N, I'll leave that to you if you want to work it out or you can take my word for it.) + + +```python +define('F == dup ++ * 2 floordiv') +``` + + +```python +V('10 F') +``` + + . 10 F + 10 . F + 10 . dup ++ * 2 floordiv + 10 10 . ++ * 2 floordiv + 10 11 . * 2 floordiv + 110 . 2 floordiv + 110 2 . floordiv + 55 . + + +## Generalizing to Blocks of Terms +We can apply the same reasoning to the PE1 problem. + +Between 0 and 990 inclusive there are sixty-six "blocks" of seven terms each, starting with: + + [3 5 6 9 10 12 15] + +And ending with: + + [978 980 981 984 985 987 990] + +If we reverse one of these two blocks and sum pairs... + + +```python +J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip') +``` + + [[978 15] [980 12] [981 10] [984 9] [985 6] [987 5] [990 3]] + + + +```python +J('[3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map') +``` + + [993 992 991 993 991 992 993] + + +(Interesting that the sequence of seven numbers appears again in the rightmost digit of each term.) + + +```python +J('[ 3 5 6 9 10 12 15] reverse [978 980 981 984 985 987 990] zip [sum] map sum') +``` + + 6945 + + +Since there are sixty-six blocks and we are pairing them up, there must be thirty-three pairs, each of which sums to 6945. We also have these additional unpaired terms between 990 and 1000: + + 993 995 996 999 + +So we can give the "sum of all the multiples of 3 or 5 below 1000" like so: + + +```python +J('6945 33 * [993 995 996 999] cons sum') +``` + + 233168 + + +It's worth noting, I think, that this same reasoning holds for any two numbers $n$ and $m$ the multiples of which we hope to sum. The multiples would have a cycle of differences of length $k$ and so we could compute the sum of $Nk$ multiples as above. + +The sequence of differences will always be a palidrome. Consider an interval spanning the least common multiple of $n$ and $m$: + + | | | | | | | | + | | | | | + +Here we have 4 and 7, and you can read off the sequence of differences directly from the diagram: 4 3 1 4 2 2 4 1 3 4. + +Geometrically, the actual values of $n$ and $m$ and their *lcm* don't matter, the pattern they make will always be symmetrical around its midpoint. The same reasoning holds for multiples of more than two numbers. + +# The Simplest Program + +Of course, the simplest joy program for the first Project Euler problem is just: + + PE1 == 233168 + +Fin. diff --git a/docs/4. Replacing Functions in the Dictionary.html b/docs/4. Replacing Functions in the Dictionary.html new file mode 100644 index 0000000..6cfc928 --- /dev/null +++ b/docs/4. Replacing Functions in the Dictionary.html @@ -0,0 +1,12084 @@ + + + +4. Replacing Functions in the Dictionary + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Preamble

+
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import D, J, V
+
+ +
+
+
+ +
+
+
+
+
+

A long trace

+
+
+
+
+
+
In [2]:
+
+
+
V('[23 18] average')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                  . [23 18] average
+                          [23 18] . average
+                          [23 18] . [sum 1.0 *] [size] cleave /
+              [23 18] [sum 1.0 *] . [size] cleave /
+       [23 18] [sum 1.0 *] [size] . cleave /
+       [23 18] [sum 1.0 *] [size] . [i] app2 [popd] dip /
+   [23 18] [sum 1.0 *] [size] [i] . app2 [popd] dip /
+[23 18] [[sum 1.0 *] [23 18]] [i] . infra first [[size] [23 18]] [i] infra first [popd] dip /
+              [23 18] [sum 1.0 *] . i [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                          [23 18] . sum 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                               41 . 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                           41 1.0 . * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                             41.0 . [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                   41.0 [[23 18]] . swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                   [23 18] [41.0] . first [[size] [23 18]] [i] infra first [popd] dip /
+                     [23 18] 41.0 . [[size] [23 18]] [i] infra first [popd] dip /
+    [23 18] 41.0 [[size] [23 18]] . [i] infra first [popd] dip /
+[23 18] 41.0 [[size] [23 18]] [i] . infra first [popd] dip /
+                   [23 18] [size] . i [41.0 [23 18]] swaack first [popd] dip /
+                          [23 18] . size [41.0 [23 18]] swaack first [popd] dip /
+                          [23 18] . 0 swap [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                        [23 18] 0 . swap [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                        0 [23 18] . [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+               0 [23 18] [pop ++] . step [41.0 [23 18]] swaack first [popd] dip /
+                    0 23 [pop ++] . i [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                             0 23 . pop ++ [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                                0 . ++ [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                                1 . [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                           1 [18] . [pop ++] step [41.0 [23 18]] swaack first [popd] dip /
+                  1 [18] [pop ++] . step [41.0 [23 18]] swaack first [popd] dip /
+                    1 18 [pop ++] . i [41.0 [23 18]] swaack first [popd] dip /
+                             1 18 . pop ++ [41.0 [23 18]] swaack first [popd] dip /
+                                1 . ++ [41.0 [23 18]] swaack first [popd] dip /
+                                2 . [41.0 [23 18]] swaack first [popd] dip /
+                 2 [41.0 [23 18]] . swaack first [popd] dip /
+                 [23 18] 41.0 [2] . first [popd] dip /
+                   [23 18] 41.0 2 . [popd] dip /
+            [23 18] 41.0 2 [popd] . dip /
+                     [23 18] 41.0 . popd 2 /
+                             41.0 . 2 /
+                           41.0 2 . /
+                             20.5 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Replacing sum and size with "compiled" versions.

Both sum and size are catamorphisms, they each convert a sequence to a single value.

+ +
+
+
+
+
+
In [3]:
+
+
+
J('[sum] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
Given a quoted sequence of numbers return the sum.
+
+sum == 0 swap [+] step
+
+
+
+
+ +
+
+ +
+
+
+
In [4]:
+
+
+
J('[size] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0 swap [pop ++] step
+
+
+
+
+ +
+
+ +
+
+
+
+
+

We can use "compiled" versions (they're not really compiled in this case, they're hand-written in Python) to speed up evaluation and make the trace more readable. The sum function is already in the library. It gets shadowed by the definition version above during initialize().

+ +
+
+
+
+
+
In [5]:
+
+
+
from joy.library import SimpleFunctionWrapper, primitives
+from joy.utils.stack import iter_stack
+
+
+@SimpleFunctionWrapper
+def size(stack):
+    '''Return the size of the sequence on the stack.'''
+    sequence, stack = stack
+    n = 0
+    for _ in iter_stack(sequence):
+        n += 1
+    return n, stack
+
+
+sum_ = next(p for p in primitives if p.name == 'sum')
+
+ +
+
+
+ +
+
+
+
+
+

Now we replace them old versions in the dictionary with the new versions and re-evaluate the expression.

+ +
+
+
+
+
+
In [6]:
+
+
+
old_sum, D['sum'] = D['sum'], sum_
+old_size, D['size'] = D['size'], size
+
+ +
+
+
+ +
+
+
+
+
+

You can see that size and sum now execute in a single step.

+ +
+
+
+
+
+
In [7]:
+
+
+
V('[23 18] average')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                  . [23 18] average
+                          [23 18] . average
+                          [23 18] . [sum 1.0 *] [size] cleave /
+              [23 18] [sum 1.0 *] . [size] cleave /
+       [23 18] [sum 1.0 *] [size] . cleave /
+       [23 18] [sum 1.0 *] [size] . [i] app2 [popd] dip /
+   [23 18] [sum 1.0 *] [size] [i] . app2 [popd] dip /
+[23 18] [[sum 1.0 *] [23 18]] [i] . infra first [[size] [23 18]] [i] infra first [popd] dip /
+              [23 18] [sum 1.0 *] . i [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                          [23 18] . sum 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                               41 . 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                           41 1.0 . * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                             41.0 . [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                   41.0 [[23 18]] . swaack first [[size] [23 18]] [i] infra first [popd] dip /
+                   [23 18] [41.0] . first [[size] [23 18]] [i] infra first [popd] dip /
+                     [23 18] 41.0 . [[size] [23 18]] [i] infra first [popd] dip /
+    [23 18] 41.0 [[size] [23 18]] . [i] infra first [popd] dip /
+[23 18] 41.0 [[size] [23 18]] [i] . infra first [popd] dip /
+                   [23 18] [size] . i [41.0 [23 18]] swaack first [popd] dip /
+                          [23 18] . size [41.0 [23 18]] swaack first [popd] dip /
+                                2 . [41.0 [23 18]] swaack first [popd] dip /
+                 2 [41.0 [23 18]] . swaack first [popd] dip /
+                 [23 18] 41.0 [2] . first [popd] dip /
+                   [23 18] 41.0 2 . [popd] dip /
+            [23 18] 41.0 2 [popd] . dip /
+                     [23 18] 41.0 . popd 2 /
+                             41.0 . 2 /
+                           41.0 2 . /
+                             20.5 . 
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/4. Replacing Functions in the Dictionary.ipynb b/docs/4. Replacing Functions in the Dictionary.ipynb new file mode 100644 index 0000000..598d697 --- /dev/null +++ b/docs/4. Replacing Functions in the Dictionary.ipynb @@ -0,0 +1,252 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Preamble" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import D, J, V" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### A long trace" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [23 18] average\n", + " [23 18] . average\n", + " [23 18] . [sum 1.0 *] [size] cleave /\n", + " [23 18] [sum 1.0 *] . [size] cleave /\n", + " [23 18] [sum 1.0 *] [size] . cleave /\n", + " [23 18] [sum 1.0 *] [size] . [i] app2 [popd] dip /\n", + " [23 18] [sum 1.0 *] [size] [i] . app2 [popd] dip /\n", + "[23 18] [[sum 1.0 *] [23 18]] [i] . infra first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] [sum 1.0 *] . i [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] . sum 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41 . 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41 1.0 . * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41.0 . [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41.0 [[23 18]] . swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] [41.0] . first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] 41.0 . [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] 41.0 [[size] [23 18]] . [i] infra first [popd] dip /\n", + "[23 18] 41.0 [[size] [23 18]] [i] . infra first [popd] dip /\n", + " [23 18] [size] . i [41.0 [23 18]] swaack first [popd] dip /\n", + " [23 18] . size [41.0 [23 18]] swaack first [popd] dip /\n", + " [23 18] . 0 swap [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " [23 18] 0 . swap [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 0 [23 18] . [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 0 [23 18] [pop ++] . step [41.0 [23 18]] swaack first [popd] dip /\n", + " 0 23 [pop ++] . i [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 0 23 . pop ++ [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 0 . ++ [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 1 . [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 1 [18] . [pop ++] step [41.0 [23 18]] swaack first [popd] dip /\n", + " 1 [18] [pop ++] . step [41.0 [23 18]] swaack first [popd] dip /\n", + " 1 18 [pop ++] . i [41.0 [23 18]] swaack first [popd] dip /\n", + " 1 18 . pop ++ [41.0 [23 18]] swaack first [popd] dip /\n", + " 1 . ++ [41.0 [23 18]] swaack first [popd] dip /\n", + " 2 . [41.0 [23 18]] swaack first [popd] dip /\n", + " 2 [41.0 [23 18]] . swaack first [popd] dip /\n", + " [23 18] 41.0 [2] . first [popd] dip /\n", + " [23 18] 41.0 2 . [popd] dip /\n", + " [23 18] 41.0 2 [popd] . dip /\n", + " [23 18] 41.0 . popd 2 /\n", + " 41.0 . 2 /\n", + " 41.0 2 . /\n", + " 20.5 . \n" + ] + } + ], + "source": [ + "V('[23 18] average')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Replacing `sum` and `size` with \"compiled\" versions.\n", + "\n", + "Both `sum` and `size` are [catamorphisms](https://en.wikipedia.org/wiki/Catamorphism), they each convert a sequence to a single value." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Given a quoted sequence of numbers return the sum.\n", + "\n", + "sum == 0 swap [+] step\n", + "\n" + ] + } + ], + "source": [ + "J('[sum] help')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 swap [pop ++] step\n", + "\n" + ] + } + ], + "source": [ + "J('[size] help')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use \"compiled\" versions (they're not really compiled in this case, they're hand-written in Python) to speed up evaluation and make the trace more readable. The `sum` function is already in the library. It gets shadowed by the definition version above during `initialize()`." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.library import SimpleFunctionWrapper, primitives\n", + "from joy.utils.stack import iter_stack\n", + "\n", + "\n", + "@SimpleFunctionWrapper\n", + "def size(stack):\n", + " '''Return the size of the sequence on the stack.'''\n", + " sequence, stack = stack\n", + " n = 0\n", + " for _ in iter_stack(sequence):\n", + " n += 1\n", + " return n, stack\n", + "\n", + "\n", + "sum_ = next(p for p in primitives if p.name == 'sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we replace them old versions in the dictionary with the new versions and re-evaluate the expression." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "old_sum, D['sum'] = D['sum'], sum_\n", + "old_size, D['size'] = D['size'], size" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can see that `size` and `sum` now execute in a single step." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [23 18] average\n", + " [23 18] . average\n", + " [23 18] . [sum 1.0 *] [size] cleave /\n", + " [23 18] [sum 1.0 *] . [size] cleave /\n", + " [23 18] [sum 1.0 *] [size] . cleave /\n", + " [23 18] [sum 1.0 *] [size] . [i] app2 [popd] dip /\n", + " [23 18] [sum 1.0 *] [size] [i] . app2 [popd] dip /\n", + "[23 18] [[sum 1.0 *] [23 18]] [i] . infra first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] [sum 1.0 *] . i [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] . sum 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41 . 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41 1.0 . * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41.0 . [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " 41.0 [[23 18]] . swaack first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] [41.0] . first [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] 41.0 . [[size] [23 18]] [i] infra first [popd] dip /\n", + " [23 18] 41.0 [[size] [23 18]] . [i] infra first [popd] dip /\n", + "[23 18] 41.0 [[size] [23 18]] [i] . infra first [popd] dip /\n", + " [23 18] [size] . i [41.0 [23 18]] swaack first [popd] dip /\n", + " [23 18] . size [41.0 [23 18]] swaack first [popd] dip /\n", + " 2 . [41.0 [23 18]] swaack first [popd] dip /\n", + " 2 [41.0 [23 18]] . swaack first [popd] dip /\n", + " [23 18] 41.0 [2] . first [popd] dip /\n", + " [23 18] 41.0 2 . [popd] dip /\n", + " [23 18] 41.0 2 [popd] . dip /\n", + " [23 18] 41.0 . popd 2 /\n", + " 41.0 . 2 /\n", + " 41.0 2 . /\n", + " 20.5 . \n" + ] + } + ], + "source": [ + "V('[23 18] average')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/4. Replacing Functions in the Dictionary.md b/docs/4. Replacing Functions in the Dictionary.md new file mode 100644 index 0000000..352dae8 --- /dev/null +++ b/docs/4. Replacing Functions in the Dictionary.md @@ -0,0 +1,149 @@ + +### Preamble + + +```python +from notebook_preamble import D, J, V +``` + +### A long trace + + +```python +V('[23 18] average') +``` + + . [23 18] average + [23 18] . average + [23 18] . [sum 1.0 *] [size] cleave / + [23 18] [sum 1.0 *] . [size] cleave / + [23 18] [sum 1.0 *] [size] . cleave / + [23 18] [sum 1.0 *] [size] . [i] app2 [popd] dip / + [23 18] [sum 1.0 *] [size] [i] . app2 [popd] dip / + [23 18] [[sum 1.0 *] [23 18]] [i] . infra first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] [sum 1.0 *] . i [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] . sum 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41 . 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41 1.0 . * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41.0 . [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41.0 [[23 18]] . swaack first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] [41.0] . first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] 41.0 . [[size] [23 18]] [i] infra first [popd] dip / + [23 18] 41.0 [[size] [23 18]] . [i] infra first [popd] dip / + [23 18] 41.0 [[size] [23 18]] [i] . infra first [popd] dip / + [23 18] [size] . i [41.0 [23 18]] swaack first [popd] dip / + [23 18] . size [41.0 [23 18]] swaack first [popd] dip / + [23 18] . 0 swap [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + [23 18] 0 . swap [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 0 [23 18] . [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 0 [23 18] [pop ++] . step [41.0 [23 18]] swaack first [popd] dip / + 0 23 [pop ++] . i [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 0 23 . pop ++ [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 0 . ++ [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 1 . [18] [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 1 [18] . [pop ++] step [41.0 [23 18]] swaack first [popd] dip / + 1 [18] [pop ++] . step [41.0 [23 18]] swaack first [popd] dip / + 1 18 [pop ++] . i [41.0 [23 18]] swaack first [popd] dip / + 1 18 . pop ++ [41.0 [23 18]] swaack first [popd] dip / + 1 . ++ [41.0 [23 18]] swaack first [popd] dip / + 2 . [41.0 [23 18]] swaack first [popd] dip / + 2 [41.0 [23 18]] . swaack first [popd] dip / + [23 18] 41.0 [2] . first [popd] dip / + [23 18] 41.0 2 . [popd] dip / + [23 18] 41.0 2 [popd] . dip / + [23 18] 41.0 . popd 2 / + 41.0 . 2 / + 41.0 2 . / + 20.5 . + + +### Replacing `sum` and `size` with "compiled" versions. + +Both `sum` and `size` are [catamorphisms](https://en.wikipedia.org/wiki/Catamorphism), they each convert a sequence to a single value. + + +```python +J('[sum] help') +``` + + Given a quoted sequence of numbers return the sum. + + sum == 0 swap [+] step + + + + +```python +J('[size] help') +``` + + 0 swap [pop ++] step + + + +We can use "compiled" versions (they're not really compiled in this case, they're hand-written in Python) to speed up evaluation and make the trace more readable. The `sum` function is already in the library. It gets shadowed by the definition version above during `initialize()`. + + +```python +from joy.library import SimpleFunctionWrapper, primitives +from joy.utils.stack import iter_stack + + +@SimpleFunctionWrapper +def size(stack): + '''Return the size of the sequence on the stack.''' + sequence, stack = stack + n = 0 + for _ in iter_stack(sequence): + n += 1 + return n, stack + + +sum_ = next(p for p in primitives if p.name == 'sum') +``` + +Now we replace them old versions in the dictionary with the new versions and re-evaluate the expression. + + +```python +old_sum, D['sum'] = D['sum'], sum_ +old_size, D['size'] = D['size'], size +``` + +You can see that `size` and `sum` now execute in a single step. + + +```python +V('[23 18] average') +``` + + . [23 18] average + [23 18] . average + [23 18] . [sum 1.0 *] [size] cleave / + [23 18] [sum 1.0 *] . [size] cleave / + [23 18] [sum 1.0 *] [size] . cleave / + [23 18] [sum 1.0 *] [size] . [i] app2 [popd] dip / + [23 18] [sum 1.0 *] [size] [i] . app2 [popd] dip / + [23 18] [[sum 1.0 *] [23 18]] [i] . infra first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] [sum 1.0 *] . i [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] . sum 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41 . 1.0 * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41 1.0 . * [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41.0 . [[23 18]] swaack first [[size] [23 18]] [i] infra first [popd] dip / + 41.0 [[23 18]] . swaack first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] [41.0] . first [[size] [23 18]] [i] infra first [popd] dip / + [23 18] 41.0 . [[size] [23 18]] [i] infra first [popd] dip / + [23 18] 41.0 [[size] [23 18]] . [i] infra first [popd] dip / + [23 18] 41.0 [[size] [23 18]] [i] . infra first [popd] dip / + [23 18] [size] . i [41.0 [23 18]] swaack first [popd] dip / + [23 18] . size [41.0 [23 18]] swaack first [popd] dip / + 2 . [41.0 [23 18]] swaack first [popd] dip / + 2 [41.0 [23 18]] . swaack first [popd] dip / + [23 18] 41.0 [2] . first [popd] dip / + [23 18] 41.0 2 . [popd] dip / + [23 18] 41.0 2 [popd] . dip / + [23 18] 41.0 . popd 2 / + 41.0 . 2 / + 41.0 2 . / + 20.5 . + diff --git a/docs/Advent of Code 2017 December 1st.html b/docs/Advent of Code 2017 December 1st.html new file mode 100644 index 0000000..b085073 --- /dev/null +++ b/docs/Advent of Code 2017 December 1st.html @@ -0,0 +1,12432 @@ + + + +Advent of Code 2017 December 1st + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Advent of Code 2017

December 1st

[Given] a sequence of digits (your puzzle input) and find the sum of all digits that match the next digit in the list. The list is circular, so the digit after the last digit is the first digit in the list.

+

For example:

+
    +
  • 1122 produces a sum of 3 (1 + 2) because the first digit (1) matches the second digit and the third digit (2) matches the fourth digit.
  • +
  • 1111 produces 4 because each digit (all 1) matches the next.
  • +
  • 1234 produces 0 because no digit matches the next.
  • +
  • 91212129 produces 9 because the only digit that matches the next one is the last digit, 9.
  • +
+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

I'll assume the input is a Joy sequence of integers (as opposed to a string or something else.)

+

We might proceed by creating a word that makes a copy of the sequence with the first item moved to the last, and zips it with the original to make a list of pairs, and a another word that adds (one of) each pair to a total if the pair matches.

+ +
AoC2017.1 == pair_up total_matches
+
+
+

Let's derive pair_up:

+ +
     [a b c] pair_up
+-------------------------
+   [[a b] [b c] [c a]]
+ +
+
+
+
+
+
+
+

Straightforward (although the order of each pair is reversed, due to the way zip works, but it doesn't matter for this program):

+ +
[a b c] dup
+[a b c] [a b c] uncons swap
+[a b c] [b c] a unit concat
+[a b c] [b c a] zip
+[[b a] [c b] [a c]]
+ +
+
+
+
+
+
In [2]:
+
+
+
define('pair_up == dup uncons swap unit concat zip')
+
+ +
+
+
+ +
+
+
+
In [3]:
+
+
+
J('[1 2 3] pair_up')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[[2 1] [3 2] [1 3]]
+
+
+
+ +
+
+ +
+
+
+
In [4]:
+
+
+
J('[1 2 2 3] pair_up')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[[2 1] [2 2] [3 2] [1 3]]
+
+
+
+ +
+
+ +
+
+
+
+
+

Now we need to derive total_matches. It will be a step function:

+ +
total_matches == 0 swap [F] step
+
+
+

Where F will have the pair to work with, and it will basically be a branch or ifte.

+ +
total [n m] F
+
+
+

It will probably be easier to write if we dequote the pair:

+ +
   total [n m] i F′
+----------------------
+     total n m F′
+
+
+

Now F′ becomes just:

+ +
total n m [=] [pop +] [popop] ifte
+
+
+

So:

+ +
F == i [=] [pop +] [popop] ifte
+
+
+

And thus:

+ +
total_matches == 0 swap [i [=] [pop +] [popop] ifte] step
+ +
+
+
+
+
+
In [5]:
+
+
+
define('total_matches == 0 swap [i [=] [pop +] [popop] ifte] step')
+
+ +
+
+
+ +
+
+
+
In [6]:
+
+
+
J('[1 2 3] pair_up total_matches')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0
+
+
+
+ +
+
+ +
+
+
+
In [7]:
+
+
+
J('[1 2 2 3] pair_up total_matches')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
+
+

Now we can define our main program and evaluate it on the examples.

+ +
+
+
+
+
+
In [8]:
+
+
+
define('AoC2017.1 == pair_up total_matches')
+
+ +
+
+
+ +
+
+
+
In [9]:
+
+
+
J('[1 1 2 2] AoC2017.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3
+
+
+
+ +
+
+ +
+
+
+
In [10]:
+
+
+
J('[1 1 1 1] AoC2017.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4
+
+
+
+ +
+
+ +
+
+
+
In [11]:
+
+
+
J('[1 2 3 4] AoC2017.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0
+
+
+
+ +
+
+ +
+
+
+
In [12]:
+
+
+
J('[9 1 2 1 2 1 2 9] AoC2017.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9
+
+
+
+ +
+
+ +
+
+
+
In [13]:
+
+
+
J('[9 1 2 1 2 1 2 9] AoC2017.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9
+
+
+
+ +
+
+ +
+
+
+
+
+ +
      pair_up == dup uncons swap unit concat zip
+total_matches == 0 swap [i [=] [pop +] [popop] ifte] step
+
+    AoC2017.1 == pair_up total_matches
+ +
+
+
+
+
+
+
+

Now the paired digit is "halfway" round.

+ +
[a b c d] dup size 2 / [drop] [take reverse] cleave concat zip
+ +
+
+
+
+
+
In [14]:
+
+
+
J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave concat zip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[[3 1] [4 2] [1 3] [2 4]]
+
+
+
+ +
+
+ +
+
+
+
+
+

I realized that each pair is repeated...

+ +
+
+
+
+
+
In [15]:
+
+
+
J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave  zip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 2 3 4] [[1 3] [2 4]]
+
+
+
+ +
+
+ +
+
+
+
In [16]:
+
+
+
define('AoC2017.1.extra == dup size 2 / [drop] [take reverse] cleave  zip swap pop total_matches 2 *')
+
+ +
+
+
+ +
+
+
+
In [17]:
+
+
+
J('[1 2 1 2] AoC2017.1.extra')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6
+
+
+
+ +
+
+ +
+
+
+
In [18]:
+
+
+
J('[1 2 2 1] AoC2017.1.extra')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0
+
+
+
+ +
+
+ +
+
+
+
In [19]:
+
+
+
J('[1 2 3 4 2 5] AoC2017.1.extra')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4
+
+
+
+ +
+
+ +
+
+
+
+
+

Refactor FTW

With Joy a great deal of the heuristics from Forth programming carry over nicely. For example, refactoring into small, well-scoped commands with mnemonic names...

+ +
         rotate_seq == uncons swap unit concat
+            pair_up == dup rotate_seq zip
+       add_if_match == [=] [pop +] [popop] ifte
+      total_matches == [i add_if_match] step_zero
+
+          AoC2017.1 == pair_up total_matches
+
+       half_of_size == dup size 2 /
+           split_at == [drop] [take reverse] cleave
+      pair_up.extra == half_of_size split_at zip swap pop
+
+    AoC2017.1.extra == pair_up.extra total_matches 2 *
+ +
+
+
+
+
+ + + + + + diff --git a/docs/Advent of Code 2017 December 1st.ipynb b/docs/Advent of Code 2017 December 1st.ipynb new file mode 100644 index 0000000..c83a62d --- /dev/null +++ b/docs/Advent of Code 2017 December 1st.ipynb @@ -0,0 +1,455 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advent of Code 2017\n", + "\n", + "## December 1st\n", + "\n", + "\\[Given\\] a sequence of digits (your puzzle input) and find the sum of all digits that match the next digit in the list. The list is circular, so the digit after the last digit is the first digit in the list.\n", + "\n", + "For example:\n", + "\n", + "* 1122 produces a sum of 3 (1 + 2) because the first digit (1) matches the second digit and the third digit (2) matches the fourth digit.\n", + "* 1111 produces 4 because each digit (all 1) matches the next.\n", + "* 1234 produces 0 because no digit matches the next.\n", + "* 91212129 produces 9 because the only digit that matches the next one is the last digit, 9." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I'll assume the input is a Joy sequence of integers (as opposed to a string or something else.)\n", + "\n", + "We might proceed by creating a word that makes a copy of the sequence with the first item moved to the last, and zips it with the original to make a list of pairs, and a another word that adds (one of) each pair to a total if the pair matches.\n", + "\n", + " AoC2017.1 == pair_up total_matches\n", + "\n", + "Let's derive `pair_up`:\n", + "\n", + " [a b c] pair_up\n", + " -------------------------\n", + " [[a b] [b c] [c a]]\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Straightforward (although the order of each pair is reversed, due to the way `zip` works, but it doesn't matter for this program):\n", + "\n", + " [a b c] dup\n", + " [a b c] [a b c] uncons swap\n", + " [a b c] [b c] a unit concat\n", + " [a b c] [b c a] zip\n", + " [[b a] [c b] [a c]]" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "define('pair_up == dup uncons swap unit concat zip')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[2 1] [3 2] [1 3]]\n" + ] + } + ], + "source": [ + "J('[1 2 3] pair_up')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[2 1] [2 2] [3 2] [1 3]]\n" + ] + } + ], + "source": [ + "J('[1 2 2 3] pair_up')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we need to derive `total_matches`. It will be a `step` function:\n", + "\n", + " total_matches == 0 swap [F] step\n", + "\n", + "Where `F` will have the pair to work with, and it will basically be a `branch` or `ifte`.\n", + "\n", + " total [n m] F\n", + "\n", + "It will probably be easier to write if we dequote the pair:\n", + "\n", + " total [n m] i F′\n", + " ----------------------\n", + " total n m F′\n", + "\n", + "Now `F′` becomes just:\n", + "\n", + " total n m [=] [pop +] [popop] ifte\n", + "\n", + "So:\n", + "\n", + " F == i [=] [pop +] [popop] ifte\n", + "\n", + "And thus:\n", + "\n", + " total_matches == 0 swap [i [=] [pop +] [popop] ifte] step" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "define('total_matches == 0 swap [i [=] [pop +] [popop] ifte] step')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "J('[1 2 3] pair_up total_matches')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('[1 2 2 3] pair_up total_matches')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can define our main program and evaluate it on the examples." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "define('AoC2017.1 == pair_up total_matches')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3\n" + ] + } + ], + "source": [ + "J('[1 1 2 2] AoC2017.1')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "J('[1 1 1 1] AoC2017.1')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] AoC2017.1')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], + "source": [ + "J('[9 1 2 1 2 1 2 9] AoC2017.1')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9\n" + ] + } + ], + "source": [ + "J('[9 1 2 1 2 1 2 9] AoC2017.1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " pair_up == dup uncons swap unit concat zip\n", + " total_matches == 0 swap [i [=] [pop +] [popop] ifte] step\n", + "\n", + " AoC2017.1 == pair_up total_matches" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now the paired digit is \"halfway\" round.\n", + "\n", + " [a b c d] dup size 2 / [drop] [take reverse] cleave concat zip" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[3 1] [4 2] [1 3] [2 4]]\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave concat zip')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I realized that each pair is repeated..." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 2 3 4] [[1 3] [2 4]]\n" + ] + } + ], + "source": [ + "J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave zip')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "define('AoC2017.1.extra == dup size 2 / [drop] [take reverse] cleave zip swap pop total_matches 2 *')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "J('[1 2 1 2] AoC2017.1.extra')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "J('[1 2 2 1] AoC2017.1.extra')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "J('[1 2 3 4 2 5] AoC2017.1.extra')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Refactor FTW\n", + "\n", + "With Joy a great deal of the heuristics from Forth programming carry over nicely. For example, refactoring into small, well-scoped commands with mnemonic names...\n", + "\n", + " rotate_seq == uncons swap unit concat\n", + " pair_up == dup rotate_seq zip\n", + " add_if_match == [=] [pop +] [popop] ifte\n", + " total_matches == [i add_if_match] step_zero\n", + "\n", + " AoC2017.1 == pair_up total_matches\n", + "\n", + " half_of_size == dup size 2 /\n", + " split_at == [drop] [take reverse] cleave\n", + " pair_up.extra == half_of_size split_at zip swap pop\n", + "\n", + " AoC2017.1.extra == pair_up.extra total_matches 2 *\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Advent of Code 2017 December 1st.md b/docs/Advent of Code 2017 December 1st.md new file mode 100644 index 0000000..c08b171 --- /dev/null +++ b/docs/Advent of Code 2017 December 1st.md @@ -0,0 +1,228 @@ + +# Advent of Code 2017 + +## December 1st + +\[Given\] a sequence of digits (your puzzle input) and find the sum of all digits that match the next digit in the list. The list is circular, so the digit after the last digit is the first digit in the list. + +For example: + +* 1122 produces a sum of 3 (1 + 2) because the first digit (1) matches the second digit and the third digit (2) matches the fourth digit. +* 1111 produces 4 because each digit (all 1) matches the next. +* 1234 produces 0 because no digit matches the next. +* 91212129 produces 9 because the only digit that matches the next one is the last digit, 9. + + +```python +from notebook_preamble import J, V, define +``` + +I'll assume the input is a Joy sequence of integers (as opposed to a string or something else.) + +We might proceed by creating a word that makes a copy of the sequence with the first item moved to the last, and zips it with the original to make a list of pairs, and a another word that adds (one of) each pair to a total if the pair matches. + + AoC2017.1 == pair_up total_matches + +Let's derive `pair_up`: + + [a b c] pair_up + ------------------------- + [[a b] [b c] [c a]] + + +Straightforward (although the order of each pair is reversed, due to the way `zip` works, but it doesn't matter for this program): + + [a b c] dup + [a b c] [a b c] uncons swap + [a b c] [b c] a unit concat + [a b c] [b c a] zip + [[b a] [c b] [a c]] + + +```python +define('pair_up == dup uncons swap unit concat zip') +``` + + +```python +J('[1 2 3] pair_up') +``` + + [[2 1] [3 2] [1 3]] + + + +```python +J('[1 2 2 3] pair_up') +``` + + [[2 1] [2 2] [3 2] [1 3]] + + +Now we need to derive `total_matches`. It will be a `step` function: + + total_matches == 0 swap [F] step + +Where `F` will have the pair to work with, and it will basically be a `branch` or `ifte`. + + total [n m] F + +It will probably be easier to write if we dequote the pair: + + total [n m] i F′ + ---------------------- + total n m F′ + +Now `F′` becomes just: + + total n m [=] [pop +] [popop] ifte + +So: + + F == i [=] [pop +] [popop] ifte + +And thus: + + total_matches == 0 swap [i [=] [pop +] [popop] ifte] step + + +```python +define('total_matches == 0 swap [i [=] [pop +] [popop] ifte] step') +``` + + +```python +J('[1 2 3] pair_up total_matches') +``` + + 0 + + + +```python +J('[1 2 2 3] pair_up total_matches') +``` + + 2 + + +Now we can define our main program and evaluate it on the examples. + + +```python +define('AoC2017.1 == pair_up total_matches') +``` + + +```python +J('[1 1 2 2] AoC2017.1') +``` + + 3 + + + +```python +J('[1 1 1 1] AoC2017.1') +``` + + 4 + + + +```python +J('[1 2 3 4] AoC2017.1') +``` + + 0 + + + +```python +J('[9 1 2 1 2 1 2 9] AoC2017.1') +``` + + 9 + + + +```python +J('[9 1 2 1 2 1 2 9] AoC2017.1') +``` + + 9 + + + pair_up == dup uncons swap unit concat zip + total_matches == 0 swap [i [=] [pop +] [popop] ifte] step + + AoC2017.1 == pair_up total_matches + +Now the paired digit is "halfway" round. + + [a b c d] dup size 2 / [drop] [take reverse] cleave concat zip + + +```python +J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave concat zip') +``` + + [[3 1] [4 2] [1 3] [2 4]] + + +I realized that each pair is repeated... + + +```python +J('[1 2 3 4] dup size 2 / [drop] [take reverse] cleave zip') +``` + + [1 2 3 4] [[1 3] [2 4]] + + + +```python +define('AoC2017.1.extra == dup size 2 / [drop] [take reverse] cleave zip swap pop total_matches 2 *') +``` + + +```python +J('[1 2 1 2] AoC2017.1.extra') +``` + + 6 + + + +```python +J('[1 2 2 1] AoC2017.1.extra') +``` + + 0 + + + +```python +J('[1 2 3 4 2 5] AoC2017.1.extra') +``` + + 4 + + +# Refactor FTW + +With Joy a great deal of the heuristics from Forth programming carry over nicely. For example, refactoring into small, well-scoped commands with mnemonic names... + + rotate_seq == uncons swap unit concat + pair_up == dup rotate_seq zip + add_if_match == [=] [pop +] [popop] ifte + total_matches == [i add_if_match] step_zero + + AoC2017.1 == pair_up total_matches + + half_of_size == dup size 2 / + split_at == [drop] [take reverse] cleave + pair_up.extra == half_of_size split_at zip swap pop + + AoC2017.1.extra == pair_up.extra total_matches 2 * + diff --git a/docs/Advent of Code 2017 December 2nd.html b/docs/Advent of Code 2017 December 2nd.html new file mode 100644 index 0000000..6f72cc2 --- /dev/null +++ b/docs/Advent of Code 2017 December 2nd.html @@ -0,0 +1,12487 @@ + + + +Advent of Code 2017 December 2nd + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Advent of Code 2017

December 2nd

For each row, determine the difference between the largest value and the smallest value; the checksum is the sum of all of these differences.

+

For example, given the following spreadsheet:

+ +
5 1 9 5
+7 5 3
+2 4 6 8
+
+
+
    +
  • The first row's largest and smallest values are 9 and 1, and their difference is 8.
  • +
  • The second row's largest and smallest values are 7 and 3, and their difference is 4.
  • +
  • The third row's difference is 6.
  • +
+

In this example, the spreadsheet's checksum would be 8 + 4 + 6 = 18.

+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

I'll assume the input is a Joy sequence of sequences of integers.

+ +
[[5 1 9 5]
+ [7 5 3]
+ [2 4 6 8]]
+
+
+

So, obviously, the initial form will be a step function:

+ +
AoC2017.2 == 0 swap [F +] step
+ +
+
+
+
+
+
+
+

This function F must get the max and min of a row of numbers and subtract. We can define a helper function maxmin which does this:

+ +
+
+
+
+
+
In [2]:
+
+
+
define('maxmin == [max] [min] cleave')
+
+ +
+
+
+ +
+
+
+
In [3]:
+
+
+
J('[1 2 3] maxmin')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 1
+
+
+
+ +
+
+ +
+
+
+
+
+

Then F just does that then subtracts the min from the max:

+ +
F == maxmin -
+
+
+

So:

+ +
+
+
+
+
+
In [4]:
+
+
+
define('AoC2017.2 == [maxmin - +] step_zero')
+
+ +
+
+
+ +
+
+
+
In [5]:
+
+
+
J('''
+
+[[5 1 9 5]
+ [7 5 3]
+ [2 4 6 8]] AoC2017.2
+
+''')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
18
+
+
+
+ +
+
+ +
+
+
+
+
+

...find the only two numbers in each row where one evenly divides the other - that is, where the result of the division operation is a whole number. They would like you to find those numbers on each line, divide them, and add up each line's result.

+

For example, given the following spreadsheet:

+ +
5 9 2 8
+9 4 7 3
+3 8 6 5
+
+
+
    +
  • In the first row, the only two numbers that evenly divide are 8 and 2; the result of this division is 4.
  • +
  • In the second row, the two numbers are 9 and 3; the result is 3.
  • +
  • In the third row, the result is 2.
  • +
+

In this example, the sum of the results would be 4 + 3 + 2 = 9.

+

What is the sum of each row's result in your puzzle input?

+ +
+
+
+
+
+
In [6]:
+
+
+
J('[5 9 2 8] sort reverse')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[9 8 5 2]
+
+
+
+ +
+
+ +
+
+
+
In [7]:
+
+
+
J('[9 8 5 2] uncons [swap [divmod] cons] dupdip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[8 5 2] [9 divmod] [8 5 2]
+
+
+
+ +
+
+ +
+
+
+
+
+ +
[9 8 5 2] uncons [swap [divmod] cons F] dupdip G
+  [8 5 2]            [9 divmod]      F [8 5 2] G
+ +
+
+
+
+
+
In [8]:
+
+
+
V('[8 5 2] [9 divmod] [uncons swap] dip dup [i not] dip')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                      . [8 5 2] [9 divmod] [uncons swap] dip dup [i not] dip
+                              [8 5 2] . [9 divmod] [uncons swap] dip dup [i not] dip
+                   [8 5 2] [9 divmod] . [uncons swap] dip dup [i not] dip
+     [8 5 2] [9 divmod] [uncons swap] . dip dup [i not] dip
+                              [8 5 2] . uncons swap [9 divmod] dup [i not] dip
+                              8 [5 2] . swap [9 divmod] dup [i not] dip
+                              [5 2] 8 . [9 divmod] dup [i not] dip
+                   [5 2] 8 [9 divmod] . dup [i not] dip
+        [5 2] 8 [9 divmod] [9 divmod] . [i not] dip
+[5 2] 8 [9 divmod] [9 divmod] [i not] . dip
+                   [5 2] 8 [9 divmod] . i not [9 divmod]
+                              [5 2] 8 . 9 divmod not [9 divmod]
+                            [5 2] 8 9 . divmod not [9 divmod]
+                            [5 2] 1 1 . not [9 divmod]
+                        [5 2] 1 False . [9 divmod]
+             [5 2] 1 False [9 divmod] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Tricky

Let's think.

+

Given a sorted sequence (from highest to lowest) we want to

+
    +
  • for head, tail in sequence
      +
    • for term in tail:
        +
      • check if the head % term == 0
          +
        • if so compute head / term and terminate loop
        • +
        • else continue
        • +
        +
      • +
      +
    • +
    +
  • +
+ +
+
+
+
+
+
+
+

So we want a loop I think

+
[a b c d] True [Q] loop
+[a b c d] Q    [Q] loop
+
+
+

Q should either leave the result and False, or the rest and True.

+ +
   [a b c d] Q
+-----------------
+    result 0
+
+   [a b c d] Q
+-----------------
+    [b c d] 1
+ +
+
+
+
+
+
+
+

This suggests that Q should start with:

+ +
[a b c d] uncons dup roll<
+[b c d] [b c d] a
+
+
+

Now we just have to pop it if we don't need it.

+ +
[b c d] [b c d] a [P] [T] [cons] app2 popdd [E] primrec
+[b c d] [b c d] [a P] [a T]                 [E] primrec
+
+
+
+ +
w/ Q == [% not] [T] [F] primrec
+
+        [a b c d] uncons
+        a [b c d] tuck
+[b c d] a [b c d] uncons
+[b c d] a b [c d] roll>
+[b c d] [c d] a b Q
+[b c d] [c d] a b [% not] [T] [F] primrec
+
+[b c d] [c d] a b T
+[b c d] [c d] a b / roll> popop 0
+
+[b c d] [c d] a b F                   Q
+[b c d] [c d] a b pop swap uncons ... Q
+[b c d] [c d] a       swap uncons ... Q
+[b c d] a [c d]            uncons ... Q
+[b c d] a c [d]                   roll> Q
+[b c d] [d] a c Q
+
+Q == [% not] [/ roll> popop 0] [pop swap uncons roll>] primrec
+
+uncons tuck uncons roll> Q
+ +
+
+
+
+
+
In [9]:
+
+
+
J('[8 5 3 2] 9 [swap] [% not] [cons] app2 popdd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[8 5 3 2] [9 swap] [9 % not]
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
        [a b c d] uncons
+        a [b c d] tuck
+[b c d] a [b c d] [not] [popop 1] [Q] ifte
+
+[b c d] a [] popop 1
+[b c d] 1
+
+[b c d] a [b c d] Q 
+
+
+   a [...] Q
+---------------
+   result 0
+
+   a [...] Q
+---------------
+       1
+
+
+w/ Q == [first % not] [first / 0] [rest [not] [popop 1]] [ifte]
+
+
+
+a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte]
+a [b c d]  first % not
+a b % not
+a%b not
+bool(a%b)
+
+a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte]
+a [b c d]                first / 0
+a b / 0
+a/b 0
+
+a [b c d] [first % not] [first / 0] [rest [not] [popop 1]]   [ifte]
+a [b c d]                            rest [not] [popop 1] [Q] ifte
+a [c d]                                   [not] [popop 1] [Q] ifte
+a [c d]                                   [not] [popop 1] [Q] ifte
+
+a [c d] [not] [popop 1] [Q] ifte
+a [c d]  not
+
+a [] popop 1
+1
+
+a [c d] Q
+
+
+uncons tuck [first % not] [first / 0] [rest [not] [popop 1]] [ifte]
+ +
+
+
+
+
+
+
+

I finally sat down with a piece of paper and blocked it out.

First, I made a function G that expects a number and a sequence of candidates and return the result or zero:

+ +
   n [...] G
+---------------
+    result
+
+   n [...] G
+---------------
+       0
+
+
+

It's a recursive function that conditionally executes the recursive part of its recursive branch

+ +
[Pg] [E] [R1 [Pi] [T]] [ifte] genrec
+
+
+

The recursive branch is the else-part of the inner ifte:

+ +
G == [Pg] [E] [R1 [Pi] [T]]   [ifte] genrec
+  == [Pg] [E] [R1 [Pi] [T] [G] ifte] ifte
+
+
+

But this is in hindsight. Going forward I derived:

+ +
G == [first % not]
+     [first /]
+     [rest [not] [popop 0]]
+     [ifte] genrec
+
+
+

The predicate detects if the n can be evenly divided by the first item in the list. If so, the then-part returns the result. Otherwise, we have:

+ +
n [m ...] rest [not] [popop 0] [G] ifte
+n [...]        [not] [popop 0] [G] ifte
+
+
+

This ifte guards against empty sequences and returns zero in that case, otherwise it executes G.

+ +
+
+
+
+
+
In [10]:
+
+
+
define('G == [first % not] [first /] [rest [not] [popop 0]] [ifte] genrec')
+
+ +
+
+
+ +
+
+
+
+
+

Now we need a word that uses G on each (head, tail) pair of a sequence until it finds a (non-zero) result. It's going to be designed to work on a stack that has some candidate n, a sequence of possible divisors, and a result that is zero to signal to continue (a non-zero value implies that it is the discovered result):

+ +
   n [...] p find-result
+---------------------------
+          result
+
+
+

It applies G using nullary because if it fails with one candidate it needs the list to get the next one (the list is otherwise consumed by G.)

+ +
find-result == [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec
+
+n [...] p [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec
+
+
+

The base-case is trivial, return the (non-zero) result. The recursive branch...

+ +
n [...] p roll< popop uncons [G] nullary find-result
+[...] p n       popop uncons [G] nullary find-result
+[...]                 uncons [G] nullary find-result
+m [..]                       [G] nullary find-result
+m [..] p                                 find-result
+
+
+

The puzzle states that the input is well-formed, meaning that we can expect a result before the row sequence empties and so do not need to guard the uncons.

+ +
+
+
+
+
+
In [11]:
+
+
+
define('find-result == [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec')
+
+ +
+
+
+ +
+
+
+
In [14]:
+
+
+
J('[11 9 8 7 3 2] 0 tuck find-result')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3.0
+
+
+
+ +
+
+ +
+
+
+
+
+

In order to get the thing started, we need to sort the list in descending order, then prime the find-result function with a dummy candidate value and zero ("continue") flag.

+ +
+
+
+
+
+
In [12]:
+
+
+
define('prep-row == sort reverse 0 tuck')
+
+ +
+
+
+ +
+
+
+
+
+

Now we can define our program.

+ +
+
+
+
+
+
In [13]:
+
+
+
define('AoC20017.2.extra == [prep-row find-result +] step_zero')
+
+ +
+
+
+ +
+
+
+
In [15]:
+
+
+
J('''
+
+[[5 9 2 8]
+ [9 4 7 3]
+ [3 8 6 5]] AoC20017.2.extra
+
+''')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9.0
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/Advent of Code 2017 December 2nd.ipynb b/docs/Advent of Code 2017 December 2nd.ipynb new file mode 100644 index 0000000..871349d --- /dev/null +++ b/docs/Advent of Code 2017 December 2nd.ipynb @@ -0,0 +1,554 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advent of Code 2017\n", + "\n", + "## December 2nd\n", + "\n", + "For each row, determine the difference between the largest value and the smallest value; the checksum is the sum of all of these differences.\n", + "\n", + "For example, given the following spreadsheet:\n", + "\n", + " 5 1 9 5\n", + " 7 5 3\n", + " 2 4 6 8\n", + "\n", + "* The first row's largest and smallest values are 9 and 1, and their difference is 8.\n", + "* The second row's largest and smallest values are 7 and 3, and their difference is 4.\n", + "* The third row's difference is 6.\n", + "\n", + "In this example, the spreadsheet's checksum would be 8 + 4 + 6 = 18." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I'll assume the input is a Joy sequence of sequences of integers.\n", + "\n", + " [[5 1 9 5]\n", + " [7 5 3]\n", + " [2 4 6 8]]\n", + "\n", + "So, obviously, the initial form will be a `step` function:\n", + "\n", + " AoC2017.2 == 0 swap [F +] step" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function `F` must get the `max` and `min` of a row of numbers and subtract. We can define a helper function `maxmin` which does this:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "define('maxmin == [max] [min] cleave')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 1\n" + ] + } + ], + "source": [ + "J('[1 2 3] maxmin')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then `F` just does that then subtracts the min from the max:\n", + "\n", + " F == maxmin -\n", + "\n", + "So:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "define('AoC2017.2 == [maxmin - +] step_zero')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "18\n" + ] + } + ], + "source": [ + "J('''\n", + "\n", + "[[5 1 9 5]\n", + " [7 5 3]\n", + " [2 4 6 8]] AoC2017.2\n", + "\n", + "''')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "...find the only two numbers in each row where one evenly divides the other - that is, where the result of the division operation is a whole number. They would like you to find those numbers on each line, divide them, and add up each line's result.\n", + "\n", + "For example, given the following spreadsheet:\n", + "\n", + " 5 9 2 8\n", + " 9 4 7 3\n", + " 3 8 6 5\n", + "\n", + "* In the first row, the only two numbers that evenly divide are 8 and 2; the result of this division is 4.\n", + "* In the second row, the two numbers are 9 and 3; the result is 3.\n", + "* In the third row, the result is 2.\n", + "\n", + "In this example, the sum of the results would be 4 + 3 + 2 = 9.\n", + "\n", + "What is the sum of each row's result in your puzzle input?" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[9 8 5 2]\n" + ] + } + ], + "source": [ + "J('[5 9 2 8] sort reverse')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[8 5 2] [9 divmod] [8 5 2]\n" + ] + } + ], + "source": [ + "J('[9 8 5 2] uncons [swap [divmod] cons] dupdip')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + " [9 8 5 2] uncons [swap [divmod] cons F] dupdip G\n", + " [8 5 2] [9 divmod] F [8 5 2] G\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [8 5 2] [9 divmod] [uncons swap] dip dup [i not] dip\n", + " [8 5 2] . [9 divmod] [uncons swap] dip dup [i not] dip\n", + " [8 5 2] [9 divmod] . [uncons swap] dip dup [i not] dip\n", + " [8 5 2] [9 divmod] [uncons swap] . dip dup [i not] dip\n", + " [8 5 2] . uncons swap [9 divmod] dup [i not] dip\n", + " 8 [5 2] . swap [9 divmod] dup [i not] dip\n", + " [5 2] 8 . [9 divmod] dup [i not] dip\n", + " [5 2] 8 [9 divmod] . dup [i not] dip\n", + " [5 2] 8 [9 divmod] [9 divmod] . [i not] dip\n", + "[5 2] 8 [9 divmod] [9 divmod] [i not] . dip\n", + " [5 2] 8 [9 divmod] . i not [9 divmod]\n", + " [5 2] 8 . 9 divmod not [9 divmod]\n", + " [5 2] 8 9 . divmod not [9 divmod]\n", + " [5 2] 1 1 . not [9 divmod]\n", + " [5 2] 1 False . [9 divmod]\n", + " [5 2] 1 False [9 divmod] . \n" + ] + } + ], + "source": [ + "V('[8 5 2] [9 divmod] [uncons swap] dip dup [i not] dip')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tricky\n", + "\n", + "Let's think.\n", + "\n", + "Given a *sorted* sequence (from highest to lowest) we want to \n", + "* for head, tail in sequence\n", + " * for term in tail:\n", + " * check if the head % term == 0\n", + " * if so compute head / term and terminate loop\n", + " * else continue" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### So we want a `loop` I think\n", + "\n", + " [a b c d] True [Q] loop\n", + " [a b c d] Q [Q] loop\n", + "\n", + "`Q` should either leave the result and False, or the `rest` and True.\n", + "\n", + " [a b c d] Q\n", + " -----------------\n", + " result 0\n", + "\n", + " [a b c d] Q\n", + " -----------------\n", + " [b c d] 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This suggests that `Q` should start with:\n", + "\n", + " [a b c d] uncons dup roll<\n", + " [b c d] [b c d] a\n", + "\n", + "Now we just have to `pop` it if we don't need it.\n", + "\n", + " [b c d] [b c d] a [P] [T] [cons] app2 popdd [E] primrec\n", + " [b c d] [b c d] [a P] [a T] [E] primrec\n", + "\n", + "-------------------\n", + "\n", + " w/ Q == [% not] [T] [F] primrec\n", + "\n", + " [a b c d] uncons\n", + " a [b c d] tuck\n", + " [b c d] a [b c d] uncons\n", + " [b c d] a b [c d] roll>\n", + " [b c d] [c d] a b Q\n", + " [b c d] [c d] a b [% not] [T] [F] primrec\n", + "\n", + " [b c d] [c d] a b T\n", + " [b c d] [c d] a b / roll> popop 0\n", + "\n", + " [b c d] [c d] a b F Q\n", + " [b c d] [c d] a b pop swap uncons ... Q\n", + " [b c d] [c d] a swap uncons ... Q\n", + " [b c d] a [c d] uncons ... Q\n", + " [b c d] a c [d] roll> Q\n", + " [b c d] [d] a c Q\n", + "\n", + " Q == [% not] [/ roll> popop 0] [pop swap uncons roll>] primrec\n", + " \n", + " uncons tuck uncons roll> Q" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[8 5 3 2] [9 swap] [9 % not]\n" + ] + } + ], + "source": [ + "J('[8 5 3 2] 9 [swap] [% not] [cons] app2 popdd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "-------------------\n", + "\n", + " [a b c d] uncons\n", + " a [b c d] tuck\n", + " [b c d] a [b c d] [not] [popop 1] [Q] ifte\n", + "\n", + " [b c d] a [] popop 1\n", + " [b c d] 1\n", + "\n", + " [b c d] a [b c d] Q \n", + "\n", + "\n", + " a [...] Q\n", + " ---------------\n", + " result 0\n", + "\n", + " a [...] Q\n", + " ---------------\n", + " 1\n", + "\n", + "\n", + " w/ Q == [first % not] [first / 0] [rest [not] [popop 1]] [ifte]\n", + "\n", + "\n", + "\n", + " a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte]\n", + " a [b c d] first % not\n", + " a b % not\n", + " a%b not\n", + " bool(a%b)\n", + "\n", + " a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte]\n", + " a [b c d] first / 0\n", + " a b / 0\n", + " a/b 0\n", + "\n", + " a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte]\n", + " a [b c d] rest [not] [popop 1] [Q] ifte\n", + " a [c d] [not] [popop 1] [Q] ifte\n", + " a [c d] [not] [popop 1] [Q] ifte\n", + "\n", + " a [c d] [not] [popop 1] [Q] ifte\n", + " a [c d] not\n", + "\n", + " a [] popop 1\n", + " 1\n", + "\n", + " a [c d] Q\n", + "\n", + "\n", + " uncons tuck [first % not] [first / 0] [rest [not] [popop 1]] [ifte]\n", + " \n", + " \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### I finally sat down with a piece of paper and blocked it out.\n", + "\n", + "First, I made a function `G` that expects a number and a sequence of candidates and return the result or zero:\n", + "\n", + " n [...] G\n", + " ---------------\n", + " result\n", + "\n", + " n [...] G\n", + " ---------------\n", + " 0\n", + "\n", + "It's a recursive function that conditionally executes the recursive part of its recursive branch\n", + "\n", + " [Pg] [E] [R1 [Pi] [T]] [ifte] genrec\n", + "\n", + "The recursive branch is the else-part of the inner `ifte`:\n", + "\n", + " G == [Pg] [E] [R1 [Pi] [T]] [ifte] genrec\n", + " == [Pg] [E] [R1 [Pi] [T] [G] ifte] ifte\n", + "\n", + "But this is in hindsight. Going forward I derived:\n", + "\n", + " G == [first % not]\n", + " [first /]\n", + " [rest [not] [popop 0]]\n", + " [ifte] genrec\n", + "\n", + "The predicate detects if the `n` can be evenly divided by the `first` item in the list. If so, the then-part returns the result. Otherwise, we have:\n", + "\n", + " n [m ...] rest [not] [popop 0] [G] ifte\n", + " n [...] [not] [popop 0] [G] ifte\n", + "\n", + "This `ifte` guards against empty sequences and returns zero in that case, otherwise it executes `G`." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "define('G == [first % not] [first /] [rest [not] [popop 0]] [ifte] genrec')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we need a word that uses `G` on each (head, tail) pair of a sequence until it finds a (non-zero) result. It's going to be designed to work on a stack that has some candidate `n`, a sequence of possible divisors, and a result that is zero to signal to continue (a non-zero value implies that it is the discovered result):\n", + "\n", + " n [...] p find-result\n", + " ---------------------------\n", + " result\n", + "\n", + "It applies `G` using `nullary` because if it fails with one candidate it needs the list to get the next one (the list is otherwise consumed by `G`.)\n", + "\n", + " find-result == [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec\n", + "\n", + " n [...] p [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec\n", + "\n", + "The base-case is trivial, return the (non-zero) result. The recursive branch...\n", + "\n", + " n [...] p roll< popop uncons [G] nullary find-result\n", + " [...] p n popop uncons [G] nullary find-result\n", + " [...] uncons [G] nullary find-result\n", + " m [..] [G] nullary find-result\n", + " m [..] p find-result\n", + "\n", + "The puzzle states that the input is well-formed, meaning that we can expect a result before the row sequence empties and so do not need to guard the `uncons`." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "define('find-result == [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.0\n" + ] + } + ], + "source": [ + "J('[11 9 8 7 3 2] 0 tuck find-result')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to get the thing started, we need to `sort` the list in descending order, then prime the `find-result` function with a dummy candidate value and zero (\"continue\") flag." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "define('prep-row == sort reverse 0 tuck')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can define our program." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "define('AoC20017.2.extra == [prep-row find-result +] step_zero')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9.0\n" + ] + } + ], + "source": [ + "J('''\n", + "\n", + "[[5 9 2 8]\n", + " [9 4 7 3]\n", + " [3 8 6 5]] AoC20017.2.extra\n", + "\n", + "''')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Advent of Code 2017 December 2nd.md b/docs/Advent of Code 2017 December 2nd.md new file mode 100644 index 0000000..28b6908 --- /dev/null +++ b/docs/Advent of Code 2017 December 2nd.md @@ -0,0 +1,361 @@ + +# Advent of Code 2017 + +## December 2nd + +For each row, determine the difference between the largest value and the smallest value; the checksum is the sum of all of these differences. + +For example, given the following spreadsheet: + + 5 1 9 5 + 7 5 3 + 2 4 6 8 + +* The first row's largest and smallest values are 9 and 1, and their difference is 8. +* The second row's largest and smallest values are 7 and 3, and their difference is 4. +* The third row's difference is 6. + +In this example, the spreadsheet's checksum would be 8 + 4 + 6 = 18. + + +```python +from notebook_preamble import J, V, define +``` + +I'll assume the input is a Joy sequence of sequences of integers. + + [[5 1 9 5] + [7 5 3] + [2 4 6 8]] + +So, obviously, the initial form will be a `step` function: + + AoC2017.2 == 0 swap [F +] step + +This function `F` must get the `max` and `min` of a row of numbers and subtract. We can define a helper function `maxmin` which does this: + + +```python +define('maxmin == [max] [min] cleave') +``` + + +```python +J('[1 2 3] maxmin') +``` + + 3 1 + + +Then `F` just does that then subtracts the min from the max: + + F == maxmin - + +So: + + +```python +define('AoC2017.2 == [maxmin - +] step_zero') +``` + + +```python +J(''' + +[[5 1 9 5] + [7 5 3] + [2 4 6 8]] AoC2017.2 + +''') +``` + + 18 + + +...find the only two numbers in each row where one evenly divides the other - that is, where the result of the division operation is a whole number. They would like you to find those numbers on each line, divide them, and add up each line's result. + +For example, given the following spreadsheet: + + 5 9 2 8 + 9 4 7 3 + 3 8 6 5 + +* In the first row, the only two numbers that evenly divide are 8 and 2; the result of this division is 4. +* In the second row, the two numbers are 9 and 3; the result is 3. +* In the third row, the result is 2. + +In this example, the sum of the results would be 4 + 3 + 2 = 9. + +What is the sum of each row's result in your puzzle input? + + +```python +J('[5 9 2 8] sort reverse') +``` + + [9 8 5 2] + + + +```python +J('[9 8 5 2] uncons [swap [divmod] cons] dupdip') +``` + + [8 5 2] [9 divmod] [8 5 2] + + + + [9 8 5 2] uncons [swap [divmod] cons F] dupdip G + [8 5 2] [9 divmod] F [8 5 2] G + + + + +```python +V('[8 5 2] [9 divmod] [uncons swap] dip dup [i not] dip') +``` + + . [8 5 2] [9 divmod] [uncons swap] dip dup [i not] dip + [8 5 2] . [9 divmod] [uncons swap] dip dup [i not] dip + [8 5 2] [9 divmod] . [uncons swap] dip dup [i not] dip + [8 5 2] [9 divmod] [uncons swap] . dip dup [i not] dip + [8 5 2] . uncons swap [9 divmod] dup [i not] dip + 8 [5 2] . swap [9 divmod] dup [i not] dip + [5 2] 8 . [9 divmod] dup [i not] dip + [5 2] 8 [9 divmod] . dup [i not] dip + [5 2] 8 [9 divmod] [9 divmod] . [i not] dip + [5 2] 8 [9 divmod] [9 divmod] [i not] . dip + [5 2] 8 [9 divmod] . i not [9 divmod] + [5 2] 8 . 9 divmod not [9 divmod] + [5 2] 8 9 . divmod not [9 divmod] + [5 2] 1 1 . not [9 divmod] + [5 2] 1 False . [9 divmod] + [5 2] 1 False [9 divmod] . + + +## Tricky + +Let's think. + +Given a *sorted* sequence (from highest to lowest) we want to +* for head, tail in sequence + * for term in tail: + * check if the head % term == 0 + * if so compute head / term and terminate loop + * else continue + +### So we want a `loop` I think + + [a b c d] True [Q] loop + [a b c d] Q [Q] loop + +`Q` should either leave the result and False, or the `rest` and True. + + [a b c d] Q + ----------------- + result 0 + + [a b c d] Q + ----------------- + [b c d] 1 + +This suggests that `Q` should start with: + + [a b c d] uncons dup roll< + [b c d] [b c d] a + +Now we just have to `pop` it if we don't need it. + + [b c d] [b c d] a [P] [T] [cons] app2 popdd [E] primrec + [b c d] [b c d] [a P] [a T] [E] primrec + +------------------- + + w/ Q == [% not] [T] [F] primrec + + [a b c d] uncons + a [b c d] tuck + [b c d] a [b c d] uncons + [b c d] a b [c d] roll> + [b c d] [c d] a b Q + [b c d] [c d] a b [% not] [T] [F] primrec + + [b c d] [c d] a b T + [b c d] [c d] a b / roll> popop 0 + + [b c d] [c d] a b F Q + [b c d] [c d] a b pop swap uncons ... Q + [b c d] [c d] a swap uncons ... Q + [b c d] a [c d] uncons ... Q + [b c d] a c [d] roll> Q + [b c d] [d] a c Q + + Q == [% not] [/ roll> popop 0] [pop swap uncons roll>] primrec + + uncons tuck uncons roll> Q + + +```python +J('[8 5 3 2] 9 [swap] [% not] [cons] app2 popdd') +``` + + [8 5 3 2] [9 swap] [9 % not] + + +------------------- + + [a b c d] uncons + a [b c d] tuck + [b c d] a [b c d] [not] [popop 1] [Q] ifte + + [b c d] a [] popop 1 + [b c d] 1 + + [b c d] a [b c d] Q + + + a [...] Q + --------------- + result 0 + + a [...] Q + --------------- + 1 + + + w/ Q == [first % not] [first / 0] [rest [not] [popop 1]] [ifte] + + + + a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte] + a [b c d] first % not + a b % not + a%b not + bool(a%b) + + a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte] + a [b c d] first / 0 + a b / 0 + a/b 0 + + a [b c d] [first % not] [first / 0] [rest [not] [popop 1]] [ifte] + a [b c d] rest [not] [popop 1] [Q] ifte + a [c d] [not] [popop 1] [Q] ifte + a [c d] [not] [popop 1] [Q] ifte + + a [c d] [not] [popop 1] [Q] ifte + a [c d] not + + a [] popop 1 + 1 + + a [c d] Q + + + uncons tuck [first % not] [first / 0] [rest [not] [popop 1]] [ifte] + + + + +### I finally sat down with a piece of paper and blocked it out. + +First, I made a function `G` that expects a number and a sequence of candidates and return the result or zero: + + n [...] G + --------------- + result + + n [...] G + --------------- + 0 + +It's a recursive function that conditionally executes the recursive part of its recursive branch + + [Pg] [E] [R1 [Pi] [T]] [ifte] genrec + +The recursive branch is the else-part of the inner `ifte`: + + G == [Pg] [E] [R1 [Pi] [T]] [ifte] genrec + == [Pg] [E] [R1 [Pi] [T] [G] ifte] ifte + +But this is in hindsight. Going forward I derived: + + G == [first % not] + [first /] + [rest [not] [popop 0]] + [ifte] genrec + +The predicate detects if the `n` can be evenly divided by the `first` item in the list. If so, the then-part returns the result. Otherwise, we have: + + n [m ...] rest [not] [popop 0] [G] ifte + n [...] [not] [popop 0] [G] ifte + +This `ifte` guards against empty sequences and returns zero in that case, otherwise it executes `G`. + + +```python +define('G == [first % not] [first /] [rest [not] [popop 0]] [ifte] genrec') +``` + +Now we need a word that uses `G` on each (head, tail) pair of a sequence until it finds a (non-zero) result. It's going to be designed to work on a stack that has some candidate `n`, a sequence of possible divisors, and a result that is zero to signal to continue (a non-zero value implies that it is the discovered result): + + n [...] p find-result + --------------------------- + result + +It applies `G` using `nullary` because if it fails with one candidate it needs the list to get the next one (the list is otherwise consumed by `G`.) + + find-result == [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec + + n [...] p [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec + +The base-case is trivial, return the (non-zero) result. The recursive branch... + + n [...] p roll< popop uncons [G] nullary find-result + [...] p n popop uncons [G] nullary find-result + [...] uncons [G] nullary find-result + m [..] [G] nullary find-result + m [..] p find-result + +The puzzle states that the input is well-formed, meaning that we can expect a result before the row sequence empties and so do not need to guard the `uncons`. + + +```python +define('find-result == [0 >] [roll> popop] [roll< popop uncons [G] nullary] primrec') +``` + + +```python +J('[11 9 8 7 3 2] 0 tuck find-result') +``` + + 3.0 + + +In order to get the thing started, we need to `sort` the list in descending order, then prime the `find-result` function with a dummy candidate value and zero ("continue") flag. + + +```python +define('prep-row == sort reverse 0 tuck') +``` + +Now we can define our program. + + +```python +define('AoC20017.2.extra == [prep-row find-result +] step_zero') +``` + + +```python +J(''' + +[[5 9 2 8] + [9 4 7 3] + [3 8 6 5]] AoC20017.2.extra + +''') +``` + + 9.0 + diff --git a/docs/Advent of Code 2017 December 3rd.html b/docs/Advent of Code 2017 December 3rd.html new file mode 100644 index 0000000..fb13cb1 --- /dev/null +++ b/docs/Advent of Code 2017 December 3rd.html @@ -0,0 +1,13592 @@ + + + +Advent of Code 2017 December 3rd + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Advent of Code 2017

December 3rd

You come across an experimental new kind of memory stored on an infinite two-dimensional grid.

+

Each square on the grid is allocated in a spiral pattern starting at a location marked 1 and then counting up while spiraling outward. For example, the first few squares are allocated like this:

+ +
17  16  15  14  13
+18   5   4   3  12
+19   6   1   2  11
+20   7   8   9  10
+21  22  23---> ...
+
+
+

While this is very space-efficient (no squares are skipped), requested data must be carried back to square 1 (the location of the only access port for this memory system) by programs that can only move up, down, left, or right. They always take the shortest path: the Manhattan Distance between the location of the data and square 1.

+

For example:

+
    +
  • Data from square 1 is carried 0 steps, since it's at the access port.
  • +
  • Data from square 12 is carried 3 steps, such as: down, left, left.
  • +
  • Data from square 23 is carried only 2 steps: up twice.
  • +
  • Data from square 1024 must be carried 31 steps.
  • +
+

How many steps are required to carry the data from the square identified in your puzzle input all the way to the access port?

+ +
+
+
+
+
+
+
+

Analysis

I freely admit that I worked out the program I wanted to write using graph paper and some Python doodles. There's no point in trying to write a Joy program until I'm sure I understand the problem well enough.

+

The first thing I did was to write a column of numbers from 1 to n (32 as it happens) and next to them the desired output number, to look for patterns directly:

+ +
1  0
+2  1
+3  2
+4  1
+5  2
+6  1
+7  2
+8  1
+9  2
+10 3
+11 2
+12 3
+13 4
+14 3
+15 2
+16 3
+17 4
+18 3
+19 2
+20 3
+21 4
+22 3
+23 2
+24 3
+25 4
+26 5
+27 4
+28 3
+29 4
+30 5
+31 6
+32 5
+ +
+
+
+
+
+
+
+

There are four groups repeating for a given "rank", then the pattern enlarges and four groups repeat again, etc.

+ +
        1 2
+      3 2 3 4
+    5 4 3 4 5 6
+  7 6 5 4 5 6 7 8
+9 8 7 6 5 6 7 8 9 10
+
+
+

Four of this pyramid interlock to tile the plane extending from the initial "1" square.

+ +
         2   3   |    4  5   |    6  7   |    8  9
+      10 11 12 13|14 15 16 17|18 19 20 21|22 23 24 25
+
+
+

And so on.

+ +
+
+
+
+
+
+
+

We can figure out the pattern for a row of the pyramid at a given "rank" $k$:

+

$2k - 1, 2k - 2, ..., k, k + 1, k + 2, ..., 2k$

+

or

+

$k + (k - 1), k + (k - 2), ..., k, k + 1, k + 2, ..., k + k$

+

This shows that the series consists at each place of $k$ plus some number that begins at $k - 1$, decreases to zero, then increases to $k$. Each row has $2k$ members.

+ +
+
+
+
+
+
+
+

Let's figure out how, given an index into a row, we can calculate the value there. The index will be from 0 to $k - 1$.

+

Let's look at an example, with $k = 4$:

+ +
0 1 2 3 4 5 6 7
+7 6 5 4 5 6 7 8
+ +
+
+
+
+
+
In [1]:
+
+
+
k = 4
+
+ +
+
+
+ +
+
+
+
+
+

Subtract $k$ from the index and take the absolute value:

+ +
+
+
+
+
+
In [2]:
+
+
+
for n in range(2 * k):
+    print abs(n - k),
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4 3 2 1 0 1 2 3
+
+
+
+ +
+
+ +
+
+
+
+
+

Not quite. Subtract $k - 1$ from the index and take the absolute value:

+ +
+
+
+
+
+
In [3]:
+
+
+
for n in range(2 * k):
+    print abs(n - (k - 1)),
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 0 1 2 3 4
+
+
+
+ +
+
+ +
+
+
+
+
+

Great, now add $k$...

+ +
+
+
+
+
+
In [4]:
+
+
+
for n in range(2 * k):
+    print abs(n - (k - 1)) + k,
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
7 6 5 4 5 6 7 8
+
+
+
+ +
+
+ +
+
+
+
+
+

So to write a function that can give us the value of a row at a given index:

+ +
+
+
+
+
+
In [5]:
+
+
+
def row_value(k, i):
+    i %= (2 * k)  # wrap the index at the row boundary.
+    return abs(i - (k - 1)) + k
+
+ +
+
+
+ +
+
+
+
In [6]:
+
+
+
k = 5
+for i in range(2 * k):
+    print row_value(k, i),
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9 8 7 6 5 6 7 8 9 10
+
+
+
+ +
+
+ +
+
+
+
+
+

(I'm leaving out details of how I figured this all out and just giving the relevent bits. It took a little while to zero in of the aspects of the pattern that were important for the task.)

+ +
+
+
+
+
+
+
+

Finding the rank and offset of a number.

Now that we can compute the desired output value for a given rank and the offset (index) into that rank, we need to determine how to find the rank and offset of a number.

+

The rank is easy to find by iteratively stripping off the amount already covered by previous ranks until you find the one that brackets the target number. Because each row is $2k$ places and there are $4$ per rank each rank contains $8k$ places. Counting the initial square we have:

+

$corner_k = 1 + \sum_{n=1}^k 8n$

+

I'm not mathematically sophisticated enough to turn this directly into a formula (but Sympy is, see below.) I'm going to write a simple Python function to iterate and search:

+ +
+
+
+
+
+
In [7]:
+
+
+
def rank_and_offset(n):
+    assert n >= 2  # Guard the domain.
+    n -= 2  # Subtract two,
+            # one for the initial square,
+            # and one because we are counting from 1 instead of 0.
+    k = 1
+    while True:
+        m = 8 * k  # The number of places total in this rank, 4(2k).
+        if n < m:
+            return k, n % (2 * k)
+        n -= m  # Remove this rank's worth.
+        k += 1
+
+ +
+
+
+ +
+
+
+
In [8]:
+
+
+
for n in range(2, 51):
+    print n, rank_and_offset(n)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2 (1, 0)
+3 (1, 1)
+4 (1, 0)
+5 (1, 1)
+6 (1, 0)
+7 (1, 1)
+8 (1, 0)
+9 (1, 1)
+10 (2, 0)
+11 (2, 1)
+12 (2, 2)
+13 (2, 3)
+14 (2, 0)
+15 (2, 1)
+16 (2, 2)
+17 (2, 3)
+18 (2, 0)
+19 (2, 1)
+20 (2, 2)
+21 (2, 3)
+22 (2, 0)
+23 (2, 1)
+24 (2, 2)
+25 (2, 3)
+26 (3, 0)
+27 (3, 1)
+28 (3, 2)
+29 (3, 3)
+30 (3, 4)
+31 (3, 5)
+32 (3, 0)
+33 (3, 1)
+34 (3, 2)
+35 (3, 3)
+36 (3, 4)
+37 (3, 5)
+38 (3, 0)
+39 (3, 1)
+40 (3, 2)
+41 (3, 3)
+42 (3, 4)
+43 (3, 5)
+44 (3, 0)
+45 (3, 1)
+46 (3, 2)
+47 (3, 3)
+48 (3, 4)
+49 (3, 5)
+50 (4, 0)
+
+
+
+ +
+
+ +
+
+
+
In [9]:
+
+
+
for n in range(2, 51):
+    k, i = rank_and_offset(n)
+    print n, row_value(k, i)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2 1
+3 2
+4 1
+5 2
+6 1
+7 2
+8 1
+9 2
+10 3
+11 2
+12 3
+13 4
+14 3
+15 2
+16 3
+17 4
+18 3
+19 2
+20 3
+21 4
+22 3
+23 2
+24 3
+25 4
+26 5
+27 4
+28 3
+29 4
+30 5
+31 6
+32 5
+33 4
+34 3
+35 4
+36 5
+37 6
+38 5
+39 4
+40 3
+41 4
+42 5
+43 6
+44 5
+45 4
+46 3
+47 4
+48 5
+49 6
+50 7
+
+
+
+ +
+
+ +
+
+
+
+
+

Putting it all together

+
+
+
+
+
+
In [10]:
+
+
+
def row_value(k, i):
+    return abs(i - (k - 1)) + k
+
+
+def rank_and_offset(n):
+    n -= 2  # Subtract two,
+            # one for the initial square,
+            # and one because we are counting from 1 instead of 0.
+    k = 1
+    while True:
+        m = 8 * k  # The number of places total in this rank, 4(2k).
+        if n < m:
+            return k, n % (2 * k)
+        n -= m  # Remove this rank's worth.
+        k += 1
+
+
+def aoc20173(n):
+    if n <= 1:
+        return 0
+    k, i = rank_and_offset(n)
+    return row_value(k, i)
+
+ +
+
+
+ +
+
+
+
In [11]:
+
+
+
aoc20173(23)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[11]:
+ + + + +
+
2
+
+ +
+ +
+
+ +
+
+
+
In [12]:
+
+
+
aoc20173(23000)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[12]:
+ + + + +
+
105
+
+ +
+ +
+
+ +
+
+
+
In [13]:
+
+
+
aoc20173(23000000000000)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[13]:
+ + + + +
+
4572225
+
+ +
+ +
+
+ +
+
+
+
+
+

Sympy to the Rescue

Find the rank for large numbers

Using e.g. Sympy we can find the rank directly by solving for the roots of an equation. For large numbers this will (eventually) be faster than iterating as rank_and_offset() does.

+ +
+
+
+
+
+
In [14]:
+
+
+
from sympy import floor, lambdify, solve, symbols
+from sympy import init_printing
+init_printing() 
+
+ +
+
+
+ +
+
+
+
In [15]:
+
+
+
k = symbols('k')
+
+ +
+
+
+ +
+
+
+
+
+

Since

+

$1 + 2 + 3 + ... + N = \frac{N(N + 1)}{2}$

+

and

+

$\sum_{n=1}^k 8n = 8(\sum_{n=1}^k n) = 8\frac{k(k + 1)}{2}$

+

We want:

+ +
+
+
+
+
+
In [16]:
+
+
+
E = 2 + 8 * k * (k + 1) / 2  # For the reason for adding 2 see above.
+
+E
+
+ +
+
+
+ +
+
+ + +
+ +
Out[16]:
+ + + + +
+$$4 k \left(k + 1\right) + 2$$ +
+ +
+ +
+
+ +
+
+
+
+
+

We can write a function to solve for $k$ given some $n$...

+ +
+
+
+
+
+
In [17]:
+
+
+
def rank_of(n):
+    return floor(max(solve(E - n, k))) + 1
+
+ +
+
+
+ +
+
+
+
+
+

First solve() for $E - n = 0$ which has two solutions (because the equation is quadratic so it has two roots) and since we only care about the larger one we use max() to select it. It will generally not be a nice integer (unless $n$ is the number of an end-corner of a rank) so we take the floor() and add 1 to get the integer rank of $n$. (Taking the ceiling() gives off-by-one errors on the rank boundaries. I don't know why. I'm basically like a monkey doing math here.) =-D

+

It gives correct answers:

+ +
+
+
+
+
+
In [18]:
+
+
+
for n in (9, 10, 25, 26, 49, 50):
+    print n, rank_of(n)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9 1
+10 2
+25 2
+26 3
+49 3
+50 4
+
+
+
+ +
+
+ +
+
+
+
+
+

And it runs much faster (at least for large numbers):

+ +
+
+
+
+
+
In [19]:
+
+
+
%time rank_of(23000000000000)  # Compare runtime with rank_and_offset()!
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
CPU times: user 68 ms, sys: 8 ms, total: 76 ms
+Wall time: 73.8 ms
+
+
+
+ +
+ +
Out[19]:
+ + + + +
+$$2397916$$ +
+ +
+ +
+
+ +
+
+
+
In [20]:
+
+
+
%time rank_and_offset(23000000000000)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
CPU times: user 308 ms, sys: 0 ns, total: 308 ms
+Wall time: 306 ms
+
+
+
+ +
+ +
Out[20]:
+ + + + +
+$$\left ( 2397916, \quad 223606\right )$$ +
+ +
+ +
+
+ +
+
+
+
+
+

After finding the rank you would still have to find the actual value of the rank's first corner and subtract it (plus 2) from the number and compute the offset as above and then the final output, but this overhead is partially shared by the other method, and overshadowed by the time it (the other iterative method) would take for really big inputs.

+

The fun thing to do here would be to graph the actual runtime of both methods against each other to find the trade-off point.

+ +
+
+
+
+
+
+
+

It took me a second to realize I could do this...

Sympy is a symbolic math library, and it supports symbolic manipulation of equations. I can put in $y$ (instead of a value) and ask it to solve for $k$.

+ +
+
+
+
+
+
In [21]:
+
+
+
y = symbols('y')
+
+ +
+
+
+ +
+
+
+
In [22]:
+
+
+
g, f = solve(E - y, k)
+
+ +
+
+
+ +
+
+
+
+
+

The equation is quadratic so there are two roots, we are interested in the greater one...

+ +
+
+
+
+
+
In [23]:
+
+
+
g
+
+ +
+
+
+ +
+
+ + +
+ +
Out[23]:
+ + + + +
+$$- \frac{1}{2} \sqrt{y - 1} - \frac{1}{2}$$ +
+ +
+ +
+
+ +
+
+
+
In [24]:
+
+
+
f
+
+ +
+
+
+ +
+
+ + +
+ +
Out[24]:
+ + + + +
+$$\frac{1}{2} \sqrt{y - 1} - \frac{1}{2}$$ +
+ +
+ +
+
+ +
+
+
+
+
+

Now we can take the floor(), add 1, and lambdify() the equation to get a Python function that calculates the rank directly.

+ +
+
+
+
+
+
In [25]:
+
+
+
floor(f) + 1
+
+ +
+
+
+ +
+
+ + +
+ +
Out[25]:
+ + + + +
+$$\lfloor{\frac{1}{2} \sqrt{y - 1} - \frac{1}{2}}\rfloor + 1$$ +
+ +
+ +
+
+ +
+
+
+
In [26]:
+
+
+
F = lambdify(y, floor(f) + 1)
+
+ +
+
+
+ +
+
+
+
In [27]:
+
+
+
for n in (9, 10, 25, 26, 49, 50):
+    print n, int(F(n))
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
9 1
+10 2
+25 2
+26 3
+49 3
+50 4
+
+
+
+ +
+
+ +
+
+
+
+
+

It's pretty fast.

+ +
+
+
+
+
+
In [28]:
+
+
+
%time int(F(23000000000000))  # The clear winner.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
+Wall time: 11.9 µs
+
+
+
+ +
+ +
Out[28]:
+ + + + +
+$$2397916$$ +
+ +
+ +
+
+ +
+
+
+
+
+

Knowing the equation we could write our own function manually, but the speed is no better.

+ +
+
+
+
+
+
In [29]:
+
+
+
from math import floor as mfloor, sqrt
+
+def mrank_of(n):
+    return int(mfloor(sqrt(23000000000000 - 1) / 2 - 0.5) + 1)
+
+ +
+
+
+ +
+
+
+
In [30]:
+
+
+
%time mrank_of(23000000000000)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
+Wall time: 12.9 µs
+
+
+
+ +
+ +
Out[30]:
+ + + + +
+$$2397916$$ +
+ +
+ +
+
+ +
+
+
+
+
+

Given $n$ and a rank, compute the offset.

Now that we have a fast way to get the rank, we still need to use it to compute the offset into a pyramid row.

+ +
+
+
+
+
+
In [31]:
+
+
+
def offset_of(n, k):
+    return (n - 2 + 4 * k * (k - 1)) % (2 * k)
+
+ +
+
+
+ +
+
+
+
+
+

(Note the sneaky way the sign changes from $k(k + 1)$ to $k(k - 1)$. This is because we want to subract the $(k - 1)$th rank's total places (its own and those of lesser rank) from our $n$ of rank $k$. Substituting $k - 1$ for $k$ in $k(k + 1)$ gives $(k - 1)(k - 1 + 1)$, which of course simplifies to $k(k - 1)$.)

+ +
+
+
+
+
+
In [32]:
+
+
+
offset_of(23000000000000, 2397916)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[32]:
+ + + + +
+$$223606$$ +
+ +
+ +
+
+ +
+
+
+
+
+

So, we can compute the rank, then the offset, then the row value.

+ +
+
+
+
+
+
In [33]:
+
+
+
def rank_of(n):
+    return int(mfloor(sqrt(n - 1) / 2 - 0.5) + 1)
+
+
+def offset_of(n, k):
+    return (n - 2 + 4 * k * (k - 1)) % (2 * k)
+
+
+def row_value(k, i):
+    return abs(i - (k - 1)) + k
+
+
+def aoc20173(n):
+    k = rank_of(n)
+    i = offset_of(n, k)
+    return row_value(k, i)
+
+ +
+
+
+ +
+
+
+
In [34]:
+
+
+
aoc20173(23)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[34]:
+ + + + +
+$$2$$ +
+ +
+ +
+
+ +
+
+
+
In [35]:
+
+
+
aoc20173(23000)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[35]:
+ + + + +
+$$105$$ +
+ +
+ +
+
+ +
+
+
+
In [36]:
+
+
+
aoc20173(23000000000000)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[36]:
+ + + + +
+$$4572225$$ +
+ +
+ +
+
+ +
+
+
+
In [37]:
+
+
+
%time aoc20173(23000000000000000000000000)  # Fast for large values.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
CPU times: user 0 ns, sys: 0 ns, total: 0 ns
+Wall time: 20 µs
+
+
+
+ +
+ +
Out[37]:
+ + + + +
+$$2690062495969$$ +
+ +
+ +
+
+ +
+
+
+
+
+

A Joy Version

At this point I feel confident that I can implement a concise version of this code in Joy. ;-)

+ +
+
+
+
+
+
In [38]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

rank_of

+
   n rank_of
+---------------
+      k
+
+
+

The translation is straightforward.

+ +
int(floor(sqrt(n - 1) / 2 - 0.5) + 1)
+
+rank_of == -- sqrt 2 / 0.5 - floor ++
+ +
+
+
+
+
+
In [39]:
+
+
+
define('rank_of == -- sqrt 2 / 0.5 - floor ++')
+
+ +
+
+
+ +
+
+
+
+
+

offset_of

+
   n k offset_of
+-------------------
+         i
+
+(n - 2 + 4 * k * (k - 1)) % (2 * k)
+
+
+

A little tricky...

+ +
n k dup 2 *
+n k k 2 *
+n k k*2 [Q] dip %
+n k Q k*2 %
+
+n k dup --
+n k k --
+n k k-1 4 * * 2 + -
+n k*k-1*4     2 + -
+n k*k-1*4+2       -
+n-k*k-1*4+2
+
+n-k*k-1*4+2 k*2 %
+n-k*k-1*4+2%k*2
+
+
+

Ergo:

+ +
offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %
+ +
+
+
+
+
+
In [40]:
+
+
+
define('offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %')
+
+ +
+
+
+ +
+
+
+
+
+

row_value

+
   k i row_value
+-------------------
+        n
+
+abs(i - (k - 1)) + k
+
+k i over -- - abs +
+k i k    -- - abs +
+k i k-1     - abs +
+k i-k-1       abs +
+k |i-k-1|         +
+k+|i-k-1|
+ +
+
+
+
+
+
In [41]:
+
+
+
define('row_value == over -- - abs +')
+
+ +
+
+
+ +
+
+
+
+
+

aoc2017.3

+
   n aoc2017.3
+-----------------
+        m
+
+n dup rank_of
+n k [offset_of] dupdip
+n k offset_of k
+i             k swap row_value
+k i row_value
+m
+ +
+
+
+
+
+
In [42]:
+
+
+
define('aoc2017.3 == dup rank_of [offset_of] dupdip swap row_value')
+
+ +
+
+
+ +
+
+
+
In [43]:
+
+
+
J('23 aoc2017.3')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
In [44]:
+
+
+
J('23000 aoc2017.3')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
105
+
+
+
+ +
+
+ +
+
+
+
In [45]:
+
+
+
V('23000000000000 aoc2017.3')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                    . 23000000000000 aoc2017.3
+                                     23000000000000 . aoc2017.3
+                                     23000000000000 . dup rank_of [offset_of] dupdip swap row_value
+                      23000000000000 23000000000000 . rank_of [offset_of] dupdip swap row_value
+                      23000000000000 23000000000000 . -- sqrt 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value
+                      23000000000000 22999999999999 . sqrt 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value
+                   23000000000000 4795831.523312615 . 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value
+                 23000000000000 4795831.523312615 2 . / 0.5 - floor ++ [offset_of] dupdip swap row_value
+                  23000000000000 2397915.7616563076 . 0.5 - floor ++ [offset_of] dupdip swap row_value
+              23000000000000 2397915.7616563076 0.5 . - floor ++ [offset_of] dupdip swap row_value
+                  23000000000000 2397915.2616563076 . floor ++ [offset_of] dupdip swap row_value
+                             23000000000000 2397915 . ++ [offset_of] dupdip swap row_value
+                             23000000000000 2397916 . [offset_of] dupdip swap row_value
+                 23000000000000 2397916 [offset_of] . dupdip swap row_value
+                             23000000000000 2397916 . offset_of 2397916 swap row_value
+                             23000000000000 2397916 . dup 2 * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value
+                     23000000000000 2397916 2397916 . 2 * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value
+                   23000000000000 2397916 2397916 2 . * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value
+                     23000000000000 2397916 4795832 . [dup -- 4 * * 2 + -] dip % 2397916 swap row_value
+23000000000000 2397916 4795832 [dup -- 4 * * 2 + -] . dip % 2397916 swap row_value
+                             23000000000000 2397916 . dup -- 4 * * 2 + - 4795832 % 2397916 swap row_value
+                     23000000000000 2397916 2397916 . -- 4 * * 2 + - 4795832 % 2397916 swap row_value
+                     23000000000000 2397916 2397915 . 4 * * 2 + - 4795832 % 2397916 swap row_value
+                   23000000000000 2397916 2397915 4 . * * 2 + - 4795832 % 2397916 swap row_value
+                     23000000000000 2397916 9591660 . * 2 + - 4795832 % 2397916 swap row_value
+                      23000000000000 22999994980560 . 2 + - 4795832 % 2397916 swap row_value
+                    23000000000000 22999994980560 2 . + - 4795832 % 2397916 swap row_value
+                      23000000000000 22999994980562 . - 4795832 % 2397916 swap row_value
+                                            5019438 . 4795832 % 2397916 swap row_value
+                                    5019438 4795832 . % 2397916 swap row_value
+                                             223606 . 2397916 swap row_value
+                                     223606 2397916 . swap row_value
+                                     2397916 223606 . row_value
+                                     2397916 223606 . over -- - abs +
+                             2397916 223606 2397916 . -- - abs +
+                             2397916 223606 2397915 . - abs +
+                                   2397916 -2174309 . abs +
+                                    2397916 2174309 . +
+                                            4572225 . 
+
+
+
+ +
+
+ +
+
+
+
+
+ +
  rank_of == -- sqrt 2 / 0.5 - floor ++
+offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %
+row_value == over -- - abs +
+
+aoc2017.3 == dup rank_of [offset_of] dupdip swap row_value
+ +
+
+
+
+
+ + + + + + diff --git a/docs/Advent of Code 2017 December 3rd.ipynb b/docs/Advent of Code 2017 December 3rd.ipynb new file mode 100644 index 0000000..cdb7d80 --- /dev/null +++ b/docs/Advent of Code 2017 December 3rd.ipynb @@ -0,0 +1,1426 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advent of Code 2017\n", + "\n", + "## December 3rd\n", + "\n", + "You come across an experimental new kind of memory stored on an infinite two-dimensional grid.\n", + "\n", + "Each square on the grid is allocated in a spiral pattern starting at a location marked 1 and then counting up while spiraling outward. For example, the first few squares are allocated like this:\n", + "\n", + " 17 16 15 14 13\n", + " 18 5 4 3 12\n", + " 19 6 1 2 11\n", + " 20 7 8 9 10\n", + " 21 22 23---> ...\n", + "\n", + "While this is very space-efficient (no squares are skipped), requested data must be carried back to square 1 (the location of the only access port for this memory system) by programs that can only move up, down, left, or right. They always take the shortest path: the Manhattan Distance between the location of the data and square 1.\n", + "\n", + "For example:\n", + "\n", + "* Data from square 1 is carried 0 steps, since it's at the access port.\n", + "* Data from square 12 is carried 3 steps, such as: down, left, left.\n", + "* Data from square 23 is carried only 2 steps: up twice.\n", + "* Data from square 1024 must be carried 31 steps.\n", + "\n", + "How many steps are required to carry the data from the square identified in your puzzle input all the way to the access port?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Analysis\n", + "\n", + "I freely admit that I worked out the program I wanted to write using graph paper and some Python doodles. There's no point in trying to write a Joy program until I'm sure I understand the problem well enough.\n", + "\n", + "The first thing I did was to write a column of numbers from 1 to n (32 as it happens) and next to them the desired output number, to look for patterns directly:\n", + "\n", + " 1 0\n", + " 2 1\n", + " 3 2\n", + " 4 1\n", + " 5 2\n", + " 6 1\n", + " 7 2\n", + " 8 1\n", + " 9 2\n", + " 10 3\n", + " 11 2\n", + " 12 3\n", + " 13 4\n", + " 14 3\n", + " 15 2\n", + " 16 3\n", + " 17 4\n", + " 18 3\n", + " 19 2\n", + " 20 3\n", + " 21 4\n", + " 22 3\n", + " 23 2\n", + " 24 3\n", + " 25 4\n", + " 26 5\n", + " 27 4\n", + " 28 3\n", + " 29 4\n", + " 30 5\n", + " 31 6\n", + " 32 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There are four groups repeating for a given \"rank\", then the pattern enlarges and four groups repeat again, etc.\n", + "\n", + " 1 2\n", + " 3 2 3 4\n", + " 5 4 3 4 5 6\n", + " 7 6 5 4 5 6 7 8\n", + " 9 8 7 6 5 6 7 8 9 10\n", + "\n", + "Four of this pyramid interlock to tile the plane extending from the initial \"1\" square.\n", + "\n", + "\n", + " 2 3 | 4 5 | 6 7 | 8 9\n", + " 10 11 12 13|14 15 16 17|18 19 20 21|22 23 24 25\n", + "\n", + "And so on." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can figure out the pattern for a row of the pyramid at a given \"rank\" $k$:\n", + "\n", + "$2k - 1, 2k - 2, ..., k, k + 1, k + 2, ..., 2k$\n", + "\n", + "or\n", + "\n", + "$k + (k - 1), k + (k - 2), ..., k, k + 1, k + 2, ..., k + k$\n", + "\n", + "This shows that the series consists at each place of $k$ plus some number that begins at $k - 1$, decreases to zero, then increases to $k$. Each row has $2k$ members." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's figure out how, given an index into a row, we can calculate the value there. The index will be from 0 to $k - 1$. \n", + "\n", + " Let's look at an example, with $k = 4$:\n", + "\n", + " 0 1 2 3 4 5 6 7\n", + " 7 6 5 4 5 6 7 8" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "k = 4" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Subtract $k$ from the index and take the absolute value:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4 3 2 1 0 1 2 3\n" + ] + } + ], + "source": [ + "for n in range(2 * k):\n", + " print abs(n - k)," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Not quite. Subtract $k - 1$ from the index and take the absolute value:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 0 1 2 3 4\n" + ] + } + ], + "source": [ + "for n in range(2 * k):\n", + " print abs(n - (k - 1))," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Great, now add $k$..." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "7 6 5 4 5 6 7 8\n" + ] + } + ], + "source": [ + "for n in range(2 * k):\n", + " print abs(n - (k - 1)) + k," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So to write a function that can give us the value of a row at a given index:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "def row_value(k, i):\n", + " i %= (2 * k) # wrap the index at the row boundary.\n", + " return abs(i - (k - 1)) + k" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9 8 7 6 5 6 7 8 9 10\n" + ] + } + ], + "source": [ + "k = 5\n", + "for i in range(2 * k):\n", + " print row_value(k, i)," + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(I'm leaving out details of how I figured this all out and just giving the relevent bits. It took a little while to zero in of the aspects of the pattern that were important for the task.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Finding the rank and offset of a number.\n", + "Now that we can compute the desired output value for a given rank and the offset (index) into that rank, we need to determine how to find the rank and offset of a number.\n", + "\n", + "The rank is easy to find by iteratively stripping off the amount already covered by previous ranks until you find the one that brackets the target number. Because each row is $2k$ places and there are $4$ per rank each rank contains $8k$ places. Counting the initial square we have:\n", + "\n", + "$corner_k = 1 + \\sum_{n=1}^k 8n$\n", + "\n", + "I'm not mathematically sophisticated enough to turn this directly into a formula (but Sympy is, see below.) I'm going to write a simple Python function to iterate and search:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def rank_and_offset(n):\n", + " assert n >= 2 # Guard the domain.\n", + " n -= 2 # Subtract two,\n", + " # one for the initial square,\n", + " # and one because we are counting from 1 instead of 0.\n", + " k = 1\n", + " while True:\n", + " m = 8 * k # The number of places total in this rank, 4(2k).\n", + " if n < m:\n", + " return k, n % (2 * k)\n", + " n -= m # Remove this rank's worth.\n", + " k += 1" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 (1, 0)\n", + "3 (1, 1)\n", + "4 (1, 0)\n", + "5 (1, 1)\n", + "6 (1, 0)\n", + "7 (1, 1)\n", + "8 (1, 0)\n", + "9 (1, 1)\n", + "10 (2, 0)\n", + "11 (2, 1)\n", + "12 (2, 2)\n", + "13 (2, 3)\n", + "14 (2, 0)\n", + "15 (2, 1)\n", + "16 (2, 2)\n", + "17 (2, 3)\n", + "18 (2, 0)\n", + "19 (2, 1)\n", + "20 (2, 2)\n", + "21 (2, 3)\n", + "22 (2, 0)\n", + "23 (2, 1)\n", + "24 (2, 2)\n", + "25 (2, 3)\n", + "26 (3, 0)\n", + "27 (3, 1)\n", + "28 (3, 2)\n", + "29 (3, 3)\n", + "30 (3, 4)\n", + "31 (3, 5)\n", + "32 (3, 0)\n", + "33 (3, 1)\n", + "34 (3, 2)\n", + "35 (3, 3)\n", + "36 (3, 4)\n", + "37 (3, 5)\n", + "38 (3, 0)\n", + "39 (3, 1)\n", + "40 (3, 2)\n", + "41 (3, 3)\n", + "42 (3, 4)\n", + "43 (3, 5)\n", + "44 (3, 0)\n", + "45 (3, 1)\n", + "46 (3, 2)\n", + "47 (3, 3)\n", + "48 (3, 4)\n", + "49 (3, 5)\n", + "50 (4, 0)\n" + ] + } + ], + "source": [ + "for n in range(2, 51):\n", + " print n, rank_and_offset(n)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 1\n", + "3 2\n", + "4 1\n", + "5 2\n", + "6 1\n", + "7 2\n", + "8 1\n", + "9 2\n", + "10 3\n", + "11 2\n", + "12 3\n", + "13 4\n", + "14 3\n", + "15 2\n", + "16 3\n", + "17 4\n", + "18 3\n", + "19 2\n", + "20 3\n", + "21 4\n", + "22 3\n", + "23 2\n", + "24 3\n", + "25 4\n", + "26 5\n", + "27 4\n", + "28 3\n", + "29 4\n", + "30 5\n", + "31 6\n", + "32 5\n", + "33 4\n", + "34 3\n", + "35 4\n", + "36 5\n", + "37 6\n", + "38 5\n", + "39 4\n", + "40 3\n", + "41 4\n", + "42 5\n", + "43 6\n", + "44 5\n", + "45 4\n", + "46 3\n", + "47 4\n", + "48 5\n", + "49 6\n", + "50 7\n" + ] + } + ], + "source": [ + "for n in range(2, 51):\n", + " k, i = rank_and_offset(n)\n", + " print n, row_value(k, i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Putting it all together" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def row_value(k, i):\n", + " return abs(i - (k - 1)) + k\n", + "\n", + "\n", + "def rank_and_offset(n):\n", + " n -= 2 # Subtract two,\n", + " # one for the initial square,\n", + " # and one because we are counting from 1 instead of 0.\n", + " k = 1\n", + " while True:\n", + " m = 8 * k # The number of places total in this rank, 4(2k).\n", + " if n < m:\n", + " return k, n % (2 * k)\n", + " n -= m # Remove this rank's worth.\n", + " k += 1\n", + "\n", + "\n", + "def aoc20173(n):\n", + " if n <= 1:\n", + " return 0\n", + " k, i = rank_and_offset(n)\n", + " return row_value(k, i)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aoc20173(23)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "105" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aoc20173(23000)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "4572225" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aoc20173(23000000000000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sympy to the Rescue\n", + "### Find the rank for large numbers\n", + "Using e.g. Sympy we can find the rank directly by solving for the roots of an equation. For large numbers this will (eventually) be faster than iterating as `rank_and_offset()` does." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "from sympy import floor, lambdify, solve, symbols\n", + "from sympy import init_printing\n", + "init_printing() " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "k = symbols('k')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since\n", + "\n", + "$1 + 2 + 3 + ... + N = \\frac{N(N + 1)}{2}$\n", + "\n", + "and\n", + "\n", + "$\\sum_{n=1}^k 8n = 8(\\sum_{n=1}^k n) = 8\\frac{k(k + 1)}{2}$\n", + "\n", + "We want:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHwAAAAUBAMAAAC9l0S6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMpndu3bvImbNiRBU\nq0Qb3U6NAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACAElEQVQ4EW1UzWsTQRx9NB+bzSZt6D/gHvRS\nKOZQWhAK6UHrsRShhyIW2rvBiznp0ltPxdJLDi2h9aIXc7C0emlA6k38wKKXYsA/IFZEhITG95vZ\nj5klD3bmvff7vczsMBvARsOWiSrUE26zSeD1uracGrw7Vbscqm9p99H1BWXNcNzRRZdruL7mxvi+\nDbwxtFDvE151Oec2OAz4EJt8JjrCBGd68r78YLy4pFXkltvIr9Fq7ALjfV2b49Rjr0YYBx7Q8tZs\nN19F+ZJWi/FiVdUcmQ7Dtnh1Hcd+6Ic/6vZVvFBn3PVL9yt8D58tOzj7rDut1XFgx6ky3PMRGD/t\nrPQCIMvHG+Se/IOCHd/SZvTuVL0W9y7xj0ftE+pMByj1V72AnLDj77SZuJhnd0XiN31Vy3eBsd+6\n7UWzOdts7ikhR4drQk13zAfeQuLz95akKPHM+W2hAnt1FTfdZYoPFxd/z70r50r6ZfOn3add4YQd\n/6nN2C35eCzWBgq/vEGRLBsA2zzHFhTseProeNdXpO0PyjVcSrzoA18xUWmRE3Z8SpuR69x6OS3X\n5PnwezbA8irpOPVd5G7ISRFRfPrhXgA8U17susPhUOIm5NImiOLKUTdSmOUmzcLkk0lwnFDjk7Fc\ns4NnV7e1odIfrFGKqVOLaZospo1RujHKFG/0n9V/fdOG1o/ONcUAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$4 k \\left(k + 1\\right) + 2$$" + ], + "text/plain": [ + "4⋅k⋅(k + 1) + 2" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "E = 2 + 8 * k * (k + 1) / 2 # For the reason for adding 2 see above.\n", + "\n", + "E" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can write a function to solve for $k$ given some $n$..." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def rank_of(n):\n", + " return floor(max(solve(E - n, k))) + 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First `solve()` for $E - n = 0$ which has two solutions (because the equation is quadratic so it has two roots) and since we only care about the larger one we use `max()` to select it. It will generally not be a nice integer (unless $n$ is the number of an end-corner of a rank) so we take the `floor()` and add 1 to get the integer rank of $n$. (Taking the `ceiling()` gives off-by-one errors on the rank boundaries. I don't know why. I'm basically like a monkey doing math here.) =-D\n", + "\n", + "It gives correct answers:" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9 1\n", + "10 2\n", + "25 2\n", + "26 3\n", + "49 3\n", + "50 4\n" + ] + } + ], + "source": [ + "for n in (9, 10, 25, 26, 49, 50):\n", + " print n, rank_of(n)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And it runs much faster (at least for large numbers):" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 68 ms, sys: 8 ms, total: 76 ms\n", + "Wall time: 73.8 ms\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAPBAMAAABElc8tAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABkUlEQVQoFY2QPUscURSGn4l7d4y7q6ONxGqZ\ngEbSCFZWTmfpYCHEFK6CRdIoJmQaYacNBBJJ4wcqKNhYaKNYBFeCnYKLjdhNK4j5NrKbOHlnxx+Q\nAzP33nOf+77nHCy338MKXlUxPW8cMps9QcBIMMF92HOvYRT7lg4KdzyLrHla4zi+Mas8cuDCB7PP\nU5iCRU6r1HgBkzzQZSn7gWzRTE4LairSD0sw7b0NTZ06lLHB9tp2sL/CqaD3egQVXxCyMz+U1o53\njPeR/5lCA0o0YlsvxmZYllKoRB8PpXSbQvWhz0mO5t/Que7Li0oktyjxyt01IFOPWBFDS0k/e4Hc\nYaFchXGdPnH+N4Vin14Z4epTiz5XR2UPjnVoPRm6r6kGX0LIF6EdBiVC0vSGVsj+SmvaEhTBGZYj\n0Qa0p+ndNKBcKYU0PClliuSdj7DtXDqZb5D5Lrd5hp0UGlZN0BXMvuSawh+O/ecSLgjK75oD6SXD\nzM4YdVeJ4xrN7uMQ232iGyvpeNYNoXttL9K221PiP+If4oN7f8ioQFsAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$2397916$$" + ], + "text/plain": [ + "2397916" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time rank_of(23000000000000) # Compare runtime with rank_and_offset()!" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 308 ms, sys: 0 ns, total: 308 ms\n", + "Wall time: 306 ms\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAALAAAAAUBAMAAADfFKqVAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIma7zZnddlTvRIky\nEKtZsEGBAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADLElEQVQ4Ea2VT2hcVRjFf28yfzNzZ6ZIC9LN\nQwpSXDQahCpiYzdCqWagnYUGw4h/EAo1QkMXin0b3biYqYqkwcJsrLiQBHQMMmJm46qLeUJUumlS\nQaG0UhvHWGrT6bn3PYszuBih3+Lcf+ee993zvncfeD73PBJlSd4HO488Abvb++GH9iUKx2fabczM\nt3bVRfvNTty723jVyQ4RtL8IIL/yjbY8ZHmWfUntU5gNVptehbpv3uf+cqLf79/mgu+dhuxZMdaa\nqSk1A3GR/E0c7CS7iTnEUZKBeTFmr0GiQjEk18jcoFQrNihWUsp0g8vwCxdntyX3KGMTA6oa/AZn\nIjgVsMVYhUn2wpcxOz9HukyuRvHW+CLrU6Up8r/ndbAOPViFjITHrw+ravwRXOs4+KxpeixZ256E\nehixTYNdkNyWsBbq/voEGdv7FPMHnOo44bGGZoZjOpSwA/m1yWN2/TYsBTH7EPNuS1qZmWPklPFN\nTejkHyrjphMuHV553pGG4PVQExZ+XKZ3fr5p/pTwXMxu8YijLy3jffWCfCC5KSd858O074TXD5IL\nHGsAxv/W0MLuV0LT81nw1O8ux+w9vObYxy1+3eRp3rsB6xok57KrQSS8TcoWx1CkNzThIL9o+iHP\nfa+MJRyx32XR8lMVi7mzJE6el8cn7OjBt1Yjj0s1EtafoajasQPOhFuw73MJy4qI3Y2E58ErM6Zk\nKcrtlyKNa6HLOD1FQv4MRcbmYmEHHAhelrCvl1cPYnbXWZGtsKO0HQknNzBi2HhWO/UYFfd/ZPyO\nTcWCXDgQqOr3NScFYcw+517ed/BGboL09cRpumUKOhN7ywXVrxUuyLWGe9K/oFAhU3bwgUqj3JXH\n9gM5+g97Dy25cKw9W0v41Ocyz5iDqksrfCJc8yNhrnAh0EcwELvarV9x8ADZvygumwXSgfkYx4YZ\nzqkAdDnU+KT6OLSqTT1oQRr5qoo3dbn3s+1ehVfDAeHpfn8LB+PVI9rTmu1gVt7uxGwO2096pMiO\nyIvEPNVGZSRddIP8j9AlxMOj8X8ajRaz1tTqoh8l/FFIdzk2W88X3OPQr+kOAx0PXfbg7EwAAAAA\nSUVORK5CYII=\n", + "text/latex": [ + "$$\\left ( 2397916, \\quad 223606\\right )$$" + ], + "text/plain": [ + "(2397916, 223606)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time rank_and_offset(23000000000000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After finding the rank you would still have to find the actual value of the rank's first corner and subtract it (plus 2) from the number and compute the offset as above and then the final output, but this overhead is partially shared by the other method, and overshadowed by the time it (the other iterative method) would take for really big inputs.\n", + "\n", + "The fun thing to do here would be to graph the actual runtime of both methods against each other to find the trade-off point." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### It took me a second to realize I could do this...\n", + "Sympy is a *symbolic* math library, and it supports symbolic manipulation of equations. I can put in $y$ (instead of a value) and ask it to solve for $k$." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "y = symbols('y')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "g, f = solve(E - y, k)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The equation is quadratic so there are two roots, we are interested in the greater one..." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIkAAAAqBAMAAAB1gmW6AAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEM3dMlTvq5l2ZiK7\niUTiBfEGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB6klEQVRIDe2Uv0vDQBTHv9eiTU2pRQdxsqLo\n4CI6CEKxo5tObqKOThYHEUEUlyKIOklFwf4J4iQ42EEQt86C6Ca62IogqKh3lzQ/nkm8BEdvuL73\nve/ny/WlDfDXayoTJdFNseW1CCk/qaMIKQClaK/2/ShF+/8UYwLuuex8eS86LTdFnpleoXafPjAl\ncedDUTkw5YS6/XqSUlzoL9vWbbsMrNwUsbIsESK12qQX1jTnpfpr7V5HHcW6l+yvXXseJcOlsMG/\nSEmWgc5N6GQOIe8S51epTiFZc19JPYUJcB/QJzeQqiimtA2L1QvI/14Nek6AfCwM82jd5bXlAIy7\nsB6BDOWF0aRE6VyPfbxrqfIt/Y6JvPOokeLWvLuZMhDP8DMtiz1iUZ9L8yAwLehUAZeRU5KfQLeg\ntUr6LXIK+0DTuqDZaundnaItPa+4lZ/d6daFFHeOY8fGKZ/Mr6tBmUZWwO2dqM+r91JaRJfsZeO3\nWZRpSGTQPCvqVG1ASqO4kp+Bm0WZLv5sEi+iTr8WpPRQysvPwM2iTFesbqZgTIFuRNtUQ0HceH0c\nWoJSYVKW96lqlSEKSo2EYG0robR1+0i9olRJHXU4CcV/92eOU8WSUuPAgSLqsBFKz90U+Ush5KJU\njL/8wqcY1Dcp15UsZrvPlwAAAABJRU5ErkJggg==\n", + "text/latex": [ + "$$- \\frac{1}{2} \\sqrt{y - 1} - \\frac{1}{2}$$" + ], + "text/plain": [ + " _______ \n", + " ╲╱ y - 1 1\n", + "- ───────── - ─\n", + " 2 2" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAqBAMAAACKDIIdAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiuzKJ\nRN0MreaOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB9ElEQVRIDe2Vu0vDUBTGvzRNSrSNILgX3TVD\nwU2LD3DRVqgIOthF0akdXETQbi4OVXDQoTg46aCLexedCvY/aEHBRVQQfOCj3nOrmCa3ubGuHmjP\nyXe+3z1tb24K/C06rVZ4pYdR6miiFTiWeuAjM63A0P/h322Y8AfTauK4d6wthPccpmaXQni8mduh\ni2Aj6zA1u6zDqb7l3I9DK//UXpU29DTm6ve7lF8Ik0Kvv4OnVgWw34MXzglgwN/BGxCyPuFF9nSY\nT2PbalzE3+QqEFaiyDSy8sk0TE8DW1oWhz5hfgzugUKRASZ7WYE0HllW125ZXJ+w8mtyPwm3qyR0\ncIwqishGlL1vUlnJt79StoXsOyvPzHxJwDT0KGVbyGD0AkqRgAO0xSnbQgpnygjxHZpBJWcDqZTC\ng/vo4kzsfC7fCDcePHtvZ+aIX2ovWPnSp+19cW1MHbJ9UOO4KJPBeIvEKQez6jtl74ghzFxBC4Eo\nNx6H+Kc1c21pb5C6w0A3EKgiWN/WyghnIguzcpb2JnGC0MM3bDpvDa811i2CWZj1Pzx938vt7t1Z\npFWK7o5cibxxz5XcKXCYcRK1pKAll6a4ZV5uFDh0PlJJYlfQlEldMPLAKbAkc7r77UnoeRg3pVTV\n3ZQphdLZBBBiD5QW4PVa7QOfZ0qXehvwRMIAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$\\frac{1}{2} \\sqrt{y - 1} - \\frac{1}{2}$$" + ], + "text/plain": [ + " _______ \n", + "╲╱ y - 1 1\n", + "───────── - ─\n", + " 2 2" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can take the `floor()`, add 1, and `lambdify()` the equation to get a Python function that calculates the rank directly." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAK0AAAAqBAMAAAAzNMYQAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAEGYiq+/dVJl2zbsy\niUT7WiApAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACUUlEQVRIDe2Uv2/TQBTHv1YgsdMmRCUwdCEz\nElIHCANLqAAx0TLASpEgAwxMSGXrUImqVCJigimRqBgipHZg60D+BEZAQup/EH5ISCBKuPfsc8/2\nw2fHYuOk5L177/v9+Hw+G/ino3J9GrzV1Vz/MgU3g8ubhgu7y66Q7sfusiv+c6Ud8Gv23Ysq3Ik8\nPscuEXXFmjyNKi5IEqEWdQmC2Em8JkmEWhp3jvURRWkgMKRS4PKk3lkqupd/Lh423f3DPC3Trqok\nYm60MR+dWmdZuY9F0sOGWFbFBJekyfU6KwLAubpk5T7yfb40ya21BC7Qz8r1pUnuSRFbnPsMcJ73\ncC62vsLrXQFqlWX0Y8suwqUlej3gvDvAXnHuMf7MAO13ilVWv8bRHn6o6LzqqnFvpNJgf+ep0H1N\nBe3yz9nH4fDucLhNDZYaz61+elkVz1BnvDD7i6IxCuxD5avi3CbWJjy6hjkKcHETqNBe4A1mOiZU\n5UW4/X1UG8R7gnGLojGKcE/tYpVRzQ9PFwymStdvbbeilXCmvw/Be+xL+bmVNvZGJHO/4WUg3wxi\nStCuOJctzG2i9ptmpYN6h+KRgcNzyv8+tEtzj5tS5l4EbnDxbZVvv9ya6ZkiOdcuzY2omKvOwdKI\nyuNL3Ky/2OKY/qddIvdE9w6w0wi45fjbkEb2Xe3u/TTRAz5f3m6aJtnzXcl6WKkfhGmOxO4qd3Lg\nQqndtRFq8yRWl7eWB6e1dtcqSnxwtSNbtLpm1+Dl59pd7U/vr2Rboqmyu3Ymk++mI1ue5voDRu6s\n5n/E50UAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$\\lfloor{\\frac{1}{2} \\sqrt{y - 1} - \\frac{1}{2}}\\rfloor + 1$$" + ], + "text/plain": [ + "⎢ _______ ⎥ \n", + "⎢╲╱ y - 1 1⎥ \n", + "⎢───────── - ─⎥ + 1\n", + "⎣ 2 2⎦ " + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "floor(f) + 1" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "F = lambdify(y, floor(f) + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9 1\n", + "10 2\n", + "25 2\n", + "26 3\n", + "49 3\n", + "50 4\n" + ] + } + ], + "source": [ + "for n in (9, 10, 25, 26, 49, 50):\n", + " print n, int(F(n))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It's pretty fast." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n", + "Wall time: 11.9 µs\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAPBAMAAABElc8tAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABkUlEQVQoFY2QPUscURSGn4l7d4y7q6ONxGqZ\ngEbSCFZWTmfpYCHEFK6CRdIoJmQaYacNBBJJ4wcqKNhYaKNYBFeCnYKLjdhNK4j5NrKbOHlnxx+Q\nAzP33nOf+77nHCy338MKXlUxPW8cMps9QcBIMMF92HOvYRT7lg4KdzyLrHla4zi+Mas8cuDCB7PP\nU5iCRU6r1HgBkzzQZSn7gWzRTE4LairSD0sw7b0NTZ06lLHB9tp2sL/CqaD3egQVXxCyMz+U1o53\njPeR/5lCA0o0YlsvxmZYllKoRB8PpXSbQvWhz0mO5t/Que7Li0oktyjxyt01IFOPWBFDS0k/e4Hc\nYaFchXGdPnH+N4Vin14Z4epTiz5XR2UPjnVoPRm6r6kGX0LIF6EdBiVC0vSGVsj+SmvaEhTBGZYj\n0Qa0p+ndNKBcKYU0PClliuSdj7DtXDqZb5D5Lrd5hp0UGlZN0BXMvuSawh+O/ecSLgjK75oD6SXD\nzM4YdVeJ4xrN7uMQ232iGyvpeNYNoXttL9K221PiP+If4oN7f8ioQFsAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$2397916$$" + ], + "text/plain": [ + "2397916" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time int(F(23000000000000)) # The clear winner." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Knowing the equation we could write our own function manually, but the speed is no better." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "from math import floor as mfloor, sqrt\n", + "\n", + "def mrank_of(n):\n", + " return int(mfloor(sqrt(23000000000000 - 1) / 2 - 0.5) + 1)" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n", + "Wall time: 12.9 µs\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEcAAAAPBAMAAABElc8tAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABkUlEQVQoFY2QPUscURSGn4l7d4y7q6ONxGqZ\ngEbSCFZWTmfpYCHEFK6CRdIoJmQaYacNBBJJ4wcqKNhYaKNYBFeCnYKLjdhNK4j5NrKbOHlnxx+Q\nAzP33nOf+77nHCy338MKXlUxPW8cMps9QcBIMMF92HOvYRT7lg4KdzyLrHla4zi+Mas8cuDCB7PP\nU5iCRU6r1HgBkzzQZSn7gWzRTE4LairSD0sw7b0NTZ06lLHB9tp2sL/CqaD3egQVXxCyMz+U1o53\njPeR/5lCA0o0YlsvxmZYllKoRB8PpXSbQvWhz0mO5t/Que7Li0oktyjxyt01IFOPWBFDS0k/e4Hc\nYaFchXGdPnH+N4Vin14Z4epTiz5XR2UPjnVoPRm6r6kGX0LIF6EdBiVC0vSGVsj+SmvaEhTBGZYj\n0Qa0p+ndNKBcKYU0PClliuSdj7DtXDqZb5D5Lrd5hp0UGlZN0BXMvuSawh+O/ecSLgjK75oD6SXD\nzM4YdVeJ4xrN7uMQ232iGyvpeNYNoXttL9K221PiP+If4oN7f8ioQFsAAAAASUVORK5CYII=\n", + "text/latex": [ + "$$2397916$$" + ], + "text/plain": [ + "2397916" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time mrank_of(23000000000000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Given $n$ and a rank, compute the offset.\n", + "\n", + "Now that we have a fast way to get the rank, we still need to use it to compute the offset into a pyramid row." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "def offset_of(n, k):\n", + " return (n - 2 + 4 * k * (k - 1)) % (2 * k)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(Note the sneaky way the sign changes from $k(k + 1)$ to $k(k - 1)$. This is because we want to subract the $(k - 1)$th rank's total places (its own and those of lesser rank) from our $n$ of rank $k$. Substituting $k - 1$ for $k$ in $k(k + 1)$ gives $(k - 1)(k - 1 + 1)$, which of course simplifies to $k(k - 1)$.)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAADsAAAAOBAMAAABjvHmeAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABIElEQVQYGTWQoU8DMRSHvwuULWNLDgwJ6jIS\nCJlcQoLaOeSKQaAwCDAsg2WCiTMI1AQIRjIBFoHFjSCwNPwDmyMYSBBAdoTjtR2iX76+X/r6WoJy\nNcajfWgg1zlCrbzE3tgi9+0xT+kXdUeFWaOuvLELPY8nw5ipiCqvcOyNSziIHU4TldINgTUYamcM\ntMQO2ObrkvIJXePM7m71BNsN0o2HRH1IfG/NpvmvCRautUpH9AMp1FvWbFzY+UfuQmWa1U05XW9Z\ns23Lsjzo6TG8n7jm1hIoRpJazEHN3EhxJKMNvcEzQegg3Wpmz56pCrQzpiOKocOZvCGsy432Wyo4\nY7Hd3Pd4o/TDTEP1KRh17o1Blo098uUlGaW5HKM6j7G3P7xTb/ft54xWAAAAAElFTkSuQmCC\n", + "text/latex": [ + "$$223606$$" + ], + "text/plain": [ + "223606" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "offset_of(23000000000000, 2397916)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, we can compute the rank, then the offset, then the row value." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "def rank_of(n):\n", + " return int(mfloor(sqrt(n - 1) / 2 - 0.5) + 1)\n", + "\n", + "\n", + "def offset_of(n, k):\n", + " return (n - 2 + 4 * k * (k - 1)) % (2 * k)\n", + "\n", + "\n", + "def row_value(k, i):\n", + " return abs(i - (k - 1)) + k\n", + "\n", + "\n", + "def aoc20173(n):\n", + " k = rank_of(n)\n", + " i = offset_of(n, k)\n", + " return row_value(k, i)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOBAMAAAAPuiubAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAIpm7MhCriUTv3c12VLge\nopIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABOSURBVAgdY2BUMnZgYAhjYH/BwJDKwDCTgWEWA0Oe\nA8O+ABAJBOsCgATHcxCTKwFEKoEIHgUQeYmBUYCBRYGBR4BBqrwoi4Fh37t3rxgAK5QOlzv7snYA\nAAAASUVORK5CYII=\n", + "text/latex": [ + "$$2$$" + ], + "text/plain": [ + "2" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aoc20173(23)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAB0AAAAPBAMAAADqo9msAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWaJMt0i\nu0SCRuA9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAArElEQVQIHWNgAAHmyM4FDOzJXIFANqMyAwO7\nAPMeBqb//ycwMJiEfGZgaGJgmM7APiUHpJYNyL/CwCBvwALiQfhfGBjeCyD4zF+B/ASWjtQFEHme\nnwwM6yfwGvD8g/KB8uuBZjPchvAh6oHs+ANw8+QF3BkY5j+A8O8yMPQbqAPlDSB8oHvCGQIYGLZD\n9DNwCzBrMRxl4NBhYGB1+u7BwDwtZQEDT6QrUDkaAADf+TCFzC1FdQAAAABJRU5ErkJggg==\n", + "text/latex": [ + "$$105$$" + ], + "text/plain": [ + "105" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aoc20173(23000)" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEgAAAAPBAMAAAC1npSgAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAMpndu3bvImbNiRBU\nq0Qb3U6NAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABGklEQVQoFYWQsUrDUBRAT6I1pVYJ/YLYURcH\nV9HBzS9wtjgJPnRx00XnDLq4tIhTQOjiIojiLghSKEjRxR9QUajU5715hfc2Qzi83HMgjwvQgNNu\n4y5ani8KkuZaGqA00rAEO3ZI1Vo74obab4DSSFNpwVnPEBt45Bm2ApRGov0TlVCTN2UTXlKP0ojs\njCM5vkG7K5HHOKoaifpHc9KwqmClG8CZKyRa5+BV/nYoltlhCGc6GsHkItzqgQm9oIeaeuqi+Bs2\nyqip9EDMNRLN5LodXZhsJAvhzMNg8NWbyol/mB5pdE9iPJyRcYtYLpETvctHlFExHs7I/JMk49hQ\n12ivOH8K4Axc2D67lwuQbEvUtvYjgDMy//f5A0ICeXTNG40LAAAAAElFTkSuQmCC\n", + "text/latex": [ + "$$4572225$$" + ], + "text/plain": [ + "4572225" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "aoc20173(23000000000000)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 0 ns, sys: 0 ns, total: 0 ns\n", + "Wall time: 20 µs\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAIUAAAAPBAMAAAA43xGxAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAIpm7MhCriUTv3c12\nVGZoascqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACa0lEQVQoFaXTT0gUYRjH8e/+mZ11d50duhWE\nw9JfvAxJQaeGIDw6eCjMg1uUUUQuInpIci6dXaGCCsvOEe2hfwfTJaKIhLYIOrqeQhLUcl3RdHve\neTfo3h6GnefzPj/e99l3ieQ6PDBHhzAODtvy+C6v3TeGgJH3HpqJO5qZ9k9W6B451+Swh9OYGxiv\naKenGpkgXTEewWvO2vQG0ZJmSLmaedioYzxgd5PDHi7CXWIOHVyG8yzCdawiZokjxFzN8MHVzMur\nNokiCUdz2MM9GPDGbdnbFoxxDOb9WJ7WWnJVapqJ/HA1k5datoS5ojnsYdaXjOMixi/45K3DeCWb\nJ7kdK0pRM2ba1Rxm9Llk1kJuFmXdU3+r803AfdnHzZ+SUe5zSP7OPhs9pFKEWUi7IQdcW9pHi+xj\nQ7PqCWRNsm5sVZmUgzC7UIeuQluBeL1vhpZKyBhlyVBc5ShtgblCekezLsrM80bD57CfLreOfZZ9\nSIajMmpEb0tGKo+JZChWmbEppvm2rflvMQebsByw9Hbs1D9nmcLakB7hrypDsSfv0VWsuc61rGZd\nzDjwWDKq4gO+zHRezbR1O1XC2gFhoxBmKE6oUcjCRK3JqghfiNjyM8s+4IVcE5Z9uRdWTW6B2ofw\n3v7+gTvlkGWc0Zp8S+ebrHrULc7YXTIPFu34qrpj7VhFoqW4zKOoGVpczVGZT8maoMvWHPawZ2Tw\nComCMclHv7dKqmLcgif0eFyip6JZrpWrOeJIVua5MYPmsIfZRkMmOnjAw8zJfTBG33lwZu6C/A9z\n8tBsnlivhsyu4f2yOhc0WRflcP/7+QN1gvGXxRfSRAAAAABJRU5ErkJggg==\n", + "text/latex": [ + "$$2690062495969$$" + ], + "text/plain": [ + "2690062495969" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%time aoc20173(23000000000000000000000000) # Fast for large values." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A Joy Version\n", + "At this point I feel confident that I can implement a concise version of this code in Joy. ;-)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `rank_of`\n", + "\n", + " n rank_of\n", + " ---------------\n", + " k\n", + "\n", + "The translation is straightforward.\n", + "\n", + " int(floor(sqrt(n - 1) / 2 - 0.5) + 1)\n", + "\n", + " rank_of == -- sqrt 2 / 0.5 - floor ++" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "define('rank_of == -- sqrt 2 / 0.5 - floor ++')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `offset_of`\n", + "\n", + " n k offset_of\n", + " -------------------\n", + " i\n", + "\n", + " (n - 2 + 4 * k * (k - 1)) % (2 * k)\n", + "\n", + "A little tricky...\n", + "\n", + " n k dup 2 *\n", + " n k k 2 *\n", + " n k k*2 [Q] dip %\n", + " n k Q k*2 %\n", + "\n", + " n k dup --\n", + " n k k --\n", + " n k k-1 4 * * 2 + -\n", + " n k*k-1*4 2 + -\n", + " n k*k-1*4+2 -\n", + " n-k*k-1*4+2\n", + "\n", + " n-k*k-1*4+2 k*2 %\n", + " n-k*k-1*4+2%k*2\n", + "\n", + "Ergo:\n", + "\n", + " offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "define('offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `row_value`\n", + "\n", + " k i row_value\n", + " -------------------\n", + " n\n", + "\n", + " abs(i - (k - 1)) + k\n", + "\n", + " k i over -- - abs +\n", + " k i k -- - abs +\n", + " k i k-1 - abs +\n", + " k i-k-1 abs +\n", + " k |i-k-1| +\n", + " k+|i-k-1|" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "define('row_value == over -- - abs +')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `aoc2017.3`\n", + "\n", + " n aoc2017.3\n", + " -----------------\n", + " m\n", + "\n", + " n dup rank_of\n", + " n k [offset_of] dupdip\n", + " n k offset_of k\n", + " i k swap row_value\n", + " k i row_value\n", + " m" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "define('aoc2017.3 == dup rank_of [offset_of] dupdip swap row_value')" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('23 aoc2017.3')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "105\n" + ] + } + ], + "source": [ + "J('23000 aoc2017.3')" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 23000000000000 aoc2017.3\n", + " 23000000000000 . aoc2017.3\n", + " 23000000000000 . dup rank_of [offset_of] dupdip swap row_value\n", + " 23000000000000 23000000000000 . rank_of [offset_of] dupdip swap row_value\n", + " 23000000000000 23000000000000 . -- sqrt 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 22999999999999 . sqrt 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 4795831.523312615 . 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 4795831.523312615 2 . / 0.5 - floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 2397915.7616563076 . 0.5 - floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 2397915.7616563076 0.5 . - floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 2397915.2616563076 . floor ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 2397915 . ++ [offset_of] dupdip swap row_value\n", + " 23000000000000 2397916 . [offset_of] dupdip swap row_value\n", + " 23000000000000 2397916 [offset_of] . dupdip swap row_value\n", + " 23000000000000 2397916 . offset_of 2397916 swap row_value\n", + " 23000000000000 2397916 . dup 2 * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value\n", + " 23000000000000 2397916 2397916 . 2 * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value\n", + " 23000000000000 2397916 2397916 2 . * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value\n", + " 23000000000000 2397916 4795832 . [dup -- 4 * * 2 + -] dip % 2397916 swap row_value\n", + "23000000000000 2397916 4795832 [dup -- 4 * * 2 + -] . dip % 2397916 swap row_value\n", + " 23000000000000 2397916 . dup -- 4 * * 2 + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 2397916 2397916 . -- 4 * * 2 + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 2397916 2397915 . 4 * * 2 + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 2397916 2397915 4 . * * 2 + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 2397916 9591660 . * 2 + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 22999994980560 . 2 + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 22999994980560 2 . + - 4795832 % 2397916 swap row_value\n", + " 23000000000000 22999994980562 . - 4795832 % 2397916 swap row_value\n", + " 5019438 . 4795832 % 2397916 swap row_value\n", + " 5019438 4795832 . % 2397916 swap row_value\n", + " 223606 . 2397916 swap row_value\n", + " 223606 2397916 . swap row_value\n", + " 2397916 223606 . row_value\n", + " 2397916 223606 . over -- - abs +\n", + " 2397916 223606 2397916 . -- - abs +\n", + " 2397916 223606 2397915 . - abs +\n", + " 2397916 -2174309 . abs +\n", + " 2397916 2174309 . +\n", + " 4572225 . \n" + ] + } + ], + "source": [ + "V('23000000000000 aoc2017.3')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " rank_of == -- sqrt 2 / 0.5 - floor ++\n", + " offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %\n", + " row_value == over -- - abs +\n", + "\n", + " aoc2017.3 == dup rank_of [offset_of] dupdip swap row_value" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Advent of Code 2017 December 3rd.md b/docs/Advent of Code 2017 December 3rd.md new file mode 100644 index 0000000..d6de378 --- /dev/null +++ b/docs/Advent of Code 2017 December 3rd.md @@ -0,0 +1,843 @@ + +# Advent of Code 2017 + +## December 3rd + +You come across an experimental new kind of memory stored on an infinite two-dimensional grid. + +Each square on the grid is allocated in a spiral pattern starting at a location marked 1 and then counting up while spiraling outward. For example, the first few squares are allocated like this: + + 17 16 15 14 13 + 18 5 4 3 12 + 19 6 1 2 11 + 20 7 8 9 10 + 21 22 23---> ... + +While this is very space-efficient (no squares are skipped), requested data must be carried back to square 1 (the location of the only access port for this memory system) by programs that can only move up, down, left, or right. They always take the shortest path: the Manhattan Distance between the location of the data and square 1. + +For example: + +* Data from square 1 is carried 0 steps, since it's at the access port. +* Data from square 12 is carried 3 steps, such as: down, left, left. +* Data from square 23 is carried only 2 steps: up twice. +* Data from square 1024 must be carried 31 steps. + +How many steps are required to carry the data from the square identified in your puzzle input all the way to the access port? + +### Analysis + +I freely admit that I worked out the program I wanted to write using graph paper and some Python doodles. There's no point in trying to write a Joy program until I'm sure I understand the problem well enough. + +The first thing I did was to write a column of numbers from 1 to n (32 as it happens) and next to them the desired output number, to look for patterns directly: + + 1 0 + 2 1 + 3 2 + 4 1 + 5 2 + 6 1 + 7 2 + 8 1 + 9 2 + 10 3 + 11 2 + 12 3 + 13 4 + 14 3 + 15 2 + 16 3 + 17 4 + 18 3 + 19 2 + 20 3 + 21 4 + 22 3 + 23 2 + 24 3 + 25 4 + 26 5 + 27 4 + 28 3 + 29 4 + 30 5 + 31 6 + 32 5 + +There are four groups repeating for a given "rank", then the pattern enlarges and four groups repeat again, etc. + + 1 2 + 3 2 3 4 + 5 4 3 4 5 6 + 7 6 5 4 5 6 7 8 + 9 8 7 6 5 6 7 8 9 10 + +Four of this pyramid interlock to tile the plane extending from the initial "1" square. + + + 2 3 | 4 5 | 6 7 | 8 9 + 10 11 12 13|14 15 16 17|18 19 20 21|22 23 24 25 + +And so on. + +We can figure out the pattern for a row of the pyramid at a given "rank" $k$: + +$2k - 1, 2k - 2, ..., k, k + 1, k + 2, ..., 2k$ + +or + +$k + (k - 1), k + (k - 2), ..., k, k + 1, k + 2, ..., k + k$ + +This shows that the series consists at each place of $k$ plus some number that begins at $k - 1$, decreases to zero, then increases to $k$. Each row has $2k$ members. + +Let's figure out how, given an index into a row, we can calculate the value there. The index will be from 0 to $k - 1$. + + Let's look at an example, with $k = 4$: + + 0 1 2 3 4 5 6 7 + 7 6 5 4 5 6 7 8 + + +```python +k = 4 +``` + +Subtract $k$ from the index and take the absolute value: + + +```python +for n in range(2 * k): + print abs(n - k), +``` + + 4 3 2 1 0 1 2 3 + + +Not quite. Subtract $k - 1$ from the index and take the absolute value: + + +```python +for n in range(2 * k): + print abs(n - (k - 1)), +``` + + 3 2 1 0 1 2 3 4 + + +Great, now add $k$... + + +```python +for n in range(2 * k): + print abs(n - (k - 1)) + k, +``` + + 7 6 5 4 5 6 7 8 + + +So to write a function that can give us the value of a row at a given index: + + +```python +def row_value(k, i): + i %= (2 * k) # wrap the index at the row boundary. + return abs(i - (k - 1)) + k +``` + + +```python +k = 5 +for i in range(2 * k): + print row_value(k, i), +``` + + 9 8 7 6 5 6 7 8 9 10 + + +(I'm leaving out details of how I figured this all out and just giving the relevent bits. It took a little while to zero in of the aspects of the pattern that were important for the task.) + +### Finding the rank and offset of a number. +Now that we can compute the desired output value for a given rank and the offset (index) into that rank, we need to determine how to find the rank and offset of a number. + +The rank is easy to find by iteratively stripping off the amount already covered by previous ranks until you find the one that brackets the target number. Because each row is $2k$ places and there are $4$ per rank each rank contains $8k$ places. Counting the initial square we have: + +$corner_k = 1 + \sum_{n=1}^k 8n$ + +I'm not mathematically sophisticated enough to turn this directly into a formula (but Sympy is, see below.) I'm going to write a simple Python function to iterate and search: + + +```python +def rank_and_offset(n): + assert n >= 2 # Guard the domain. + n -= 2 # Subtract two, + # one for the initial square, + # and one because we are counting from 1 instead of 0. + k = 1 + while True: + m = 8 * k # The number of places total in this rank, 4(2k). + if n < m: + return k, n % (2 * k) + n -= m # Remove this rank's worth. + k += 1 +``` + + +```python +for n in range(2, 51): + print n, rank_and_offset(n) +``` + + 2 (1, 0) + 3 (1, 1) + 4 (1, 0) + 5 (1, 1) + 6 (1, 0) + 7 (1, 1) + 8 (1, 0) + 9 (1, 1) + 10 (2, 0) + 11 (2, 1) + 12 (2, 2) + 13 (2, 3) + 14 (2, 0) + 15 (2, 1) + 16 (2, 2) + 17 (2, 3) + 18 (2, 0) + 19 (2, 1) + 20 (2, 2) + 21 (2, 3) + 22 (2, 0) + 23 (2, 1) + 24 (2, 2) + 25 (2, 3) + 26 (3, 0) + 27 (3, 1) + 28 (3, 2) + 29 (3, 3) + 30 (3, 4) + 31 (3, 5) + 32 (3, 0) + 33 (3, 1) + 34 (3, 2) + 35 (3, 3) + 36 (3, 4) + 37 (3, 5) + 38 (3, 0) + 39 (3, 1) + 40 (3, 2) + 41 (3, 3) + 42 (3, 4) + 43 (3, 5) + 44 (3, 0) + 45 (3, 1) + 46 (3, 2) + 47 (3, 3) + 48 (3, 4) + 49 (3, 5) + 50 (4, 0) + + + +```python +for n in range(2, 51): + k, i = rank_and_offset(n) + print n, row_value(k, i) +``` + + 2 1 + 3 2 + 4 1 + 5 2 + 6 1 + 7 2 + 8 1 + 9 2 + 10 3 + 11 2 + 12 3 + 13 4 + 14 3 + 15 2 + 16 3 + 17 4 + 18 3 + 19 2 + 20 3 + 21 4 + 22 3 + 23 2 + 24 3 + 25 4 + 26 5 + 27 4 + 28 3 + 29 4 + 30 5 + 31 6 + 32 5 + 33 4 + 34 3 + 35 4 + 36 5 + 37 6 + 38 5 + 39 4 + 40 3 + 41 4 + 42 5 + 43 6 + 44 5 + 45 4 + 46 3 + 47 4 + 48 5 + 49 6 + 50 7 + + +### Putting it all together + + +```python +def row_value(k, i): + return abs(i - (k - 1)) + k + + +def rank_and_offset(n): + n -= 2 # Subtract two, + # one for the initial square, + # and one because we are counting from 1 instead of 0. + k = 1 + while True: + m = 8 * k # The number of places total in this rank, 4(2k). + if n < m: + return k, n % (2 * k) + n -= m # Remove this rank's worth. + k += 1 + + +def aoc20173(n): + if n <= 1: + return 0 + k, i = rank_and_offset(n) + return row_value(k, i) +``` + + +```python +aoc20173(23) +``` + + + + + 2 + + + + +```python +aoc20173(23000) +``` + + + + + 105 + + + + +```python +aoc20173(23000000000000) +``` + + + + + 4572225 + + + +# Sympy to the Rescue +### Find the rank for large numbers +Using e.g. Sympy we can find the rank directly by solving for the roots of an equation. For large numbers this will (eventually) be faster than iterating as `rank_and_offset()` does. + + +```python +from sympy import floor, lambdify, solve, symbols +from sympy import init_printing +init_printing() +``` + + +```python +k = symbols('k') +``` + +Since + +$1 + 2 + 3 + ... + N = \frac{N(N + 1)}{2}$ + +and + +$\sum_{n=1}^k 8n = 8(\sum_{n=1}^k n) = 8\frac{k(k + 1)}{2}$ + +We want: + + +```python +E = 2 + 8 * k * (k + 1) / 2 # For the reason for adding 2 see above. + +E +``` + + + + +$$4 k \left(k + 1\right) + 2$$ + + + +We can write a function to solve for $k$ given some $n$... + + +```python +def rank_of(n): + return floor(max(solve(E - n, k))) + 1 +``` + +First `solve()` for $E - n = 0$ which has two solutions (because the equation is quadratic so it has two roots) and since we only care about the larger one we use `max()` to select it. It will generally not be a nice integer (unless $n$ is the number of an end-corner of a rank) so we take the `floor()` and add 1 to get the integer rank of $n$. (Taking the `ceiling()` gives off-by-one errors on the rank boundaries. I don't know why. I'm basically like a monkey doing math here.) =-D + +It gives correct answers: + + +```python +for n in (9, 10, 25, 26, 49, 50): + print n, rank_of(n) +``` + + 9 1 + 10 2 + 25 2 + 26 3 + 49 3 + 50 4 + + +And it runs much faster (at least for large numbers): + + +```python +%time rank_of(23000000000000) # Compare runtime with rank_and_offset()! +``` + + CPU times: user 68 ms, sys: 8 ms, total: 76 ms + Wall time: 73.8 ms + + + + + +$$2397916$$ + + + + +```python +%time rank_and_offset(23000000000000) +``` + + CPU times: user 308 ms, sys: 0 ns, total: 308 ms + Wall time: 306 ms + + + + + +$$\left ( 2397916, \quad 223606\right )$$ + + + +After finding the rank you would still have to find the actual value of the rank's first corner and subtract it (plus 2) from the number and compute the offset as above and then the final output, but this overhead is partially shared by the other method, and overshadowed by the time it (the other iterative method) would take for really big inputs. + +The fun thing to do here would be to graph the actual runtime of both methods against each other to find the trade-off point. + +### It took me a second to realize I could do this... +Sympy is a *symbolic* math library, and it supports symbolic manipulation of equations. I can put in $y$ (instead of a value) and ask it to solve for $k$. + + +```python +y = symbols('y') +``` + + +```python +g, f = solve(E - y, k) +``` + +The equation is quadratic so there are two roots, we are interested in the greater one... + + +```python +g +``` + + + + +$$- \frac{1}{2} \sqrt{y - 1} - \frac{1}{2}$$ + + + + +```python +f +``` + + + + +$$\frac{1}{2} \sqrt{y - 1} - \frac{1}{2}$$ + + + +Now we can take the `floor()`, add 1, and `lambdify()` the equation to get a Python function that calculates the rank directly. + + +```python +floor(f) + 1 +``` + + + + +$$\lfloor{\frac{1}{2} \sqrt{y - 1} - \frac{1}{2}}\rfloor + 1$$ + + + + +```python +F = lambdify(y, floor(f) + 1) +``` + + +```python +for n in (9, 10, 25, 26, 49, 50): + print n, int(F(n)) +``` + + 9 1 + 10 2 + 25 2 + 26 3 + 49 3 + 50 4 + + +It's pretty fast. + + +```python +%time int(F(23000000000000)) # The clear winner. +``` + + CPU times: user 0 ns, sys: 0 ns, total: 0 ns + Wall time: 11.9 µs + + + + + +$$2397916$$ + + + +Knowing the equation we could write our own function manually, but the speed is no better. + + +```python +from math import floor as mfloor, sqrt + +def mrank_of(n): + return int(mfloor(sqrt(23000000000000 - 1) / 2 - 0.5) + 1) +``` + + +```python +%time mrank_of(23000000000000) +``` + + CPU times: user 0 ns, sys: 0 ns, total: 0 ns + Wall time: 12.9 µs + + + + + +$$2397916$$ + + + +### Given $n$ and a rank, compute the offset. + +Now that we have a fast way to get the rank, we still need to use it to compute the offset into a pyramid row. + + +```python +def offset_of(n, k): + return (n - 2 + 4 * k * (k - 1)) % (2 * k) +``` + +(Note the sneaky way the sign changes from $k(k + 1)$ to $k(k - 1)$. This is because we want to subract the $(k - 1)$th rank's total places (its own and those of lesser rank) from our $n$ of rank $k$. Substituting $k - 1$ for $k$ in $k(k + 1)$ gives $(k - 1)(k - 1 + 1)$, which of course simplifies to $k(k - 1)$.) + + +```python +offset_of(23000000000000, 2397916) +``` + + + + +$$223606$$ + + + +So, we can compute the rank, then the offset, then the row value. + + +```python +def rank_of(n): + return int(mfloor(sqrt(n - 1) / 2 - 0.5) + 1) + + +def offset_of(n, k): + return (n - 2 + 4 * k * (k - 1)) % (2 * k) + + +def row_value(k, i): + return abs(i - (k - 1)) + k + + +def aoc20173(n): + k = rank_of(n) + i = offset_of(n, k) + return row_value(k, i) +``` + + +```python +aoc20173(23) +``` + + + + +$$2$$ + + + + +```python +aoc20173(23000) +``` + + + + +$$105$$ + + + + +```python +aoc20173(23000000000000) +``` + + + + +$$4572225$$ + + + + +```python +%time aoc20173(23000000000000000000000000) # Fast for large values. +``` + + CPU times: user 0 ns, sys: 0 ns, total: 0 ns + Wall time: 20 µs + + + + + +$$2690062495969$$ + + + +# A Joy Version +At this point I feel confident that I can implement a concise version of this code in Joy. ;-) + + +```python +from notebook_preamble import J, V, define +``` + +### `rank_of` + + n rank_of + --------------- + k + +The translation is straightforward. + + int(floor(sqrt(n - 1) / 2 - 0.5) + 1) + + rank_of == -- sqrt 2 / 0.5 - floor ++ + + +```python +define('rank_of == -- sqrt 2 / 0.5 - floor ++') +``` + +### `offset_of` + + n k offset_of + ------------------- + i + + (n - 2 + 4 * k * (k - 1)) % (2 * k) + +A little tricky... + + n k dup 2 * + n k k 2 * + n k k*2 [Q] dip % + n k Q k*2 % + + n k dup -- + n k k -- + n k k-1 4 * * 2 + - + n k*k-1*4 2 + - + n k*k-1*4+2 - + n-k*k-1*4+2 + + n-k*k-1*4+2 k*2 % + n-k*k-1*4+2%k*2 + +Ergo: + + offset_of == dup 2 * [dup -- 4 * * 2 + -] dip % + + +```python +define('offset_of == dup 2 * [dup -- 4 * * 2 + -] dip %') +``` + +### `row_value` + + k i row_value + ------------------- + n + + abs(i - (k - 1)) + k + + k i over -- - abs + + k i k -- - abs + + k i k-1 - abs + + k i-k-1 abs + + k |i-k-1| + + k+|i-k-1| + + +```python +define('row_value == over -- - abs +') +``` + +### `aoc2017.3` + + n aoc2017.3 + ----------------- + m + + n dup rank_of + n k [offset_of] dupdip + n k offset_of k + i k swap row_value + k i row_value + m + + +```python +define('aoc2017.3 == dup rank_of [offset_of] dupdip swap row_value') +``` + + +```python +J('23 aoc2017.3') +``` + + 2 + + + +```python +J('23000 aoc2017.3') +``` + + 105 + + + +```python +V('23000000000000 aoc2017.3') +``` + + . 23000000000000 aoc2017.3 + 23000000000000 . aoc2017.3 + 23000000000000 . dup rank_of [offset_of] dupdip swap row_value + 23000000000000 23000000000000 . rank_of [offset_of] dupdip swap row_value + 23000000000000 23000000000000 . -- sqrt 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value + 23000000000000 22999999999999 . sqrt 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value + 23000000000000 4795831.523312615 . 2 / 0.5 - floor ++ [offset_of] dupdip swap row_value + 23000000000000 4795831.523312615 2 . / 0.5 - floor ++ [offset_of] dupdip swap row_value + 23000000000000 2397915.7616563076 . 0.5 - floor ++ [offset_of] dupdip swap row_value + 23000000000000 2397915.7616563076 0.5 . - floor ++ [offset_of] dupdip swap row_value + 23000000000000 2397915.2616563076 . floor ++ [offset_of] dupdip swap row_value + 23000000000000 2397915 . ++ [offset_of] dupdip swap row_value + 23000000000000 2397916 . [offset_of] dupdip swap row_value + 23000000000000 2397916 [offset_of] . dupdip swap row_value + 23000000000000 2397916 . offset_of 2397916 swap row_value + 23000000000000 2397916 . dup 2 * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value + 23000000000000 2397916 2397916 . 2 * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value + 23000000000000 2397916 2397916 2 . * [dup -- 4 * * 2 + -] dip % 2397916 swap row_value + 23000000000000 2397916 4795832 . [dup -- 4 * * 2 + -] dip % 2397916 swap row_value + 23000000000000 2397916 4795832 [dup -- 4 * * 2 + -] . dip % 2397916 swap row_value + 23000000000000 2397916 . dup -- 4 * * 2 + - 4795832 % 2397916 swap row_value + 23000000000000 2397916 2397916 . -- 4 * * 2 + - 4795832 % 2397916 swap row_value + 23000000000000 2397916 2397915 . 4 * * 2 + - 4795832 % 2397916 swap row_value + 23000000000000 2397916 2397915 4 . * * 2 + - 4795832 % 2397916 swap row_value + 23000000000000 2397916 9591660 . * 2 + - 4795832 % 2397916 swap row_value + 23000000000000 22999994980560 . 2 + - 4795832 % 2397916 swap row_value + 23000000000000 22999994980560 2 . + - 4795832 % 2397916 swap row_value + 23000000000000 22999994980562 . - 4795832 % 2397916 swap row_value + 5019438 . 4795832 % 2397916 swap row_value + 5019438 4795832 . % 2397916 swap row_value + 223606 . 2397916 swap row_value + 223606 2397916 . swap row_value + 2397916 223606 . row_value + 2397916 223606 . over -- - abs + + 2397916 223606 2397916 . -- - abs + + 2397916 223606 2397915 . - abs + + 2397916 -2174309 . abs + + 2397916 2174309 . + + 4572225 . + + + rank_of == -- sqrt 2 / 0.5 - floor ++ + offset_of == dup 2 * [dup -- 4 * * 2 + -] dip % + row_value == over -- - abs + + + aoc2017.3 == dup rank_of [offset_of] dupdip swap row_value diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_29_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_29_0.png new file mode 100644 index 0000000..4e6c0d8 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_29_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_35_1.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_35_1.png new file mode 100644 index 0000000..d4b2fda Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_35_1.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_36_1.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_36_1.png new file mode 100644 index 0000000..e24b781 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_36_1.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_42_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_42_0.png new file mode 100644 index 0000000..02b91a1 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_42_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_43_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_43_0.png new file mode 100644 index 0000000..2161606 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_43_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_45_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_45_0.png new file mode 100644 index 0000000..2e44b89 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_45_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_49_1.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_49_1.png new file mode 100644 index 0000000..d4b2fda Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_49_1.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_52_1.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_52_1.png new file mode 100644 index 0000000..d4b2fda Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_52_1.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_56_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_56_0.png new file mode 100644 index 0000000..8af9c3c Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_56_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_59_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_59_0.png new file mode 100644 index 0000000..ed4ba2d Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_59_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_60_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_60_0.png new file mode 100644 index 0000000..9034b06 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_60_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_61_0.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_61_0.png new file mode 100644 index 0000000..5714d79 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_61_0.png differ diff --git a/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_62_1.png b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_62_1.png new file mode 100644 index 0000000..1a257f5 Binary files /dev/null and b/docs/Advent of Code 2017 December 3rd_files/Advent of Code 2017 December 3rd_62_1.png differ diff --git a/docs/Advent of Code 2017 December 4th.html b/docs/Advent of Code 2017 December 4th.html new file mode 100644 index 0000000..188407f --- /dev/null +++ b/docs/Advent of Code 2017 December 4th.html @@ -0,0 +1,11939 @@ + + + +Advent of Code 2017 December 4th + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Advent of Code 2017

December 4th

To ensure security, a valid passphrase must contain no duplicate words.

+

For example:

+
    +
  • aa bb cc dd ee is valid.
  • +
  • aa bb cc dd aa is not valid - the word aa appears more than once.
  • +
  • aa bb cc dd aaa is valid - aa and aaa count as different words.
  • +
+

The system's full passphrase list is available as your puzzle input. How many passphrases are valid?

+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

I'll assume the input is a Joy sequence of sequences of integers.

+ +
[[5 1 9 5]
+ [7 5 4 3]
+ [2 4 6 8]]
+
+
+

So, obviously, the initial form will be a step function:

+ +
AoC2017.4 == 0 swap [F +] step
+ +
+
+
+
+
+
+
+ +
F == [size] [unique size] cleave =
+ +
+
+
+
+
+
+
+

The step_zero combinator includes the 0 swap that would normally open one of these definitions:

+ +
+
+
+
+
+
In [2]:
+
+
+
J('[step_zero] help')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0 roll> step
+
+
+
+
+ +
+
+ +
+
+
+
+
+ +
AoC2017.4 == [F +] step_zero
+ +
+
+
+
+
+
In [3]:
+
+
+
define('AoC2017.4 == [[size] [unique size] cleave = +] step_zero')
+
+ +
+
+
+ +
+
+
+
In [4]:
+
+
+
J('''
+
+[[5 1 9 5]
+ [7 5 4 3]
+ [2 4 6 8]] AoC2017.4
+
+''')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/Advent of Code 2017 December 4th.ipynb b/docs/Advent of Code 2017 December 4th.ipynb new file mode 100644 index 0000000..cd1bd55 --- /dev/null +++ b/docs/Advent of Code 2017 December 4th.ipynb @@ -0,0 +1,139 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advent of Code 2017\n", + "\n", + "## December 4th\n", + "To ensure security, a valid passphrase must contain no duplicate words.\n", + "\n", + "For example:\n", + "\n", + "* aa bb cc dd ee is valid.\n", + "* aa bb cc dd aa is not valid - the word aa appears more than once.\n", + "* aa bb cc dd aaa is valid - aa and aaa count as different words.\n", + "\n", + "The system's full passphrase list is available as your puzzle input. How many passphrases are valid?" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I'll assume the input is a Joy sequence of sequences of integers.\n", + "\n", + " [[5 1 9 5]\n", + " [7 5 4 3]\n", + " [2 4 6 8]]\n", + "\n", + "So, obviously, the initial form will be a `step` function:\n", + "\n", + " AoC2017.4 == 0 swap [F +] step" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + " F == [size] [unique size] cleave =\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `step_zero` combinator includes the `0 swap` that would normally open one of these definitions:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 roll> step\n", + "\n" + ] + } + ], + "source": [ + "J('[step_zero] help')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " AoC2017.4 == [F +] step_zero" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "define('AoC2017.4 == [[size] [unique size] cleave = +] step_zero')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('''\n", + "\n", + "[[5 1 9 5]\n", + " [7 5 4 3]\n", + " [2 4 6 8]] AoC2017.4\n", + "\n", + "''')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Advent of Code 2017 December 4th.md b/docs/Advent of Code 2017 December 4th.md new file mode 100644 index 0000000..96f3c29 --- /dev/null +++ b/docs/Advent of Code 2017 December 4th.md @@ -0,0 +1,64 @@ + +# Advent of Code 2017 + +## December 4th +To ensure security, a valid passphrase must contain no duplicate words. + +For example: + +* aa bb cc dd ee is valid. +* aa bb cc dd aa is not valid - the word aa appears more than once. +* aa bb cc dd aaa is valid - aa and aaa count as different words. + +The system's full passphrase list is available as your puzzle input. How many passphrases are valid? + + +```python +from notebook_preamble import J, V, define +``` + +I'll assume the input is a Joy sequence of sequences of integers. + + [[5 1 9 5] + [7 5 4 3] + [2 4 6 8]] + +So, obviously, the initial form will be a `step` function: + + AoC2017.4 == 0 swap [F +] step + + + F == [size] [unique size] cleave = + + +The `step_zero` combinator includes the `0 swap` that would normally open one of these definitions: + + +```python +J('[step_zero] help') +``` + + 0 roll> step + + + + AoC2017.4 == [F +] step_zero + + +```python +define('AoC2017.4 == [[size] [unique size] cleave = +] step_zero') +``` + + +```python +J(''' + +[[5 1 9 5] + [7 5 4 3] + [2 4 6 8]] AoC2017.4 + +''') +``` + + 2 + diff --git a/docs/Advent of Code 2017 December 5th.html b/docs/Advent of Code 2017 December 5th.html new file mode 100644 index 0000000..3ec5535 --- /dev/null +++ b/docs/Advent of Code 2017 December 5th.html @@ -0,0 +1,12207 @@ + + + +Advent of Code 2017 December 5th + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Advent of Code 2017

December 5th

...a list of the offsets for each jump. Jumps are relative: -1 moves to the previous instruction, and 2 skips the next one. Start at the first instruction in the list. The goal is to follow the jumps until one leads outside the list.

+

In addition, these instructions are a little strange; after each jump, the offset of that instruction increases by 1. So, if you come across an offset of 3, you would move three instructions forward, but change it to a 4 for the next time it is encountered.

+

For example, consider the following list of jump offsets:

+ +
0
+3
+0
+1
+-3
+
+
+

Positive jumps ("forward") move downward; negative jumps move upward. For legibility in this example, these offset values will be written all on one line, with the current instruction marked in parentheses. The following steps would be taken before an exit is found:

+
    +
  • (0) 3 0 1 -3 - before we have taken any steps.
  • +
  • (1) 3 0 1 -3 - jump with offset 0 (that is, don't jump at all). Fortunately, the instruction is then incremented to 1.
  • +
  • 2 (3) 0 1 -3 - step forward because of the instruction we just modified. The first instruction is incremented again, now to 2.
  • +
  • 2 4 0 1 (-3) - jump all the way to the end; leave a 4 behind.
  • +
  • 2 (4) 0 1 -2 - go back to where we just were; increment -3 to -2.
  • +
  • 2 5 0 1 -2 - jump 4 steps forward, escaping the maze.
  • +
+

In this example, the exit is reached in 5 steps.

+

How many steps does it take to reach the exit?

+ +
+
+
+
+
+
+
+

Breakdown

For now, I'm going to assume a starting state with the size of the sequence pre-computed. We need it to define the exit condition and it is a trivial preamble to generate it. We then need and index and a step-count, which are both initially zero. Then we have the sequence itself, and some recursive function F that does the work.

+ +
   size index step-count [...] F
+-----------------------------------
+            step-count
+
+F == [P] [T] [R1] [R2] genrec
+
+
+

Later on I was thinking about it and the Forth heuristic came to mind, to wit: four things on the stack are kind of much. Immediately I realized that the size properly belongs in the predicate of F! D'oh!

+ +
   index step-count [...] F
+------------------------------
+         step-count
+ +
+
+
+
+
+
+
+

So, let's start by nailing down the predicate:

+ +
F == [P] [T] [R1]   [R2] genrec
+  == [P] [T] [R1 [F] R2] ifte
+
+0 0 [0 3 0 1 -3] popop 5 >=
+
+P == popop 5 >=
+ +
+
+
+
+
+
+
+

Now we need the else-part:

+ +
index step-count [0 3 0 1 -3] roll< popop
+
+E == roll< popop
+ +
+
+
+
+
+
+
+

Last but not least, the recursive branch

+ +
0 0 [0 3 0 1 -3] R1 [F] R2
+
+
+

The R1 function has a big job:

+ +
R1 == get the value at index
+      increment the value at the index
+      add the value gotten to the index
+      increment the step count
+
+
+

The only tricky thing there is incrementing an integer in the sequence. Joy sequences are not particularly good for random access. We could encode the list of jump offsets in a big integer and use math to do the processing for a good speed-up, but it still wouldn't beat the performance of e.g. a mutable array. This is just one of those places where "plain vanilla" Joypy doesn't shine (in default performance. The legendary Sufficiently-Smart Compiler would of course rewrite this function to use an array "under the hood".)

+

In the meantime, I'm going to write a primitive function that just does what we need.

+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import D, J, V, define
+from joy.library import SimpleFunctionWrapper
+from joy.utils.stack import list_to_stack
+
+
+@SimpleFunctionWrapper
+def incr_at(stack):
+    '''Given a index and a sequence of integers, increment the integer at the index.
+
+    E.g.:
+
+       3 [0 1 2 3 4 5] incr_at
+    -----------------------------
+         [0 1 2 4 4 5]
+    
+    '''
+    sequence, (i, stack) = stack
+    mem = []
+    while i >= 0:
+        term, sequence = sequence
+        mem.append(term)
+        i -= 1
+    mem[-1] += 1
+    return list_to_stack(mem, sequence), stack
+
+
+D['incr_at'] = incr_at
+
+ +
+
+
+ +
+
+
+
In [2]:
+
+
+
J('3 [0 1 2 3 4 5] incr_at')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[0 1 2 4 4 5]
+
+
+
+ +
+
+ +
+
+
+
+
+

get the value at index

+
3 0 [0 1 2 3 4] [roll< at] nullary
+3 0 [0 1 2 n 4] n
+ +
+
+
+
+
+
+
+

increment the value at the index

+
3 0 [0 1 2 n 4] n [Q] dip
+3 0 [0 1 2 n 4] Q n
+3 0 [0 1 2 n 4] [popd incr_at] unary n
+3 0 [0 1 2 n+1 4] n
+ +
+
+
+
+
+
+
+

add the value gotten to the index

+
3 0 [0 1 2 n+1 4] n [+] cons dipd
+3 0 [0 1 2 n+1 4] [n +]      dipd
+3 n + 0 [0 1 2 n+1 4]
+3+n   0 [0 1 2 n+1 4]
+ +
+
+
+
+
+
+
+

increment the step count

+
3+n 0 [0 1 2 n+1 4] [++] dip
+3+n 1 [0 1 2 n+1 4]
+ +
+
+
+
+
+
+
+

All together now...

+
get_value == [roll< at] nullary
+incr_value == [[popd incr_at] unary] dip
+add_value == [+] cons dipd
+incr_step_count == [++] dip
+
+R1 == get_value incr_value add_value incr_step_count
+
+F == [P] [T] [R1] primrec
+
+F == [popop !size! >=] [roll< pop] [get_value incr_value add_value incr_step_count] primrec
+ +
+
+
+
+
+
In [3]:
+
+
+
from joy.library import DefinitionWrapper
+
+
+DefinitionWrapper.add_definitions('''
+
+      get_value == [roll< at] nullary
+     incr_value == [[popd incr_at] unary] dip
+      add_value == [+] cons dipd
+incr_step_count == [++] dip
+
+     AoC2017.5.0 == get_value incr_value add_value incr_step_count
+
+''', D)
+
+ +
+
+
+ +
+
+
+
In [4]:
+
+
+
define('F == [popop 5 >=] [roll< popop] [AoC2017.5.0] primrec')
+
+ +
+
+
+ +
+
+
+
In [5]:
+
+
+
J('0 0 [0 3 0 1 -3] F')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5
+
+
+
+ +
+
+ +
+
+
+
+
+

Preamble for setting up predicate, index, and step-count

We want to go from this to this:

+ +
   [...] AoC2017.5.preamble
+------------------------------
+    0 0 [...] [popop n >=]
+
+
+

Where n is the size of the sequence.

+

The first part is obviously 0 0 roll<, then dup size:

+ +
[...] 0 0 roll< dup size
+0 0 [...] n
+
+
+

Then:

+ +
0 0 [...] n [>=] cons [popop] swoncat
+
+
+

So:

+ +
init-index-and-step-count == 0 0 roll<
+prepare-predicate == dup size [>=] cons [popop] swoncat
+
+AoC2017.5.preamble == init-index-and-step-count prepare-predicate
+ +
+
+
+
+
+
In [6]:
+
+
+
DefinitionWrapper.add_definitions('''
+
+init-index-and-step-count == 0 0 roll<
+        prepare-predicate == dup size [>=] cons [popop] swoncat
+
+       AoC2017.5.preamble == init-index-and-step-count prepare-predicate
+
+                AoC2017.5 == AoC2017.5.preamble [roll< popop] [AoC2017.5.0] primrec
+
+''', D)
+
+ +
+
+
+ +
+
+
+
In [7]:
+
+
+
J('[0 3 0 1 -3] AoC2017.5')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5
+
+
+
+ +
+
+ +
+
+
+
+
+ +
                AoC2017.5 == AoC2017.5.preamble [roll< popop] [AoC2017.5.0] primrec
+
+              AoC2017.5.0 == get_value incr_value add_value incr_step_count
+       AoC2017.5.preamble == init-index-and-step-count prepare-predicate
+
+                get_value == [roll< at] nullary
+               incr_value == [[popd incr_at] unary] dip
+                add_value == [+] cons dipd
+          incr_step_count == [++] dip
+
+init-index-and-step-count == 0 0 roll<
+        prepare-predicate == dup size [>=] cons [popop] swoncat
+ +
+
+
+
+
+
+
+

This is by far the largest program I have yet written in Joy. Even with the incr_at function it is still a bear. There may be an arrangement of the parameters that would permit more elegant definitions, but it still wouldn't be as efficient as something written in assembly, C, or even Python.

+ +
+
+
+
+
+ + + + + + diff --git a/docs/Advent of Code 2017 December 5th.ipynb b/docs/Advent of Code 2017 December 5th.ipynb new file mode 100644 index 0000000..32d264e --- /dev/null +++ b/docs/Advent of Code 2017 December 5th.ipynb @@ -0,0 +1,380 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advent of Code 2017\n", + "\n", + "## December 5th\n", + "...a list of the offsets for each jump. Jumps are relative: -1 moves to the previous instruction, and 2 skips the next one. Start at the first instruction in the list. The goal is to follow the jumps until one leads outside the list.\n", + "\n", + "In addition, these instructions are a little strange; after each jump, the offset of that instruction increases by 1. So, if you come across an offset of 3, you would move three instructions forward, but change it to a 4 for the next time it is encountered.\n", + "\n", + "For example, consider the following list of jump offsets:\n", + "\n", + " 0\n", + " 3\n", + " 0\n", + " 1\n", + " -3\n", + "\n", + "Positive jumps (\"forward\") move downward; negative jumps move upward. For legibility in this example, these offset values will be written all on one line, with the current instruction marked in parentheses. The following steps would be taken before an exit is found:\n", + "\n", + "* (0) 3 0 1 -3 - before we have taken any steps.\n", + "* (1) 3 0 1 -3 - jump with offset 0 (that is, don't jump at all). Fortunately, the instruction is then incremented to 1.\n", + "* 2 (3) 0 1 -3 - step forward because of the instruction we just modified. The first instruction is incremented again, now to 2.\n", + "* 2 4 0 1 (-3) - jump all the way to the end; leave a 4 behind.\n", + "* 2 (4) 0 1 -2 - go back to where we just were; increment -3 to -2.\n", + "* 2 5 0 1 -2 - jump 4 steps forward, escaping the maze.\n", + "\n", + "In this example, the exit is reached in 5 steps.\n", + "\n", + "How many steps does it take to reach the exit?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Breakdown\n", + "For now, I'm going to assume a starting state with the size of the sequence pre-computed. We need it to define the exit condition and it is a trivial preamble to generate it. We then need and `index` and a `step-count`, which are both initially zero. Then we have the sequence itself, and some recursive function `F` that does the work.\n", + "\n", + " size index step-count [...] F\n", + " -----------------------------------\n", + " step-count\n", + "\n", + " F == [P] [T] [R1] [R2] genrec\n", + "\n", + "Later on I was thinking about it and the Forth heuristic came to mind, to wit: four things on the stack are kind of much. Immediately I realized that the size properly belongs in the predicate of `F`! D'oh!\n", + "\n", + " index step-count [...] F\n", + " ------------------------------\n", + " step-count" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So, let's start by nailing down the predicate:\n", + "\n", + " F == [P] [T] [R1] [R2] genrec\n", + " == [P] [T] [R1 [F] R2] ifte\n", + "\n", + " 0 0 [0 3 0 1 -3] popop 5 >=\n", + "\n", + " P == popop 5 >=" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we need the else-part:\n", + "\n", + " index step-count [0 3 0 1 -3] roll< popop\n", + "\n", + " E == roll< popop" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Last but not least, the recursive branch\n", + "\n", + " 0 0 [0 3 0 1 -3] R1 [F] R2\n", + "\n", + "The `R1` function has a big job:\n", + "\n", + " R1 == get the value at index\n", + " increment the value at the index\n", + " add the value gotten to the index\n", + " increment the step count\n", + "\n", + "The only tricky thing there is incrementing an integer in the sequence. Joy sequences are not particularly good for random access. We could encode the list of jump offsets in a big integer and use math to do the processing for a good speed-up, but it still wouldn't beat the performance of e.g. a mutable array. This is just one of those places where \"plain vanilla\" Joypy doesn't shine (in default performance. The legendary *Sufficiently-Smart Compiler* would of course rewrite this function to use an array \"under the hood\".)\n", + "\n", + "In the meantime, I'm going to write a primitive function that just does what we need." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import D, J, V, define\n", + "from joy.library import SimpleFunctionWrapper\n", + "from joy.utils.stack import list_to_stack\n", + "\n", + "\n", + "@SimpleFunctionWrapper\n", + "def incr_at(stack):\n", + " '''Given a index and a sequence of integers, increment the integer at the index.\n", + "\n", + " E.g.:\n", + "\n", + " 3 [0 1 2 3 4 5] incr_at\n", + " -----------------------------\n", + " [0 1 2 4 4 5]\n", + " \n", + " '''\n", + " sequence, (i, stack) = stack\n", + " mem = []\n", + " while i >= 0:\n", + " term, sequence = sequence\n", + " mem.append(term)\n", + " i -= 1\n", + " mem[-1] += 1\n", + " return list_to_stack(mem, sequence), stack\n", + "\n", + "\n", + "D['incr_at'] = incr_at" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 1 2 4 4 5]\n" + ] + } + ], + "source": [ + "J('3 [0 1 2 3 4 5] incr_at')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### get the value at index\n", + "\n", + " 3 0 [0 1 2 3 4] [roll< at] nullary\n", + " 3 0 [0 1 2 n 4] n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### increment the value at the index\n", + "\n", + " 3 0 [0 1 2 n 4] n [Q] dip\n", + " 3 0 [0 1 2 n 4] Q n\n", + " 3 0 [0 1 2 n 4] [popd incr_at] unary n\n", + " 3 0 [0 1 2 n+1 4] n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### add the value gotten to the index\n", + "\n", + " 3 0 [0 1 2 n+1 4] n [+] cons dipd\n", + " 3 0 [0 1 2 n+1 4] [n +] dipd\n", + " 3 n + 0 [0 1 2 n+1 4]\n", + " 3+n 0 [0 1 2 n+1 4]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### increment the step count\n", + "\n", + " 3+n 0 [0 1 2 n+1 4] [++] dip\n", + " 3+n 1 [0 1 2 n+1 4]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### All together now...\n", + "\n", + " get_value == [roll< at] nullary\n", + " incr_value == [[popd incr_at] unary] dip\n", + " add_value == [+] cons dipd\n", + " incr_step_count == [++] dip\n", + "\n", + " R1 == get_value incr_value add_value incr_step_count\n", + "\n", + " F == [P] [T] [R1] primrec\n", + " \n", + " F == [popop !size! >=] [roll< pop] [get_value incr_value add_value incr_step_count] primrec" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.library import DefinitionWrapper\n", + "\n", + "\n", + "DefinitionWrapper.add_definitions('''\n", + "\n", + " get_value == [roll< at] nullary\n", + " incr_value == [[popd incr_at] unary] dip\n", + " add_value == [+] cons dipd\n", + "incr_step_count == [++] dip\n", + "\n", + " AoC2017.5.0 == get_value incr_value add_value incr_step_count\n", + "\n", + "''', D)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "define('F == [popop 5 >=] [roll< popop] [AoC2017.5.0] primrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "J('0 0 [0 3 0 1 -3] F')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Preamble for setting up predicate, `index`, and `step-count`\n", + "\n", + "We want to go from this to this:\n", + "\n", + " [...] AoC2017.5.preamble\n", + " ------------------------------\n", + " 0 0 [...] [popop n >=]\n", + "\n", + "Where `n` is the size of the sequence.\n", + "\n", + "The first part is obviously `0 0 roll<`, then `dup size`:\n", + "\n", + " [...] 0 0 roll< dup size\n", + " 0 0 [...] n\n", + "\n", + "Then:\n", + "\n", + " 0 0 [...] n [>=] cons [popop] swoncat\n", + "\n", + "So:\n", + "\n", + " init-index-and-step-count == 0 0 roll<\n", + " prepare-predicate == dup size [>=] cons [popop] swoncat\n", + "\n", + " AoC2017.5.preamble == init-index-and-step-count prepare-predicate" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "DefinitionWrapper.add_definitions('''\n", + "\n", + "init-index-and-step-count == 0 0 roll<\n", + " prepare-predicate == dup size [>=] cons [popop] swoncat\n", + "\n", + " AoC2017.5.preamble == init-index-and-step-count prepare-predicate\n", + "\n", + " AoC2017.5 == AoC2017.5.preamble [roll< popop] [AoC2017.5.0] primrec\n", + "\n", + "''', D)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "J('[0 3 0 1 -3] AoC2017.5')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + " AoC2017.5 == AoC2017.5.preamble [roll< popop] [AoC2017.5.0] primrec\n", + "\n", + " AoC2017.5.0 == get_value incr_value add_value incr_step_count\n", + " AoC2017.5.preamble == init-index-and-step-count prepare-predicate\n", + "\n", + " get_value == [roll< at] nullary\n", + " incr_value == [[popd incr_at] unary] dip\n", + " add_value == [+] cons dipd\n", + " incr_step_count == [++] dip\n", + "\n", + " init-index-and-step-count == 0 0 roll<\n", + " prepare-predicate == dup size [>=] cons [popop] swoncat\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is by far the largest program I have yet written in Joy. Even with the `incr_at` function it is still a bear. There may be an arrangement of the parameters that would permit more elegant definitions, but it still wouldn't be as efficient as something written in assembly, C, or even Python." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Advent of Code 2017 December 5th.md b/docs/Advent of Code 2017 December 5th.md new file mode 100644 index 0000000..8edfe6f --- /dev/null +++ b/docs/Advent of Code 2017 December 5th.md @@ -0,0 +1,244 @@ + +# Advent of Code 2017 + +## December 5th +...a list of the offsets for each jump. Jumps are relative: -1 moves to the previous instruction, and 2 skips the next one. Start at the first instruction in the list. The goal is to follow the jumps until one leads outside the list. + +In addition, these instructions are a little strange; after each jump, the offset of that instruction increases by 1. So, if you come across an offset of 3, you would move three instructions forward, but change it to a 4 for the next time it is encountered. + +For example, consider the following list of jump offsets: + + 0 + 3 + 0 + 1 + -3 + +Positive jumps ("forward") move downward; negative jumps move upward. For legibility in this example, these offset values will be written all on one line, with the current instruction marked in parentheses. The following steps would be taken before an exit is found: + +* (0) 3 0 1 -3 - before we have taken any steps. +* (1) 3 0 1 -3 - jump with offset 0 (that is, don't jump at all). Fortunately, the instruction is then incremented to 1. +* 2 (3) 0 1 -3 - step forward because of the instruction we just modified. The first instruction is incremented again, now to 2. +* 2 4 0 1 (-3) - jump all the way to the end; leave a 4 behind. +* 2 (4) 0 1 -2 - go back to where we just were; increment -3 to -2. +* 2 5 0 1 -2 - jump 4 steps forward, escaping the maze. + +In this example, the exit is reached in 5 steps. + +How many steps does it take to reach the exit? + +## Breakdown +For now, I'm going to assume a starting state with the size of the sequence pre-computed. We need it to define the exit condition and it is a trivial preamble to generate it. We then need and `index` and a `step-count`, which are both initially zero. Then we have the sequence itself, and some recursive function `F` that does the work. + + size index step-count [...] F + ----------------------------------- + step-count + + F == [P] [T] [R1] [R2] genrec + +Later on I was thinking about it and the Forth heuristic came to mind, to wit: four things on the stack are kind of much. Immediately I realized that the size properly belongs in the predicate of `F`! D'oh! + + index step-count [...] F + ------------------------------ + step-count + +So, let's start by nailing down the predicate: + + F == [P] [T] [R1] [R2] genrec + == [P] [T] [R1 [F] R2] ifte + + 0 0 [0 3 0 1 -3] popop 5 >= + + P == popop 5 >= + +Now we need the else-part: + + index step-count [0 3 0 1 -3] roll< popop + + E == roll< popop + +Last but not least, the recursive branch + + 0 0 [0 3 0 1 -3] R1 [F] R2 + +The `R1` function has a big job: + + R1 == get the value at index + increment the value at the index + add the value gotten to the index + increment the step count + +The only tricky thing there is incrementing an integer in the sequence. Joy sequences are not particularly good for random access. We could encode the list of jump offsets in a big integer and use math to do the processing for a good speed-up, but it still wouldn't beat the performance of e.g. a mutable array. This is just one of those places where "plain vanilla" Joypy doesn't shine (in default performance. The legendary *Sufficiently-Smart Compiler* would of course rewrite this function to use an array "under the hood".) + +In the meantime, I'm going to write a primitive function that just does what we need. + + +```python +from notebook_preamble import D, J, V, define +from joy.library import SimpleFunctionWrapper +from joy.utils.stack import list_to_stack + + +@SimpleFunctionWrapper +def incr_at(stack): + '''Given a index and a sequence of integers, increment the integer at the index. + + E.g.: + + 3 [0 1 2 3 4 5] incr_at + ----------------------------- + [0 1 2 4 4 5] + + ''' + sequence, (i, stack) = stack + mem = [] + while i >= 0: + term, sequence = sequence + mem.append(term) + i -= 1 + mem[-1] += 1 + return list_to_stack(mem, sequence), stack + + +D['incr_at'] = incr_at +``` + + +```python +J('3 [0 1 2 3 4 5] incr_at') +``` + + [0 1 2 4 4 5] + + +### get the value at index + + 3 0 [0 1 2 3 4] [roll< at] nullary + 3 0 [0 1 2 n 4] n + +### increment the value at the index + + 3 0 [0 1 2 n 4] n [Q] dip + 3 0 [0 1 2 n 4] Q n + 3 0 [0 1 2 n 4] [popd incr_at] unary n + 3 0 [0 1 2 n+1 4] n + +### add the value gotten to the index + + 3 0 [0 1 2 n+1 4] n [+] cons dipd + 3 0 [0 1 2 n+1 4] [n +] dipd + 3 n + 0 [0 1 2 n+1 4] + 3+n 0 [0 1 2 n+1 4] + +### increment the step count + + 3+n 0 [0 1 2 n+1 4] [++] dip + 3+n 1 [0 1 2 n+1 4] + +### All together now... + + get_value == [roll< at] nullary + incr_value == [[popd incr_at] unary] dip + add_value == [+] cons dipd + incr_step_count == [++] dip + + R1 == get_value incr_value add_value incr_step_count + + F == [P] [T] [R1] primrec + + F == [popop !size! >=] [roll< pop] [get_value incr_value add_value incr_step_count] primrec + + +```python +from joy.library import DefinitionWrapper + + +DefinitionWrapper.add_definitions(''' + + get_value == [roll< at] nullary + incr_value == [[popd incr_at] unary] dip + add_value == [+] cons dipd +incr_step_count == [++] dip + + AoC2017.5.0 == get_value incr_value add_value incr_step_count + +''', D) +``` + + +```python +define('F == [popop 5 >=] [roll< popop] [AoC2017.5.0] primrec') +``` + + +```python +J('0 0 [0 3 0 1 -3] F') +``` + + 5 + + +### Preamble for setting up predicate, `index`, and `step-count` + +We want to go from this to this: + + [...] AoC2017.5.preamble + ------------------------------ + 0 0 [...] [popop n >=] + +Where `n` is the size of the sequence. + +The first part is obviously `0 0 roll<`, then `dup size`: + + [...] 0 0 roll< dup size + 0 0 [...] n + +Then: + + 0 0 [...] n [>=] cons [popop] swoncat + +So: + + init-index-and-step-count == 0 0 roll< + prepare-predicate == dup size [>=] cons [popop] swoncat + + AoC2017.5.preamble == init-index-and-step-count prepare-predicate + + +```python +DefinitionWrapper.add_definitions(''' + +init-index-and-step-count == 0 0 roll< + prepare-predicate == dup size [>=] cons [popop] swoncat + + AoC2017.5.preamble == init-index-and-step-count prepare-predicate + + AoC2017.5 == AoC2017.5.preamble [roll< popop] [AoC2017.5.0] primrec + +''', D) +``` + + +```python +J('[0 3 0 1 -3] AoC2017.5') +``` + + 5 + + + + AoC2017.5 == AoC2017.5.preamble [roll< popop] [AoC2017.5.0] primrec + + AoC2017.5.0 == get_value incr_value add_value incr_step_count + AoC2017.5.preamble == init-index-and-step-count prepare-predicate + + get_value == [roll< at] nullary + incr_value == [[popd incr_at] unary] dip + add_value == [+] cons dipd + incr_step_count == [++] dip + + init-index-and-step-count == 0 0 roll< + prepare-predicate == dup size [>=] cons [popop] swoncat + + +This is by far the largest program I have yet written in Joy. Even with the `incr_at` function it is still a bear. There may be an arrangement of the parameters that would permit more elegant definitions, but it still wouldn't be as efficient as something written in assembly, C, or even Python. diff --git a/docs/Advent of Code 2017 December 6th.html b/docs/Advent of Code 2017 December 6th.html new file mode 100644 index 0000000..7fcb072 --- /dev/null +++ b/docs/Advent of Code 2017 December 6th.html @@ -0,0 +1,12415 @@ + + + +Advent of Code 2017 December 6th + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Advent of Code 2017

December 6th

+
[0 2 7 0] dup max
+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import D, J, V, define
+
+ +
+
+
+ +
+
+
+
In [2]:
+
+
+
J('[0 2 7 0] dup max')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[0 2 7 0] 7
+
+
+
+ +
+
+ +
+
+
+
In [3]:
+
+
+
from joy.library import SimpleFunctionWrapper
+from joy.utils.stack import list_to_stack
+
+
+@SimpleFunctionWrapper
+def index_of(stack):
+    '''Given a sequence and a item, return the index of the item, or -1 if not found.
+
+    E.g.:
+
+       [a b c] a index_of
+    ------------------------
+               0
+
+       [a b c] d index_of
+    ------------------------
+            -1
+
+    '''
+    item, (sequence, stack) = stack
+    i = 0
+    while sequence:
+        term, sequence = sequence
+        if term == item:
+            break
+        i += 1
+    else:
+        i = -1
+    return i, stack
+
+
+D['index_of'] = index_of
+
+ +
+
+
+ +
+
+
+
In [4]:
+
+
+
J('[0 2 7 0] 7 index_of')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
In [5]:
+
+
+
J('[0 2 7 0] 23 index_of')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-1
+
+
+
+ +
+
+ +
+
+
+
+
+

Starting at index distribute count "blocks" to the "banks" in the sequence.

+ +
[...] count index distribute
+----------------------------
+           [...]
+
+
+

This seems like it would be a PITA to implement in Joypy...

+ +
+
+
+
+
+
In [6]:
+
+
+
from joy.utils.stack import iter_stack, list_to_stack
+
+
+@SimpleFunctionWrapper
+def distribute(stack):
+    '''Starting at index+1 distribute count "blocks" to the "banks" in the sequence.
+
+    [...] count index distribute
+    ----------------------------
+               [...]
+
+    '''
+    index, (count, (sequence, stack)) = stack
+    assert count >= 0
+    cheat = list(iter_stack(sequence))
+    n = len(cheat)
+    assert index < n
+    cheat[index] = 0
+    while count:
+        index += 1
+        index %= n
+        cheat[index] += 1
+        count -= 1
+    return list_to_stack(cheat), stack
+
+
+D['distribute'] = distribute
+
+ +
+
+
+ +
+
+
+
In [7]:
+
+
+
J('[0 2 7 0] dup max [index_of] nullary distribute')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 4 1 2]
+
+
+
+ +
+
+ +
+
+
+
In [8]:
+
+
+
J('[2 4 1 2] dup max [index_of] nullary distribute')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 1 2 3]
+
+
+
+ +
+
+ +
+
+
+
In [9]:
+
+
+
J('[3 1 2 3] dup max [index_of] nullary distribute')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[0 2 3 4]
+
+
+
+ +
+
+ +
+
+
+
In [10]:
+
+
+
J('[0 2 3 4] dup max [index_of] nullary distribute')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 3 4 1]
+
+
+
+ +
+
+ +
+
+
+
In [11]:
+
+
+
J('[1 3 4 1] dup max [index_of] nullary distribute')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 4 1 2]
+
+
+
+ +
+
+ +
+
+
+
+
+

Recalling "Generator Programs"

+
[a F] x
+[a F] a F 
+
+[a F] a swap [C] dip rest cons
+a   [a F]    [C] dip rest cons
+a C [a F]            rest cons
+a C   [F]                 cons
+
+w/ C == dup G
+
+a dup G [F] cons
+a a   G [F] cons
+
+w/ G == dup max [index_of] nullary distribute
+ +
+
+
+
+
+
In [12]:
+
+
+
define('direco == dip rest cons')
+
+ +
+
+
+ +
+
+
+
In [13]:
+
+
+
define('G == [direco] cons [swap] swoncat cons')
+
+ +
+
+
+ +
+
+
+
In [14]:
+
+
+
define('make_distributor == [dup dup max [index_of] nullary distribute] G')
+
+ +
+
+
+ +
+
+
+
In [15]:
+
+
+
J('[0 2 7 0] make_distributor 6 [x] times pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[0 2 7 0] [2 4 1 2] [3 1 2 3] [0 2 3 4] [1 3 4 1] [2 4 1 2]
+
+
+
+ +
+
+ +
+
+
+
+
+

A function to drive a generator and count how many states before a repeat.

First draft:

+ +
[] [GEN] x [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec
+
+
+

(?)

+ +
[]       [GEN] x [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec
+[] [...] [GEN]   [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec
+[] [...] [GEN]    pop index_of 0 >=
+[] [...]              index_of 0 >=
+                            -1 0 >=
+                             False
+
+
+

Base case

+ +
[] [...] [GEN] [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec
+[] [...] [GEN]                      pop size --
+[] [...]                                size --
+[] [...]                                size --
+
+
+

A mistake, popop and no need for --

+ +
[] [...] [GEN] popop size
+[]                   size
+n
+
+
+

Recursive case

+ +
[] [...] [GEN] [pop index_of 0 >=] [popop size] [[swons] dip x] primrec
+[] [...] [GEN]                                   [swons] dip x  F
+[] [...] swons [GEN]                                         x  F
+[[...]]        [GEN]                                         x  F
+[[...]] [...]  [GEN]                                            F
+
+[[...]] [...] [GEN] F
+
+
+

What have we learned?

+ +
F == [pop index_of 0 >=] [popop size] [[swons] dip x] primrec
+ +
+
+
+
+
+
In [16]:
+
+
+
define('count_states == [] swap x [pop index_of 0 >=] [popop size] [[swons] dip x] primrec')
+
+ +
+
+
+ +
+
+
+
In [17]:
+
+
+
define('AoC2017.6 == make_distributor count_states')
+
+ +
+
+
+ +
+
+
+
In [18]:
+
+
+
J('[0 2 7 0] AoC2017.6')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5
+
+
+
+ +
+
+ +
+
+
+
In [19]:
+
+
+
J('[1 1 1] AoC2017.6')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4
+
+
+
+ +
+
+ +
+
+
+
In [20]:
+
+
+
J('[8 0 0 0 0 0] AoC2017.6')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
15
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/Advent of Code 2017 December 6th.ipynb b/docs/Advent of Code 2017 December 6th.ipynb new file mode 100644 index 0000000..6d7f188 --- /dev/null +++ b/docs/Advent of Code 2017 December 6th.ipynb @@ -0,0 +1,457 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Advent of Code 2017\n", + "\n", + "## December 6th\n", + "\n", + "\n", + " [0 2 7 0] dup max\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import D, J, V, define" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 2 7 0] 7\n" + ] + } + ], + "source": [ + "J('[0 2 7 0] dup max')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.library import SimpleFunctionWrapper\n", + "from joy.utils.stack import list_to_stack\n", + "\n", + "\n", + "@SimpleFunctionWrapper\n", + "def index_of(stack):\n", + " '''Given a sequence and a item, return the index of the item, or -1 if not found.\n", + "\n", + " E.g.:\n", + "\n", + " [a b c] a index_of\n", + " ------------------------\n", + " 0\n", + "\n", + " [a b c] d index_of\n", + " ------------------------\n", + " -1\n", + "\n", + " '''\n", + " item, (sequence, stack) = stack\n", + " i = 0\n", + " while sequence:\n", + " term, sequence = sequence\n", + " if term == item:\n", + " break\n", + " i += 1\n", + " else:\n", + " i = -1\n", + " return i, stack\n", + "\n", + "\n", + "D['index_of'] = index_of" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('[0 2 7 0] 7 index_of')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-1\n" + ] + } + ], + "source": [ + "J('[0 2 7 0] 23 index_of')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Starting at `index` distribute `count` \"blocks\" to the \"banks\" in the sequence.\n", + "\n", + " [...] count index distribute\n", + " ----------------------------\n", + " [...]\n", + "\n", + "This seems like it would be a PITA to implement in Joypy..." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.utils.stack import iter_stack, list_to_stack\n", + "\n", + "\n", + "@SimpleFunctionWrapper\n", + "def distribute(stack):\n", + " '''Starting at index+1 distribute count \"blocks\" to the \"banks\" in the sequence.\n", + "\n", + " [...] count index distribute\n", + " ----------------------------\n", + " [...]\n", + "\n", + " '''\n", + " index, (count, (sequence, stack)) = stack\n", + " assert count >= 0\n", + " cheat = list(iter_stack(sequence))\n", + " n = len(cheat)\n", + " assert index < n\n", + " cheat[index] = 0\n", + " while count:\n", + " index += 1\n", + " index %= n\n", + " cheat[index] += 1\n", + " count -= 1\n", + " return list_to_stack(cheat), stack\n", + "\n", + "\n", + "D['distribute'] = distribute" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 4 1 2]\n" + ] + } + ], + "source": [ + "J('[0 2 7 0] dup max [index_of] nullary distribute')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 1 2 3]\n" + ] + } + ], + "source": [ + "J('[2 4 1 2] dup max [index_of] nullary distribute')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 2 3 4]\n" + ] + } + ], + "source": [ + "J('[3 1 2 3] dup max [index_of] nullary distribute')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 3 4 1]\n" + ] + } + ], + "source": [ + "J('[0 2 3 4] dup max [index_of] nullary distribute')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 4 1 2]\n" + ] + } + ], + "source": [ + "J('[1 3 4 1] dup max [index_of] nullary distribute')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Recalling \"Generator Programs\"\n", + "\n", + " [a F] x\n", + " [a F] a F \n", + " \n", + " [a F] a swap [C] dip rest cons\n", + " a [a F] [C] dip rest cons\n", + " a C [a F] rest cons\n", + " a C [F] cons\n", + "\n", + " w/ C == dup G\n", + "\n", + " a dup G [F] cons\n", + " a a G [F] cons\n", + "\n", + " w/ G == dup max [index_of] nullary distribute" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "define('direco == dip rest cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "define('G == [direco] cons [swap] swoncat cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "define('make_distributor == [dup dup max [index_of] nullary distribute] G')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0 2 7 0] [2 4 1 2] [3 1 2 3] [0 2 3 4] [1 3 4 1] [2 4 1 2]\n" + ] + } + ], + "source": [ + "J('[0 2 7 0] make_distributor 6 [x] times pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### A function to drive a generator and count how many states before a repeat.\n", + "First draft:\n", + "\n", + " [] [GEN] x [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec\n", + "\n", + "(?)\n", + "\n", + " [] [GEN] x [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec\n", + " [] [...] [GEN] [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec\n", + " [] [...] [GEN] pop index_of 0 >=\n", + " [] [...] index_of 0 >=\n", + " -1 0 >=\n", + " False\n", + "\n", + "Base case\n", + "\n", + " [] [...] [GEN] [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec\n", + " [] [...] [GEN] pop size --\n", + " [] [...] size --\n", + " [] [...] size --\n", + "\n", + "A mistake, `popop` and no need for `--`\n", + "\n", + " [] [...] [GEN] popop size\n", + " [] size\n", + " n\n", + "\n", + "Recursive case\n", + "\n", + " [] [...] [GEN] [pop index_of 0 >=] [popop size] [[swons] dip x] primrec\n", + " [] [...] [GEN] [swons] dip x F\n", + " [] [...] swons [GEN] x F\n", + " [[...]] [GEN] x F\n", + " [[...]] [...] [GEN] F\n", + "\n", + " [[...]] [...] [GEN] F\n", + "\n", + "What have we learned?\n", + "\n", + " F == [pop index_of 0 >=] [popop size] [[swons] dip x] primrec" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "define('count_states == [] swap x [pop index_of 0 >=] [popop size] [[swons] dip x] primrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "define('AoC2017.6 == make_distributor count_states')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5\n" + ] + } + ], + "source": [ + "J('[0 2 7 0] AoC2017.6')" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], + "source": [ + "J('[1 1 1] AoC2017.6')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "15\n" + ] + } + ], + "source": [ + "J('[8 0 0 0 0 0] AoC2017.6')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Advent of Code 2017 December 6th.md b/docs/Advent of Code 2017 December 6th.md new file mode 100644 index 0000000..0697b11 --- /dev/null +++ b/docs/Advent of Code 2017 December 6th.md @@ -0,0 +1,267 @@ + +# Advent of Code 2017 + +## December 6th + + + [0 2 7 0] dup max + + + +```python +from notebook_preamble import D, J, V, define +``` + + +```python +J('[0 2 7 0] dup max') +``` + + [0 2 7 0] 7 + + + +```python +from joy.library import SimpleFunctionWrapper +from joy.utils.stack import list_to_stack + + +@SimpleFunctionWrapper +def index_of(stack): + '''Given a sequence and a item, return the index of the item, or -1 if not found. + + E.g.: + + [a b c] a index_of + ------------------------ + 0 + + [a b c] d index_of + ------------------------ + -1 + + ''' + item, (sequence, stack) = stack + i = 0 + while sequence: + term, sequence = sequence + if term == item: + break + i += 1 + else: + i = -1 + return i, stack + + +D['index_of'] = index_of +``` + + +```python +J('[0 2 7 0] 7 index_of') +``` + + 2 + + + +```python +J('[0 2 7 0] 23 index_of') +``` + + -1 + + +Starting at `index` distribute `count` "blocks" to the "banks" in the sequence. + + [...] count index distribute + ---------------------------- + [...] + +This seems like it would be a PITA to implement in Joypy... + + +```python +from joy.utils.stack import iter_stack, list_to_stack + + +@SimpleFunctionWrapper +def distribute(stack): + '''Starting at index+1 distribute count "blocks" to the "banks" in the sequence. + + [...] count index distribute + ---------------------------- + [...] + + ''' + index, (count, (sequence, stack)) = stack + assert count >= 0 + cheat = list(iter_stack(sequence)) + n = len(cheat) + assert index < n + cheat[index] = 0 + while count: + index += 1 + index %= n + cheat[index] += 1 + count -= 1 + return list_to_stack(cheat), stack + + +D['distribute'] = distribute +``` + + +```python +J('[0 2 7 0] dup max [index_of] nullary distribute') +``` + + [2 4 1 2] + + + +```python +J('[2 4 1 2] dup max [index_of] nullary distribute') +``` + + [3 1 2 3] + + + +```python +J('[3 1 2 3] dup max [index_of] nullary distribute') +``` + + [0 2 3 4] + + + +```python +J('[0 2 3 4] dup max [index_of] nullary distribute') +``` + + [1 3 4 1] + + + +```python +J('[1 3 4 1] dup max [index_of] nullary distribute') +``` + + [2 4 1 2] + + +### Recalling "Generator Programs" + + [a F] x + [a F] a F + + [a F] a swap [C] dip rest cons + a [a F] [C] dip rest cons + a C [a F] rest cons + a C [F] cons + + w/ C == dup G + + a dup G [F] cons + a a G [F] cons + + w/ G == dup max [index_of] nullary distribute + + +```python +define('direco == dip rest cons') +``` + + +```python +define('G == [direco] cons [swap] swoncat cons') +``` + + +```python +define('make_distributor == [dup dup max [index_of] nullary distribute] G') +``` + + +```python +J('[0 2 7 0] make_distributor 6 [x] times pop') +``` + + [0 2 7 0] [2 4 1 2] [3 1 2 3] [0 2 3 4] [1 3 4 1] [2 4 1 2] + + +### A function to drive a generator and count how many states before a repeat. +First draft: + + [] [GEN] x [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec + +(?) + + [] [GEN] x [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec + [] [...] [GEN] [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec + [] [...] [GEN] pop index_of 0 >= + [] [...] index_of 0 >= + -1 0 >= + False + +Base case + + [] [...] [GEN] [pop index_of 0 >=] [pop size --] [[swons] dip x] primrec + [] [...] [GEN] pop size -- + [] [...] size -- + [] [...] size -- + +A mistake, `popop` and no need for `--` + + [] [...] [GEN] popop size + [] size + n + +Recursive case + + [] [...] [GEN] [pop index_of 0 >=] [popop size] [[swons] dip x] primrec + [] [...] [GEN] [swons] dip x F + [] [...] swons [GEN] x F + [[...]] [GEN] x F + [[...]] [...] [GEN] F + + [[...]] [...] [GEN] F + +What have we learned? + + F == [pop index_of 0 >=] [popop size] [[swons] dip x] primrec + + +```python +define('count_states == [] swap x [pop index_of 0 >=] [popop size] [[swons] dip x] primrec') +``` + + +```python +define('AoC2017.6 == make_distributor count_states') +``` + + +```python +J('[0 2 7 0] AoC2017.6') +``` + + 5 + + + +```python +J('[1 1 1] AoC2017.6') +``` + + 4 + + + +```python +J('[8 0 0 0 0 0] AoC2017.6') +``` + + 15 + diff --git a/docs/Document.md b/docs/Document.md new file mode 100644 index 0000000..5c9387b --- /dev/null +++ b/docs/Document.md @@ -0,0 +1,469 @@ + +# Joy + +This document is written to capture, at least crudely, the scope of application for Joy and the Joypy implementation. It kind of expects that you have some familiarity with Joy already. + +It is vaguely organized, in a pile. + + +## Syntax + +Very simple syntax. Could be specified as a sequence of one or more terms: + + joy ::= term term* + +Conceptually, all terms are unary functions `F :: stack -> stack` that accept a stack and return a stack. But we immediately differentiate between literals (of a few kinds), functions, and combinators (which like higher-order functions.) + + +### In Joypy there are currently four literal types. + +First we have the types borrowed from the underlying Python semantics. **Strings** (byte and Unicode with nuances depending on whether you're running under Python 2 or 3), **ints**, and **floats**. Then there is the **sequence** type, aka "quote", "list", etc... In joy it is represented by enclosing zero or more terms in square brackets: + + sequence :== '[' term* ']' + +(In Joypy it is implemented as a cons-list. All datastructures in Joypy are built out of this single sequence type, including the stack and expression. I could include Python `frozenset` but I don't.) + + literal ::= string | int | float | sequence + +Functions accept zero or more arguments from the stack and push back zero or more results. + +Combinators are functions one or more of the arguments to which are quotes containing joy expressions, and which then execute one or more of their quoted arguments to effect their function. + + term ::= literal | function | combinator + +The code for the parser is in `joy/parser.py`. + + +## Semantics + +In Joy juxtaposition of symbols is composition of functions. That means that `F G` syntactically is `G(F(...))` semantically. + +As it says in the [Wikipedia entry for Joypy](https://en.wikipedia.org/wiki/Joy_%28programming_language%29): + + "In Joy, the meaning function is a homomorphism from the syntactic monoid onto the semantic monoid. That is, the syntactic relation of concatenation of symbols maps directly onto the semantic relation of composition of functions." + +Isn't that nice? + + +## Joypy Continuation-Passing Style + +In Joypy all the combinators work by modifying the pending expression. We have enlarged the definition of function to be from a two-tuple of `(stack, expression)` to another such two-tuple: + + F :: (stack, expression) -> (stack, expression) + +Simple functions ignore the expression and pass it through unchanged, combinators do not. They can modify it and this is enough to define control-flow and other operators. + +(Actually... In Joypy the functions all also include a dictionary parameter. This allows for functions like `print_words` and `help`. It also allows for the definition of a `define` function which would let Joy code add new definitions to the dictionary during evaluation, but this is an area I am leaving unexplored at least for now. It is essentially name-binding (variables) sneaking in, breaking the purity of the system.) + + +## Evaluation + +The joy interpreter is a very simple loop. As long as the expression is non-empty the interpreter pops the next term and checks it, if it's a literal it's pushed onto the stack, if it's a function or combinator the interpreter calls it passing the current stack and expression, which are then replaced by whatever the function or combinator returns. + +There is no call stack. All state is kept either on the stack or in the pending expression. At each interpreter iteration the stack and expression are complete. (They can be pickled, saved to disc or sent over the network, and reconstituted at any time, etc...) + + +# Methods of Meta-programming + +Joy seems to lend itself to several complementary forms of meta-programming to develop more-efficient versions of functions. + + +## Compiling definitions. + +Due to the fact that "juxtaposition of symbols is composition of functions" the *simplest* way to "compile" the Joy expression `F G` would be the Python expression: + + lambda s, e, d: G(*F(s, e, d)) + +This produces a new unnamed function that delivers the output of `F` directly to `G` without passing back through the interpreter loop. + +If we wanted to do more work than that, we could inspect the bytecode of the two Python functions, figure out how they name their arguments, and attempt to produce new bytecode that corresponds to the composition of them. This is a little beyond me at the moment, but it's not unrealistic given enough time and attention. + +It will usually be easier to manually write new custom words. For example, the "plus or minus" operator `pm`, defined as: + + pm == [+] [-] cleave popdd + +Can be implemented in Python as: + + @SimpleFunctionWrapper + def pm(stack): + a, (b, stack) = stack + p = b + a + m = b - a + return m, (p, stack) + +Code that uses `pm` will will work the same but more quickly if the "compiled" version is inscribed in the dictionary. + +It would be remiss not to mention **Cython** in this connection. Many Joy functions can be transparently compiled down to machine code. + +Beyond the above, it should be possible to make use of much of the existing body of knowledge for compiling *functional programming* languages to machine code for making an actual Joy compiler. Joy omits many "features" that are common to most other languages, lambda abstraction and `let` statements for example. I have not had the time to investigate compilation of Joy in any depth so far, but I have high hopes. It should be possible (and most of the details will have been already worked out in other languages) to go from e.g. the definition form of `pm` to the Python form automatically. + + +## Partial Evaluation + +Cf. "Futamura projections" + +["partial evaluation is a technique for several different types of program optimization by specialization. The most straightforward application is to produce new programs which run faster than the originals while being guaranteed to behave in the same way."](https://en.wikipedia.org/wiki/Partial_evaluation) ~Wikipedia + +Given a function and some (but not all) of its arguments you can run the interpreter in a speculative fashion and derive new functions that are specializations of the original. + +Example from [Futamura, 1983](https://repository.kulib.kyoto-u.ac.jp/dspace/bitstream/2433/103401/1/0482-14.pdf) of converting a power function to a "to the fifth power" function: + + F(k, u) -> u^k + +I like to use a kind of crude [Gentzen notation](https://en.wikipedia.org/wiki/Natural_deduction) to describe a Joy function's semantics: + + k u F + ----------- + u^k + +Joy function implementation: + + F == 1 [popop 0 !=] [[popop 2 %] [over *] [] ifte [1 >>] dipd [sqr] dip] while [popop] dip + +This is a bit longer than a definition should be. In practice I would refactor it to be more concise and easily understood. + +In Python for comparison: + + def power(k, u): + z = 1 + while k != 0: + if k % 2: + z = z * u + k = k >> 1 + u = u * u + return z + +Using 5 for `k` and pushing evaluation forward as far as it will go with a sort of "thunk" variable for `u` we arrive at: + + u u u * dup * * + +We can replace the extra occurrences of `u` with `dup` to arrive at a definition for a Joy function that, given a number on the stack, returns that number raised to the fifth power: + + to-the-fifth == dup dup * dup * * + +Here it is in action: + + u dup dup * dup * * + u u dup * dup * * + u u u * dup * * + u u^2 dup * * + u u^2 u^2 * * + u u^4 * + u^5 + +See the appendix below for the derivation of the specialized form from the general form. + +It should be possible to write a program `FutamuraI` that works like this: + + [5] [F] FutamuraI + ------------------------- + [dup dup * dup * *] + + +That is, given the quoted program `[F]` and the argument `5`, it returns the new `to-the-fifth` function in quoted form. + + +### First Futamura Projection + +A joy interpreter written in Joy is described in the literature (available from the La Trobe archive or the mirror site) so we can apply the program `FutamuraI` to that to get a *residual* program `R` for some program `Q`: + + [Q] [joy] FutamuraI + ------------------------- + [R] + +The expected result is that, for a given input, the runtime of `R` is less than or equal to the runtime of `Q`. + +If we had a partial evaluator for Python we could create a residual program in Python for the Joy program `Q`. + + +### Second Futamura Projection + + [joy] [FutamuraI] FutamuraI + --------------------------------- + [C] + +Making a compiler by "specializing the specializer for the interpreter". + + +### Third Futamura Projection + + [FutamuraI] [FutamuraI] FutamuraI + --------------------------------------- + [K] + +"Specializing the specializer for itself yielding a tool that can convert any interpreter to an equivalent compiler" + + [joy] K + ------------- + [C] + + + + [Q] [joy] K i + ------------------- + [Q] C + ----------- + [R] + + + + + [K] K -> [K] + + + + +## Super-Compilation + +https://en.wikipedia.org/wiki/Metacompilation + +https://themonadreader.files.wordpress.com/2014/04/super-final.pdf + +This is a little hard to describe succinctly, but you are basically trying to figure out all possible paths through a program and then use that knowledge to improve the code, somehow. (I forget the details, but it's worth including and revisiting.) + + +## Gödel Machine + +http://people.idsia.ch/~juergen/goedelmachine.html + +https://en.wikipedia.org/wiki/G%C3%B6del_machine + +In Joy it often happens that a new general form is discovered that is semantically equivalent to some other form but that has greater efficiency (at least under some definite conditions.) When this happens we can perform a kind of search-and-replace operation over the whole of the current dictionary (standard library in other languages) and achieve performance gains. + +As an example, the function `[1 >>] dipd [sqr] dip` can be rewritten as `[[1 >>] dip sqr] dip` which, depending on the other optimizations some interpreter might make, could be more efficient. We can generalize this to a pattern-matching rule, something like: + + [F] dipd [G] dip == [[F] dip G] dip + +And we are justified rewriting any occurrence of the pattern on either side to the other if it improves things. + +The above also suggests a new combinator, call it `dipdip` that abstracts the pattern: + + ... a b [F] [G] dipdip + ---------------------------- + ... F a G b + +This permits the compiler to make optimizations without having to work to notice the pattern. The `dipdip` function and the interpreter can work together to do the more efficient thing. + +Joy function definitions form Directed Graphs. Not acyclical though, definition bodies do not contain references to other functions, but rather "Symbols" that name functions, so you can form e.g. two definitions that each make use of the other. Generally speaking though, you don't do this, instead you write definitions that use e.g. `genrec` general recursion combinator. + +Anyway, because Joy code is just a graph it becomes pretty easy to rewrite the graph in ways that preserve the semantics but are more efficient. Doing this in an automated fashion is essentially Schmidhuber's Gödel Machine: Finding and applying provably-correct modifications to the whole system in a self-referential way to create a self-improving general problem solver. + +Joy is intended as an effective vehicle for exploring this potential. + + +## Speculative pre-evaluation + +If you examine the traces of Joy programs it's easy to find places in the pending expression where some speculative interpreter could pre-compute results while the main interpreter was prosecuting the main "thread" of the program. For example consider (with the `.` indicating the current "location of the interpreter head" if you will, the split between the stack and the expression): + + ... a b c . F 2 3 + G H + +The `2 3 +` between `F` and `G` is not at the interpreter "head" yet it is extremely unlikely that any function `F` will prevent it (eventually) being evaluated to `5`. We can imagine an interpreter that detects this sort of thing, evaluates the sub-expression with a different CPU, and "tags" the expression at `2` with the result `5`. If evaluation reaches `2` the interpreter can just use `5` without re-evaluating the whole sub-expression `2 3 +`. + +This sort of thing happens all the time in Joy code. + +For example, if you look at the appendix for the partial evaluation example there is a stage where we have this: + + 5 u u [1 >>] dipd [sqr] dip + +Which can be written with the `dipdip` combinator: + + 5 u u [1 >>] [sqr] dipdip + +Which then becomes this: + + 5 1 >> u sqr u + +The interpreter could notice that `5 1 >>` and `u sqr` can proceed in parallel without interfering with each other. The `dipdip` combinator could be written to somehow hint to the interpreter that it should check for this posibility. + + +## JIT + +Whatever eventually winds up converting Joy code to machine code is susceptible to Just-in-Time compilation. For example, if you run Joypy on Pypy you take advantage of its JIT. + + +# Joy as UI + + +## Joy unifies CLI and GUI interfaces. + +All Joy interaction consists of two basic actions: + +1. Putting things onto the stack. +2. Executing functions. + +In a command-line setting you perform both of these actions the same way: entering Joy expressions as text. In a GUI you select items and copy or cut them to a user-visible stack (that is a first-class member of the UI, similar to the clipboard but with better visibility into contents and not restricted to one selection at a time.) You then trigger the evaluation of functions by clicking on buttons or menu items. *From the point-of-view of the underlying interpreter there is no difference between the input token streams for either UI modality.* + + +## Simple and Comprehensible Model + +In order to use their system(s) users must be able to easily and quickly develop a mental model of the system that maps to the actual system abstractions well enough to support the achievement of their goals. + +(Arguably current systems are pretty poor at this. Even an abstraction as old and ubiquitous as "filesystem" is only incompletely understood by many computer users. Many people do not understand the difference between RAM and disk storage!) + +The Joy model consists of just these main concepts: + +1. A stack of values +2. A dictionary of named commands +3. An interpreter + +Each of these is very simple and the first two even have real-world analogs (e.g. a *stack* of dishes or boxes or whatever, and, well, *dictionaries*.) It's easy to develop intuition for this system, resulting in a close match between the user's mental model and the actual system abstraction. + + +# Joy as AST for multi-language interop + +IR for Compilation + +Cf. Graal & Truffle + +"Software is eating the world"; Joy eats software. + +Universal Solvent + +Can write front-ends for translating other languages into Joy, thence to be refactored and fulminated into more efficient forms. "The Blob" of software. + + +# Minimal Basis + +Cf. SKI combinators, Peano arithmentic, Church numerals et. al., + +Folks have done work on figuring out the minimal set of combinators that are Turing-complete. Several of these sets are quite small. + +Semantics can be defined in terms of Laws of Form for down-to-the-metal modeling of programs as logic circuits. Hardware description language. + + + +# Math, Physics, Computation + + Computational algorithms are used to communicate precisely + some of the methods used in the analysis of dynamical phenomena. + Expressing the methods of variational mechanics in a computer + language forces them to be unambiguous and computationally + effective. Computation requires us to be precise about the repre- + sentation of mechanical and geometric notions as computational + objects and permits us to represent explicitly the algorithms for + manipulating these objects. Also, once formalized as a procedure, + a mathematical idea becomes a tool that can be used directly to + compute results. + - "Structure and Interpretation of Classical Mechanics", + Gerald Jay Sussman and Jack Wisdom with Meinhard E. Mayer + +. + + + +# Joy as glue language + +Basically any existing code/programs can be exposed to Joy as a function or collection of functions. + +## Shell command + +Run a shell command. + + "stdin" "cmd line" system + ----------------------------------- + "stderr" "stdout" return_code + +Then you can create e.g.: + + foo == "awk {awk program}" system + +Etc... + +## Python libraries + +## Ctypes (FFI) for loading binary libraries + + + + +# Git as File Store + +The old-fashioned File System abstraction is no longer justified. Joypy won't attempt to implement file and path operations. Instead there are a few functions that accept three args: a sha1 checksum of a blob of data, an initial index, and an offset. One function returns the string of data `blob[index:index+offset]`, while another accepts an additional quoted program and "runs it" with the data as the stack, for when you want to process a big ol' pile of data but don't want to load it into the interpreter. I imagine a use case for a third-party wrapped library that expects some sort of file or socket and streams over it somehow. Obviously, this is under-specified. + +The sha1 checksum refers to data stored in some (global, universal) git repo, which is provided to the interpreter though some as-yet unimplemented meta-interpreter action. + +**Git is a functional data type**, compatible with the semantic model of Joy. Implies shared datastore with obvious connection to git-archive & Datalad. + +Functions over static data (Wikipedia dump; MRI data &c.) can be considered timeless (however much time their first evaluation takes) and cached/archived in the global shared git repo. (Large data in e.g. cloud & bittorrent, with meta-data in git-archive/Datalad) + +Functions over streams (of possible mal-formed) data require a special stream-processing combinator and more care in their development. I haven't developed this in any detail, but it can be shown in many cases that e.g. a given function cannot grow unbounded (for all possible unbounded input streams.) + + + +# Sympy Library + +The mathematical functions in the Joypy library wrap the `math` module and other built-ins for the most part. It would be a simple matter to write wrapper functions for e.g. the Sympy packages' functions and provide symbolic math capabilities. + +It would also be possible to make a dictionary that mapped the math functions to the Sympy versions. Evaluating Joy code with this dictionary (and a special stack with Sympy variables on it) would result in symbolic execution without rewriting the Joy code. + + + +# Stack-based laguages as Dataflow + +If the "places" in a stack are considered first-class entities and tracked through "stack chatter" operations (like `swap`) we can draw flow-lines for the data and represent the functions as boxes with input and output lines. Stack chatter becomes topological rearrangements of lines. The resulting structure is conceptually identical with *Dataflow* paradigm of programming. + +(Related to this I suspect that all stack chatter disappears during compilation but I haven't nailed that down yet.) + +I'm unable to find the original webpage that describe the above. :-( + + +# Appendix Partial Evaluation Example + + k u F + ----------- + u^k + + + k u 1 [popop 0 !=] [[popop odd][over *][]ifte [1 >>] dipd [sqr] dip] while [popop] dip + + F == 1 [popop 0 !=] [[popop odd][over *][]ifte [1 >>] dipd [sqr] dip] while [popop] dip + + 5 u 1 [popop 0 !=] [[popop odd][over *][]ifte [1 >>] dipd [sqr] dip] while [popop] dip + + + 5 u 1 popop 0 != + 5 0 != + True + + + 5 u 1 [popop odd][over *][]ifte [1 >>] dipd [sqr] dip + 5 u 1 popop odd + True + + w/ sqr == dup * + + 5 u 1 over * [1 >>] dipd [sqr] dip + 5 u 1 u * [1 >>] dipd [sqr] dip + 5 u u [1 >>] dipd [sqr] dip + 5 1 >> u sqr u + 2 u_dup_* u + --or-- + 2 u_u_* u + + 2 u_u_* u popop 0 != + 2 0 != + True + + 2 u_u_* u [popop odd][over *][]ifte [1 >>] dipd [sqr] dip + ... + 2 u_u_* u [1 >>] dipd [sqr] dip + + 2 1 >> u_u_* sqr u + 1 u_u_*_dup_* u + + + 1 u_u_*_dup_* u [popop odd][over *][]ifte [1 >>] dipd [sqr] dip + 1 u_u_*_dup_* u over * [1 >>] dipd [sqr] dip + 1 u_u_*_dup_* u u_u_*_dup_* * [1 >>] dipd [sqr] dip + 1 u_u_*_dup_* u_u_u_*_dup_*_* [1 >>] dipd [sqr] dip + + 1 1 >> u_u_*_dup_* sqr u_u_u_*_dup_*_* + 0 u_u_*_dup_* dup * u_u_u_*_dup_*_* + 0 u_u_*_dup_* u_u_*_dup_* * u_u_u_*_dup_*_* + 0 u_..._* u_u_u_*_dup_*_* + + 0 u_..._* u_u_u_*_dup_*_* [popop] dip + + u_u_u_*_dup_*_* + + ^5 == dup dup * dup * * diff --git a/docs/Generator Programs.html b/docs/Generator Programs.html new file mode 100644 index 0000000..ade5ded --- /dev/null +++ b/docs/Generator Programs.html @@ -0,0 +1,13224 @@ + + + +Generator Programs + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Using x to Generate Values

Cf. jp-reprod.html

+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

Consider the x combinator x == dup i:

+ +
[a B] x
+[a B] a B
+
+
+

Let B swap the a with the quote and run some function [C] on it.

+ +
[a B] a B
+[a B] a swap [C] dip
+a [a B]      [C] dip
+a C [a B]
+
+
+

Now discard the quoted a with rest and cons the result of C on a whatever that is:

+ +
aC [a B] rest cons
+aC [B] cons
+[aC B]
+
+
+

Altogether, this is the definition of B:

+ +
B == swap [C] dip rest cons
+
+
+

We can create a quoted program that generates the Natural numbers (integers 0, 1, 2, ...) by using 0 for a and [dup ++] for [C]:

+ +
[0 swap [dup ++] dip rest cons]
+
+
+

Let's try it:

+ +
+
+
+
+
+
In [2]:
+
+
+
V('[0 swap [dup ++] dip rest cons] x')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                           . [0 swap [dup ++] dip rest cons] x
+           [0 swap [dup ++] dip rest cons] . x
+           [0 swap [dup ++] dip rest cons] . 0 swap [dup ++] dip rest cons
+         [0 swap [dup ++] dip rest cons] 0 . swap [dup ++] dip rest cons
+         0 [0 swap [dup ++] dip rest cons] . [dup ++] dip rest cons
+0 [0 swap [dup ++] dip rest cons] [dup ++] . dip rest cons
+                                         0 . dup ++ [0 swap [dup ++] dip rest cons] rest cons
+                                       0 0 . ++ [0 swap [dup ++] dip rest cons] rest cons
+                                       0 1 . [0 swap [dup ++] dip rest cons] rest cons
+       0 1 [0 swap [dup ++] dip rest cons] . rest cons
+         0 1 [swap [dup ++] dip rest cons] . cons
+         0 [1 swap [dup ++] dip rest cons] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

After one application of x the quoted program contains 1 and 0 is below it on the stack.

+ +
+
+
+
+
+
In [3]:
+
+
+
J('[0 swap [dup ++] dip rest cons] x x x x x pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0 1 2 3 4
+
+
+
+ +
+
+ +
+
+
+
+
+

direco

+
+
+
+
+
+
In [4]:
+
+
+
define('direco == dip rest cons')
+
+ +
+
+
+ +
+
+
+
In [5]:
+
+
+
V('[0 swap [dup ++] direco] x')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                    . [0 swap [dup ++] direco] x
+           [0 swap [dup ++] direco] . x
+           [0 swap [dup ++] direco] . 0 swap [dup ++] direco
+         [0 swap [dup ++] direco] 0 . swap [dup ++] direco
+         0 [0 swap [dup ++] direco] . [dup ++] direco
+0 [0 swap [dup ++] direco] [dup ++] . direco
+0 [0 swap [dup ++] direco] [dup ++] . dip rest cons
+                                  0 . dup ++ [0 swap [dup ++] direco] rest cons
+                                0 0 . ++ [0 swap [dup ++] direco] rest cons
+                                0 1 . [0 swap [dup ++] direco] rest cons
+       0 1 [0 swap [dup ++] direco] . rest cons
+         0 1 [swap [dup ++] direco] . cons
+         0 [1 swap [dup ++] direco] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Generating Generators

We want to go from:

+ +
a [C] G
+
+
+

to:

+ +
[a swap [C] direco]
+
+
+

Working in reverse:

+ +
[a swap   [C] direco] cons
+a [swap   [C] direco] concat
+a [swap] [[C] direco] swap
+a [[C] direco] [swap]
+a [C] [direco] cons [swap]
+
+
+

Reading from the bottom up:

+ +
G == [direco] cons [swap] swap concat cons
+G == [direco] cons [swap] swoncat cons
+
+
+

We can try it out:

+ +
0 [dup ++] G
+ +
+
+
+
+
+
In [6]:
+
+
+
define('G == [direco] cons [swap] swoncat cons')
+
+ +
+
+
+ +
+
+
+
In [7]:
+
+
+
V('0 [dup ++] G')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                           . 0 [dup ++] G
+                         0 . [dup ++] G
+                0 [dup ++] . G
+                0 [dup ++] . [direco] cons [swap] swoncat cons
+       0 [dup ++] [direco] . cons [swap] swoncat cons
+       0 [[dup ++] direco] . [swap] swoncat cons
+0 [[dup ++] direco] [swap] . swoncat cons
+0 [[dup ++] direco] [swap] . swap concat cons
+0 [swap] [[dup ++] direco] . concat cons
+  0 [swap [dup ++] direco] . cons
+  [0 swap [dup ++] direco] . 
+
+
+
+ +
+
+ +
+
+
+
In [8]:
+
+
+
V('0 [dup ++] G x')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                    . 0 [dup ++] G x
+                                  0 . [dup ++] G x
+                         0 [dup ++] . G x
+                         0 [dup ++] . [direco] cons [swap] swoncat cons x
+                0 [dup ++] [direco] . cons [swap] swoncat cons x
+                0 [[dup ++] direco] . [swap] swoncat cons x
+         0 [[dup ++] direco] [swap] . swoncat cons x
+         0 [[dup ++] direco] [swap] . swap concat cons x
+         0 [swap] [[dup ++] direco] . concat cons x
+           0 [swap [dup ++] direco] . cons x
+           [0 swap [dup ++] direco] . x
+           [0 swap [dup ++] direco] . 0 swap [dup ++] direco
+         [0 swap [dup ++] direco] 0 . swap [dup ++] direco
+         0 [0 swap [dup ++] direco] . [dup ++] direco
+0 [0 swap [dup ++] direco] [dup ++] . direco
+0 [0 swap [dup ++] direco] [dup ++] . dip rest cons
+                                  0 . dup ++ [0 swap [dup ++] direco] rest cons
+                                0 0 . ++ [0 swap [dup ++] direco] rest cons
+                                0 1 . [0 swap [dup ++] direco] rest cons
+       0 1 [0 swap [dup ++] direco] . rest cons
+         0 1 [swap [dup ++] direco] . cons
+         0 [1 swap [dup ++] direco] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Powers of 2

+
+
+
+
+
+
In [9]:
+
+
+
J('1 [dup 1 <<] G x x x x x x x x x')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 4 8 16 32 64 128 256 [512 swap [dup 1 <<] direco]
+
+
+
+ +
+
+ +
+
+
+
+
+

n [x] times

If we have one of these quoted programs we can drive it using times with the x combinator.

+

Let's define a word n_range that takes a starting integer and a count and leaves that many consecutive integers on the stack. For example:

+ +
+
+
+
+
+
In [10]:
+
+
+
J('23 [dup ++] G 5 [x] times pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23 24 25 26 27
+
+
+
+ +
+
+ +
+
+
+
+
+

We can use dip to untangle [dup ++] G from the arguments.

+ +
+
+
+
+
+
In [11]:
+
+
+
J('23 5 [[dup ++] G] dip [x] times pop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23 24 25 26 27
+
+
+
+ +
+
+ +
+
+
+
+
+

Now that the givens (arguments) are on the left we have the definition we're looking for:

+ +
+
+
+
+
+
In [12]:
+
+
+
define('n_range == [[dup ++] G] dip [x] times pop')
+
+ +
+
+
+ +
+
+
+
In [13]:
+
+
+
J('450 10 n_range')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
450 451 452 453 454 455 456 457 458 459
+
+
+
+ +
+
+ +
+
+
+
+
+

This is better just using the times combinator though...

+ +
+
+
+
+
+
In [14]:
+
+
+
J('450 9 [dup ++] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
450 451 452 453 454 455 456 457 458 459
+
+
+
+ +
+
+ +
+
+
+
+
+

Generating Multiples of Three and Five

Look at the treatment of the Project Euler Problem One in Developing a Program.ipynb and you'll see that we might be interested in generating an endless cycle of:

+ +
3 2 1 3 1 2 3
+
+
+

To do this we want to encode the numbers as pairs of bits in a single int:

+ +
    3  2  1  3  1  2  3
+0b 11 10 01 11 01 10 11 == 14811
+
+
+

And pick them off by masking with 3 (binary 11) and then shifting the int right two bits.

+ +
+
+
+
+
+
In [15]:
+
+
+
define('PE1.1 == dup [3 &] dip 2 >>')
+
+ +
+
+
+ +
+
+
+
In [16]:
+
+
+
V('14811 PE1.1')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                  . 14811 PE1.1
+            14811 . PE1.1
+            14811 . dup [3 &] dip 2 >>
+      14811 14811 . [3 &] dip 2 >>
+14811 14811 [3 &] . dip 2 >>
+            14811 . 3 & 14811 2 >>
+          14811 3 . & 14811 2 >>
+                3 . 14811 2 >>
+          3 14811 . 2 >>
+        3 14811 2 . >>
+           3 3702 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

If we plug 14811 and [PE1.1] into our generator form...

+ +
+
+
+
+
+
In [17]:
+
+
+
J('14811 [PE1.1] G')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[14811 swap [PE1.1] direco]
+
+
+
+ +
+
+ +
+
+
+
In [18]:
+
+
+
J('[14811 swap [PE1.1] direco] x')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 [3702 swap [PE1.1] direco]
+
+
+
+ +
+
+ +
+
+
+
+
+

...we get a generator that works for seven cycles before it reaches zero:

+ +
+
+
+
+
+
In [19]:
+
+
+
J('[14811 swap [PE1.1] direco] 7 [x] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 3 1 2 3 [0 swap [PE1.1] direco]
+
+
+
+ +
+
+ +
+
+
+
+
+

Reset at Zero

We need a function that checks if the int has reached zero and resets it if so.

+ +
+
+
+
+
+
In [20]:
+
+
+
define('PE1.1.check == dup [pop 14811] [] branch')
+
+ +
+
+
+ +
+
+
+
In [21]:
+
+
+
J('[14811 swap [PE1.1.check PE1.1] direco] 21 [x] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [PE1.1.check PE1.1] direco]
+
+
+
+ +
+
+ +
+
+
+
+
+

Run 466 times

In the PE1 problem we are asked to sum all the multiples of three and five less than 1000. It's worked out that we need to use all seven numbers sixty-six times and then four more.

+ +
+
+
+
+
+
In [22]:
+
+
+
J('7 66 * 4 +')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
466
+
+
+
+ +
+
+ +
+
+
+
+
+

If we drive our generator 466 times and sum the stack we get 999.

+ +
+
+
+
+
+
In [23]:
+
+
+
J('[14811 swap [PE1.1.check PE1.1] dip rest cons] 466 [x] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 [57 swap [PE1.1.check PE1.1] dip rest cons]
+
+
+
+ +
+
+ +
+
+
+
In [24]:
+
+
+
J('[14811 swap [PE1.1.check PE1.1] dip rest cons] 466 [x] times pop enstacken sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
999
+
+
+
+ +
+
+ +
+
+
+
+
+

Project Euler Problem One

+
+
+
+
+
+
In [25]:
+
+
+
define('PE1.2 == + dup [+] dip')
+
+ +
+
+
+ +
+
+
+
+
+

Now we can add PE1.2 to the quoted program given to times.

+ +
+
+
+
+
+
In [26]:
+
+
+
J('0 0 [0 swap [PE1.1.check PE1.1] direco] 466 [x [PE1.2] dip] times popop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

Or using G we can write:

+ +
+
+
+
+
+
In [27]:
+
+
+
J('0 0 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
233168
+
+
+
+ +
+
+ +
+
+
+
+
+

A generator for the Fibonacci Sequence.

Consider:

+ +
[b a F] x
+[b a F] b a F
+
+
+

The obvious first thing to do is just add b and a:

+ +
[b a F] b a +
+[b a F] b+a
+
+
+

From here we want to arrive at:

+ +
b [b+a b F]
+
+
+

Let's start with swons:

+ +
[b a F] b+a swons
+[b+a b a F]
+
+
+

Considering this quote as a stack:

+ +
F a b b+a
+
+
+

We want to get it to:

+ +
F b b+a b
+
+
+

So:

+ +
F a b b+a popdd over
+F b b+a b
+
+
+

And therefore:

+ +
[b+a b a F] [popdd over] infra
+[b b+a b F]
+
+
+

And lastly:

+ +
[b b+a b F] uncons
+b [b+a b F]
+
+
+

Done.

+

Putting it all together:

+ +
F == + swons [popdd over] infra uncons
+
+
+

And:

+ +
fib_gen == [1 1 F]
+ +
+
+
+
+
+
In [28]:
+
+
+
define('fib == + swons [popdd over] infra uncons')
+
+ +
+
+
+ +
+
+
+
In [29]:
+
+
+
define('fib_gen == [1 1 fib]')
+
+ +
+
+
+ +
+
+
+
In [30]:
+
+
+
J('fib_gen 10 [x] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 2 3 5 8 13 21 34 55 89 [144 89 fib]
+
+
+
+ +
+
+ +
+
+
+
+
+

Project Euler Problem Two

+
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
+
+
+

Now that we have a generator for the Fibonacci sequence, we need a function that adds a term in the sequence to a sum if it is even, and pops it otherwise.

+ +
+
+
+
+
+
In [31]:
+
+
+
define('PE2.1 == dup 2 % [+] [pop] branch')
+
+ +
+
+
+ +
+
+
+
+
+

And a predicate function that detects when the terms in the series "exceed four million".

+ +
+
+
+
+
+
In [32]:
+
+
+
define('>4M == 4000000 >')
+
+ +
+
+
+ +
+
+
+
+
+

Now it's straightforward to define PE2 as a recursive function that generates terms in the Fibonacci sequence until they exceed four million and sums the even ones.

+ +
+
+
+
+
+
In [33]:
+
+
+
define('PE2 == 0 fib_gen x [pop >4M] [popop] [[PE2.1] dip x] primrec')
+
+ +
+
+
+ +
+
+
+
In [34]:
+
+
+
J('PE2')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4613732
+
+
+
+ +
+
+ +
+
+
+
+
+

Here's the collected program definitions:

+ +
fib == + swons [popdd over] infra uncons
+fib_gen == [1 1 fib]
+
+even == dup 2 %
+>4M == 4000000 >
+
+PE2.1 == even [+] [pop] branch
+PE2 == 0 fib_gen x [pop >4M] [popop] [[PE2.1] dip x] primrec
+ +
+
+
+
+
+
+
+

Even-valued Fibonacci Terms

Using o for odd and e for even:

+ +
o + o = e
+e + e = e
+o + e = o
+
+
+

So the Fibonacci sequence considered in terms of just parity would be:

+ +
o o e o o e o o e o o e o o e o o e
+1 1 2 3 5 8 . . .
+
+
+

Every third term is even.

+ +
+
+
+
+
+
In [35]:
+
+
+
J('[1 0 fib] x x x')  # To start the sequence with 1 1 2 3 instead of 1 2 3.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
1 1 2 [3 2 fib]
+
+
+
+ +
+
+ +
+
+
+
+
+

Drive the generator three times and popop the two odd terms.

+ +
+
+
+
+
+
In [36]:
+
+
+
J('[1 0 fib] x x x [popop] dipd')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2 [3 2 fib]
+
+
+
+ +
+
+ +
+
+
+
In [37]:
+
+
+
define('PE2.2 == x x x [popop] dipd')
+
+ +
+
+
+ +
+
+
+
In [38]:
+
+
+
J('[1 0 fib] 10 [PE2.2] times')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2 8 34 144 610 2584 10946 46368 196418 832040 [1346269 832040 fib]
+
+
+
+ +
+
+ +
+
+
+
+
+

Replace x with our new driver function PE2.2 and start our fib generator at 1 0.

+ +
+
+
+
+
+
In [39]:
+
+
+
J('0 [1 0 fib] PE2.2 [pop >4M] [popop] [[PE2.1] dip PE2.2] primrec')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
4613732
+
+
+
+ +
+
+ +
+
+
+
+
+

How to compile these?

You would probably start with a special version of G, and perhaps modifications to the default x?

+ +
+
+
+
+
+ + + + + + diff --git a/docs/Generator Programs.ipynb b/docs/Generator Programs.ipynb new file mode 100644 index 0000000..d202481 --- /dev/null +++ b/docs/Generator Programs.ipynb @@ -0,0 +1,998 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Using `x` to Generate Values\n", + "\n", + "Cf. jp-reprod.html" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Consider the `x` combinator `x == dup i`:\n", + "\n", + " [a B] x\n", + " [a B] a B\n", + "\n", + "Let `B` `swap` the `a` with the quote and run some function `[C]` on it.\n", + "\n", + " [a B] a B\n", + " [a B] a swap [C] dip\n", + " a [a B] [C] dip\n", + " a C [a B]\n", + "\n", + "Now discard the quoted `a` with `rest` and `cons` the result of `C` on `a` whatever that is:\n", + "\n", + " aC [a B] rest cons\n", + " aC [B] cons\n", + " [aC B]\n", + "\n", + "Altogether, this is the definition of `B`:\n", + "\n", + " B == swap [C] dip rest cons\n", + "\n", + "We can create a quoted program that generates the Natural numbers (integers 0, 1, 2, ...) by using `0` for `a` and `[dup ++]` for `[C]`:\n", + "\n", + " [0 swap [dup ++] dip rest cons]\n", + "\n", + "Let's try it:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [0 swap [dup ++] dip rest cons] x\n", + " [0 swap [dup ++] dip rest cons] . x\n", + " [0 swap [dup ++] dip rest cons] . 0 swap [dup ++] dip rest cons\n", + " [0 swap [dup ++] dip rest cons] 0 . swap [dup ++] dip rest cons\n", + " 0 [0 swap [dup ++] dip rest cons] . [dup ++] dip rest cons\n", + "0 [0 swap [dup ++] dip rest cons] [dup ++] . dip rest cons\n", + " 0 . dup ++ [0 swap [dup ++] dip rest cons] rest cons\n", + " 0 0 . ++ [0 swap [dup ++] dip rest cons] rest cons\n", + " 0 1 . [0 swap [dup ++] dip rest cons] rest cons\n", + " 0 1 [0 swap [dup ++] dip rest cons] . rest cons\n", + " 0 1 [swap [dup ++] dip rest cons] . cons\n", + " 0 [1 swap [dup ++] dip rest cons] . \n" + ] + } + ], + "source": [ + "V('[0 swap [dup ++] dip rest cons] x')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After one application of `x` the quoted program contains `1` and `0` is below it on the stack." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 1 2 3 4\n" + ] + } + ], + "source": [ + "J('[0 swap [dup ++] dip rest cons] x x x x x pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `direco`" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "define('direco == dip rest cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [0 swap [dup ++] direco] x\n", + " [0 swap [dup ++] direco] . x\n", + " [0 swap [dup ++] direco] . 0 swap [dup ++] direco\n", + " [0 swap [dup ++] direco] 0 . swap [dup ++] direco\n", + " 0 [0 swap [dup ++] direco] . [dup ++] direco\n", + "0 [0 swap [dup ++] direco] [dup ++] . direco\n", + "0 [0 swap [dup ++] direco] [dup ++] . dip rest cons\n", + " 0 . dup ++ [0 swap [dup ++] direco] rest cons\n", + " 0 0 . ++ [0 swap [dup ++] direco] rest cons\n", + " 0 1 . [0 swap [dup ++] direco] rest cons\n", + " 0 1 [0 swap [dup ++] direco] . rest cons\n", + " 0 1 [swap [dup ++] direco] . cons\n", + " 0 [1 swap [dup ++] direco] . \n" + ] + } + ], + "source": [ + "V('[0 swap [dup ++] direco] x')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generating Generators\n", + "We want to go from:\n", + "\n", + " a [C] G\n", + "\n", + "to:\n", + "\n", + " [a swap [C] direco]\n", + "\n", + "Working in reverse:\n", + "\n", + " [a swap [C] direco] cons\n", + " a [swap [C] direco] concat\n", + " a [swap] [[C] direco] swap\n", + " a [[C] direco] [swap]\n", + " a [C] [direco] cons [swap]\n", + "\n", + "Reading from the bottom up:\n", + "\n", + " G == [direco] cons [swap] swap concat cons\n", + " G == [direco] cons [swap] swoncat cons\n", + "\n", + "We can try it out:\n", + "\n", + " 0 [dup ++] G" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "define('G == [direco] cons [swap] swoncat cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 [dup ++] G\n", + " 0 . [dup ++] G\n", + " 0 [dup ++] . G\n", + " 0 [dup ++] . [direco] cons [swap] swoncat cons\n", + " 0 [dup ++] [direco] . cons [swap] swoncat cons\n", + " 0 [[dup ++] direco] . [swap] swoncat cons\n", + "0 [[dup ++] direco] [swap] . swoncat cons\n", + "0 [[dup ++] direco] [swap] . swap concat cons\n", + "0 [swap] [[dup ++] direco] . concat cons\n", + " 0 [swap [dup ++] direco] . cons\n", + " [0 swap [dup ++] direco] . \n" + ] + } + ], + "source": [ + "V('0 [dup ++] G')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 0 [dup ++] G x\n", + " 0 . [dup ++] G x\n", + " 0 [dup ++] . G x\n", + " 0 [dup ++] . [direco] cons [swap] swoncat cons x\n", + " 0 [dup ++] [direco] . cons [swap] swoncat cons x\n", + " 0 [[dup ++] direco] . [swap] swoncat cons x\n", + " 0 [[dup ++] direco] [swap] . swoncat cons x\n", + " 0 [[dup ++] direco] [swap] . swap concat cons x\n", + " 0 [swap] [[dup ++] direco] . concat cons x\n", + " 0 [swap [dup ++] direco] . cons x\n", + " [0 swap [dup ++] direco] . x\n", + " [0 swap [dup ++] direco] . 0 swap [dup ++] direco\n", + " [0 swap [dup ++] direco] 0 . swap [dup ++] direco\n", + " 0 [0 swap [dup ++] direco] . [dup ++] direco\n", + "0 [0 swap [dup ++] direco] [dup ++] . direco\n", + "0 [0 swap [dup ++] direco] [dup ++] . dip rest cons\n", + " 0 . dup ++ [0 swap [dup ++] direco] rest cons\n", + " 0 0 . ++ [0 swap [dup ++] direco] rest cons\n", + " 0 1 . [0 swap [dup ++] direco] rest cons\n", + " 0 1 [0 swap [dup ++] direco] . rest cons\n", + " 0 1 [swap [dup ++] direco] . cons\n", + " 0 [1 swap [dup ++] direco] . \n" + ] + } + ], + "source": [ + "V('0 [dup ++] G x')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Powers of 2" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 4 8 16 32 64 128 256 [512 swap [dup 1 <<] direco]\n" + ] + } + ], + "source": [ + "J('1 [dup 1 <<] G x x x x x x x x x')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# `n [x] times`\n", + "If we have one of these quoted programs we can drive it using `times` with the `x` combinator.\n", + "\n", + "Let's define a word `n_range` that takes a starting integer and a count and leaves that many consecutive integers on the stack. For example:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23 24 25 26 27\n" + ] + } + ], + "source": [ + "J('23 [dup ++] G 5 [x] times pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use `dip` to untangle `[dup ++] G` from the arguments." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23 24 25 26 27\n" + ] + } + ], + "source": [ + "J('23 5 [[dup ++] G] dip [x] times pop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that the givens (arguments) are on the left we have the definition we're looking for:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "define('n_range == [[dup ++] G] dip [x] times pop')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "450 451 452 453 454 455 456 457 458 459\n" + ] + } + ], + "source": [ + "J('450 10 n_range')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This is better just using the `times` combinator though..." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "450 451 452 453 454 455 456 457 458 459\n" + ] + } + ], + "source": [ + "J('450 9 [dup ++] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generating Multiples of Three and Five\n", + "Look at the treatment of the Project Euler Problem One in [Developing a Program.ipynb](./Developing a Program.ipynb) and you'll see that we might be interested in generating an endless cycle of:\n", + "\n", + " 3 2 1 3 1 2 3\n", + "\n", + "To do this we want to encode the numbers as pairs of bits in a single int:\n", + "\n", + " 3 2 1 3 1 2 3\n", + " 0b 11 10 01 11 01 10 11 == 14811\n", + "\n", + "And pick them off by masking with 3 (binary 11) and then shifting the int right two bits." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.1 == dup [3 &] dip 2 >>')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 14811 PE1.1\n", + " 14811 . PE1.1\n", + " 14811 . dup [3 &] dip 2 >>\n", + " 14811 14811 . [3 &] dip 2 >>\n", + "14811 14811 [3 &] . dip 2 >>\n", + " 14811 . 3 & 14811 2 >>\n", + " 14811 3 . & 14811 2 >>\n", + " 3 . 14811 2 >>\n", + " 3 14811 . 2 >>\n", + " 3 14811 2 . >>\n", + " 3 3702 . \n" + ] + } + ], + "source": [ + "V('14811 PE1.1')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we plug `14811` and `[PE1.1]` into our generator form..." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[14811 swap [PE1.1] direco]\n" + ] + } + ], + "source": [ + "J('14811 [PE1.1] G')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 [3702 swap [PE1.1] direco]\n" + ] + } + ], + "source": [ + "J('[14811 swap [PE1.1] direco] x')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "...we get a generator that works for seven cycles before it reaches zero:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 3 1 2 3 [0 swap [PE1.1] direco]\n" + ] + } + ], + "source": [ + "J('[14811 swap [PE1.1] direco] 7 [x] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reset at Zero\n", + "We need a function that checks if the int has reached zero and resets it if so." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.1.check == dup [pop 14811] [] branch')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [PE1.1.check PE1.1] direco]\n" + ] + } + ], + "source": [ + "J('[14811 swap [PE1.1.check PE1.1] direco] 21 [x] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run 466 times\n", + "In the PE1 problem we are asked to sum all the multiples of three and five less than 1000. It's worked out that we need to use all seven numbers sixty-six times and then four more." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "466\n" + ] + } + ], + "source": [ + "J('7 66 * 4 +')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If we drive our generator 466 times and sum the stack we get 999." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 [57 swap [PE1.1.check PE1.1] dip rest cons]\n" + ] + } + ], + "source": [ + "J('[14811 swap [PE1.1.check PE1.1] dip rest cons] 466 [x] times')" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "999\n" + ] + } + ], + "source": [ + "J('[14811 swap [PE1.1.check PE1.1] dip rest cons] 466 [x] times pop enstacken sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Project Euler Problem One" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE1.2 == + dup [+] dip')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can add `PE1.2` to the quoted program given to `times`." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('0 0 [0 swap [PE1.1.check PE1.1] direco] 466 [x [PE1.2] dip] times popop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Or using `G` we can write:" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "233168\n" + ] + } + ], + "source": [ + "J('0 0 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A generator for the Fibonacci Sequence.\n", + "Consider:\n", + "\n", + " [b a F] x\n", + " [b a F] b a F\n", + "\n", + "The obvious first thing to do is just add `b` and `a`:\n", + "\n", + " [b a F] b a +\n", + " [b a F] b+a\n", + "\n", + "From here we want to arrive at:\n", + "\n", + " b [b+a b F]\n", + "\n", + "Let's start with `swons`:\n", + "\n", + " [b a F] b+a swons\n", + " [b+a b a F]\n", + "\n", + "Considering this quote as a stack:\n", + "\n", + " F a b b+a\n", + "\n", + "We want to get it to:\n", + "\n", + " F b b+a b\n", + "\n", + "So:\n", + "\n", + " F a b b+a popdd over\n", + " F b b+a b\n", + "\n", + "And therefore:\n", + "\n", + " [b+a b a F] [popdd over] infra\n", + " [b b+a b F]\n", + "\n", + "And lastly:\n", + "\n", + " [b b+a b F] uncons\n", + " b [b+a b F]\n", + "\n", + "Done.\n", + "\n", + "Putting it all together:\n", + "\n", + " F == + swons [popdd over] infra uncons\n", + "\n", + "And:\n", + "\n", + " fib_gen == [1 1 F]" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "define('fib == + swons [popdd over] infra uncons')" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "define('fib_gen == [1 1 fib]')" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 2 3 5 8 13 21 34 55 89 [144 89 fib]\n" + ] + } + ], + "source": [ + "J('fib_gen 10 [x] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Project Euler Problem Two\n", + " By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.\n", + "\n", + "Now that we have a generator for the Fibonacci sequence, we need a function that adds a term in the sequence to a sum if it is even, and `pop`s it otherwise." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE2.1 == dup 2 % [+] [pop] branch')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And a predicate function that detects when the terms in the series \"exceed four million\"." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "define('>4M == 4000000 >')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now it's straightforward to define `PE2` as a recursive function that generates terms in the Fibonacci sequence until they exceed four million and sums the even ones." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE2 == 0 fib_gen x [pop >4M] [popop] [[PE2.1] dip x] primrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4613732\n" + ] + } + ], + "source": [ + "J('PE2')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the collected program definitions:\n", + "\n", + " fib == + swons [popdd over] infra uncons\n", + " fib_gen == [1 1 fib]\n", + "\n", + " even == dup 2 %\n", + " >4M == 4000000 >\n", + "\n", + " PE2.1 == even [+] [pop] branch\n", + " PE2 == 0 fib_gen x [pop >4M] [popop] [[PE2.1] dip x] primrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Even-valued Fibonacci Terms\n", + "\n", + "Using `o` for odd and `e` for even:\n", + "\n", + " o + o = e\n", + " e + e = e\n", + " o + e = o\n", + "\n", + "So the Fibonacci sequence considered in terms of just parity would be:\n", + "\n", + " o o e o o e o o e o o e o o e o o e\n", + " 1 1 2 3 5 8 . . .\n", + "\n", + "Every third term is even.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 1 2 [3 2 fib]\n" + ] + } + ], + "source": [ + "J('[1 0 fib] x x x') # To start the sequence with 1 1 2 3 instead of 1 2 3." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Drive the generator three times and `popop` the two odd terms." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 [3 2 fib]\n" + ] + } + ], + "source": [ + "J('[1 0 fib] x x x [popop] dipd')" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [], + "source": [ + "define('PE2.2 == x x x [popop] dipd')" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 8 34 144 610 2584 10946 46368 196418 832040 [1346269 832040 fib]\n" + ] + } + ], + "source": [ + "J('[1 0 fib] 10 [PE2.2] times')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Replace `x` with our new driver function `PE2.2` and start our `fib` generator at `1 0`." + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4613732\n" + ] + } + ], + "source": [ + "J('0 [1 0 fib] PE2.2 [pop >4M] [popop] [[PE2.1] dip PE2.2] primrec')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# How to compile these?\n", + "You would probably start with a special version of `G`, and perhaps modifications to the default `x`?" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Generator Programs.md b/docs/Generator Programs.md new file mode 100644 index 0000000..51fd247 --- /dev/null +++ b/docs/Generator Programs.md @@ -0,0 +1,538 @@ + +# Using `x` to Generate Values + +Cf. jp-reprod.html + + +```python +from notebook_preamble import J, V, define +``` + +Consider the `x` combinator `x == dup i`: + + [a B] x + [a B] a B + +Let `B` `swap` the `a` with the quote and run some function `[C]` on it. + + [a B] a B + [a B] a swap [C] dip + a [a B] [C] dip + a C [a B] + +Now discard the quoted `a` with `rest` and `cons` the result of `C` on `a` whatever that is: + + aC [a B] rest cons + aC [B] cons + [aC B] + +Altogether, this is the definition of `B`: + + B == swap [C] dip rest cons + +We can create a quoted program that generates the Natural numbers (integers 0, 1, 2, ...) by using `0` for `a` and `[dup ++]` for `[C]`: + + [0 swap [dup ++] dip rest cons] + +Let's try it: + + +```python +V('[0 swap [dup ++] dip rest cons] x') +``` + + . [0 swap [dup ++] dip rest cons] x + [0 swap [dup ++] dip rest cons] . x + [0 swap [dup ++] dip rest cons] . 0 swap [dup ++] dip rest cons + [0 swap [dup ++] dip rest cons] 0 . swap [dup ++] dip rest cons + 0 [0 swap [dup ++] dip rest cons] . [dup ++] dip rest cons + 0 [0 swap [dup ++] dip rest cons] [dup ++] . dip rest cons + 0 . dup ++ [0 swap [dup ++] dip rest cons] rest cons + 0 0 . ++ [0 swap [dup ++] dip rest cons] rest cons + 0 1 . [0 swap [dup ++] dip rest cons] rest cons + 0 1 [0 swap [dup ++] dip rest cons] . rest cons + 0 1 [swap [dup ++] dip rest cons] . cons + 0 [1 swap [dup ++] dip rest cons] . + + +After one application of `x` the quoted program contains `1` and `0` is below it on the stack. + + +```python +J('[0 swap [dup ++] dip rest cons] x x x x x pop') +``` + + 0 1 2 3 4 + + +### `direco` + + +```python +define('direco == dip rest cons') +``` + + +```python +V('[0 swap [dup ++] direco] x') +``` + + . [0 swap [dup ++] direco] x + [0 swap [dup ++] direco] . x + [0 swap [dup ++] direco] . 0 swap [dup ++] direco + [0 swap [dup ++] direco] 0 . swap [dup ++] direco + 0 [0 swap [dup ++] direco] . [dup ++] direco + 0 [0 swap [dup ++] direco] [dup ++] . direco + 0 [0 swap [dup ++] direco] [dup ++] . dip rest cons + 0 . dup ++ [0 swap [dup ++] direco] rest cons + 0 0 . ++ [0 swap [dup ++] direco] rest cons + 0 1 . [0 swap [dup ++] direco] rest cons + 0 1 [0 swap [dup ++] direco] . rest cons + 0 1 [swap [dup ++] direco] . cons + 0 [1 swap [dup ++] direco] . + + +# Generating Generators +We want to go from: + + a [C] G + +to: + + [a swap [C] direco] + +Working in reverse: + + [a swap [C] direco] cons + a [swap [C] direco] concat + a [swap] [[C] direco] swap + a [[C] direco] [swap] + a [C] [direco] cons [swap] + +Reading from the bottom up: + + G == [direco] cons [swap] swap concat cons + G == [direco] cons [swap] swoncat cons + +We can try it out: + + 0 [dup ++] G + + +```python +define('G == [direco] cons [swap] swoncat cons') +``` + + +```python +V('0 [dup ++] G') +``` + + . 0 [dup ++] G + 0 . [dup ++] G + 0 [dup ++] . G + 0 [dup ++] . [direco] cons [swap] swoncat cons + 0 [dup ++] [direco] . cons [swap] swoncat cons + 0 [[dup ++] direco] . [swap] swoncat cons + 0 [[dup ++] direco] [swap] . swoncat cons + 0 [[dup ++] direco] [swap] . swap concat cons + 0 [swap] [[dup ++] direco] . concat cons + 0 [swap [dup ++] direco] . cons + [0 swap [dup ++] direco] . + + + +```python +V('0 [dup ++] G x') +``` + + . 0 [dup ++] G x + 0 . [dup ++] G x + 0 [dup ++] . G x + 0 [dup ++] . [direco] cons [swap] swoncat cons x + 0 [dup ++] [direco] . cons [swap] swoncat cons x + 0 [[dup ++] direco] . [swap] swoncat cons x + 0 [[dup ++] direco] [swap] . swoncat cons x + 0 [[dup ++] direco] [swap] . swap concat cons x + 0 [swap] [[dup ++] direco] . concat cons x + 0 [swap [dup ++] direco] . cons x + [0 swap [dup ++] direco] . x + [0 swap [dup ++] direco] . 0 swap [dup ++] direco + [0 swap [dup ++] direco] 0 . swap [dup ++] direco + 0 [0 swap [dup ++] direco] . [dup ++] direco + 0 [0 swap [dup ++] direco] [dup ++] . direco + 0 [0 swap [dup ++] direco] [dup ++] . dip rest cons + 0 . dup ++ [0 swap [dup ++] direco] rest cons + 0 0 . ++ [0 swap [dup ++] direco] rest cons + 0 1 . [0 swap [dup ++] direco] rest cons + 0 1 [0 swap [dup ++] direco] . rest cons + 0 1 [swap [dup ++] direco] . cons + 0 [1 swap [dup ++] direco] . + + +### Powers of 2 + + +```python +J('1 [dup 1 <<] G x x x x x x x x x') +``` + + 1 2 4 8 16 32 64 128 256 [512 swap [dup 1 <<] direco] + + +# `n [x] times` +If we have one of these quoted programs we can drive it using `times` with the `x` combinator. + +Let's define a word `n_range` that takes a starting integer and a count and leaves that many consecutive integers on the stack. For example: + + +```python +J('23 [dup ++] G 5 [x] times pop') +``` + + 23 24 25 26 27 + + +We can use `dip` to untangle `[dup ++] G` from the arguments. + + +```python +J('23 5 [[dup ++] G] dip [x] times pop') +``` + + 23 24 25 26 27 + + +Now that the givens (arguments) are on the left we have the definition we're looking for: + + +```python +define('n_range == [[dup ++] G] dip [x] times pop') +``` + + +```python +J('450 10 n_range') +``` + + 450 451 452 453 454 455 456 457 458 459 + + +This is better just using the `times` combinator though... + + +```python +J('450 9 [dup ++] times') +``` + + 450 451 452 453 454 455 456 457 458 459 + + +# Generating Multiples of Three and Five +Look at the treatment of the Project Euler Problem One in [Developing a Program.ipynb](./Developing a Program.ipynb) and you'll see that we might be interested in generating an endless cycle of: + + 3 2 1 3 1 2 3 + +To do this we want to encode the numbers as pairs of bits in a single int: + + 3 2 1 3 1 2 3 + 0b 11 10 01 11 01 10 11 == 14811 + +And pick them off by masking with 3 (binary 11) and then shifting the int right two bits. + + +```python +define('PE1.1 == dup [3 &] dip 2 >>') +``` + + +```python +V('14811 PE1.1') +``` + + . 14811 PE1.1 + 14811 . PE1.1 + 14811 . dup [3 &] dip 2 >> + 14811 14811 . [3 &] dip 2 >> + 14811 14811 [3 &] . dip 2 >> + 14811 . 3 & 14811 2 >> + 14811 3 . & 14811 2 >> + 3 . 14811 2 >> + 3 14811 . 2 >> + 3 14811 2 . >> + 3 3702 . + + +If we plug `14811` and `[PE1.1]` into our generator form... + + +```python +J('14811 [PE1.1] G') +``` + + [14811 swap [PE1.1] direco] + + + +```python +J('[14811 swap [PE1.1] direco] x') +``` + + 3 [3702 swap [PE1.1] direco] + + +...we get a generator that works for seven cycles before it reaches zero: + + +```python +J('[14811 swap [PE1.1] direco] 7 [x] times') +``` + + 3 2 1 3 1 2 3 [0 swap [PE1.1] direco] + + +### Reset at Zero +We need a function that checks if the int has reached zero and resets it if so. + + +```python +define('PE1.1.check == dup [pop 14811] [] branch') +``` + + +```python +J('[14811 swap [PE1.1.check PE1.1] direco] 21 [x] times') +``` + + 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 [0 swap [PE1.1.check PE1.1] direco] + + +### Run 466 times +In the PE1 problem we are asked to sum all the multiples of three and five less than 1000. It's worked out that we need to use all seven numbers sixty-six times and then four more. + + +```python +J('7 66 * 4 +') +``` + + 466 + + +If we drive our generator 466 times and sum the stack we get 999. + + +```python +J('[14811 swap [PE1.1.check PE1.1] dip rest cons] 466 [x] times') +``` + + 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 1 2 3 3 2 1 3 [57 swap [PE1.1.check PE1.1] dip rest cons] + + + +```python +J('[14811 swap [PE1.1.check PE1.1] dip rest cons] 466 [x] times pop enstacken sum') +``` + + 999 + + +# Project Euler Problem One + + +```python +define('PE1.2 == + dup [+] dip') +``` + +Now we can add `PE1.2` to the quoted program given to `times`. + + +```python +J('0 0 [0 swap [PE1.1.check PE1.1] direco] 466 [x [PE1.2] dip] times popop') +``` + + 233168 + + +Or using `G` we can write: + + +```python +J('0 0 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop') +``` + + 233168 + + +# A generator for the Fibonacci Sequence. +Consider: + + [b a F] x + [b a F] b a F + +The obvious first thing to do is just add `b` and `a`: + + [b a F] b a + + [b a F] b+a + +From here we want to arrive at: + + b [b+a b F] + +Let's start with `swons`: + + [b a F] b+a swons + [b+a b a F] + +Considering this quote as a stack: + + F a b b+a + +We want to get it to: + + F b b+a b + +So: + + F a b b+a popdd over + F b b+a b + +And therefore: + + [b+a b a F] [popdd over] infra + [b b+a b F] + +And lastly: + + [b b+a b F] uncons + b [b+a b F] + +Done. + +Putting it all together: + + F == + swons [popdd over] infra uncons + +And: + + fib_gen == [1 1 F] + + +```python +define('fib == + swons [popdd over] infra uncons') +``` + + +```python +define('fib_gen == [1 1 fib]') +``` + + +```python +J('fib_gen 10 [x] times') +``` + + 1 2 3 5 8 13 21 34 55 89 [144 89 fib] + + +### Project Euler Problem Two + By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms. + +Now that we have a generator for the Fibonacci sequence, we need a function that adds a term in the sequence to a sum if it is even, and `pop`s it otherwise. + + +```python +define('PE2.1 == dup 2 % [+] [pop] branch') +``` + +And a predicate function that detects when the terms in the series "exceed four million". + + +```python +define('>4M == 4000000 >') +``` + +Now it's straightforward to define `PE2` as a recursive function that generates terms in the Fibonacci sequence until they exceed four million and sums the even ones. + + +```python +define('PE2 == 0 fib_gen x [pop >4M] [popop] [[PE2.1] dip x] primrec') +``` + + +```python +J('PE2') +``` + + 4613732 + + +Here's the collected program definitions: + + fib == + swons [popdd over] infra uncons + fib_gen == [1 1 fib] + + even == dup 2 % + >4M == 4000000 > + + PE2.1 == even [+] [pop] branch + PE2 == 0 fib_gen x [pop >4M] [popop] [[PE2.1] dip x] primrec + +### Even-valued Fibonacci Terms + +Using `o` for odd and `e` for even: + + o + o = e + e + e = e + o + e = o + +So the Fibonacci sequence considered in terms of just parity would be: + + o o e o o e o o e o o e o o e o o e + 1 1 2 3 5 8 . . . + +Every third term is even. + + + +```python +J('[1 0 fib] x x x') # To start the sequence with 1 1 2 3 instead of 1 2 3. +``` + + 1 1 2 [3 2 fib] + + +Drive the generator three times and `popop` the two odd terms. + + +```python +J('[1 0 fib] x x x [popop] dipd') +``` + + 2 [3 2 fib] + + + +```python +define('PE2.2 == x x x [popop] dipd') +``` + + +```python +J('[1 0 fib] 10 [PE2.2] times') +``` + + 2 8 34 144 610 2584 10946 46368 196418 832040 [1346269 832040 fib] + + +Replace `x` with our new driver function `PE2.2` and start our `fib` generator at `1 0`. + + +```python +J('0 [1 0 fib] PE2.2 [pop >4M] [popop] [[PE2.1] dip PE2.2] primrec') +``` + + 4613732 + + +# How to compile these? +You would probably start with a special version of `G`, and perhaps modifications to the default `x`? diff --git a/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.html b/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.html new file mode 100644 index 0000000..64b9dba --- /dev/null +++ b/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.html @@ -0,0 +1,15184 @@ + + + +Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
+
+
+

Hylomorphism

A hylomorphism H :: A -> B converts a value of type A into a value of type B by means of:

+
    +
  • A generator G :: A -> (A, B)
  • +
  • A combiner F :: (B, B) -> B
  • +
  • A predicate P :: A -> Bool to detect the base case
  • +
  • A base case value c :: B
  • +
  • Recursive calls (zero or more); it has a "call stack in the form of a cons list".
  • +
+

It may be helpful to see this function implemented in imperative Python code.

+ +
+
+
+
+
+
In [1]:
+
+
+
def hylomorphism(c, F, P, G):
+    '''Return a hylomorphism function H.'''
+
+    def H(a):
+        if P(a):
+            result = c
+        else:
+            b, aa = G(a)
+            result = F(b, H(aa))
+        return result
+
+    return H
+
+ +
+
+
+ +
+
+
+
+
+

Finding Triangular Numbers

As a concrete example let's use a function that, given a positive integer, returns the sum of all positive integers less than that one. (In this case the types A and B are both int.)

+

With range() and sum()

+
+
+
+
+
+
In [2]:
+
+
+
r = range(10)
+r
+
+ +
+
+
+ +
+
+ + +
+ +
Out[2]:
+ + + + +
+
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+
+ +
+ +
+
+ +
+
+
+
In [3]:
+
+
+
sum(r)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[3]:
+ + + + +
+
45
+
+ +
+ +
+
+ +
+
+
+
In [4]:
+
+
+
range_sum = lambda n: sum(range(n))
+range_sum(10)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[4]:
+ + + + +
+
45
+
+ +
+ +
+
+ +
+
+
+
+
+

As a hylomorphism

+
+
+
+
+
+
In [5]:
+
+
+
G = lambda n: (n - 1, n - 1)
+F = lambda a, b: a + b
+P = lambda n: n <= 1
+
+H = hylomorphism(0, F, P, G)
+
+ +
+
+
+ +
+
+
+
In [6]:
+
+
+
H(10)
+
+ +
+
+
+ +
+
+ + +
+ +
Out[6]:
+ + + + +
+
45
+
+ +
+ +
+
+ +
+
+
+
+
+

If you were to run the above code in a debugger and check out the call stack you would find that the variable b in each call to H() is storing the intermediate values as H() recurses. This is what was meant by "call stack in the form of a cons list".

+ +
+
+
+
+
+
+
+

Joy Preamble

+
+
+
+
+
+
In [7]:
+
+
+
from notebook_preamble import D, DefinitionWrapper, J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

Hylomorphism in Joy

We can define a combinator hylomorphism that will make a hylomorphism combinator H from constituent parts.

+ +
H == c [F] [P] [G] hylomorphism
+
+
+

The function H is recursive, so we start with ifte and set the else-part to +some function J that will contain a quoted copy of H. (The then-part just +discards the leftover a and replaces it with the base case value c.)

+ +
H == [P] [pop c] [J] ifte
+
+
+

The else-part J gets just the argument a on the stack.

+ +
a J
+a G              The first thing to do is use the generator G
+aa b             which produces b and a new aa
+aa b [H] dip     we recur with H on the new aa
+aa H b F         and run F on the result.
+
+
+

This gives us a definition for J.

+ +
J == G [H] dip F
+
+
+

Plug it in and convert to genrec.

+ +
H == [P] [pop c] [G [H] dip F] ifte
+H == [P] [pop c] [G]   [dip F] genrec
+
+
+

This is the form of a hylomorphism in Joy, which nicely illustrates that +it is a simple specialization of the general recursion combinator.

+ +
H == [P] [pop c] [G] [dip F] genrec
+ +
+
+
+
+
+
+
+

Derivation of hylomorphism

Now we just need to derive a definition that builds the genrec arguments +out of the pieces given to the hylomorphism combinator.

+ +
H == [P] [pop c]              [G]                  [dip F] genrec
+     [P] [c]    [pop] swoncat [G]        [F] [dip] swoncat genrec
+     [P] c unit [pop] swoncat [G]        [F] [dip] swoncat genrec
+     [P] c [G] [F] [unit [pop] swoncat] dipd [dip] swoncat genrec
+
+
+

Working in reverse:

+
    +
  • Use swoncat twice to decouple [c] and [F].
  • +
  • Use unit to dequote c.
  • +
  • Use dipd to untangle [unit [pop] swoncat] from the givens.
  • +
+

At this point all of the arguments (givens) to the hylomorphism are to the left so we have +a definition for hylomorphism:

+ +
hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec
+
+
+

The order of parameters is different than the one we started with but +that hardly matters, you can rearrange them or just supply them in the +expected order.

+ +
[P] c [G] [F] hylomorphism == H
+ +
+
+
+
+
+
In [8]:
+
+
+
define('hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec')
+
+ +
+
+
+ +
+
+
+
+
+

Demonstrate summing a range of integers from 0 to n-1.

+
    +
  • [P] is [0 <=]
  • +
  • c is 0
  • +
  • [G] is [1 - dup]
  • +
  • [F] is [+]
  • +
+

So to sum the positive integers less than five we can do this.

+ +
+
+
+
+
+
In [9]:
+
+
+
V('5 [0 <=] 0 [1 - dup] [+] hylomorphism')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                               . 5 [0 <=] 0 [1 - dup] [+] hylomorphism
+                                                                             5 . [0 <=] 0 [1 - dup] [+] hylomorphism
+                                                                      5 [0 <=] . 0 [1 - dup] [+] hylomorphism
+                                                                    5 [0 <=] 0 . [1 - dup] [+] hylomorphism
+                                                          5 [0 <=] 0 [1 - dup] . [+] hylomorphism
+                                                      5 [0 <=] 0 [1 - dup] [+] . hylomorphism
+                                                      5 [0 <=] 0 [1 - dup] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec
+                                 5 [0 <=] 0 [1 - dup] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec
+                                                                    5 [0 <=] 0 . unit [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                                    5 [0 <=] 0 . [] cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                                 5 [0 <=] 0 [] . cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                                  5 [0 <=] [0] . [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                            5 [0 <=] [0] [pop] . swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                            5 [0 <=] [0] [pop] . swap concat [1 - dup] [+] [dip] swoncat genrec
+                                                            5 [0 <=] [pop] [0] . concat [1 - dup] [+] [dip] swoncat genrec
+                                                              5 [0 <=] [pop 0] . [1 - dup] [+] [dip] swoncat genrec
+                                                    5 [0 <=] [pop 0] [1 - dup] . [+] [dip] swoncat genrec
+                                                5 [0 <=] [pop 0] [1 - dup] [+] . [dip] swoncat genrec
+                                          5 [0 <=] [pop 0] [1 - dup] [+] [dip] . swoncat genrec
+                                          5 [0 <=] [pop 0] [1 - dup] [+] [dip] . swap concat genrec
+                                          5 [0 <=] [pop 0] [1 - dup] [dip] [+] . concat genrec
+                                            5 [0 <=] [pop 0] [1 - dup] [dip +] . genrec
+    5 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte
+5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [5] [0 <=] . infra first choice i
+                                                                             5 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i
+                                                                           5 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i
+                                                                         False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i
+   False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] . swaack first choice i
+   5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i
+     5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i
+                   5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i
+                                                                             5 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                                                           5 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                                                             4 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                                                           4 4 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                 4 4 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip +
+                                                                             4 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 4 +
+                                                                      4 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 4 +
+                                                              4 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 4 +
+                                                    4 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 4 +
+                                            4 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 4 +
+    4 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 4 +
+4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [4] [0 <=] . infra first choice i 4 +
+                                                                             4 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 +
+                                                                           4 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 +
+                                                                         False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 +
+   False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] . swaack first choice i 4 +
+   4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 +
+     4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 4 +
+                   4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 4 +
+                                                                             4 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +
+                                                                           4 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +
+                                                                             3 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +
+                                                                           3 3 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +
+                                 3 3 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 4 +
+                                                                             3 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 3 + 4 +
+                                                                      3 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 3 + 4 +
+                                                              3 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 3 + 4 +
+                                                    3 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 3 + 4 +
+                                            3 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 3 + 4 +
+    3 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 3 + 4 +
+3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [3] [0 <=] . infra first choice i 3 + 4 +
+                                                                             3 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 +
+                                                                           3 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 +
+                                                                         False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 +
+   False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] . swaack first choice i 3 + 4 +
+   3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 +
+     3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 +
+                   3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 3 + 4 +
+                                                                             3 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +
+                                                                           3 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +
+                                                                             2 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +
+                                                                           2 2 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +
+                                 2 2 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 3 + 4 +
+                                                                             2 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 +
+                                                                      2 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 +
+                                                              2 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 2 + 3 + 4 +
+                                                    2 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 2 + 3 + 4 +
+                                            2 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 2 + 3 + 4 +
+    2 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 2 + 3 + 4 +
+2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [2] [0 <=] . infra first choice i 2 + 3 + 4 +
+                                                                             2 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 +
+                                                                           2 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 +
+                                                                         False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 +
+   False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] . swaack first choice i 2 + 3 + 4 +
+   2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 +
+     2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 +
+                   2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 2 + 3 + 4 +
+                                                                             2 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +
+                                                                           2 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +
+                                                                             1 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +
+                                                                           1 1 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +
+                                 1 1 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 2 + 3 + 4 +
+                                                                             1 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 +
+                                                                      1 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 +
+                                                              1 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 +
+                                                    1 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 1 + 2 + 3 + 4 +
+                                            1 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 1 + 2 + 3 + 4 +
+    1 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 +
+1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [1] [0 <=] . infra first choice i 1 + 2 + 3 + 4 +
+                                                                             1 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 +
+                                                                           1 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 +
+                                                                         False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 +
+   False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] . swaack first choice i 1 + 2 + 3 + 4 +
+   1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 +
+     1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 +
+                   1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 +
+                                                                             1 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +
+                                                                           1 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +
+                                                                             0 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +
+                                                                           0 0 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +
+                                 0 0 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 1 + 2 + 3 + 4 +
+                                                                             0 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 +
+                                                                      0 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 +
+                                                              0 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 +
+                                                    0 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 0 + 1 + 2 + 3 + 4 +
+                                            0 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 0 + 1 + 2 + 3 + 4 +
+    0 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 +
+0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [0] [0 <=] . infra first choice i 0 + 1 + 2 + 3 + 4 +
+                                                                             0 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 +
+                                                                           0 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 +
+                                                                          True . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 +
+    True [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] . swaack first choice i 0 + 1 + 2 + 3 + 4 +
+    0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 +
+      0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 +
+                                                                     0 [pop 0] . i 0 + 1 + 2 + 3 + 4 +
+                                                                             0 . pop 0 0 + 1 + 2 + 3 + 4 +
+                                                                               . 0 0 + 1 + 2 + 3 + 4 +
+                                                                             0 . 0 + 1 + 2 + 3 + 4 +
+                                                                           0 0 . + 1 + 2 + 3 + 4 +
+                                                                             0 . 1 + 2 + 3 + 4 +
+                                                                           0 1 . + 2 + 3 + 4 +
+                                                                             1 . 2 + 3 + 4 +
+                                                                           1 2 . + 3 + 4 +
+                                                                             3 . 3 + 4 +
+                                                                           3 3 . + 4 +
+                                                                             6 . 4 +
+                                                                           6 4 . +
+                                                                            10 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Anamorphism

An anamorphism can be defined as a hylomorphism that uses [] for c and +swons for F.

+ +
[P] [G] anamorphism == [P] [] [G] [swons] hylomorphism == A
+
+
+

This allows us to define an anamorphism combinator in terms of +the hylomorphism combinator.

+ +
[] swap [swons] hylomorphism == anamorphism
+
+
+

Partial evaluation gives us a "pre-cooked" form.

+ +
[P] [G] . anamorphism
+[P] [G] . [] swap [swons] hylomorphism
+[P] [G] [] . swap [swons] hylomorphism
+[P] [] [G] . [swons] hylomorphism
+[P] [] [G] [swons] . hylomorphism
+[P] [] [G] [swons] . [unit [pop] swoncat] dipd [dip] swoncat genrec
+[P] [] [G] [swons] [unit [pop] swoncat] . dipd [dip] swoncat genrec
+[P] [] . unit [pop] swoncat [G] [swons] [dip] swoncat genrec
+[P] [[]] [pop] . swoncat [G] [swons] [dip] swoncat genrec
+[P] [pop []] [G] [swons] [dip] . swoncat genrec
+
+[P] [pop []] [G] [dip swons] genrec
+
+
+

(We could also have just substituted for c and F in the definition of H.)

+ +
H == [P] [pop c ] [G] [dip F    ] genrec
+A == [P] [pop []] [G] [dip swons] genrec
+
+
+

The partial evaluation is overkill in this case but it serves as a +reminder that this sort of program specialization can, in many cases, be +carried out automatically.)

+

Untangle [G] from [pop []] using swap.

+ +
[P] [G] [pop []] swap [dip swons] genrec
+
+
+

All of the arguments to anamorphism are to the left, so we have a definition for it.

+ +
anamorphism == [pop []] swap [dip swons] genrec
+
+
+

An example of an anamorphism is the range function.

+ +
range == [0 <=] [1 - dup] anamorphism
+ +
+
+
+
+
+
+
+

Catamorphism

A catamorphism can be defined as a hylomorphism that uses [uncons swap] for [G] +and [[] =] for the predicate [P].

+ +
c [F] catamorphism == [[] =] c [uncons swap] [F] hylomorphism == C
+
+
+

This allows us to define a catamorphism combinator in terms of +the hylomorphism combinator.

+ +
[[] =] roll> [uncons swap] swap hylomorphism == catamorphism
+
+
+

Partial evaluation doesn't help much.

+ +
c [F] . catamorphism
+c [F] . [[] =] roll> [uncons swap] swap hylomorphism
+c [F] [[] =] . roll> [uncons swap] swap hylomorphism
+[[] =] c [F] [uncons swap] . swap hylomorphism
+[[] =] c [uncons swap] [F] . hylomorphism
+[[] =] c [uncons swap] [F] [unit [pop] swoncat] . dipd [dip] swoncat genrec
+[[] =] c . unit [pop] swoncat [uncons swap] [F] [dip] swoncat genrec
+[[] =] [c] [pop] . swoncat [uncons swap] [F] [dip] swoncat genrec
+[[] =] [pop c] [uncons swap] [F] [dip] . swoncat genrec
+[[] =] [pop c] [uncons swap] [dip F] genrec
+
+
+

Because the arguments to catamorphism have to be prepared (unlike the arguments +to anamorphism, which only need to be rearranged slightly) there isn't much point +to "pre-cooking" the definition.

+ +
catamorphism == [[] =] roll> [uncons swap] swap hylomorphism
+
+
+

An example of a catamorphism is the sum function.

+ +
sum == 0 [+] catamorphism
+ +
+
+
+
+
+
+
+

"Fusion Law" for catas (UNFINISHED!!!)

I'm not sure exactly how to translate the "Fusion Law" for catamorphisms into Joy.

+

I know that a map composed with a cata can be expressed as a new cata:

+ +
[F] map b [B] cata == b [F B] cata
+
+
+

But this isn't the one described in "Bananas...". That's more like:

+

A cata composed with some function can be expressed as some other cata:

+ +
b [B] catamorphism F == c [C] catamorphism
+
+
+

Given:

+ +
b F == c
+
+...
+
+B F == [F] dip C
+
+...
+
+b[B]cata F == c[C]cata
+
+F(B(head, tail)) == C(head, F(tail))
+
+1 [2 3] B F         1 [2 3] F C
+
+
+b F == c
+B F == F C
+
+b [B] catamorphism F == c [C] catamorphism
+b [B] catamorphism F == b F [C] catamorphism
+
+...
+
+
+

Or maybe,

+ +
[F] map b [B] cata == c [C] cata     ???
+
+[F] map b [B] cata == b [F B] cata    I think this is generally true, unless F consumes stack items
+                                        instead of just transforming TOS.  Of course, there's always [F] unary.
+b [F] unary [[F] unary B] cata
+
+[10 *] map 0 swap [+] step == 0 swap [10 * +] step
+
+
+
+

For example:

+ +
F == 10 *
+b == 0
+B == +
+c == 0
+C == F +
+
+b F    == c
+0 10 * == 0
+
+B F    == [F]    dip C
++ 10 * == [10 *] dip F +
++ 10 * == [10 *] dip 10 * +
+
+n m + 10 * == 10(n+m)
+
+n m [10 *] dip 10 * +
+n 10 * m 10 * +
+10n m 10 * +
+10n 10m +
+10n+10m
+
+10n+10m = 10(n+m)
+
+
+

Ergo:

+ +
0 [+] catamorphism 10 * == 0 [10 * +] catamorphism
+ +
+
+
+
+
+
+
+

The step combinator will usually be better to use than catamorphism.

+
sum == 0 swap [+] step
+sum == 0 [+] catamorphism
+ +
+
+
+
+
+
+
+

anamorphism catamorphism == hylomorphism

Here is (part of) the payoff.

+

An anamorphism followed by (composed with) a +catamorphism is a hylomorphism, with the advantage that the hylomorphism +does not create the intermediate list structure. The values are stored in +either the call stack, for those implementations that use one, or in the pending +expression ("continuation") for the Joypy interpreter. They still have to +be somewhere, converting from an anamorphism and catamorphism to a hylomorphism +just prevents using additional storage and doing additional processing.

+ +
    range == [0 <=] [1 - dup] anamorphism
+      sum == 0 [+] catamorphism
+
+range sum == [0 <=] [1 - dup] anamorphism 0 [+] catamorphism
+          == [0 <=] 0 [1 - dup] [+] hylomorphism
+
+
+

We can let the hylomorphism combinator build range_sum for us or just +substitute ourselves.

+ +
        H == [P]    [pop c] [G]       [dip F] genrec
+range_sum == [0 <=] [pop 0] [1 - dup] [dip +] genrec
+ +
+
+
+
+
+
In [8]:
+
+
+
defs = '''
+anamorphism == [pop []] swap [dip swons] genrec
+hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec
+catamorphism == [[] =] roll> [uncons swap] swap hylomorphism
+range == [0 <=] [1 - dup] anamorphism
+sum == 0 [+] catamorphism
+range_sum == [0 <=] 0 [1 - dup] [+] hylomorphism
+'''
+
+DefinitionWrapper.add_definitions(defs, D)
+
+ +
+
+
+ +
+
+
+
In [9]:
+
+
+
J('10 range')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[9 8 7 6 5 4 3 2 1 0]
+
+
+
+ +
+
+ +
+
+
+
In [10]:
+
+
+
J('[9 8 7 6 5 4 3 2 1 0] sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
45
+
+
+
+ +
+
+ +
+
+
+
In [11]:
+
+
+
V('10 range sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                                                               . 10 range sum
+                                                                                                                            10 . range sum
+                                                                                                                            10 . [0 <=] [1 - dup] anamorphism sum
+                                                                                                                     10 [0 <=] . [1 - dup] anamorphism sum
+                                                                                                           10 [0 <=] [1 - dup] . anamorphism sum
+                                                                                                           10 [0 <=] [1 - dup] . [pop []] swap [dip swons] genrec sum
+                                                                                                  10 [0 <=] [1 - dup] [pop []] . swap [dip swons] genrec sum
+                                                                                                  10 [0 <=] [pop []] [1 - dup] . [dip swons] genrec sum
+                                                                                      10 [0 <=] [pop []] [1 - dup] [dip swons] . genrec sum
+                                         10 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte sum
+                                    10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [10] [0 <=] . infra first choice i sum
+                                                                                                                            10 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum
+                                                                                                                          10 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum
+                                        False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] . swaack first choice i sum
+                                        10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i sum
+                                          10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i sum
+                                                         10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i sum
+                                                                                                                            10 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum
+                                                                                                                          10 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum
+                                                                                                                             9 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum
+                                                                                                                           9 9 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum
+                                                                            9 9 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons sum
+                                                                                                                             9 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 9 swons sum
+                                                                                                                      9 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 9 swons sum
+                                                                                                             9 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 9 swons sum
+                                                                                                   9 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 9 swons sum
+                                                                                       9 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 9 swons sum
+                                          9 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 9 swons sum
+                                      9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [9] [0 <=] . infra first choice i 9 swons sum
+                                                                                                                             9 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum
+                                                                                                                           9 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] . swaack first choice i 9 swons sum
+                                         9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 9 swons sum
+                                           9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 9 swons sum
+                                                          9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 9 swons sum
+                                                                                                                             9 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum
+                                                                                                                           9 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum
+                                                                                                                             8 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum
+                                                                                                                           8 8 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum
+                                                                            8 8 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 9 swons sum
+                                                                                                                             8 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 8 swons 9 swons sum
+                                                                                                                      8 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 8 swons 9 swons sum
+                                                                                                             8 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 8 swons 9 swons sum
+                                                                                                   8 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 8 swons 9 swons sum
+                                                                                       8 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 8 swons 9 swons sum
+                                          8 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 8 swons 9 swons sum
+                                      8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [8] [0 <=] . infra first choice i 8 swons 9 swons sum
+                                                                                                                             8 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum
+                                                                                                                           8 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] . swaack first choice i 8 swons 9 swons sum
+                                         8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 8 swons 9 swons sum
+                                           8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 8 swons 9 swons sum
+                                                          8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 8 swons 9 swons sum
+                                                                                                                             8 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum
+                                                                                                                           8 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum
+                                                                                                                             7 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum
+                                                                                                                           7 7 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum
+                                                                            7 7 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 8 swons 9 swons sum
+                                                                                                                             7 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum
+                                                                                                                      7 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum
+                                                                                                             7 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum
+                                                                                                   7 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 7 swons 8 swons 9 swons sum
+                                                                                       7 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 7 swons 8 swons 9 swons sum
+                                          7 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 7 swons 8 swons 9 swons sum
+                                      7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [7] [0 <=] . infra first choice i 7 swons 8 swons 9 swons sum
+                                                                                                                             7 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum
+                                                                                                                           7 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] . swaack first choice i 7 swons 8 swons 9 swons sum
+                                         7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 7 swons 8 swons 9 swons sum
+                                           7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 7 swons 8 swons 9 swons sum
+                                                          7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 7 swons 8 swons 9 swons sum
+                                                                                                                             7 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum
+                                                                                                                           7 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum
+                                                                                                                             6 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum
+                                                                                                                           6 6 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum
+                                                                            6 6 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 7 swons 8 swons 9 swons sum
+                                                                                                                             6 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      6 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             6 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   6 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       6 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 6 swons 7 swons 8 swons 9 swons sum
+                                          6 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 6 swons 7 swons 8 swons 9 swons sum
+                                      6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [6] [0 <=] . infra first choice i 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             6 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           6 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] . swaack first choice i 6 swons 7 swons 8 swons 9 swons sum
+                                         6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 6 swons 7 swons 8 swons 9 swons sum
+                                           6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 6 swons 7 swons 8 swons 9 swons sum
+                                                          6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             6 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           6 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             5 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           5 5 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                            5 5 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             5 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      5 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             5 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   5 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       5 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          5 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                      5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [5] [0 <=] . infra first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             5 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           5 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] . swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                           5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                          5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             5 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           5 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             4 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           4 4 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                            4 4 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             4 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      4 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             4 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   4 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       4 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          4 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                      4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [4] [0 <=] . infra first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             4 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           4 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] . swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                           4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                          4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             4 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           4 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             3 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           3 3 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                            3 3 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             3 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      3 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             3 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   3 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       3 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          3 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                      3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [3] [0 <=] . infra first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             3 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           3 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] . swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                           3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                          3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             3 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           3 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             2 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           2 2 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                            2 2 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             2 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      2 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             2 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   2 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       2 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          2 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                      2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [2] [0 <=] . infra first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             2 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           2 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] . swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                           2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                          2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             2 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           2 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             1 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           1 1 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                            1 1 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             1 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      1 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             1 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   1 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       1 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          1 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                      1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [1] [0 <=] . infra first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             1 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           1 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] . swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                         1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                           1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                          1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             1 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           1 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             0 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           0 0 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                            0 0 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             0 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                      0 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                             0 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                   0 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                       0 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          0 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                      0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [0] [0 <=] . infra first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             0 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           0 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                          True . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          True [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] . swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                          0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                            0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] True . choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                    0 [pop []] . i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                             0 . pop [] 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                               . [] 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                            [] . 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                          [] 0 . swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                          [] 0 . swap cons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                          0 [] . cons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                           [0] . 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         [0] 1 . swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         [0] 1 . swap cons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         1 [0] . cons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                         [1 0] . 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                       [1 0] 2 . swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                       [1 0] 2 . swap cons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                       2 [1 0] . cons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                       [2 1 0] . 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                     [2 1 0] 3 . swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                     [2 1 0] 3 . swap cons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                     3 [2 1 0] . cons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                     [3 2 1 0] . 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                   [3 2 1 0] 4 . swons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                   [3 2 1 0] 4 . swap cons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                   4 [3 2 1 0] . cons 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                   [4 3 2 1 0] . 5 swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                 [4 3 2 1 0] 5 . swons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                 [4 3 2 1 0] 5 . swap cons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                 5 [4 3 2 1 0] . cons 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                                 [5 4 3 2 1 0] . 6 swons 7 swons 8 swons 9 swons sum
+                                                                                                               [5 4 3 2 1 0] 6 . swons 7 swons 8 swons 9 swons sum
+                                                                                                               [5 4 3 2 1 0] 6 . swap cons 7 swons 8 swons 9 swons sum
+                                                                                                               6 [5 4 3 2 1 0] . cons 7 swons 8 swons 9 swons sum
+                                                                                                               [6 5 4 3 2 1 0] . 7 swons 8 swons 9 swons sum
+                                                                                                             [6 5 4 3 2 1 0] 7 . swons 8 swons 9 swons sum
+                                                                                                             [6 5 4 3 2 1 0] 7 . swap cons 8 swons 9 swons sum
+                                                                                                             7 [6 5 4 3 2 1 0] . cons 8 swons 9 swons sum
+                                                                                                             [7 6 5 4 3 2 1 0] . 8 swons 9 swons sum
+                                                                                                           [7 6 5 4 3 2 1 0] 8 . swons 9 swons sum
+                                                                                                           [7 6 5 4 3 2 1 0] 8 . swap cons 9 swons sum
+                                                                                                           8 [7 6 5 4 3 2 1 0] . cons 9 swons sum
+                                                                                                           [8 7 6 5 4 3 2 1 0] . 9 swons sum
+                                                                                                         [8 7 6 5 4 3 2 1 0] 9 . swons sum
+                                                                                                         [8 7 6 5 4 3 2 1 0] 9 . swap cons sum
+                                                                                                         9 [8 7 6 5 4 3 2 1 0] . cons sum
+                                                                                                         [9 8 7 6 5 4 3 2 1 0] . sum
+                                                                                                         [9 8 7 6 5 4 3 2 1 0] . 0 [+] catamorphism
+                                                                                                       [9 8 7 6 5 4 3 2 1 0] 0 . [+] catamorphism
+                                                                                                   [9 8 7 6 5 4 3 2 1 0] 0 [+] . catamorphism
+                                                                                                   [9 8 7 6 5 4 3 2 1 0] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism
+                                                                                            [9 8 7 6 5 4 3 2 1 0] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism
+                                                                                            [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [+] . [uncons swap] swap hylomorphism
+                                                                              [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [+] [uncons swap] . swap hylomorphism
+                                                                              [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] . hylomorphism
+                                                                              [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec
+                                                         [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec
+                                                                                                [9 8 7 6 5 4 3 2 1 0] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec
+                                                                                                [9 8 7 6 5 4 3 2 1 0] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec
+                                                                                             [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec
+                                                                                              [9 8 7 6 5 4 3 2 1 0] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec
+                                                                                        [9 8 7 6 5 4 3 2 1 0] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec
+                                                                                        [9 8 7 6 5 4 3 2 1 0] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec
+                                                                                        [9 8 7 6 5 4 3 2 1 0] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec
+                                                                                          [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec
+                                                                            [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec
+                                                                        [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec
+                                                                  [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec
+                                                                  [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec
+                                                                  [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec
+                                                                    [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec
+                        [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte
+[9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[9 8 7 6 5 4 3 2 1 0]] [[] =] . infra first choice i
+                                                                                                         [9 8 7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i
+                                                                                                      [9 8 7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i
+                       False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] . swaack first choice i
+                       [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i
+                         [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i
+                                       [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i
+                                                                                                         [9 8 7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +
+                                                                                                         9 [8 7 6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +
+                                                                                                         [8 7 6 5 4 3 2 1 0] 9 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +
+                                                           [8 7 6 5 4 3 2 1 0] 9 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip +
+                                                                                                           [8 7 6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 9 +
+                                                                                                    [8 7 6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 9 +
+                                                                                            [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 9 +
+                                                                              [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 9 +
+                                                                      [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 9 +
+                          [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 9 +
+    [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[8 7 6 5 4 3 2 1 0]] [[] =] . infra first choice i 9 +
+                                                                                                           [8 7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 +
+                                                                                                        [8 7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 +
+                         False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] . swaack first choice i 9 +
+                         [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 9 +
+                           [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 9 +
+                                         [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 9 +
+                                                                                                           [8 7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 +
+                                                                                                           8 [7 6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 +
+                                                                                                           [7 6 5 4 3 2 1 0] 8 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 +
+                                                             [7 6 5 4 3 2 1 0] 8 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 9 +
+                                                                                                             [7 6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 8 + 9 +
+                                                                                                      [7 6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 8 + 9 +
+                                                                                              [7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 8 + 9 +
+                                                                                [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 8 + 9 +
+                                                                        [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 8 + 9 +
+                            [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 8 + 9 +
+        [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[7 6 5 4 3 2 1 0]] [[] =] . infra first choice i 8 + 9 +
+                                                                                                             [7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 +
+                                                                                                          [7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 +
+                           False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] . swaack first choice i 8 + 9 +
+                           [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 8 + 9 +
+                             [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 8 + 9 +
+                                           [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 8 + 9 +
+                                                                                                             [7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 +
+                                                                                                             7 [6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 +
+                                                                                                             [6 5 4 3 2 1 0] 7 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 +
+                                                               [6 5 4 3 2 1 0] 7 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 8 + 9 +
+                                                                                                               [6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 7 + 8 + 9 +
+                                                                                                        [6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 7 + 8 + 9 +
+                                                                                                [6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 7 + 8 + 9 +
+                                                                                  [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 7 + 8 + 9 +
+                                                                          [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 7 + 8 + 9 +
+                              [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 7 + 8 + 9 +
+            [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[6 5 4 3 2 1 0]] [[] =] . infra first choice i 7 + 8 + 9 +
+                                                                                                               [6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 +
+                                                                                                            [6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 +
+                             False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] . swaack first choice i 7 + 8 + 9 +
+                             [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 7 + 8 + 9 +
+                               [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 7 + 8 + 9 +
+                                             [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 7 + 8 + 9 +
+                                                                                                               [6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 +
+                                                                                                               6 [5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 +
+                                                                                                               [5 4 3 2 1 0] 6 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 +
+                                                                 [5 4 3 2 1 0] 6 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 7 + 8 + 9 +
+                                                                                                                 [5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 +
+                                                                                                          [5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 +
+                                                                                                  [5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 +
+                                                                                    [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 6 + 7 + 8 + 9 +
+                                                                            [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 6 + 7 + 8 + 9 +
+                                [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 6 + 7 + 8 + 9 +
+                [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[5 4 3 2 1 0]] [[] =] . infra first choice i 6 + 7 + 8 + 9 +
+                                                                                                                 [5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 +
+                                                                                                              [5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 +
+                               False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] . swaack first choice i 6 + 7 + 8 + 9 +
+                               [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 6 + 7 + 8 + 9 +
+                                 [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 6 + 7 + 8 + 9 +
+                                               [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 6 + 7 + 8 + 9 +
+                                                                                                                 [5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                                                                                                 5 [4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                                                                                                 [4 3 2 1 0] 5 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                                                   [4 3 2 1 0] 5 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 6 + 7 + 8 + 9 +
+                                                                                                                   [4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                                                                            [4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                                                                    [4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                                                      [4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                                              [4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 5 + 6 + 7 + 8 + 9 +
+                                  [4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 5 + 6 + 7 + 8 + 9 +
+                    [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[4 3 2 1 0]] [[] =] . infra first choice i 5 + 6 + 7 + 8 + 9 +
+                                                                                                                   [4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 +
+                                                                                                                [4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 +
+                                 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] . swaack first choice i 5 + 6 + 7 + 8 + 9 +
+                                 [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 5 + 6 + 7 + 8 + 9 +
+                                   [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 5 + 6 + 7 + 8 + 9 +
+                                                 [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 5 + 6 + 7 + 8 + 9 +
+                                                                                                                   [4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                   4 [3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                   [3 2 1 0] 4 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                                                     [3 2 1 0] 4 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                     [3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                              [3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                      [3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                        [3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                [3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                    [3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 4 + 5 + 6 + 7 + 8 + 9 +
+                        [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[3 2 1 0]] [[] =] . infra first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                     [3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                  [3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                   False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] . swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                   [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                     [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                   [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                     [3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                     3 [2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                     [2 1 0] 3 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                       [2 1 0] 3 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                       [2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                [2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                        [2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                          [2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                  [2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                      [2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                            [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[2 1 0]] [[] =] . infra first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                       [2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                    [2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                     False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] . swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                     [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                       [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                     [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                       [2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                       2 [1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                       [1 0] 2 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                         [1 0] 2 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         [1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                  [1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                          [1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                            [1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                    [1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                        [1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[1 0]] [[] =] . infra first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         [1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                      [1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                       False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] . swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                       [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                         [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                       [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         [1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         1 [0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         [0] 1 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                           [0] 1 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           [0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                    [0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                            [0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                              [0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                      [0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                          [0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                    [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[0]] [[] =] . infra first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           [0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                        [0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                         False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] . swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                         [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                           [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                         [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           [0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                          0 [] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                          [] 0 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                            [] 0 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                            [] . [[] =] [pop 0] [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                     [] [[] =] . [pop 0] [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                             [] [[] =] [pop 0] . [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                               [] [[] =] [pop 0] [uncons swap] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                       [] [[] =] [pop 0] [uncons swap] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                           [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                      [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[]] [[] =] . infra first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                            [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                         [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                          True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                           True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] . swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                           [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                             [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                    [] [pop 0] . i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                            [] . pop 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                               . 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                             0 . 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           0 0 . + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                             0 . 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           0 1 . + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                             1 . 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           1 2 . + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                             3 . 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           3 3 . + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                             6 . 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                           6 4 . + 5 + 6 + 7 + 8 + 9 +
+                                                                                                                            10 . 5 + 6 + 7 + 8 + 9 +
+                                                                                                                          10 5 . + 6 + 7 + 8 + 9 +
+                                                                                                                            15 . 6 + 7 + 8 + 9 +
+                                                                                                                          15 6 . + 7 + 8 + 9 +
+                                                                                                                            21 . 7 + 8 + 9 +
+                                                                                                                          21 7 . + 8 + 9 +
+                                                                                                                            28 . 8 + 9 +
+                                                                                                                          28 8 . + 9 +
+                                                                                                                            36 . 9 +
+                                                                                                                          36 9 . +
+                                                                                                                            45 . 
+
+
+
+ +
+
+ +
+
+
+
In [12]:
+
+
+
V('10 range_sum')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                 . 10 range_sum
+                                                                              10 . range_sum
+                                                                              10 . [0 <=] 0 [1 - dup] [+] hylomorphism
+                                                                       10 [0 <=] . 0 [1 - dup] [+] hylomorphism
+                                                                     10 [0 <=] 0 . [1 - dup] [+] hylomorphism
+                                                           10 [0 <=] 0 [1 - dup] . [+] hylomorphism
+                                                       10 [0 <=] 0 [1 - dup] [+] . hylomorphism
+                                                       10 [0 <=] 0 [1 - dup] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec
+                                  10 [0 <=] 0 [1 - dup] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec
+                                                                     10 [0 <=] 0 . unit [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                                     10 [0 <=] 0 . [] cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                                  10 [0 <=] 0 [] . cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                                   10 [0 <=] [0] . [pop] swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                             10 [0 <=] [0] [pop] . swoncat [1 - dup] [+] [dip] swoncat genrec
+                                                             10 [0 <=] [0] [pop] . swap concat [1 - dup] [+] [dip] swoncat genrec
+                                                             10 [0 <=] [pop] [0] . concat [1 - dup] [+] [dip] swoncat genrec
+                                                               10 [0 <=] [pop 0] . [1 - dup] [+] [dip] swoncat genrec
+                                                     10 [0 <=] [pop 0] [1 - dup] . [+] [dip] swoncat genrec
+                                                 10 [0 <=] [pop 0] [1 - dup] [+] . [dip] swoncat genrec
+                                           10 [0 <=] [pop 0] [1 - dup] [+] [dip] . swoncat genrec
+                                           10 [0 <=] [pop 0] [1 - dup] [+] [dip] . swap concat genrec
+                                           10 [0 <=] [pop 0] [1 - dup] [dip] [+] . concat genrec
+                                             10 [0 <=] [pop 0] [1 - dup] [dip +] . genrec
+     10 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte
+10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [10] [0 <=] . infra first choice i
+                                                                              10 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i
+                                                                            10 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i
+    False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] . swaack first choice i
+    10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i
+      10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i
+                    10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i
+                                                                              10 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                                                            10 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                                                               9 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                                                             9 9 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +
+                                   9 9 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip +
+                                                                               9 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 9 +
+                                                                        9 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 9 +
+                                                                9 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 9 +
+                                                      9 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 9 +
+                                              9 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 9 +
+      9 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 9 +
+  9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [9] [0 <=] . infra first choice i 9 +
+                                                                               9 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 +
+                                                                             9 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] . swaack first choice i 9 +
+     9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 9 +
+       9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 9 +
+                     9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 9 +
+                                                                               9 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +
+                                                                             9 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +
+                                                                               8 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +
+                                                                             8 8 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +
+                                   8 8 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 9 +
+                                                                               8 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 8 + 9 +
+                                                                        8 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 8 + 9 +
+                                                                8 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 8 + 9 +
+                                                      8 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 8 + 9 +
+                                              8 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 8 + 9 +
+      8 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 8 + 9 +
+  8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [8] [0 <=] . infra first choice i 8 + 9 +
+                                                                               8 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 +
+                                                                             8 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] . swaack first choice i 8 + 9 +
+     8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 8 + 9 +
+       8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 8 + 9 +
+                     8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 8 + 9 +
+                                                                               8 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +
+                                                                             8 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +
+                                                                               7 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +
+                                                                             7 7 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +
+                                   7 7 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 8 + 9 +
+                                                                               7 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 7 + 8 + 9 +
+                                                                        7 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 7 + 8 + 9 +
+                                                                7 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 7 + 8 + 9 +
+                                                      7 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 7 + 8 + 9 +
+                                              7 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 7 + 8 + 9 +
+      7 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 7 + 8 + 9 +
+  7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [7] [0 <=] . infra first choice i 7 + 8 + 9 +
+                                                                               7 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 +
+                                                                             7 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] . swaack first choice i 7 + 8 + 9 +
+     7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 7 + 8 + 9 +
+       7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 7 + 8 + 9 +
+                     7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 7 + 8 + 9 +
+                                                                               7 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +
+                                                                             7 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +
+                                                                               6 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +
+                                                                             6 6 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +
+                                   6 6 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 7 + 8 + 9 +
+                                                                               6 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 +
+                                                                        6 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 +
+                                                                6 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 +
+                                                      6 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 6 + 7 + 8 + 9 +
+                                              6 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 6 + 7 + 8 + 9 +
+      6 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 6 + 7 + 8 + 9 +
+  6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [6] [0 <=] . infra first choice i 6 + 7 + 8 + 9 +
+                                                                               6 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 +
+                                                                             6 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] . swaack first choice i 6 + 7 + 8 + 9 +
+     6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 6 + 7 + 8 + 9 +
+       6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 6 + 7 + 8 + 9 +
+                     6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 6 + 7 + 8 + 9 +
+                                                                               6 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                                                             6 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                                                               5 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                                                             5 5 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +
+                                   5 5 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 6 + 7 + 8 + 9 +
+                                                                               5 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                                        5 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                                5 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                                      5 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 5 + 6 + 7 + 8 + 9 +
+                                              5 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 5 + 6 + 7 + 8 + 9 +
+      5 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 5 + 6 + 7 + 8 + 9 +
+  5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [5] [0 <=] . infra first choice i 5 + 6 + 7 + 8 + 9 +
+                                                                               5 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 +
+                                                                             5 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] . swaack first choice i 5 + 6 + 7 + 8 + 9 +
+     5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 5 + 6 + 7 + 8 + 9 +
+       5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 5 + 6 + 7 + 8 + 9 +
+                     5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 5 + 6 + 7 + 8 + 9 +
+                                                                               5 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                                                             5 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                                                               4 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                                                             4 4 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +
+                                   4 4 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 5 + 6 + 7 + 8 + 9 +
+                                                                               4 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                        4 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                4 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                                      4 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +
+                                              4 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 4 + 5 + 6 + 7 + 8 + 9 +
+      4 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 4 + 5 + 6 + 7 + 8 + 9 +
+  4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [4] [0 <=] . infra first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               4 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             4 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] . swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+     4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + 5 + 6 + 7 + 8 + 9 +
+       4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 4 + 5 + 6 + 7 + 8 + 9 +
+                     4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               4 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             4 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               3 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             3 3 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                   3 3 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               3 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                        3 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                3 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                      3 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                              3 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+      3 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+  3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [3] [0 <=] . infra first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               3 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             3 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] . swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+     3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+       3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                     3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               3 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             3 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               2 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             2 2 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                   2 2 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               2 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                        2 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                2 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                      2 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                              2 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+      2 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+  2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [2] [0 <=] . infra first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               2 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             2 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] . swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+     2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+       2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                     2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               2 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             2 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               1 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             1 1 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                   1 1 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               1 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                        1 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                1 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                      1 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                              1 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+      1 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+  1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [1] [0 <=] . infra first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               1 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             1 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                           False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+     False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] . swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+     1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+       1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                     1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               1 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             1 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               0 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             0 0 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                   0 0 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               0 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                        0 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                0 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                      0 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                              0 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+      0 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+  0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [0] [0 <=] . infra first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               0 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             0 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                            True . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+      True [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] . swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+      0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+        0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                       0 [pop 0] . i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               0 . pop 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                                 . 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               0 . 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             0 0 . + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               0 . 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             0 1 . + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               1 . 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             1 2 . + 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               3 . 3 + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             3 3 . + 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                               6 . 4 + 5 + 6 + 7 + 8 + 9 +
+                                                                             6 4 . + 5 + 6 + 7 + 8 + 9 +
+                                                                              10 . 5 + 6 + 7 + 8 + 9 +
+                                                                            10 5 . + 6 + 7 + 8 + 9 +
+                                                                              15 . 6 + 7 + 8 + 9 +
+                                                                            15 6 . + 7 + 8 + 9 +
+                                                                              21 . 7 + 8 + 9 +
+                                                                            21 7 . + 8 + 9 +
+                                                                              28 . 8 + 9 +
+                                                                            28 8 . + 9 +
+                                                                              36 . 9 +
+                                                                            36 9 . +
+                                                                              45 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Factorial Function and Paramorphisms

A paramorphism P :: B -> A is a recursion combinator that uses dup on intermediate values.

+ +
n swap [P] [pop] [[F] dupdip G] primrec
+
+
+

With

+
    +
  • n :: A is the "identity" for F (like 1 for multiplication, 0 for addition)
  • +
  • F :: (A, B) -> A
  • +
  • G :: B -> B generates the next B value.
  • +
  • and lastly P :: B -> Bool detects the end of the series.
  • +
+ +
+
+
+
+
+
+
+

For Factorial function (types A and B are both integer):

+ +
n == 1
+F == *
+G == --
+P == 1 <=
+ +
+
+
+
+
+
In [15]:
+
+
+
define('factorial == 1 swap [1 <=] [pop] [[*] dupdip --] primrec')
+
+ +
+
+
+ +
+
+
+
+
+

Try it with input 3 (omitting evaluation of predicate):

+ +
3 1 swap [1 <=] [pop] [[*] dupdip --] primrec
+1 3      [1 <=] [pop] [[*] dupdip --] primrec
+
+1 3 [*] dupdip --
+1 3  * 3      --
+3      3      --
+3      2
+
+3 2 [*] dupdip --
+3 2  *  2      --
+6       2      --
+6       1
+
+6 1 [1 <=] [pop] [[*] dupdip --] primrec
+
+6 1 pop
+6
+ +
+
+
+
+
+
In [16]:
+
+
+
J('3 factorial')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6
+
+
+
+ +
+
+ +
+
+
+
+
+

Derive paramorphism from the form above.

+
n swap [P] [pop] [[F] dupdip G] primrec
+
+n swap [P]       [pop]     [[F] dupdip G]                  primrec
+n [P] [swap] dip [pop]     [[F] dupdip G]                  primrec
+n [P] [[F] dupdip G]                [[swap] dip [pop]] dip primrec
+n [P] [F] [dupdip G]           cons [[swap] dip [pop]] dip primrec
+n [P] [F] [G] [dupdip] swoncat cons [[swap] dip [pop]] dip primrec
+
+paramorphism == [dupdip] swoncat cons [[swap] dip [pop]] dip primrec
+ +
+
+
+
+
+
In [17]:
+
+
+
define('paramorphism == [dupdip] swoncat cons [[swap] dip [pop]] dip primrec')
+define('factorial == 1 [1 <=] [*] [--] paramorphism')
+
+ +
+
+
+ +
+
+
+
In [18]:
+
+
+
J('3 factorial')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6
+
+
+
+ +
+
+ +
+
+
+
+
+

tails

An example of a paramorphism for lists given in the "Bananas..." paper is tails which returns the list of "tails" of a list.

+ +
[1 2 3] tails == [[] [3] [2 3]]
+
+
+

Using paramorphism we would write:

+ +
n == []
+F == rest swons
+G == rest
+P == not
+
+tails == [] [not] [rest swons] [rest] paramorphism
+ +
+
+
+
+
+
In [19]:
+
+
+
define('tails == [] [not] [rest swons] [rest] paramorphism')
+
+ +
+
+
+ +
+
+
+
In [20]:
+
+
+
J('[1 2 3] tails')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[[] [3] [2 3]]
+
+
+
+ +
+
+ +
+
+
+
In [21]:
+
+
+
J('25 range tails [popop] infra [sum] map')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 210 231 253 276]
+
+
+
+ +
+
+ +
+
+
+
In [22]:
+
+
+
J('25 range [range_sum] map')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[276 253 231 210 190 171 153 136 120 105 91 78 66 55 45 36 28 21 15 10 6 3 1 0 0]
+
+
+
+ +
+
+ +
+
+
+
+
+

Factoring rest

Right before the recursion begins we have:

+ +
[] [1 2 3] [not] [pop] [[rest swons] dupdip rest] primrec
+
+
+

But we might prefer to factor rest in the quote:

+ +
[] [1 2 3] [not] [pop] [rest [swons] dupdip] primrec
+
+
+

There's no way to do that with the paramorphism combinator as defined. We would have to write and use a slightly different recursion combinator that accepted an additional "preprocessor" function [H] and built:

+ +
n swap [P] [pop] [H [F] dupdip G] primrec
+
+
+

Or just write it out manually. This is yet another place where the sufficiently smart compiler will one day automatically refactor the code. We could write a paramorphism combinator that checked [F] and [G] for common prefix and extracted it.

+ +
+
+
+
+
+
+
+

Patterns of Recursion

Our story so far...

+
    +
  • A combiner F :: (B, B) -> B
  • +
  • A predicate P :: A -> Bool to detect the base case
  • +
  • A base case value c :: B
  • +
+

Hylo- Ana-, Cata-

+
w/ G :: A -> (A, B)
+
+H == [P   ] [pop c ] [G          ] [dip F    ] genrec
+A == [P   ] [pop []] [G          ] [dip swons] genrec
+C == [[] =] [pop c ] [uncons swap] [dip F    ] genrec
+
+
+

Para-, ?-, ?-

+
w/ G :: B -> B
+
+P == c  swap [P   ] [pop] [[F    ] dupdip G          ] primrec
+? == [] swap [P   ] [pop] [[swons] dupdip G          ] primrec
+? == c  swap [[] =] [pop] [[F    ] dupdip uncons swap] primrec
+ +
+
+
+
+
+
+
+

Four Generalizations

There are at least four kinds of recursive combinator, depending on two choices. The first choice is whether the combiner function should be evaluated during the recursion or pushed into the pending expression to be "collapsed" at the end. The second choice is whether the combiner needs to operate on the current value of the datastructure or the generator's output.

+ +
H ==        [P] [pop c] [G             ] [dip F] genrec
+H == c swap [P] [pop]   [G [F]    dip  ] [i]     genrec
+H ==        [P] [pop c] [  [G] dupdip  ] [dip F] genrec
+H == c swap [P] [pop]   [  [F] dupdip G] [i]     genrec
+
+
+

Consider:

+ +
... a G [H] dip F                w/ a G == a' b
+... c a G [F] dip H                 a G == b  a'
+... a [G] dupdip [H] dip F          a G == a'
+... c a [F] dupdip G H              a G == a'
+ +
+
+
+
+
+
+
+

1

+
H == [P] [pop c] [G] [dip F] genrec
+
+
+

Iterate n times.

+ +
... a [P] [pop c] [G] [dip F] genrec
+... a  G [H] dip F
+... a' b [H] dip F
+... a' H b F
+... a'  G [H] dip F b F
+... a'' b [H] dip F b F
+... a'' H b F b F
+... a''  G [H] dip F b F b F
+... a''' b [H] dip F b F b F
+... a''' H b F b F b F
+... a''' pop c b F b F b F
+... c b F b F b F
+
+
+

This form builds up a continuation that contains the intermediate results along with the pending combiner functions. When the base case is reached the last term is replaced by the identity value c and the continuation "collapses" into the final result.

+ +
+
+
+
+
+
+
+

2

When you can start with the identity value c on the stack and the combiner can operate as you go, using the intermediate results immediately rather than queuing them up, use this form. An important difference is that the generator function must return its results in the reverse order.

+ +
H == c swap [P] [pop] [G [F] dip] primrec
+
+... c a G [F] dip H
+... c b a' [F] dip H
+... c b F a' H
+... c b F a' G [F] dip H
+... c b F b a'' [F] dip H
+... c b F b F a'' H
+... c b F b F a'' G [F] dip H
+... c b F b F b a''' [F] dip H
+... c b F b F b F a''' H
+... c b F b F b F a''' pop
+... c b F b F b F
+
+
+

The end line here is the same as for above, but only because we didn't evaluate F when it normally would have been.

+ +
+
+
+
+
+
+
+

3

If the combiner and the generator both need to work on the current value then dup must be used at some point, and the generator must produce one item instead of two (the b is instead the duplicate of a.)

+ +
H == [P] [pop c] [[G] dupdip] [dip F] genrec
+
+... a [G] dupdip [H] dip F
+... a  G a       [H] dip F
+... a'   a       [H] dip F
+... a' H a F
+... a' [G] dupdip [H] dip F a F
+... a'  G  a'     [H] dip F a F
+... a''    a'     [H] dip F a F
+... a'' H  a' F a F
+... a'' [G] dupdip [H] dip F a' F a F
+... a''  G  a''    [H] dip F a' F a F
+... a'''    a''    [H] dip F a' F a F
+... a''' H  a'' F a' F a F
+... a''' pop c  a'' F a' F a F
+...          c  a'' F a' F a F
+ +
+
+
+
+
+
+
+

4

And, last but not least, if you can combine as you go, starting with c, and the combiner needs to work on the current item this is the form:

+ +
W == c swap [P] [pop] [[F] dupdip G] primrec
+
+... a c swap [P] [pop] [[F] dupdip G] primrec
+... c a [P] [pop] [[F] dupdip G] primrec
+... c a [F] dupdip G W
+... c a  F a G W
+... c a  F a'  W
+... c a  F a'  [F] dupdip G W
+... c a  F a'   F  a'     G W
+... c a  F a'   F  a''      W
+... c a  F a'   F  a''      [F] dupdip G W
+... c a  F a'   F  a''       F  a''    G W
+... c a  F a'   F  a''       F  a'''     W
+... c a  F a'   F  a''       F  a'''     pop
+... c a  F a'   F  a''       F
+ +
+
+
+
+
+
+
+

Each of the four variations above can be specialized to ana- and catamorphic forms.

+ +
+
+
+
+
+
In [23]:
+
+
+
def WTFmorphism(c, F, P, G):
+    '''Return a hylomorphism function H.'''
+
+    def H(a, d=c):
+        if P(a):
+            result = d
+        else:
+            a, b = G(a)
+            result = H(a, F(d, b))
+        return result
+
+    return H
+
+ +
+
+
+ +
+
+
+
In [24]:
+
+
+
F = lambda a, b: a + b
+P = lambda n: n <= 1
+G = lambda n: (n - 1, n - 1)
+
+wtf = WTFmorphism(0, F, P, G)
+
+print wtf(5)
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
10
+
+
+
+ +
+
+ +
+
+
+
+
+ +
H == [P   ] [pop c ] [G          ] [dip F    ] genrec
+ +
+
+
+
+
+
In [25]:
+
+
+
DefinitionWrapper.add_definitions('''
+P == 1 <=
+Ga == -- dup
+Gb == --
+c == 0
+F == +
+''', D)
+
+ +
+
+
+ +
+
+
+
In [26]:
+
+
+
V('[1 2 3] [[] =] [pop []] [uncons swap] [dip swons] genrec')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                                             . [1 2 3] [[] =] [pop []] [uncons swap] [dip swons] genrec
+                                                                                                     [1 2 3] . [[] =] [pop []] [uncons swap] [dip swons] genrec
+                                                                                              [1 2 3] [[] =] . [pop []] [uncons swap] [dip swons] genrec
+                                                                                     [1 2 3] [[] =] [pop []] . [uncons swap] [dip swons] genrec
+                                                                       [1 2 3] [[] =] [pop []] [uncons swap] . [dip swons] genrec
+                                                           [1 2 3] [[] =] [pop []] [uncons swap] [dip swons] . genrec
+          [1 2 3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte
+[1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[1 2 3]] [[] =] . infra first choice i
+                                                                                                     [1 2 3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i
+                                                                                                  [1 2 3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i
+                                                                                                       False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i
+         False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] . swaack first choice i
+         [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i
+           [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i
+                          [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i
+                                                                                                     [1 2 3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons
+                                                                                                     1 [2 3] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons
+                                                                                                     [2 3] 1 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons
+                                                  [2 3] 1 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons
+                                                                                                       [2 3] . [[] =] [pop []] [uncons swap] [dip swons] genrec 1 swons
+                                                                                                [2 3] [[] =] . [pop []] [uncons swap] [dip swons] genrec 1 swons
+                                                                                       [2 3] [[] =] [pop []] . [uncons swap] [dip swons] genrec 1 swons
+                                                                         [2 3] [[] =] [pop []] [uncons swap] . [dip swons] genrec 1 swons
+                                                             [2 3] [[] =] [pop []] [uncons swap] [dip swons] . genrec 1 swons
+            [2 3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 1 swons
+    [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[2 3]] [[] =] . infra first choice i 1 swons
+                                                                                                       [2 3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons
+                                                                                                    [2 3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons
+                                                                                                       False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons
+           False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] . swaack first choice i 1 swons
+           [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 1 swons
+             [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i 1 swons
+                            [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i 1 swons
+                                                                                                       [2 3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons
+                                                                                                       2 [3] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons
+                                                                                                       [3] 2 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons
+                                                    [3] 2 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons 1 swons
+                                                                                                         [3] . [[] =] [pop []] [uncons swap] [dip swons] genrec 2 swons 1 swons
+                                                                                                  [3] [[] =] . [pop []] [uncons swap] [dip swons] genrec 2 swons 1 swons
+                                                                                         [3] [[] =] [pop []] . [uncons swap] [dip swons] genrec 2 swons 1 swons
+                                                                           [3] [[] =] [pop []] [uncons swap] . [dip swons] genrec 2 swons 1 swons
+                                                               [3] [[] =] [pop []] [uncons swap] [dip swons] . genrec 2 swons 1 swons
+              [3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 2 swons 1 swons
+        [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[3]] [[] =] . infra first choice i 2 swons 1 swons
+                                                                                                         [3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons
+                                                                                                      [3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons
+                                                                                                       False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons
+             False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] . swaack first choice i 2 swons 1 swons
+             [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons 1 swons
+               [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons 1 swons
+                              [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i 2 swons 1 swons
+                                                                                                         [3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons
+                                                                                                        3 [] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons
+                                                                                                        [] 3 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons
+                                                     [] 3 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons 2 swons 1 swons
+                                                                                                          [] . [[] =] [pop []] [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons
+                                                                                                   [] [[] =] . [pop []] [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons
+                                                                                          [] [[] =] [pop []] . [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons
+                                                                            [] [[] =] [pop []] [uncons swap] . [dip swons] genrec 3 swons 2 swons 1 swons
+                                                                [] [[] =] [pop []] [uncons swap] [dip swons] . genrec 3 swons 2 swons 1 swons
+               [] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 3 swons 2 swons 1 swons
+          [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[]] [[] =] . infra first choice i 3 swons 2 swons 1 swons
+                                                                                                          [] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons
+                                                                                                       [] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons
+                                                                                                        True . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons
+               True [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] . swaack first choice i 3 swons 2 swons 1 swons
+               [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 3 swons 2 swons 1 swons
+                 [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] True . choice i 3 swons 2 swons 1 swons
+                                                                                                 [] [pop []] . i 3 swons 2 swons 1 swons
+                                                                                                          [] . pop [] 3 swons 2 swons 1 swons
+                                                                                                             . [] 3 swons 2 swons 1 swons
+                                                                                                          [] . 3 swons 2 swons 1 swons
+                                                                                                        [] 3 . swons 2 swons 1 swons
+                                                                                                        [] 3 . swap cons 2 swons 1 swons
+                                                                                                        3 [] . cons 2 swons 1 swons
+                                                                                                         [3] . 2 swons 1 swons
+                                                                                                       [3] 2 . swons 1 swons
+                                                                                                       [3] 2 . swap cons 1 swons
+                                                                                                       2 [3] . cons 1 swons
+                                                                                                       [2 3] . 1 swons
+                                                                                                     [2 3] 1 . swons
+                                                                                                     [2 3] 1 . swap cons
+                                                                                                     1 [2 3] . cons
+                                                                                                     [1 2 3] . 
+
+
+
+ +
+
+ +
+
+
+
In [27]:
+
+
+
V('3 [P] [pop c] [Ga] [dip F] genrec')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                               . 3 [P] [pop c] [Ga] [dip F] genrec
+                                                             3 . [P] [pop c] [Ga] [dip F] genrec
+                                                         3 [P] . [pop c] [Ga] [dip F] genrec
+                                                 3 [P] [pop c] . [Ga] [dip F] genrec
+                                            3 [P] [pop c] [Ga] . [dip F] genrec
+                                    3 [P] [pop c] [Ga] [dip F] . genrec
+    3 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte
+3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [3] [P] . infra first choice i
+                                                             3 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i
+                                                             3 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i
+                                                           3 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i
+                                                         False . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i
+False [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] . swaack first choice i
+3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [False] . first choice i
+  3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] False . choice i
+                3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . i
+                                                             3 . Ga [[P] [pop c] [Ga] [dip F] genrec] dip F
+                                                             3 . -- dup [[P] [pop c] [Ga] [dip F] genrec] dip F
+                                                             2 . dup [[P] [pop c] [Ga] [dip F] genrec] dip F
+                                                           2 2 . [[P] [pop c] [Ga] [dip F] genrec] dip F
+                         2 2 [[P] [pop c] [Ga] [dip F] genrec] . dip F
+                                                             2 . [P] [pop c] [Ga] [dip F] genrec 2 F
+                                                         2 [P] . [pop c] [Ga] [dip F] genrec 2 F
+                                                 2 [P] [pop c] . [Ga] [dip F] genrec 2 F
+                                            2 [P] [pop c] [Ga] . [dip F] genrec 2 F
+                                    2 [P] [pop c] [Ga] [dip F] . genrec 2 F
+    2 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte 2 F
+2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [2] [P] . infra first choice i 2 F
+                                                             2 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F
+                                                             2 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F
+                                                           2 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F
+                                                         False . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F
+False [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] . swaack first choice i 2 F
+2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [False] . first choice i 2 F
+  2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] False . choice i 2 F
+                2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . i 2 F
+                                                             2 . Ga [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F
+                                                             2 . -- dup [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F
+                                                             1 . dup [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F
+                                                           1 1 . [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F
+                         1 1 [[P] [pop c] [Ga] [dip F] genrec] . dip F 2 F
+                                                             1 . [P] [pop c] [Ga] [dip F] genrec 1 F 2 F
+                                                         1 [P] . [pop c] [Ga] [dip F] genrec 1 F 2 F
+                                                 1 [P] [pop c] . [Ga] [dip F] genrec 1 F 2 F
+                                            1 [P] [pop c] [Ga] . [dip F] genrec 1 F 2 F
+                                    1 [P] [pop c] [Ga] [dip F] . genrec 1 F 2 F
+    1 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte 1 F 2 F
+1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [1] [P] . infra first choice i 1 F 2 F
+                                                             1 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F
+                                                             1 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F
+                                                           1 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F
+                                                          True . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F
+ True [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] . swaack first choice i 1 F 2 F
+ 1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [True] . first choice i 1 F 2 F
+   1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] True . choice i 1 F 2 F
+                                                     1 [pop c] . i 1 F 2 F
+                                                             1 . pop c 1 F 2 F
+                                                               . c 1 F 2 F
+                                                               . 0 1 F 2 F
+                                                             0 . 1 F 2 F
+                                                           0 1 . F 2 F
+                                                           0 1 . + 2 F
+                                                             1 . 2 F
+                                                           1 2 . F
+                                                           1 2 . +
+                                                             3 . 
+
+
+
+ +
+
+ +
+
+
+
In [28]:
+
+
+
V('3 [P] [pop []] [Ga] [dip swons] genrec')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                         . 3 [P] [pop []] [Ga] [dip swons] genrec
+                                                                       3 . [P] [pop []] [Ga] [dip swons] genrec
+                                                                   3 [P] . [pop []] [Ga] [dip swons] genrec
+                                                          3 [P] [pop []] . [Ga] [dip swons] genrec
+                                                     3 [P] [pop []] [Ga] . [dip swons] genrec
+                                         3 [P] [pop []] [Ga] [dip swons] . genrec
+    3 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte
+3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [3] [P] . infra first choice i
+                                                                       3 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i
+                                                                       3 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i
+                                                                     3 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i
+                                                                   False . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i
+False [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] . swaack first choice i
+3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [False] . first choice i
+  3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] False . choice i
+                 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . i
+                                                                       3 . Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons
+                                                                       3 . -- dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons
+                                                                       2 . dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons
+                                                                     2 2 . [[P] [pop []] [Ga] [dip swons] genrec] dip swons
+                              2 2 [[P] [pop []] [Ga] [dip swons] genrec] . dip swons
+                                                                       2 . [P] [pop []] [Ga] [dip swons] genrec 2 swons
+                                                                   2 [P] . [pop []] [Ga] [dip swons] genrec 2 swons
+                                                          2 [P] [pop []] . [Ga] [dip swons] genrec 2 swons
+                                                     2 [P] [pop []] [Ga] . [dip swons] genrec 2 swons
+                                         2 [P] [pop []] [Ga] [dip swons] . genrec 2 swons
+    2 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte 2 swons
+2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [2] [P] . infra first choice i 2 swons
+                                                                       2 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons
+                                                                       2 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons
+                                                                     2 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons
+                                                                   False . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons
+False [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] . swaack first choice i 2 swons
+2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons
+  2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons
+                 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . i 2 swons
+                                                                       2 . Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons
+                                                                       2 . -- dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons
+                                                                       1 . dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons
+                                                                     1 1 . [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons
+                              1 1 [[P] [pop []] [Ga] [dip swons] genrec] . dip swons 2 swons
+                                                                       1 . [P] [pop []] [Ga] [dip swons] genrec 1 swons 2 swons
+                                                                   1 [P] . [pop []] [Ga] [dip swons] genrec 1 swons 2 swons
+                                                          1 [P] [pop []] . [Ga] [dip swons] genrec 1 swons 2 swons
+                                                     1 [P] [pop []] [Ga] . [dip swons] genrec 1 swons 2 swons
+                                         1 [P] [pop []] [Ga] [dip swons] . genrec 1 swons 2 swons
+    1 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte 1 swons 2 swons
+1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [1] [P] . infra first choice i 1 swons 2 swons
+                                                                       1 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons
+                                                                       1 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons
+                                                                     1 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons
+                                                                    True . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons
+ True [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] . swaack first choice i 1 swons 2 swons
+ 1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 1 swons 2 swons
+   1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] True . choice i 1 swons 2 swons
+                                                              1 [pop []] . i 1 swons 2 swons
+                                                                       1 . pop [] 1 swons 2 swons
+                                                                         . [] 1 swons 2 swons
+                                                                      [] . 1 swons 2 swons
+                                                                    [] 1 . swons 2 swons
+                                                                    [] 1 . swap cons 2 swons
+                                                                    1 [] . cons 2 swons
+                                                                     [1] . 2 swons
+                                                                   [1] 2 . swons
+                                                                   [1] 2 . swap cons
+                                                                   2 [1] . cons
+                                                                   [2 1] . 
+
+
+
+ +
+
+ +
+
+
+
In [29]:
+
+
+
V('[2 1] [[] =] [pop c ] [uncons swap] [dip F] genrec')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                               . [2 1] [[] =] [pop c] [uncons swap] [dip F] genrec
+                                                                                         [2 1] . [[] =] [pop c] [uncons swap] [dip F] genrec
+                                                                                  [2 1] [[] =] . [pop c] [uncons swap] [dip F] genrec
+                                                                          [2 1] [[] =] [pop c] . [uncons swap] [dip F] genrec
+                                                            [2 1] [[] =] [pop c] [uncons swap] . [dip F] genrec
+                                                    [2 1] [[] =] [pop c] [uncons swap] [dip F] . genrec
+        [2 1] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte
+[2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[2 1]] [[] =] . infra first choice i
+                                                                                         [2 1] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i
+                                                                                      [2 1] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i
+                                                                                         False . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i
+       False [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] . swaack first choice i
+       [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [False] . first choice i
+         [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] False . choice i
+                       [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . i
+                                                                                         [2 1] . uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F
+                                                                                         2 [1] . swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F
+                                                                                         [1] 2 . [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F
+                                           [1] 2 [[[] =] [pop c] [uncons swap] [dip F] genrec] . dip F
+                                                                                           [1] . [[] =] [pop c] [uncons swap] [dip F] genrec 2 F
+                                                                                    [1] [[] =] . [pop c] [uncons swap] [dip F] genrec 2 F
+                                                                            [1] [[] =] [pop c] . [uncons swap] [dip F] genrec 2 F
+                                                              [1] [[] =] [pop c] [uncons swap] . [dip F] genrec 2 F
+                                                      [1] [[] =] [pop c] [uncons swap] [dip F] . genrec 2 F
+          [1] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte 2 F
+    [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[1]] [[] =] . infra first choice i 2 F
+                                                                                           [1] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F
+                                                                                        [1] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F
+                                                                                         False . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F
+         False [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] . swaack first choice i 2 F
+         [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [False] . first choice i 2 F
+           [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] False . choice i 2 F
+                         [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . i 2 F
+                                                                                           [1] . uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F
+                                                                                          1 [] . swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F
+                                                                                          [] 1 . [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F
+                                            [] 1 [[[] =] [pop c] [uncons swap] [dip F] genrec] . dip F 2 F
+                                                                                            [] . [[] =] [pop c] [uncons swap] [dip F] genrec 1 F 2 F
+                                                                                     [] [[] =] . [pop c] [uncons swap] [dip F] genrec 1 F 2 F
+                                                                             [] [[] =] [pop c] . [uncons swap] [dip F] genrec 1 F 2 F
+                                                               [] [[] =] [pop c] [uncons swap] . [dip F] genrec 1 F 2 F
+                                                       [] [[] =] [pop c] [uncons swap] [dip F] . genrec 1 F 2 F
+           [] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte 1 F 2 F
+      [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[]] [[] =] . infra first choice i 1 F 2 F
+                                                                                            [] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F
+                                                                                         [] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F
+                                                                                          True . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F
+           True [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] . swaack first choice i 1 F 2 F
+           [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [True] . first choice i 1 F 2 F
+             [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] True . choice i 1 F 2 F
+                                                                                    [] [pop c] . i 1 F 2 F
+                                                                                            [] . pop c 1 F 2 F
+                                                                                               . c 1 F 2 F
+                                                                                               . 0 1 F 2 F
+                                                                                             0 . 1 F 2 F
+                                                                                           0 1 . F 2 F
+                                                                                           0 1 . + 2 F
+                                                                                             1 . 2 F
+                                                                                           1 2 . F
+                                                                                           1 2 . +
+                                                                                             3 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Appendix - Fun with Symbols

+
|[ (c, F), (G, P) ]| == (|c, F|) • [(G, P)]
+
+
+

"Bananas, Lenses, & Barbed Wire"

+ +
(|...|)  [(...)]  [<...>]
+
+
+

I think they are having slightly too much fun with the symbols.

+

"Too much is always better than not enough."

+ +
+
+
+
+
+
+
+

Tree with node and list of trees.

+
tree = [] | [node [tree*]]
+ +
+
+
+
+
+
+
+

treestep

+
tree z [C] [N] treestep
+
+
+   [] z [C] [N] treestep
+---------------------------
+      z
+
+
+   [node [tree*]] z [C] [N] treestep
+--------------------------------------- w/ K == z [C] [N] treestep
+       node N [tree*] [K] map C
+ +
+
+
+
+
+
+
+

Derive the recursive form.

+
K == [not] [pop z] [J] ifte
+
+
+       [node [tree*]] J
+------------------------------
+   node N [tree*] [K] map C
+
+
+J == .. [N] .. [K] .. [C] ..
+
+[node [tree*]] uncons [N] dip
+node [[tree*]]        [N] dip
+node N [[tree*]]
+
+node N [[tree*]] i [K] map
+node N  [tree*]    [K] map
+node N  [K.tree*]
+
+J == uncons [N] dip i [K] map [C] i
+
+K == [not] [pop z] [uncons [N] dip i [K] map [C] i] ifte
+K == [not] [pop z] [uncons [N] dip i]   [map [C] i] genrec
+ +
+
+
+
+
+
+
+

Extract the givens to parameterize the program.

+
[not] [pop z]                   [uncons [N] dip unquote] [map [C] i] genrec
+[not] [z]         [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec
+[not]  z     unit [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec
+z [not] swap unit [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec
+  \............TS0............/
+z TS0 [uncons [N] dip unquote]                      [map [C] i] genrec
+z [uncons [N] dip unquote]                [TS0] dip [map [C] i] genrec
+z [[N] dip unquote]      [uncons] swoncat [TS0] dip [map [C] i] genrec
+z [N] [dip unquote] cons [uncons] swoncat [TS0] dip [map [C] i] genrec
+      \...........TS1.................../
+z [N] TS1 [TS0] dip [map [C] i]                       genrec
+z [N]               [map [C] i]            [TS1 [TS0] dip] dip      genrec
+z [N]               [map  C   ]            [TS1 [TS0] dip] dip      genrec
+z [N]                    [C] [map] swoncat [TS1 [TS0] dip] dip genrec
+z [C] [N] swap               [map] swoncat [TS1 [TS0] dip] dip genrec
+ +
+
+
+
+
+
+
+ +
     TS0 == [not] swap unit [pop] swoncat
+     TS1 == [dip i] cons [uncons] swoncat
+treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec
+ +
+
+
+
+
+
+
+ +
   [] 0 [C] [N] treestep
+---------------------------
+      0
+
+
+      [n [tree*]] 0 [sum +] [] treestep
+   --------------------------------------------------
+       n [tree*] [0 [sum +] [] treestep] map sum +
+ +
+
+
+
+
+
In [40]:
+
+
+
DefinitionWrapper.add_definitions('''
+
+     TS0 == [not] swap unit [pop] swoncat
+     TS1 == [dip i] cons [uncons] swoncat
+treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec
+
+''', D)
+
+ +
+
+
+ +
+
+
+
In [31]:
+
+
+
V('[] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                                       . [] 0 [sum +] [] treestep
+                                                                                                    [] . 0 [sum +] [] treestep
+                                                                                                  [] 0 . [sum +] [] treestep
+                                                                                          [] 0 [sum +] . [] treestep
+                                                                                       [] 0 [sum +] [] . treestep
+                                                                                       [] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec
+                                                                                       [] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec
+                                                                                 [] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec
+                                                                                 [] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec
+                                                                                 [] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec
+                                                                                   [] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec
+                                                                   [] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec
+                                                                                               [] 0 [] . TS1 [TS0] dip [map sum +] genrec
+                                                                                               [] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                       [] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                       [] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                              [] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec
+                                                                              [] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec
+                                                                              [] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec
+                                                                                [] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec
+                                                                          [] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec
+                                                                                                  [] 0 . TS0 [uncons [] dip i] [map sum +] genrec
+                                                                                                  [] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                            [] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                            [] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                            [] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                         [] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                          [] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                    [] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                    [] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec
+                                                                                    [] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec
+                                                                                      [] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec
+                                                                    [] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec
+                                                        [] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec
+     [] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte
+[] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[]] [not] . infra first choice i
+                                                                                                    [] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] swaack first choice i
+                                                                                                  True . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] swaack first choice i
+    True [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] . swaack first choice i
+    [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [True] . first choice i
+      [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] True . choice i
+                                                                                            [] [pop 0] . i
+                                                                                                    [] . pop 0
+                                                                                                       . 0
+                                                                                                     0 . 
+
+
+
+ +
+
+ +
+
+
+
In [32]:
+
+
+
V('[23 []] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                                                 . [23 []] 0 [sum +] [] treestep
+                                                                                                         [23 []] . 0 [sum +] [] treestep
+                                                                                                       [23 []] 0 . [sum +] [] treestep
+                                                                                               [23 []] 0 [sum +] . [] treestep
+                                                                                            [23 []] 0 [sum +] [] . treestep
+                                                                                            [23 []] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec
+                                                                                            [23 []] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec
+                                                                                      [23 []] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec
+                                                                                      [23 []] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec
+                                                                                      [23 []] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec
+                                                                                        [23 []] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec
+                                                                        [23 []] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec
+                                                                                                    [23 []] 0 [] . TS1 [TS0] dip [map sum +] genrec
+                                                                                                    [23 []] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                            [23 []] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                            [23 []] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                   [23 []] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec
+                                                                                   [23 []] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec
+                                                                                   [23 []] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec
+                                                                                     [23 []] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec
+                                                                               [23 []] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec
+                                                                                                       [23 []] 0 . TS0 [uncons [] dip i] [map sum +] genrec
+                                                                                                       [23 []] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                 [23 []] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                 [23 []] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                 [23 []] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                              [23 []] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                               [23 []] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                         [23 []] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                         [23 []] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec
+                                                                                         [23 []] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec
+                                                                                           [23 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec
+                                                                         [23 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec
+                                                             [23 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec
+          [23 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte
+[23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[23 []]] [not] . infra first choice i
+                                                                                                         [23 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] swaack first choice i
+                                                                                                           False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] swaack first choice i
+        False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] . swaack first choice i
+        [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False] . first choice i
+          [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i
+                        [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i
+                                                                                                         [23 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                         23 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                      23 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                              23 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                         23 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                              23 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                           23 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                      23 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum +
+                                                                                                           23 [] . sum +
+                                                                                                           23 [] . 0 [+] catamorphism +
+                                                                                                         23 [] 0 . [+] catamorphism +
+                                                                                                     23 [] 0 [+] . catamorphism +
+                                                                                                     23 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism +
+                                                                                              23 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism +
+                                                                                              23 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism +
+                                                                                23 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism +
+                                                                                23 [] [[] =] 0 [uncons swap] [+] . hylomorphism +
+                                                                                23 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec +
+                                                           23 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec +
+                                                                                                  23 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                  23 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                               23 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                23 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                          23 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                          23 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                          23 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                            23 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec +
+                                                                              23 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec +
+                                                                          23 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec +
+                                                                    23 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec +
+                                                                    23 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec +
+                                                                    23 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec +
+                                                                      23 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec +
+                          23 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte +
+                  23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 23] [[] =] . infra first choice i +
+                                                                                                           23 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i +
+                                                                                                        23 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i +
+                                                                                                         23 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i +
+                       23 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] . swaack first choice i +
+                       23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 23] . first choice i +
+                            23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i +
+                                                                                                   23 [] [pop 0] . i +
+                                                                                                           23 [] . pop 0 +
+                                                                                                              23 . 0 +
+                                                                                                            23 0 . +
+                                                                                                              23 . 
+
+
+
+ +
+
+ +
+
+
+
In [33]:
+
+
+
V('[23 [[2 []] [3 []]]] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                                                                                                                  . [23 [[2 []] [3 []]]] 0 [sum +] [] treestep
+                                                                                                                                             [23 [[2 []] [3 []]]] . 0 [sum +] [] treestep
+                                                                                                                                           [23 [[2 []] [3 []]]] 0 . [sum +] [] treestep
+                                                                                                                                   [23 [[2 []] [3 []]]] 0 [sum +] . [] treestep
+                                                                                                                                [23 [[2 []] [3 []]]] 0 [sum +] [] . treestep
+                                                                                                                                [23 [[2 []] [3 []]]] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec
+                                                                                                                                [23 [[2 []] [3 []]]] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec
+                                                                                                                          [23 [[2 []] [3 []]]] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec
+                                                                                                                          [23 [[2 []] [3 []]]] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec
+                                                                                                                          [23 [[2 []] [3 []]]] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec
+                                                                                                                            [23 [[2 []] [3 []]]] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec
+                                                                                                            [23 [[2 []] [3 []]]] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec
+                                                                                                                                        [23 [[2 []] [3 []]]] 0 [] . TS1 [TS0] dip [map sum +] genrec
+                                                                                                                                        [23 [[2 []] [3 []]]] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                                                                [23 [[2 []] [3 []]]] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                                                                [23 [[2 []] [3 []]]] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec
+                                                                                                                       [23 [[2 []] [3 []]]] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec
+                                                                                                                       [23 [[2 []] [3 []]]] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec
+                                                                                                                       [23 [[2 []] [3 []]]] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec
+                                                                                                                         [23 [[2 []] [3 []]]] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec
+                                                                                                                   [23 [[2 []] [3 []]]] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec
+                                                                                                                                           [23 [[2 []] [3 []]]] 0 . TS0 [uncons [] dip i] [map sum +] genrec
+                                                                                                                                           [23 [[2 []] [3 []]]] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                                     [23 [[2 []] [3 []]]] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                                     [23 [[2 []] [3 []]]] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                                     [23 [[2 []] [3 []]]] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                                  [23 [[2 []] [3 []]]] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                                   [23 [[2 []] [3 []]]] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                             [23 [[2 []] [3 []]]] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec
+                                                                                                                             [23 [[2 []] [3 []]]] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec
+                                                                                                                             [23 [[2 []] [3 []]]] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec
+                                                                                                                               [23 [[2 []] [3 []]]] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec
+                                                                                                             [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec
+                                                                                                 [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec
+                                              [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte
+                       [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[23 [[2 []] [3 []]]]] [not] . infra first choice i
+                                                                                                                                             [23 [[2 []] [3 []]]] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] swaack first choice i
+                                                                                                                                                            False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] swaack first choice i
+                                            False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] . swaack first choice i
+                                            [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False] . first choice i
+                                              [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i
+                                                            [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i
+                                                                                                                                             [23 [[2 []] [3 []]]] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                                                             23 [[[2 []] [3 []]]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                                                          23 [[[2 []] [3 []]]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                                                                               23 . [[[2 []] [3 []]]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                                                             23 [[[2 []] [3 []]]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                                                                               23 . [[2 []] [3 []]] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                                                                               23 [[2 []] [3 []]] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +
+                                                                                          23 [[2 []] [3 []]] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum +
+23 [] [[[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first] . infra sum +
+                                                                                                                                                                  . [[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                      [[3 []] 23] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                 [[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 [3 []] . [not] [pop 0] [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                  23 [3 []] [not] . [pop 0] [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                          23 [3 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                        23 [3 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                            23 [3 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                         23 [3 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                             23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[3 []] 23] [not] . infra first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 [3 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                         23 False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                    23 False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] . swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                    23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False 23] . first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                         23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                       23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 [3 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 3 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                     23 3 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                             23 3 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 3 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                             23 3 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                          23 3 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                     23 3 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                          23 3 [] . sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                          23 3 [] . 0 [+] catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 3 [] 0 . [+] catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                    23 3 [] 0 [+] . catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                    23 3 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                             23 3 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                             23 3 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                               23 3 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                               23 3 [] [[] =] 0 [uncons swap] [+] . hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                               23 3 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                          23 3 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                 23 3 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                 23 3 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                              23 3 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                               23 3 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                         23 3 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                         23 3 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                         23 3 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                           23 3 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                             23 3 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                         23 3 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                   23 3 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                   23 3 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                   23 3 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                     23 3 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                         23 3 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                               23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 3 23] [[] =] . infra first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                          23 3 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                       23 3 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                        23 3 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                    23 3 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] . swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                    23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 3 23] . first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                           23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                  23 3 [] [pop 0] . i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                          23 3 [] . pop 0 + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                             23 3 . 0 + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                           23 3 0 . + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                             23 3 . [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                          23 3 [] . swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                           [3 23] . first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                                3 . [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                                                                                    3 [[2 []] 23] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +
+                                                                                               3 [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . infra first [23] swaack sum +
+                                                                                                                                                        23 [2 []] . [not] [pop 0] [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum +
+                                                                                                                                                  23 [2 []] [not] . [pop 0] [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum +
+                                                                                                                                          23 [2 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum +
+                                                                                                                        23 [2 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec [3] swaack first [23] swaack sum +
+                                                                                                            23 [2 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec [3] swaack first [23] swaack sum +
+                                                         23 [2 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte [3] swaack first [23] swaack sum +
+                                             23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[2 []] 23] [not] . infra first choice i [3] swaack first [23] swaack sum +
+                                                                                                                                                        23 [2 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] swaack first choice i [3] swaack first [23] swaack sum +
+                                                                                                                                                         23 False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] swaack first choice i [3] swaack first [23] swaack sum +
+                                                    23 False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] . swaack first choice i [3] swaack first [23] swaack sum +
+                                                    23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False 23] . first choice i [3] swaack first [23] swaack sum +
+                                                         23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i [3] swaack first [23] swaack sum +
+                                                                       23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i [3] swaack first [23] swaack sum +
+                                                                                                                                                        23 [2 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                        23 2 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                     23 2 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                             23 2 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                        23 2 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                             23 2 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                          23 2 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +
+                                                                                                     23 2 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                          23 2 [] . sum + [3] swaack first [23] swaack sum +
+                                                                                                                                                          23 2 [] . 0 [+] catamorphism + [3] swaack first [23] swaack sum +
+                                                                                                                                                        23 2 [] 0 . [+] catamorphism + [3] swaack first [23] swaack sum +
+                                                                                                                                                    23 2 [] 0 [+] . catamorphism + [3] swaack first [23] swaack sum +
+                                                                                                                                                    23 2 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum +
+                                                                                                                                             23 2 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum +
+                                                                                                                                             23 2 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum +
+                                                                                                                               23 2 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [3] swaack first [23] swaack sum +
+                                                                                                                               23 2 [] [[] =] 0 [uncons swap] [+] . hylomorphism + [3] swaack first [23] swaack sum +
+                                                                                                                               23 2 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                          23 2 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                                 23 2 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                                 23 2 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                              23 2 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                               23 2 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                         23 2 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                         23 2 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                         23 2 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                                           23 2 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                             23 2 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                         23 2 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                   23 2 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                   23 2 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                   23 2 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [3] swaack first [23] swaack sum +
+                                                                                                                     23 2 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [3] swaack first [23] swaack sum +
+                                                                         23 2 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [3] swaack first [23] swaack sum +
+                                                               23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 2 23] [[] =] . infra first choice i + [3] swaack first [23] swaack sum +
+                                                                                                                                                          23 2 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum +
+                                                                                                                                                       23 2 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum +
+                                                                                                                                                        23 2 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum +
+                                                                    23 2 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] . swaack first choice i + [3] swaack first [23] swaack sum +
+                                                                    23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 2 23] . first choice i + [3] swaack first [23] swaack sum +
+                                                                           23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + [3] swaack first [23] swaack sum +
+                                                                                                                                                  23 2 [] [pop 0] . i + [3] swaack first [23] swaack sum +
+                                                                                                                                                          23 2 [] . pop 0 + [3] swaack first [23] swaack sum +
+                                                                                                                                                             23 2 . 0 + [3] swaack first [23] swaack sum +
+                                                                                                                                                           23 2 0 . + [3] swaack first [23] swaack sum +
+                                                                                                                                                             23 2 . [3] swaack first [23] swaack sum +
+                                                                                                                                                         23 2 [3] . swaack first [23] swaack sum +
+                                                                                                                                                         3 [2 23] . first [23] swaack sum +
+                                                                                                                                                              3 2 . [23] swaack sum +
+                                                                                                                                                         3 2 [23] . swaack sum +
+                                                                                                                                                         23 [2 3] . sum +
+                                                                                                                                                         23 [2 3] . 0 [+] catamorphism +
+                                                                                                                                                       23 [2 3] 0 . [+] catamorphism +
+                                                                                                                                                   23 [2 3] 0 [+] . catamorphism +
+                                                                                                                                                   23 [2 3] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism +
+                                                                                                                                            23 [2 3] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism +
+                                                                                                                                            23 [2 3] [[] =] 0 [+] . [uncons swap] swap hylomorphism +
+                                                                                                                              23 [2 3] [[] =] 0 [+] [uncons swap] . swap hylomorphism +
+                                                                                                                              23 [2 3] [[] =] 0 [uncons swap] [+] . hylomorphism +
+                                                                                                                              23 [2 3] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec +
+                                                                                                         23 [2 3] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec +
+                                                                                                                                                23 [2 3] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                                23 [2 3] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                             23 [2 3] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                              23 [2 3] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                        23 [2 3] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                        23 [2 3] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                        23 [2 3] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                                          23 [2 3] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec +
+                                                                                                                            23 [2 3] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec +
+                                                                                                                        23 [2 3] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec +
+                                                                                                                  23 [2 3] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec +
+                                                                                                                  23 [2 3] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec +
+                                                                                                                  23 [2 3] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec +
+                                                                                                                    23 [2 3] [[] =] [pop 0] [uncons swap] [dip +] . genrec +
+                                                                        23 [2 3] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte +
+                                                             23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[2 3] 23] [[] =] . infra first choice i +
+                                                                                                                                                         23 [2 3] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i +
+                                                                                                                                                      23 [2 3] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i +
+                                                                                                                                                         23 False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i +
+                                                                    23 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] . swaack first choice i +
+                                                                    23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False 23] . first choice i +
+                                                                         23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i +
+                                                                                       23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i +
+                                                                                                                                                         23 [2 3] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + +
+                                                                                                                                                         23 2 [3] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + +
+                                                                                                                                                         23 [3] 2 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + +
+                                                                                                           23 [3] 2 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + +
+                                                                                                                                                           23 [3] . [[] =] [pop 0] [uncons swap] [dip +] genrec 2 + +
+                                                                                                                                                    23 [3] [[] =] . [pop 0] [uncons swap] [dip +] genrec 2 + +
+                                                                                                                                            23 [3] [[] =] [pop 0] . [uncons swap] [dip +] genrec 2 + +
+                                                                                                                              23 [3] [[] =] [pop 0] [uncons swap] . [dip +] genrec 2 + +
+                                                                                                                      23 [3] [[] =] [pop 0] [uncons swap] [dip +] . genrec 2 + +
+                                                                          23 [3] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 2 + +
+                                                                 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[3] 23] [[] =] . infra first choice i 2 + +
+                                                                                                                                                           23 [3] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + +
+                                                                                                                                                        23 [3] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + +
+                                                                                                                                                         23 False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + +
+                                                                      23 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] . swaack first choice i 2 + +
+                                                                      23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False 23] . first choice i 2 + +
+                                                                           23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 2 + +
+                                                                                         23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 2 + +
+                                                                                                                                                           23 [3] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + +
+                                                                                                                                                          23 3 [] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + +
+                                                                                                                                                          23 [] 3 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + +
+                                                                                                            23 [] 3 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 2 + +
+                                                                                                                                                            23 [] . [[] =] [pop 0] [uncons swap] [dip +] genrec 3 + 2 + +
+                                                                                                                                                     23 [] [[] =] . [pop 0] [uncons swap] [dip +] genrec 3 + 2 + +
+                                                                                                                                             23 [] [[] =] [pop 0] . [uncons swap] [dip +] genrec 3 + 2 + +
+                                                                                                                               23 [] [[] =] [pop 0] [uncons swap] . [dip +] genrec 3 + 2 + +
+                                                                                                                       23 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec 3 + 2 + +
+                                                                           23 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 3 + 2 + +
+                                                                   23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 23] [[] =] . infra first choice i 3 + 2 + +
+                                                                                                                                                            23 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + +
+                                                                                                                                                         23 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + +
+                                                                                                                                                          23 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + +
+                                                                        23 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] . swaack first choice i 3 + 2 + +
+                                                                        23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 23] . first choice i 3 + 2 + +
+                                                                             23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i 3 + 2 + +
+                                                                                                                                                    23 [] [pop 0] . i 3 + 2 + +
+                                                                                                                                                            23 [] . pop 0 3 + 2 + +
+                                                                                                                                                               23 . 0 3 + 2 + +
+                                                                                                                                                             23 0 . 3 + 2 + +
+                                                                                                                                                           23 0 3 . + 2 + +
+                                                                                                                                                             23 3 . 2 + +
+                                                                                                                                                           23 3 2 . + +
+                                                                                                                                                             23 5 . +
+                                                                                                                                                               28 . 
+
+
+
+ +
+
+ +
+
+
+
In [34]:
+
+
+
J('[23 [[2 [[23 [[2 []] [3 []]]][23 [[2 []] [3 []]]]]] [3 [[23 [[2 []] [3 []]]][23 [[2 []] [3 []]]]]]]] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
140
+
+
+
+ +
+
+ +
+
+
+
In [35]:
+
+
+
J('[] [] [unit cons] [23 +] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[]
+
+
+
+ +
+
+ +
+
+
+
In [36]:
+
+
+
J('[23 []] [] [unit cons] [23 +] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[46 []]
+
+
+
+ +
+
+ +
+
+
+
In [37]:
+
+
+
J('[23 [[2 []] [3 []]]] [] [unit cons] [23 +] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[46 [[25 []] [26 []]]]
+
+
+
+ +
+
+ +
+
+
+
In [38]:
+
+
+
define('treemap == [] [unit cons] roll< treestep')
+
+ +
+
+
+ +
+
+
+
In [39]:
+
+
+
J('[23 [[2 []] [3 []]]] [23 +] treemap')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[46 [[25 []] [26 []]]]
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.ipynb b/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.ipynb new file mode 100644 index 0000000..905dd1e --- /dev/null +++ b/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.ipynb @@ -0,0 +1,2987 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Cf. [\"Bananas, Lenses, & Barbed Wire\"](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Hylomorphism](https://en.wikipedia.org/wiki/Hylomorphism_%28computer_science%29)\n", + "A [hylomorphism](https://en.wikipedia.org/wiki/Hylomorphism_%28computer_science%29) `H :: A -> B` converts a value of type A into a value of type B by means of:\n", + "\n", + "- A generator `G :: A -> (A, B)`\n", + "- A combiner `F :: (B, B) -> B`\n", + "- A predicate `P :: A -> Bool` to detect the base case\n", + "- A base case value `c :: B`\n", + "- Recursive calls (zero or more); it has a \"call stack in the form of a cons list\".\n", + "\n", + "It may be helpful to see this function implemented in imperative Python code." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "def hylomorphism(c, F, P, G):\n", + " '''Return a hylomorphism function H.'''\n", + "\n", + " def H(a):\n", + " if P(a):\n", + " result = c\n", + " else:\n", + " b, aa = G(a)\n", + " result = F(b, H(aa))\n", + " return result\n", + "\n", + " return H" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Finding [Triangular Numbers](https://en.wikipedia.org/wiki/Triangular_number)\n", + "As a concrete example let's use a function that, given a positive integer, returns the sum of all positive integers less than that one. (In this case the types A and B are both `int`.)\n", + "### With `range()` and `sum()`" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "r = range(10)\n", + "r" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "45" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sum(r)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "45" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "range_sum = lambda n: sum(range(n))\n", + "range_sum(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### As a hylomorphism" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "G = lambda n: (n - 1, n - 1)\n", + "F = lambda a, b: a + b\n", + "P = lambda n: n <= 1\n", + "\n", + "H = hylomorphism(0, F, P, G)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "45" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "H(10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you were to run the above code in a debugger and check out the call stack you would find that the variable `b` in each call to `H()` is storing the intermediate values as `H()` recurses. This is what was meant by \"call stack in the form of a cons list\"." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Joy Preamble" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import D, DefinitionWrapper, J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Hylomorphism in Joy\n", + "We can define a combinator `hylomorphism` that will make a hylomorphism combinator `H` from constituent parts.\n", + "\n", + " H == c [F] [P] [G] hylomorphism\n", + "\n", + "The function `H` is recursive, so we start with `ifte` and set the else-part to\n", + "some function `J` that will contain a quoted copy of `H`. (The then-part just\n", + "discards the leftover `a` and replaces it with the base case value `c`.)\n", + "\n", + " H == [P] [pop c] [J] ifte\n", + "\n", + "The else-part `J` gets just the argument `a` on the stack.\n", + "\n", + " a J\n", + " a G The first thing to do is use the generator G\n", + " aa b which produces b and a new aa\n", + " aa b [H] dip we recur with H on the new aa\n", + " aa H b F and run F on the result.\n", + "\n", + "This gives us a definition for `J`.\n", + "\n", + " J == G [H] dip F\n", + "\n", + "Plug it in and convert to genrec.\n", + "\n", + " H == [P] [pop c] [G [H] dip F] ifte\n", + " H == [P] [pop c] [G] [dip F] genrec\n", + "\n", + "This is the form of a hylomorphism in Joy, which nicely illustrates that\n", + "it is a simple specialization of the general recursion combinator.\n", + "\n", + " H == [P] [pop c] [G] [dip F] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Derivation of `hylomorphism`\n", + "\n", + "Now we just need to derive a definition that builds the `genrec` arguments\n", + "out of the pieces given to the `hylomorphism` combinator.\n", + "\n", + " H == [P] [pop c] [G] [dip F] genrec\n", + " [P] [c] [pop] swoncat [G] [F] [dip] swoncat genrec\n", + " [P] c unit [pop] swoncat [G] [F] [dip] swoncat genrec\n", + " [P] c [G] [F] [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + "\n", + "Working in reverse:\n", + "- Use `swoncat` twice to decouple `[c]` and `[F]`.\n", + "- Use `unit` to dequote `c`.\n", + "- Use `dipd` to untangle `[unit [pop] swoncat]` from the givens.\n", + "\n", + "At this point all of the arguments (givens) to the hylomorphism are to the left so we have\n", + "a definition for `hylomorphism`:\n", + "\n", + " hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + "\n", + "The order of parameters is different than the one we started with but\n", + "that hardly matters, you can rearrange them or just supply them in the\n", + "expected order.\n", + "\n", + " [P] c [G] [F] hylomorphism == H\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "define('hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Demonstrate summing a range of integers from 0 to n-1.\n", + "\n", + "- `[P]` is `[0 <=]`\n", + "- `c` is `0`\n", + "- `[G]` is `[1 - dup]`\n", + "- `[F]` is `[+]`\n", + "\n", + "So to sum the positive integers less than five we can do this." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 5 [0 <=] 0 [1 - dup] [+] hylomorphism\n", + " 5 . [0 <=] 0 [1 - dup] [+] hylomorphism\n", + " 5 [0 <=] . 0 [1 - dup] [+] hylomorphism\n", + " 5 [0 <=] 0 . [1 - dup] [+] hylomorphism\n", + " 5 [0 <=] 0 [1 - dup] . [+] hylomorphism\n", + " 5 [0 <=] 0 [1 - dup] [+] . hylomorphism\n", + " 5 [0 <=] 0 [1 - dup] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + " 5 [0 <=] 0 [1 - dup] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec\n", + " 5 [0 <=] 0 . unit [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] 0 . [] cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] 0 [] . cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] [0] . [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] [0] [pop] . swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] [0] [pop] . swap concat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] [pop] [0] . concat [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] [pop 0] . [1 - dup] [+] [dip] swoncat genrec\n", + " 5 [0 <=] [pop 0] [1 - dup] . [+] [dip] swoncat genrec\n", + " 5 [0 <=] [pop 0] [1 - dup] [+] . [dip] swoncat genrec\n", + " 5 [0 <=] [pop 0] [1 - dup] [+] [dip] . swoncat genrec\n", + " 5 [0 <=] [pop 0] [1 - dup] [+] [dip] . swap concat genrec\n", + " 5 [0 <=] [pop 0] [1 - dup] [dip] [+] . concat genrec\n", + " 5 [0 <=] [pop 0] [1 - dup] [dip +] . genrec\n", + " 5 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte\n", + "5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [5] [0 <=] . infra first choice i\n", + " 5 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i\n", + " 5 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] . swaack first choice i\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i\n", + " 5 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 5 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 4 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 4 4 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 4 4 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip +\n", + " 4 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 4 +\n", + " 4 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 4 +\n", + " 4 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 4 +\n", + " 4 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 4 +\n", + " 4 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 4 +\n", + " 4 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 4 +\n", + "4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [4] [0 <=] . infra first choice i 4 +\n", + " 4 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 +\n", + " 4 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] . swaack first choice i 4 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 4 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 4 +\n", + " 4 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +\n", + " 4 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +\n", + " 3 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +\n", + " 3 3 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 +\n", + " 3 3 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 4 +\n", + " 3 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 3 + 4 +\n", + " 3 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 3 + 4 +\n", + " 3 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 3 + 4 +\n", + " 3 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 3 + 4 +\n", + " 3 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 3 + 4 +\n", + " 3 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 3 + 4 +\n", + "3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [3] [0 <=] . infra first choice i 3 + 4 +\n", + " 3 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 +\n", + " 3 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] . swaack first choice i 3 + 4 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 3 + 4 +\n", + " 3 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +\n", + " 3 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +\n", + " 2 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +\n", + " 2 2 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 +\n", + " 2 2 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 3 + 4 +\n", + " 2 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 +\n", + " 2 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 +\n", + " 2 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 2 + 3 + 4 +\n", + " 2 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 2 + 3 + 4 +\n", + " 2 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 2 + 3 + 4 +\n", + " 2 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 2 + 3 + 4 +\n", + "2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [2] [0 <=] . infra first choice i 2 + 3 + 4 +\n", + " 2 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 +\n", + " 2 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] . swaack first choice i 2 + 3 + 4 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 2 + 3 + 4 +\n", + " 2 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +\n", + " 2 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +\n", + " 1 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +\n", + " 1 1 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 +\n", + " 1 1 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 2 + 3 + 4 +\n", + " 1 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 +\n", + " 1 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 +\n", + " 1 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 +\n", + " 1 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 1 + 2 + 3 + 4 +\n", + " 1 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 1 + 2 + 3 + 4 +\n", + " 1 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 +\n", + "1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [1] [0 <=] . infra first choice i 1 + 2 + 3 + 4 +\n", + " 1 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 +\n", + " 1 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] . swaack first choice i 1 + 2 + 3 + 4 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 +\n", + " 1 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +\n", + " 1 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +\n", + " 0 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +\n", + " 0 0 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 +\n", + " 0 0 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 1 + 2 + 3 + 4 +\n", + " 0 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 +\n", + " 0 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 +\n", + " 0 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 +\n", + " 0 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 0 + 1 + 2 + 3 + 4 +\n", + " 0 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 0 + 1 + 2 + 3 + 4 +\n", + " 0 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 +\n", + "0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [0] [0 <=] . infra first choice i 0 + 1 + 2 + 3 + 4 +\n", + " 0 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 +\n", + " 0 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 +\n", + " True . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 +\n", + " True [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] . swaack first choice i 0 + 1 + 2 + 3 + 4 +\n", + " 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 +\n", + " 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 +\n", + " 0 [pop 0] . i 0 + 1 + 2 + 3 + 4 +\n", + " 0 . pop 0 0 + 1 + 2 + 3 + 4 +\n", + " . 0 0 + 1 + 2 + 3 + 4 +\n", + " 0 . 0 + 1 + 2 + 3 + 4 +\n", + " 0 0 . + 1 + 2 + 3 + 4 +\n", + " 0 . 1 + 2 + 3 + 4 +\n", + " 0 1 . + 2 + 3 + 4 +\n", + " 1 . 2 + 3 + 4 +\n", + " 1 2 . + 3 + 4 +\n", + " 3 . 3 + 4 +\n", + " 3 3 . + 4 +\n", + " 6 . 4 +\n", + " 6 4 . +\n", + " 10 . \n" + ] + } + ], + "source": [ + "V('5 [0 <=] 0 [1 - dup] [+] hylomorphism')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Anamorphism\n", + "An anamorphism can be defined as a hylomorphism that uses `[]` for `c` and\n", + "`swons` for `F`.\n", + "\n", + " [P] [G] anamorphism == [P] [] [G] [swons] hylomorphism == A\n", + "\n", + "This allows us to define an anamorphism combinator in terms of\n", + "the hylomorphism combinator.\n", + "\n", + " [] swap [swons] hylomorphism == anamorphism\n", + "\n", + "Partial evaluation gives us a \"pre-cooked\" form.\n", + "\n", + " [P] [G] . anamorphism\n", + " [P] [G] . [] swap [swons] hylomorphism\n", + " [P] [G] [] . swap [swons] hylomorphism\n", + " [P] [] [G] . [swons] hylomorphism\n", + " [P] [] [G] [swons] . hylomorphism\n", + " [P] [] [G] [swons] . [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + " [P] [] [G] [swons] [unit [pop] swoncat] . dipd [dip] swoncat genrec\n", + " [P] [] . unit [pop] swoncat [G] [swons] [dip] swoncat genrec\n", + " [P] [[]] [pop] . swoncat [G] [swons] [dip] swoncat genrec\n", + " [P] [pop []] [G] [swons] [dip] . swoncat genrec\n", + "\n", + " [P] [pop []] [G] [dip swons] genrec\n", + "\n", + "(We could also have just substituted for `c` and `F` in the definition of `H`.)\n", + "\n", + " H == [P] [pop c ] [G] [dip F ] genrec\n", + " A == [P] [pop []] [G] [dip swons] genrec\n", + "\n", + "The partial evaluation is overkill in this case but it serves as a\n", + "reminder that this sort of program specialization can, in many cases, be\n", + "carried out automatically.)\n", + "\n", + "Untangle `[G]` from `[pop []]` using `swap`.\n", + "\n", + " [P] [G] [pop []] swap [dip swons] genrec\n", + "\n", + "All of the arguments to `anamorphism` are to the left, so we have a definition for it.\n", + "\n", + " anamorphism == [pop []] swap [dip swons] genrec\n", + "\n", + "An example of an anamorphism is the range function.\n", + "\n", + " range == [0 <=] [1 - dup] anamorphism\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Catamorphism\n", + "A catamorphism can be defined as a hylomorphism that uses `[uncons swap]` for `[G]`\n", + "and `[[] =]` for the predicate `[P]`.\n", + "\n", + " c [F] catamorphism == [[] =] c [uncons swap] [F] hylomorphism == C\n", + "\n", + "This allows us to define a `catamorphism` combinator in terms of\n", + "the `hylomorphism` combinator.\n", + "\n", + " [[] =] roll> [uncons swap] swap hylomorphism == catamorphism\n", + " \n", + "Partial evaluation doesn't help much.\n", + "\n", + " c [F] . catamorphism\n", + " c [F] . [[] =] roll> [uncons swap] swap hylomorphism\n", + " c [F] [[] =] . roll> [uncons swap] swap hylomorphism\n", + " [[] =] c [F] [uncons swap] . swap hylomorphism\n", + " [[] =] c [uncons swap] [F] . hylomorphism\n", + " [[] =] c [uncons swap] [F] [unit [pop] swoncat] . dipd [dip] swoncat genrec\n", + " [[] =] c . unit [pop] swoncat [uncons swap] [F] [dip] swoncat genrec\n", + " [[] =] [c] [pop] . swoncat [uncons swap] [F] [dip] swoncat genrec\n", + " [[] =] [pop c] [uncons swap] [F] [dip] . swoncat genrec\n", + " [[] =] [pop c] [uncons swap] [dip F] genrec\n", + "\n", + "Because the arguments to catamorphism have to be prepared (unlike the arguments\n", + "to anamorphism, which only need to be rearranged slightly) there isn't much point\n", + "to \"pre-cooking\" the definition.\n", + "\n", + " catamorphism == [[] =] roll> [uncons swap] swap hylomorphism\n", + "\n", + "An example of a catamorphism is the sum function.\n", + "\n", + " sum == 0 [+] catamorphism" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### \"Fusion Law\" for catas (UNFINISHED!!!)\n", + "\n", + "I'm not sure exactly how to translate the \"Fusion Law\" for catamorphisms into Joy.\n", + "\n", + "I know that a `map` composed with a cata can be expressed as a new cata:\n", + "\n", + " [F] map b [B] cata == b [F B] cata\n", + "\n", + "But this isn't the one described in \"Bananas...\". That's more like:\n", + "\n", + "A cata composed with some function can be expressed as some other cata:\n", + "\n", + " b [B] catamorphism F == c [C] catamorphism\n", + "\n", + "Given:\n", + "\n", + " b F == c\n", + "\n", + " ...\n", + "\n", + " B F == [F] dip C\n", + "\n", + " ...\n", + "\n", + " b[B]cata F == c[C]cata\n", + "\n", + " F(B(head, tail)) == C(head, F(tail))\n", + "\n", + " 1 [2 3] B F 1 [2 3] F C\n", + "\n", + "\n", + " b F == c\n", + " B F == F C\n", + "\n", + " b [B] catamorphism F == c [C] catamorphism\n", + " b [B] catamorphism F == b F [C] catamorphism\n", + "\n", + " ...\n", + "\n", + "Or maybe,\n", + "\n", + " [F] map b [B] cata == c [C] cata ???\n", + "\n", + " [F] map b [B] cata == b [F B] cata I think this is generally true, unless F consumes stack items\n", + " instead of just transforming TOS. Of course, there's always [F] unary.\n", + " b [F] unary [[F] unary B] cata\n", + "\n", + " [10 *] map 0 swap [+] step == 0 swap [10 * +] step\n", + "\n", + "\n", + "For example:\n", + "\n", + " F == 10 *\n", + " b == 0\n", + " B == +\n", + " c == 0\n", + " C == F +\n", + " \n", + " b F == c\n", + " 0 10 * == 0\n", + "\n", + " B F == [F] dip C\n", + " + 10 * == [10 *] dip F +\n", + " + 10 * == [10 *] dip 10 * +\n", + "\n", + " n m + 10 * == 10(n+m)\n", + "\n", + " n m [10 *] dip 10 * +\n", + " n 10 * m 10 * +\n", + " 10n m 10 * +\n", + " 10n 10m +\n", + " 10n+10m\n", + "\n", + " 10n+10m = 10(n+m)\n", + "\n", + "Ergo:\n", + "\n", + " 0 [+] catamorphism 10 * == 0 [10 * +] catamorphism" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The `step` combinator will usually be better to use than `catamorphism`.\n", + "\n", + " sum == 0 swap [+] step\n", + " sum == 0 [+] catamorphism" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# anamorphism catamorphism == hylomorphism\n", + "Here is (part of) the payoff.\n", + "\n", + "An anamorphism followed by (composed with) a\n", + "catamorphism is a hylomorphism, with the advantage that the hylomorphism \n", + "does not create the intermediate list structure. The values are stored in\n", + "either the call stack, for those implementations that use one, or in the pending\n", + "expression (\"continuation\") for the Joypy interpreter. They still have to \n", + "be somewhere, converting from an anamorphism and catamorphism to a hylomorphism\n", + "just prevents using additional storage and doing additional processing.\n", + "\n", + " range == [0 <=] [1 - dup] anamorphism\n", + " sum == 0 [+] catamorphism\n", + "\n", + " range sum == [0 <=] [1 - dup] anamorphism 0 [+] catamorphism\n", + " == [0 <=] 0 [1 - dup] [+] hylomorphism\n", + "\n", + "We can let the `hylomorphism` combinator build `range_sum` for us or just\n", + "substitute ourselves.\n", + "\n", + " H == [P] [pop c] [G] [dip F] genrec\n", + " range_sum == [0 <=] [pop 0] [1 - dup] [dip +] genrec\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "defs = '''\n", + "anamorphism == [pop []] swap [dip swons] genrec\n", + "hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + "catamorphism == [[] =] roll> [uncons swap] swap hylomorphism\n", + "range == [0 <=] [1 - dup] anamorphism\n", + "sum == 0 [+] catamorphism\n", + "range_sum == [0 <=] 0 [1 - dup] [+] hylomorphism\n", + "'''\n", + "\n", + "DefinitionWrapper.add_definitions(defs, D)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[9 8 7 6 5 4 3 2 1 0]\n" + ] + } + ], + "source": [ + "J('10 range')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "45\n" + ] + } + ], + "source": [ + "J('[9 8 7 6 5 4 3 2 1 0] sum')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 10 range sum\n", + " 10 . range sum\n", + " 10 . [0 <=] [1 - dup] anamorphism sum\n", + " 10 [0 <=] . [1 - dup] anamorphism sum\n", + " 10 [0 <=] [1 - dup] . anamorphism sum\n", + " 10 [0 <=] [1 - dup] . [pop []] swap [dip swons] genrec sum\n", + " 10 [0 <=] [1 - dup] [pop []] . swap [dip swons] genrec sum\n", + " 10 [0 <=] [pop []] [1 - dup] . [dip swons] genrec sum\n", + " 10 [0 <=] [pop []] [1 - dup] [dip swons] . genrec sum\n", + " 10 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte sum\n", + " 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [10] [0 <=] . infra first choice i sum\n", + " 10 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum\n", + " 10 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] . swaack first choice i sum\n", + " 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i sum\n", + " 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i sum\n", + " 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i sum\n", + " 10 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum\n", + " 10 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum\n", + " 9 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum\n", + " 9 9 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum\n", + " 9 9 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons sum\n", + " 9 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 9 swons sum\n", + " 9 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 9 swons sum\n", + " 9 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 9 swons sum\n", + " 9 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 9 swons sum\n", + " 9 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 9 swons sum\n", + " 9 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 9 swons sum\n", + " 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [9] [0 <=] . infra first choice i 9 swons sum\n", + " 9 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum\n", + " 9 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] . swaack first choice i 9 swons sum\n", + " 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 9 swons sum\n", + " 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 9 swons sum\n", + " 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 9 swons sum\n", + " 9 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum\n", + " 9 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum\n", + " 8 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum\n", + " 8 8 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum\n", + " 8 8 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 9 swons sum\n", + " 8 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 8 swons 9 swons sum\n", + " 8 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 8 swons 9 swons sum\n", + " 8 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 8 swons 9 swons sum\n", + " 8 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 8 swons 9 swons sum\n", + " 8 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 8 swons 9 swons sum\n", + " 8 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 8 swons 9 swons sum\n", + " 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [8] [0 <=] . infra first choice i 8 swons 9 swons sum\n", + " 8 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum\n", + " 8 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] . swaack first choice i 8 swons 9 swons sum\n", + " 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 8 swons 9 swons sum\n", + " 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 8 swons 9 swons sum\n", + " 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 8 swons 9 swons sum\n", + " 8 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum\n", + " 8 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum\n", + " 7 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum\n", + " 7 7 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum\n", + " 7 7 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 8 swons 9 swons sum\n", + " 7 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum\n", + " 7 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum\n", + " 7 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum\n", + " 7 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 7 swons 8 swons 9 swons sum\n", + " 7 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 7 swons 8 swons 9 swons sum\n", + " 7 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 7 swons 8 swons 9 swons sum\n", + " 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [7] [0 <=] . infra first choice i 7 swons 8 swons 9 swons sum\n", + " 7 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum\n", + " 7 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] . swaack first choice i 7 swons 8 swons 9 swons sum\n", + " 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 7 swons 8 swons 9 swons sum\n", + " 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 7 swons 8 swons 9 swons sum\n", + " 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 7 swons 8 swons 9 swons sum\n", + " 7 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum\n", + " 7 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum\n", + " 6 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum\n", + " 6 6 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum\n", + " 6 6 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 7 swons 8 swons 9 swons sum\n", + " 6 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [6] [0 <=] . infra first choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] . swaack first choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 6 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 5 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 5 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [5] [0 <=] . infra first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] . swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 4 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 4 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [4] [0 <=] . infra first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] . swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 3 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 3 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [3] [0 <=] . infra first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] . swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 2 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 2 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [2] [0 <=] . infra first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] . swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 1 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 1 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [1] [0 <=] . infra first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] . swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 0 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 0 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [0] [0 <=] . infra first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " True . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " True [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] . swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] True . choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [pop []] . i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 . pop [] 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " . [] 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [] . 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [] 0 . swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [] 0 . swap cons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 0 [] . cons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [0] . 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [0] 1 . swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [0] 1 . swap cons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 1 [0] . cons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [1 0] . 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [1 0] 2 . swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [1 0] 2 . swap cons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 2 [1 0] . cons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [2 1 0] . 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [2 1 0] 3 . swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [2 1 0] 3 . swap cons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 3 [2 1 0] . cons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [3 2 1 0] . 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [3 2 1 0] 4 . swons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [3 2 1 0] 4 . swap cons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " 4 [3 2 1 0] . cons 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [4 3 2 1 0] . 5 swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [4 3 2 1 0] 5 . swons 6 swons 7 swons 8 swons 9 swons sum\n", + " [4 3 2 1 0] 5 . swap cons 6 swons 7 swons 8 swons 9 swons sum\n", + " 5 [4 3 2 1 0] . cons 6 swons 7 swons 8 swons 9 swons sum\n", + " [5 4 3 2 1 0] . 6 swons 7 swons 8 swons 9 swons sum\n", + " [5 4 3 2 1 0] 6 . swons 7 swons 8 swons 9 swons sum\n", + " [5 4 3 2 1 0] 6 . swap cons 7 swons 8 swons 9 swons sum\n", + " 6 [5 4 3 2 1 0] . cons 7 swons 8 swons 9 swons sum\n", + " [6 5 4 3 2 1 0] . 7 swons 8 swons 9 swons sum\n", + " [6 5 4 3 2 1 0] 7 . swons 8 swons 9 swons sum\n", + " [6 5 4 3 2 1 0] 7 . swap cons 8 swons 9 swons sum\n", + " 7 [6 5 4 3 2 1 0] . cons 8 swons 9 swons sum\n", + " [7 6 5 4 3 2 1 0] . 8 swons 9 swons sum\n", + " [7 6 5 4 3 2 1 0] 8 . swons 9 swons sum\n", + " [7 6 5 4 3 2 1 0] 8 . swap cons 9 swons sum\n", + " 8 [7 6 5 4 3 2 1 0] . cons 9 swons sum\n", + " [8 7 6 5 4 3 2 1 0] . 9 swons sum\n", + " [8 7 6 5 4 3 2 1 0] 9 . swons sum\n", + " [8 7 6 5 4 3 2 1 0] 9 . swap cons sum\n", + " 9 [8 7 6 5 4 3 2 1 0] . cons sum\n", + " [9 8 7 6 5 4 3 2 1 0] . sum\n", + " [9 8 7 6 5 4 3 2 1 0] . 0 [+] catamorphism\n", + " [9 8 7 6 5 4 3 2 1 0] 0 . [+] catamorphism\n", + " [9 8 7 6 5 4 3 2 1 0] 0 [+] . catamorphism\n", + " [9 8 7 6 5 4 3 2 1 0] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism\n", + " [9 8 7 6 5 4 3 2 1 0] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [+] . [uncons swap] swap hylomorphism\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [+] [uncons swap] . swap hylomorphism\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] . hylomorphism\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec\n", + " [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte\n", + "[9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[9 8 7 6 5 4 3 2 1 0]] [[] =] . infra first choice i\n", + " [9 8 7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i\n", + " [9 8 7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] . swaack first choice i\n", + " [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i\n", + " [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i\n", + " [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i\n", + " [9 8 7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +\n", + " 9 [8 7 6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +\n", + " [8 7 6 5 4 3 2 1 0] 9 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +\n", + " [8 7 6 5 4 3 2 1 0] 9 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip +\n", + " [8 7 6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 9 +\n", + " [8 7 6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 9 +\n", + " [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 9 +\n", + " [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 9 +\n", + " [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 9 +\n", + " [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 9 +\n", + " [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[8 7 6 5 4 3 2 1 0]] [[] =] . infra first choice i 9 +\n", + " [8 7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 +\n", + " [8 7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] . swaack first choice i 9 +\n", + " [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 9 +\n", + " [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 9 +\n", + " [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 9 +\n", + " [8 7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 +\n", + " 8 [7 6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 +\n", + " [7 6 5 4 3 2 1 0] 8 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 +\n", + " [7 6 5 4 3 2 1 0] 8 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 9 +\n", + " [7 6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[7 6 5 4 3 2 1 0]] [[] =] . infra first choice i 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] . swaack first choice i 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 8 + 9 +\n", + " [7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 +\n", + " 7 [6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 +\n", + " [6 5 4 3 2 1 0] 7 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 +\n", + " [6 5 4 3 2 1 0] 7 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 8 + 9 +\n", + " [6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[6 5 4 3 2 1 0]] [[] =] . infra first choice i 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] . swaack first choice i 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 7 + 8 + 9 +\n", + " [6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " 6 [5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] 6 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] 6 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[5 4 3 2 1 0]] [[] =] . infra first choice i 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] . swaack first choice i 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 6 + 7 + 8 + 9 +\n", + " [5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " 5 [4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] 5 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] 5 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[4 3 2 1 0]] [[] =] . infra first choice i 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] . swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 5 + 6 + 7 + 8 + 9 +\n", + " [4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] 4 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] 4 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[3 2 1 0]] [[] =] . infra first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] . swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] 3 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] 3 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[2 1 0]] [[] =] . infra first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] . swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] 2 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] 2 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[1 0]] [[] =] . infra first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] . swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] 1 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] 1 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[0]] [[] =] . infra first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] . swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] 0 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] 0 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] . [[] =] [pop 0] [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [[] =] . [pop 0] [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [[] =] [pop 0] . [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [[] =] [pop 0] [uncons swap] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [[] =] [pop 0] [uncons swap] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[]] [[] =] . infra first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] . swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] [pop 0] . i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " [] . pop 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " . 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 0 . + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 1 . + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 . 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 2 . + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 . 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 3 . + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 6 . 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 6 4 . + 5 + 6 + 7 + 8 + 9 +\n", + " 10 . 5 + 6 + 7 + 8 + 9 +\n", + " 10 5 . + 6 + 7 + 8 + 9 +\n", + " 15 . 6 + 7 + 8 + 9 +\n", + " 15 6 . + 7 + 8 + 9 +\n", + " 21 . 7 + 8 + 9 +\n", + " 21 7 . + 8 + 9 +\n", + " 28 . 8 + 9 +\n", + " 28 8 . + 9 +\n", + " 36 . 9 +\n", + " 36 9 . +\n", + " 45 . \n" + ] + } + ], + "source": [ + "V('10 range sum')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 10 range_sum\n", + " 10 . range_sum\n", + " 10 . [0 <=] 0 [1 - dup] [+] hylomorphism\n", + " 10 [0 <=] . 0 [1 - dup] [+] hylomorphism\n", + " 10 [0 <=] 0 . [1 - dup] [+] hylomorphism\n", + " 10 [0 <=] 0 [1 - dup] . [+] hylomorphism\n", + " 10 [0 <=] 0 [1 - dup] [+] . hylomorphism\n", + " 10 [0 <=] 0 [1 - dup] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec\n", + " 10 [0 <=] 0 [1 - dup] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec\n", + " 10 [0 <=] 0 . unit [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] 0 . [] cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] 0 [] . cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] [0] . [pop] swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] [0] [pop] . swoncat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] [0] [pop] . swap concat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] [pop] [0] . concat [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] [pop 0] . [1 - dup] [+] [dip] swoncat genrec\n", + " 10 [0 <=] [pop 0] [1 - dup] . [+] [dip] swoncat genrec\n", + " 10 [0 <=] [pop 0] [1 - dup] [+] . [dip] swoncat genrec\n", + " 10 [0 <=] [pop 0] [1 - dup] [+] [dip] . swoncat genrec\n", + " 10 [0 <=] [pop 0] [1 - dup] [+] [dip] . swap concat genrec\n", + " 10 [0 <=] [pop 0] [1 - dup] [dip] [+] . concat genrec\n", + " 10 [0 <=] [pop 0] [1 - dup] [dip +] . genrec\n", + " 10 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte\n", + "10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [10] [0 <=] . infra first choice i\n", + " 10 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i\n", + " 10 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] . swaack first choice i\n", + " 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i\n", + " 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i\n", + " 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i\n", + " 10 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 10 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 9 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 9 9 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +\n", + " 9 9 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip +\n", + " 9 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 9 +\n", + " 9 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 9 +\n", + " 9 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 9 +\n", + " 9 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 9 +\n", + " 9 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 9 +\n", + " 9 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 9 +\n", + " 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [9] [0 <=] . infra first choice i 9 +\n", + " 9 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 +\n", + " 9 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] . swaack first choice i 9 +\n", + " 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 9 +\n", + " 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 9 +\n", + " 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 9 +\n", + " 9 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +\n", + " 9 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +\n", + " 8 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +\n", + " 8 8 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 +\n", + " 8 8 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 9 +\n", + " 8 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 8 + 9 +\n", + " 8 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 8 + 9 +\n", + " 8 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 8 + 9 +\n", + " 8 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 8 + 9 +\n", + " 8 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 8 + 9 +\n", + " 8 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 8 + 9 +\n", + " 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [8] [0 <=] . infra first choice i 8 + 9 +\n", + " 8 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 +\n", + " 8 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] . swaack first choice i 8 + 9 +\n", + " 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 8 + 9 +\n", + " 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 8 + 9 +\n", + " 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 8 + 9 +\n", + " 8 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +\n", + " 8 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +\n", + " 7 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +\n", + " 7 7 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 +\n", + " 7 7 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 8 + 9 +\n", + " 7 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 7 + 8 + 9 +\n", + " 7 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 7 + 8 + 9 +\n", + " 7 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 7 + 8 + 9 +\n", + " 7 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 7 + 8 + 9 +\n", + " 7 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 7 + 8 + 9 +\n", + " 7 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 7 + 8 + 9 +\n", + " 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [7] [0 <=] . infra first choice i 7 + 8 + 9 +\n", + " 7 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 +\n", + " 7 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] . swaack first choice i 7 + 8 + 9 +\n", + " 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 7 + 8 + 9 +\n", + " 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 7 + 8 + 9 +\n", + " 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 7 + 8 + 9 +\n", + " 7 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " 7 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " 6 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " 6 6 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 +\n", + " 6 6 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 7 + 8 + 9 +\n", + " 6 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 +\n", + " 6 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 +\n", + " 6 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 +\n", + " 6 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 6 + 7 + 8 + 9 +\n", + " 6 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 6 + 7 + 8 + 9 +\n", + " 6 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 6 + 7 + 8 + 9 +\n", + " 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [6] [0 <=] . infra first choice i 6 + 7 + 8 + 9 +\n", + " 6 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 +\n", + " 6 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] . swaack first choice i 6 + 7 + 8 + 9 +\n", + " 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 6 + 7 + 8 + 9 +\n", + " 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 6 + 7 + 8 + 9 +\n", + " 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 6 + 7 + 8 + 9 +\n", + " 6 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " 6 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " 5 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " 5 5 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 +\n", + " 5 5 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 6 + 7 + 8 + 9 +\n", + " 5 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " 5 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " 5 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " 5 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 5 + 6 + 7 + 8 + 9 +\n", + " 5 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 5 + 6 + 7 + 8 + 9 +\n", + " 5 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 5 + 6 + 7 + 8 + 9 +\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [5] [0 <=] . infra first choice i 5 + 6 + 7 + 8 + 9 +\n", + " 5 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " 5 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] . swaack first choice i 5 + 6 + 7 + 8 + 9 +\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 5 + 6 + 7 + 8 + 9 +\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 5 + 6 + 7 + 8 + 9 +\n", + " 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 5 + 6 + 7 + 8 + 9 +\n", + " 5 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " 5 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " 4 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " 4 4 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 +\n", + " 4 4 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 5 + 6 + 7 + 8 + 9 +\n", + " 4 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [4] [0 <=] . infra first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] . swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 4 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 3 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 3 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [3] [0 <=] . infra first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] . swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 2 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 2 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [2] [0 <=] . infra first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] . swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 2 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 1 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 1 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [1] [0 <=] . infra first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] . swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 0 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 0 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [0] [0 <=] . infra first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " True . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " True [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] . swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 [pop 0] . i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . pop 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " . 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 0 . + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 . 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 0 1 . + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 . 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 1 2 . + 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 . 3 + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 3 3 . + 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 6 . 4 + 5 + 6 + 7 + 8 + 9 +\n", + " 6 4 . + 5 + 6 + 7 + 8 + 9 +\n", + " 10 . 5 + 6 + 7 + 8 + 9 +\n", + " 10 5 . + 6 + 7 + 8 + 9 +\n", + " 15 . 6 + 7 + 8 + 9 +\n", + " 15 6 . + 7 + 8 + 9 +\n", + " 21 . 7 + 8 + 9 +\n", + " 21 7 . + 8 + 9 +\n", + " 28 . 8 + 9 +\n", + " 28 8 . + 9 +\n", + " 36 . 9 +\n", + " 36 9 . +\n", + " 45 . \n" + ] + } + ], + "source": [ + "V('10 range_sum')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Factorial Function and Paramorphisms\n", + "A paramorphism `P :: B -> A` is a recursion combinator that uses `dup` on intermediate values.\n", + "\n", + " n swap [P] [pop] [[F] dupdip G] primrec\n", + "\n", + "With\n", + "- `n :: A` is the \"identity\" for `F` (like 1 for multiplication, 0 for addition)\n", + "- `F :: (A, B) -> A`\n", + "- `G :: B -> B` generates the next `B` value.\n", + "- and lastly `P :: B -> Bool` detects the end of the series." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For Factorial function (types `A` and `B` are both integer):\n", + "\n", + " n == 1\n", + " F == *\n", + " G == --\n", + " P == 1 <=" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "define('factorial == 1 swap [1 <=] [pop] [[*] dupdip --] primrec')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Try it with input 3 (omitting evaluation of predicate):\n", + "\n", + " 3 1 swap [1 <=] [pop] [[*] dupdip --] primrec\n", + " 1 3 [1 <=] [pop] [[*] dupdip --] primrec\n", + "\n", + " 1 3 [*] dupdip --\n", + " 1 3 * 3 --\n", + " 3 3 --\n", + " 3 2\n", + "\n", + " 3 2 [*] dupdip --\n", + " 3 2 * 2 --\n", + " 6 2 --\n", + " 6 1\n", + "\n", + " 6 1 [1 <=] [pop] [[*] dupdip --] primrec\n", + "\n", + " 6 1 pop\n", + " 6" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "J('3 factorial')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derive `paramorphism` from the form above.\n", + "\n", + " n swap [P] [pop] [[F] dupdip G] primrec\n", + "\n", + " n swap [P] [pop] [[F] dupdip G] primrec\n", + " n [P] [swap] dip [pop] [[F] dupdip G] primrec\n", + " n [P] [[F] dupdip G] [[swap] dip [pop]] dip primrec\n", + " n [P] [F] [dupdip G] cons [[swap] dip [pop]] dip primrec\n", + " n [P] [F] [G] [dupdip] swoncat cons [[swap] dip [pop]] dip primrec\n", + "\n", + " paramorphism == [dupdip] swoncat cons [[swap] dip [pop]] dip primrec" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "define('paramorphism == [dupdip] swoncat cons [[swap] dip [pop]] dip primrec')\n", + "define('factorial == 1 [1 <=] [*] [--] paramorphism')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6\n" + ] + } + ], + "source": [ + "J('3 factorial')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# `tails`\n", + "An example of a paramorphism for lists given in the [\"Bananas...\" paper](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125) is `tails` which returns the list of \"tails\" of a list.\n", + "\n", + " [1 2 3] tails == [[] [3] [2 3]]\n", + " \n", + "Using `paramorphism` we would write:\n", + "\n", + " n == []\n", + " F == rest swons\n", + " G == rest\n", + " P == not\n", + "\n", + " tails == [] [not] [rest swons] [rest] paramorphism" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "define('tails == [] [not] [rest swons] [rest] paramorphism')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[] [3] [2 3]]\n" + ] + } + ], + "source": [ + "J('[1 2 3] tails')" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 210 231 253 276]\n" + ] + } + ], + "source": [ + "J('25 range tails [popop] infra [sum] map')" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[276 253 231 210 190 171 153 136 120 105 91 78 66 55 45 36 28 21 15 10 6 3 1 0 0]\n" + ] + } + ], + "source": [ + "J('25 range [range_sum] map')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Factoring `rest`\n", + "Right before the recursion begins we have:\n", + " \n", + " [] [1 2 3] [not] [pop] [[rest swons] dupdip rest] primrec\n", + " \n", + "But we might prefer to factor `rest` in the quote:\n", + "\n", + " [] [1 2 3] [not] [pop] [rest [swons] dupdip] primrec\n", + "\n", + "There's no way to do that with the `paramorphism` combinator as defined. We would have to write and use a slightly different recursion combinator that accepted an additional \"preprocessor\" function `[H]` and built:\n", + "\n", + " n swap [P] [pop] [H [F] dupdip G] primrec\n", + "\n", + "Or just write it out manually. This is yet another place where the *sufficiently smart compiler* will one day automatically refactor the code. We could write a `paramorphism` combinator that checked `[F]` and `[G]` for common prefix and extracted it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Patterns of Recursion\n", + "Our story so far...\n", + "\n", + "- A combiner `F :: (B, B) -> B`\n", + "- A predicate `P :: A -> Bool` to detect the base case\n", + "- A base case value `c :: B`\n", + "\n", + "\n", + "### Hylo- Ana-, Cata-\n", + "\n", + " w/ G :: A -> (A, B)\n", + "\n", + " H == [P ] [pop c ] [G ] [dip F ] genrec\n", + " A == [P ] [pop []] [G ] [dip swons] genrec\n", + " C == [[] =] [pop c ] [uncons swap] [dip F ] genrec\n", + "\n", + "### Para-, ?-, ?-\n", + "\n", + " w/ G :: B -> B\n", + "\n", + " P == c swap [P ] [pop] [[F ] dupdip G ] primrec\n", + " ? == [] swap [P ] [pop] [[swons] dupdip G ] primrec\n", + " ? == c swap [[] =] [pop] [[F ] dupdip uncons swap] primrec\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Four Generalizations\n", + "There are at least four kinds of recursive combinator, depending on two choices. The first choice is whether the combiner function should be evaluated during the recursion or pushed into the pending expression to be \"collapsed\" at the end. The second choice is whether the combiner needs to operate on the current value of the datastructure or the generator's output.\n", + "\n", + " H == [P] [pop c] [G ] [dip F] genrec\n", + " H == c swap [P] [pop] [G [F] dip ] [i] genrec\n", + " H == [P] [pop c] [ [G] dupdip ] [dip F] genrec\n", + " H == c swap [P] [pop] [ [F] dupdip G] [i] genrec\n", + "\n", + "Consider:\n", + "\n", + " ... a G [H] dip F w/ a G == a' b\n", + " ... c a G [F] dip H a G == b a'\n", + " ... a [G] dupdip [H] dip F a G == a'\n", + " ... c a [F] dupdip G H a G == a'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 1\n", + "\n", + " H == [P] [pop c] [G] [dip F] genrec\n", + "\n", + "Iterate n times.\n", + "\n", + " ... a [P] [pop c] [G] [dip F] genrec\n", + " ... a G [H] dip F\n", + " ... a' b [H] dip F\n", + " ... a' H b F\n", + " ... a' G [H] dip F b F\n", + " ... a'' b [H] dip F b F\n", + " ... a'' H b F b F\n", + " ... a'' G [H] dip F b F b F\n", + " ... a''' b [H] dip F b F b F\n", + " ... a''' H b F b F b F\n", + " ... a''' pop c b F b F b F\n", + " ... c b F b F b F\n", + "\n", + "This form builds up a continuation that contains the intermediate results along with the pending combiner functions. When the base case is reached the last term is replaced by the identity value c and the continuation \"collapses\" into the final result." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 2\n", + "When you can start with the identity value c on the stack and the combiner can operate as you go, using the intermediate results immediately rather than queuing them up, use this form. An important difference is that the generator function must return its results in the reverse order.\n", + "\n", + " H == c swap [P] [pop] [G [F] dip] primrec\n", + "\n", + " ... c a G [F] dip H\n", + " ... c b a' [F] dip H\n", + " ... c b F a' H\n", + " ... c b F a' G [F] dip H\n", + " ... c b F b a'' [F] dip H\n", + " ... c b F b F a'' H\n", + " ... c b F b F a'' G [F] dip H\n", + " ... c b F b F b a''' [F] dip H\n", + " ... c b F b F b F a''' H\n", + " ... c b F b F b F a''' pop\n", + " ... c b F b F b F\n", + "\n", + "The end line here is the same as for above, but only because we didn't evaluate `F` when it normally would have been." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 3\n", + "If the combiner and the generator both need to work on the current value then `dup` must be used at some point, and the generator must produce one item instead of two (the b is instead the duplicate of a.)\n", + "\n", + "\n", + " H == [P] [pop c] [[G] dupdip] [dip F] genrec\n", + "\n", + " ... a [G] dupdip [H] dip F\n", + " ... a G a [H] dip F\n", + " ... a' a [H] dip F\n", + " ... a' H a F\n", + " ... a' [G] dupdip [H] dip F a F\n", + " ... a' G a' [H] dip F a F\n", + " ... a'' a' [H] dip F a F\n", + " ... a'' H a' F a F\n", + " ... a'' [G] dupdip [H] dip F a' F a F\n", + " ... a'' G a'' [H] dip F a' F a F\n", + " ... a''' a'' [H] dip F a' F a F\n", + " ... a''' H a'' F a' F a F\n", + " ... a''' pop c a'' F a' F a F\n", + " ... c a'' F a' F a F" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### 4\n", + "And, last but not least, if you can combine as you go, starting with c, and the combiner needs to work on the current item this is the form:\n", + "\n", + " W == c swap [P] [pop] [[F] dupdip G] primrec\n", + "\n", + " ... a c swap [P] [pop] [[F] dupdip G] primrec\n", + " ... c a [P] [pop] [[F] dupdip G] primrec\n", + " ... c a [F] dupdip G W\n", + " ... c a F a G W\n", + " ... c a F a' W\n", + " ... c a F a' [F] dupdip G W\n", + " ... c a F a' F a' G W\n", + " ... c a F a' F a'' W\n", + " ... c a F a' F a'' [F] dupdip G W\n", + " ... c a F a' F a'' F a'' G W\n", + " ... c a F a' F a'' F a''' W\n", + " ... c a F a' F a'' F a''' pop\n", + " ... c a F a' F a'' F" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Each of the four variations above can be specialized to ana- and catamorphic forms." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "def WTFmorphism(c, F, P, G):\n", + " '''Return a hylomorphism function H.'''\n", + "\n", + " def H(a, d=c):\n", + " if P(a):\n", + " result = d\n", + " else:\n", + " a, b = G(a)\n", + " result = H(a, F(d, b))\n", + " return result\n", + "\n", + " return H" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10\n" + ] + } + ], + "source": [ + "F = lambda a, b: a + b\n", + "P = lambda n: n <= 1\n", + "G = lambda n: (n - 1, n - 1)\n", + "\n", + "wtf = WTFmorphism(0, F, P, G)\n", + "\n", + "print wtf(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " H == [P ] [pop c ] [G ] [dip F ] genrec" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "DefinitionWrapper.add_definitions('''\n", + "P == 1 <=\n", + "Ga == -- dup\n", + "Gb == --\n", + "c == 0\n", + "F == +\n", + "''', D)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [1 2 3] [[] =] [pop []] [uncons swap] [dip swons] genrec\n", + " [1 2 3] . [[] =] [pop []] [uncons swap] [dip swons] genrec\n", + " [1 2 3] [[] =] . [pop []] [uncons swap] [dip swons] genrec\n", + " [1 2 3] [[] =] [pop []] . [uncons swap] [dip swons] genrec\n", + " [1 2 3] [[] =] [pop []] [uncons swap] . [dip swons] genrec\n", + " [1 2 3] [[] =] [pop []] [uncons swap] [dip swons] . genrec\n", + " [1 2 3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte\n", + "[1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[1 2 3]] [[] =] . infra first choice i\n", + " [1 2 3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i\n", + " [1 2 3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i\n", + " False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i\n", + " False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] . swaack first choice i\n", + " [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i\n", + " [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i\n", + " [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i\n", + " [1 2 3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons\n", + " 1 [2 3] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons\n", + " [2 3] 1 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons\n", + " [2 3] 1 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons\n", + " [2 3] . [[] =] [pop []] [uncons swap] [dip swons] genrec 1 swons\n", + " [2 3] [[] =] . [pop []] [uncons swap] [dip swons] genrec 1 swons\n", + " [2 3] [[] =] [pop []] . [uncons swap] [dip swons] genrec 1 swons\n", + " [2 3] [[] =] [pop []] [uncons swap] . [dip swons] genrec 1 swons\n", + " [2 3] [[] =] [pop []] [uncons swap] [dip swons] . genrec 1 swons\n", + " [2 3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 1 swons\n", + " [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[2 3]] [[] =] . infra first choice i 1 swons\n", + " [2 3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons\n", + " [2 3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons\n", + " False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons\n", + " False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] . swaack first choice i 1 swons\n", + " [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 1 swons\n", + " [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i 1 swons\n", + " [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i 1 swons\n", + " [2 3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons\n", + " 2 [3] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons\n", + " [3] 2 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons\n", + " [3] 2 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons 1 swons\n", + " [3] . [[] =] [pop []] [uncons swap] [dip swons] genrec 2 swons 1 swons\n", + " [3] [[] =] . [pop []] [uncons swap] [dip swons] genrec 2 swons 1 swons\n", + " [3] [[] =] [pop []] . [uncons swap] [dip swons] genrec 2 swons 1 swons\n", + " [3] [[] =] [pop []] [uncons swap] . [dip swons] genrec 2 swons 1 swons\n", + " [3] [[] =] [pop []] [uncons swap] [dip swons] . genrec 2 swons 1 swons\n", + " [3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 2 swons 1 swons\n", + " [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[3]] [[] =] . infra first choice i 2 swons 1 swons\n", + " [3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons\n", + " [3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons\n", + " False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons\n", + " False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] . swaack first choice i 2 swons 1 swons\n", + " [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons 1 swons\n", + " [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons 1 swons\n", + " [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i 2 swons 1 swons\n", + " [3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons\n", + " 3 [] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons\n", + " [] 3 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons\n", + " [] 3 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons 2 swons 1 swons\n", + " [] . [[] =] [pop []] [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons\n", + " [] [[] =] . [pop []] [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons\n", + " [] [[] =] [pop []] . [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons\n", + " [] [[] =] [pop []] [uncons swap] . [dip swons] genrec 3 swons 2 swons 1 swons\n", + " [] [[] =] [pop []] [uncons swap] [dip swons] . genrec 3 swons 2 swons 1 swons\n", + " [] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 3 swons 2 swons 1 swons\n", + " [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[]] [[] =] . infra first choice i 3 swons 2 swons 1 swons\n", + " [] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons\n", + " [] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons\n", + " True . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons\n", + " True [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] . swaack first choice i 3 swons 2 swons 1 swons\n", + " [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 3 swons 2 swons 1 swons\n", + " [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] True . choice i 3 swons 2 swons 1 swons\n", + " [] [pop []] . i 3 swons 2 swons 1 swons\n", + " [] . pop [] 3 swons 2 swons 1 swons\n", + " . [] 3 swons 2 swons 1 swons\n", + " [] . 3 swons 2 swons 1 swons\n", + " [] 3 . swons 2 swons 1 swons\n", + " [] 3 . swap cons 2 swons 1 swons\n", + " 3 [] . cons 2 swons 1 swons\n", + " [3] . 2 swons 1 swons\n", + " [3] 2 . swons 1 swons\n", + " [3] 2 . swap cons 1 swons\n", + " 2 [3] . cons 1 swons\n", + " [2 3] . 1 swons\n", + " [2 3] 1 . swons\n", + " [2 3] 1 . swap cons\n", + " 1 [2 3] . cons\n", + " [1 2 3] . \n" + ] + } + ], + "source": [ + "V('[1 2 3] [[] =] [pop []] [uncons swap] [dip swons] genrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 3 [P] [pop c] [Ga] [dip F] genrec\n", + " 3 . [P] [pop c] [Ga] [dip F] genrec\n", + " 3 [P] . [pop c] [Ga] [dip F] genrec\n", + " 3 [P] [pop c] . [Ga] [dip F] genrec\n", + " 3 [P] [pop c] [Ga] . [dip F] genrec\n", + " 3 [P] [pop c] [Ga] [dip F] . genrec\n", + " 3 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte\n", + "3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [3] [P] . infra first choice i\n", + " 3 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i\n", + " 3 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i\n", + " 3 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i\n", + " False . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i\n", + "False [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] . swaack first choice i\n", + "3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [False] . first choice i\n", + " 3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] False . choice i\n", + " 3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . i\n", + " 3 . Ga [[P] [pop c] [Ga] [dip F] genrec] dip F\n", + " 3 . -- dup [[P] [pop c] [Ga] [dip F] genrec] dip F\n", + " 2 . dup [[P] [pop c] [Ga] [dip F] genrec] dip F\n", + " 2 2 . [[P] [pop c] [Ga] [dip F] genrec] dip F\n", + " 2 2 [[P] [pop c] [Ga] [dip F] genrec] . dip F\n", + " 2 . [P] [pop c] [Ga] [dip F] genrec 2 F\n", + " 2 [P] . [pop c] [Ga] [dip F] genrec 2 F\n", + " 2 [P] [pop c] . [Ga] [dip F] genrec 2 F\n", + " 2 [P] [pop c] [Ga] . [dip F] genrec 2 F\n", + " 2 [P] [pop c] [Ga] [dip F] . genrec 2 F\n", + " 2 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte 2 F\n", + "2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [2] [P] . infra first choice i 2 F\n", + " 2 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F\n", + " 2 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F\n", + " 2 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F\n", + " False . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F\n", + "False [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] . swaack first choice i 2 F\n", + "2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [False] . first choice i 2 F\n", + " 2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] False . choice i 2 F\n", + " 2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . i 2 F\n", + " 2 . Ga [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F\n", + " 2 . -- dup [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F\n", + " 1 . dup [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F\n", + " 1 1 . [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F\n", + " 1 1 [[P] [pop c] [Ga] [dip F] genrec] . dip F 2 F\n", + " 1 . [P] [pop c] [Ga] [dip F] genrec 1 F 2 F\n", + " 1 [P] . [pop c] [Ga] [dip F] genrec 1 F 2 F\n", + " 1 [P] [pop c] . [Ga] [dip F] genrec 1 F 2 F\n", + " 1 [P] [pop c] [Ga] . [dip F] genrec 1 F 2 F\n", + " 1 [P] [pop c] [Ga] [dip F] . genrec 1 F 2 F\n", + " 1 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte 1 F 2 F\n", + "1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [1] [P] . infra first choice i 1 F 2 F\n", + " 1 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F\n", + " 1 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F\n", + " 1 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F\n", + " True . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F\n", + " True [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] . swaack first choice i 1 F 2 F\n", + " 1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [True] . first choice i 1 F 2 F\n", + " 1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] True . choice i 1 F 2 F\n", + " 1 [pop c] . i 1 F 2 F\n", + " 1 . pop c 1 F 2 F\n", + " . c 1 F 2 F\n", + " . 0 1 F 2 F\n", + " 0 . 1 F 2 F\n", + " 0 1 . F 2 F\n", + " 0 1 . + 2 F\n", + " 1 . 2 F\n", + " 1 2 . F\n", + " 1 2 . +\n", + " 3 . \n" + ] + } + ], + "source": [ + "V('3 [P] [pop c] [Ga] [dip F] genrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 3 [P] [pop []] [Ga] [dip swons] genrec\n", + " 3 . [P] [pop []] [Ga] [dip swons] genrec\n", + " 3 [P] . [pop []] [Ga] [dip swons] genrec\n", + " 3 [P] [pop []] . [Ga] [dip swons] genrec\n", + " 3 [P] [pop []] [Ga] . [dip swons] genrec\n", + " 3 [P] [pop []] [Ga] [dip swons] . genrec\n", + " 3 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte\n", + "3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [3] [P] . infra first choice i\n", + " 3 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i\n", + " 3 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i\n", + " 3 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i\n", + " False . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i\n", + "False [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] . swaack first choice i\n", + "3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [False] . first choice i\n", + " 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] False . choice i\n", + " 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . i\n", + " 3 . Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons\n", + " 3 . -- dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons\n", + " 2 . dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons\n", + " 2 2 . [[P] [pop []] [Ga] [dip swons] genrec] dip swons\n", + " 2 2 [[P] [pop []] [Ga] [dip swons] genrec] . dip swons\n", + " 2 . [P] [pop []] [Ga] [dip swons] genrec 2 swons\n", + " 2 [P] . [pop []] [Ga] [dip swons] genrec 2 swons\n", + " 2 [P] [pop []] . [Ga] [dip swons] genrec 2 swons\n", + " 2 [P] [pop []] [Ga] . [dip swons] genrec 2 swons\n", + " 2 [P] [pop []] [Ga] [dip swons] . genrec 2 swons\n", + " 2 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte 2 swons\n", + "2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [2] [P] . infra first choice i 2 swons\n", + " 2 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons\n", + " 2 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons\n", + " 2 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons\n", + " False . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons\n", + "False [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] . swaack first choice i 2 swons\n", + "2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons\n", + " 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons\n", + " 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . i 2 swons\n", + " 2 . Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons\n", + " 2 . -- dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons\n", + " 1 . dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons\n", + " 1 1 . [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons\n", + " 1 1 [[P] [pop []] [Ga] [dip swons] genrec] . dip swons 2 swons\n", + " 1 . [P] [pop []] [Ga] [dip swons] genrec 1 swons 2 swons\n", + " 1 [P] . [pop []] [Ga] [dip swons] genrec 1 swons 2 swons\n", + " 1 [P] [pop []] . [Ga] [dip swons] genrec 1 swons 2 swons\n", + " 1 [P] [pop []] [Ga] . [dip swons] genrec 1 swons 2 swons\n", + " 1 [P] [pop []] [Ga] [dip swons] . genrec 1 swons 2 swons\n", + " 1 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte 1 swons 2 swons\n", + "1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [1] [P] . infra first choice i 1 swons 2 swons\n", + " 1 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons\n", + " 1 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons\n", + " 1 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons\n", + " True . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons\n", + " True [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] . swaack first choice i 1 swons 2 swons\n", + " 1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 1 swons 2 swons\n", + " 1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] True . choice i 1 swons 2 swons\n", + " 1 [pop []] . i 1 swons 2 swons\n", + " 1 . pop [] 1 swons 2 swons\n", + " . [] 1 swons 2 swons\n", + " [] . 1 swons 2 swons\n", + " [] 1 . swons 2 swons\n", + " [] 1 . swap cons 2 swons\n", + " 1 [] . cons 2 swons\n", + " [1] . 2 swons\n", + " [1] 2 . swons\n", + " [1] 2 . swap cons\n", + " 2 [1] . cons\n", + " [2 1] . \n" + ] + } + ], + "source": [ + "V('3 [P] [pop []] [Ga] [dip swons] genrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [2 1] [[] =] [pop c] [uncons swap] [dip F] genrec\n", + " [2 1] . [[] =] [pop c] [uncons swap] [dip F] genrec\n", + " [2 1] [[] =] . [pop c] [uncons swap] [dip F] genrec\n", + " [2 1] [[] =] [pop c] . [uncons swap] [dip F] genrec\n", + " [2 1] [[] =] [pop c] [uncons swap] . [dip F] genrec\n", + " [2 1] [[] =] [pop c] [uncons swap] [dip F] . genrec\n", + " [2 1] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte\n", + "[2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[2 1]] [[] =] . infra first choice i\n", + " [2 1] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i\n", + " [2 1] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i\n", + " False . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i\n", + " False [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] . swaack first choice i\n", + " [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [False] . first choice i\n", + " [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] False . choice i\n", + " [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . i\n", + " [2 1] . uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F\n", + " 2 [1] . swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F\n", + " [1] 2 . [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F\n", + " [1] 2 [[[] =] [pop c] [uncons swap] [dip F] genrec] . dip F\n", + " [1] . [[] =] [pop c] [uncons swap] [dip F] genrec 2 F\n", + " [1] [[] =] . [pop c] [uncons swap] [dip F] genrec 2 F\n", + " [1] [[] =] [pop c] . [uncons swap] [dip F] genrec 2 F\n", + " [1] [[] =] [pop c] [uncons swap] . [dip F] genrec 2 F\n", + " [1] [[] =] [pop c] [uncons swap] [dip F] . genrec 2 F\n", + " [1] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte 2 F\n", + " [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[1]] [[] =] . infra first choice i 2 F\n", + " [1] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F\n", + " [1] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F\n", + " False . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F\n", + " False [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] . swaack first choice i 2 F\n", + " [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [False] . first choice i 2 F\n", + " [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] False . choice i 2 F\n", + " [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . i 2 F\n", + " [1] . uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F\n", + " 1 [] . swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F\n", + " [] 1 . [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F\n", + " [] 1 [[[] =] [pop c] [uncons swap] [dip F] genrec] . dip F 2 F\n", + " [] . [[] =] [pop c] [uncons swap] [dip F] genrec 1 F 2 F\n", + " [] [[] =] . [pop c] [uncons swap] [dip F] genrec 1 F 2 F\n", + " [] [[] =] [pop c] . [uncons swap] [dip F] genrec 1 F 2 F\n", + " [] [[] =] [pop c] [uncons swap] . [dip F] genrec 1 F 2 F\n", + " [] [[] =] [pop c] [uncons swap] [dip F] . genrec 1 F 2 F\n", + " [] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte 1 F 2 F\n", + " [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[]] [[] =] . infra first choice i 1 F 2 F\n", + " [] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F\n", + " [] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F\n", + " True . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F\n", + " True [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] . swaack first choice i 1 F 2 F\n", + " [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [True] . first choice i 1 F 2 F\n", + " [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] True . choice i 1 F 2 F\n", + " [] [pop c] . i 1 F 2 F\n", + " [] . pop c 1 F 2 F\n", + " . c 1 F 2 F\n", + " . 0 1 F 2 F\n", + " 0 . 1 F 2 F\n", + " 0 1 . F 2 F\n", + " 0 1 . + 2 F\n", + " 1 . 2 F\n", + " 1 2 . F\n", + " 1 2 . +\n", + " 3 . \n" + ] + } + ], + "source": [ + "V('[2 1] [[] =] [pop c ] [uncons swap] [dip F] genrec')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Appendix - Fun with Symbols\n", + "\n", + " |[ (c, F), (G, P) ]| == (|c, F|) • [(G, P)]\n", + "\n", + "[\"Bananas, Lenses, & Barbed Wire\"](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125)\n", + "\n", + " (|...|) [(...)] [<...>]\n", + "\n", + "I think they are having slightly too much fun with the symbols.\n", + "\n", + "\"Too much is always better than not enough.\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tree with node and list of trees.\n", + "\n", + " tree = [] | [node [tree*]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `treestep`\n", + "\n", + " tree z [C] [N] treestep\n", + "\n", + "\n", + " [] z [C] [N] treestep\n", + " ---------------------------\n", + " z\n", + "\n", + "\n", + " [node [tree*]] z [C] [N] treestep\n", + " --------------------------------------- w/ K == z [C] [N] treestep\n", + " node N [tree*] [K] map C" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derive the recursive form.\n", + " K == [not] [pop z] [J] ifte\n", + "\n", + "\n", + " [node [tree*]] J\n", + " ------------------------------\n", + " node N [tree*] [K] map C\n", + "\n", + "\n", + " J == .. [N] .. [K] .. [C] ..\n", + "\n", + " [node [tree*]] uncons [N] dip\n", + " node [[tree*]] [N] dip\n", + " node N [[tree*]]\n", + "\n", + " node N [[tree*]] i [K] map\n", + " node N [tree*] [K] map\n", + " node N [K.tree*]\n", + "\n", + " J == uncons [N] dip i [K] map [C] i\n", + "\n", + " K == [not] [pop z] [uncons [N] dip i [K] map [C] i] ifte\n", + " K == [not] [pop z] [uncons [N] dip i] [map [C] i] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Extract the givens to parameterize the program.\n", + " [not] [pop z] [uncons [N] dip unquote] [map [C] i] genrec\n", + " [not] [z] [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec\n", + " [not] z unit [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec\n", + " z [not] swap unit [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec\n", + " \\............TS0............/\n", + " z TS0 [uncons [N] dip unquote] [map [C] i] genrec\n", + " z [uncons [N] dip unquote] [TS0] dip [map [C] i] genrec\n", + " z [[N] dip unquote] [uncons] swoncat [TS0] dip [map [C] i] genrec\n", + " z [N] [dip unquote] cons [uncons] swoncat [TS0] dip [map [C] i] genrec\n", + " \\...........TS1.................../\n", + " z [N] TS1 [TS0] dip [map [C] i] genrec\n", + " z [N] [map [C] i] [TS1 [TS0] dip] dip genrec\n", + " z [N] [map C ] [TS1 [TS0] dip] dip genrec\n", + " z [N] [C] [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " z [C] [N] swap [map] swoncat [TS1 [TS0] dip] dip genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " TS0 == [not] swap unit [pop] swoncat\n", + " TS1 == [dip i] cons [uncons] swoncat\n", + " treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " [] 0 [C] [N] treestep\n", + " ---------------------------\n", + " 0\n", + "\n", + "\n", + " [n [tree*]] 0 [sum +] [] treestep\n", + " --------------------------------------------------\n", + " n [tree*] [0 [sum +] [] treestep] map sum +" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "DefinitionWrapper.add_definitions('''\n", + "\n", + " TS0 == [not] swap unit [pop] swoncat\n", + " TS1 == [dip i] cons [uncons] swoncat\n", + "treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec\n", + "\n", + "''', D)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [] 0 [sum +] [] treestep\n", + " [] . 0 [sum +] [] treestep\n", + " [] 0 . [sum +] [] treestep\n", + " [] 0 [sum +] . [] treestep\n", + " [] 0 [sum +] [] . treestep\n", + " [] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " [] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " [] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec\n", + " [] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec\n", + " [] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec\n", + " [] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec\n", + " [] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec\n", + " [] 0 [] . TS1 [TS0] dip [map sum +] genrec\n", + " [] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec\n", + " [] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec\n", + " [] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec\n", + " [] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec\n", + " [] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec\n", + " [] 0 . TS0 [uncons [] dip i] [map sum +] genrec\n", + " [] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec\n", + " [] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec\n", + " [] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec\n", + " [] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec\n", + " [] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte\n", + "[] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[]] [not] . infra first choice i\n", + " [] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] swaack first choice i\n", + " True . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] swaack first choice i\n", + " True [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] . swaack first choice i\n", + " [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [True] . first choice i\n", + " [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] True . choice i\n", + " [] [pop 0] . i\n", + " [] . pop 0\n", + " . 0\n", + " 0 . \n" + ] + } + ], + "source": [ + "V('[] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [23 []] 0 [sum +] [] treestep\n", + " [23 []] . 0 [sum +] [] treestep\n", + " [23 []] 0 . [sum +] [] treestep\n", + " [23 []] 0 [sum +] . [] treestep\n", + " [23 []] 0 [sum +] [] . treestep\n", + " [23 []] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " [23 []] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " [23 []] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec\n", + " [23 []] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec\n", + " [23 []] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec\n", + " [23 []] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec\n", + " [23 []] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec\n", + " [23 []] 0 [] . TS1 [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec\n", + " [23 []] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec\n", + " [23 []] 0 . TS0 [uncons [] dip i] [map sum +] genrec\n", + " [23 []] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec\n", + " [23 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec\n", + " [23 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec\n", + " [23 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte\n", + "[23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[23 []]] [not] . infra first choice i\n", + " [23 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] swaack first choice i\n", + " False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] swaack first choice i\n", + " False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] . swaack first choice i\n", + " [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False] . first choice i\n", + " [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i\n", + " [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i\n", + " [23 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum +\n", + " 23 [] . sum +\n", + " 23 [] . 0 [+] catamorphism +\n", + " 23 [] 0 . [+] catamorphism +\n", + " 23 [] 0 [+] . catamorphism +\n", + " 23 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism +\n", + " 23 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism +\n", + " 23 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism +\n", + " 23 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism +\n", + " 23 [] [[] =] 0 [uncons swap] [+] . hylomorphism +\n", + " 23 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec +\n", + " 23 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec +\n", + " 23 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec +\n", + " 23 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte +\n", + " 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 23] [[] =] . infra first choice i +\n", + " 23 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i +\n", + " 23 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i +\n", + " 23 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i +\n", + " 23 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] . swaack first choice i +\n", + " 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 23] . first choice i +\n", + " 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i +\n", + " 23 [] [pop 0] . i +\n", + " 23 [] . pop 0 +\n", + " 23 . 0 +\n", + " 23 0 . +\n", + " 23 . \n" + ] + } + ], + "source": [ + "V('[23 []] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [23 [[2 []] [3 []]]] 0 [sum +] [] treestep\n", + " [23 [[2 []] [3 []]]] . 0 [sum +] [] treestep\n", + " [23 [[2 []] [3 []]]] 0 . [sum +] [] treestep\n", + " [23 [[2 []] [3 []]]] 0 [sum +] . [] treestep\n", + " [23 [[2 []] [3 []]]] 0 [sum +] [] . treestep\n", + " [23 [[2 []] [3 []]]] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec\n", + " [23 [[2 []] [3 []]]] 0 [] . TS1 [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 . TS0 [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec\n", + " [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec\n", + " [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte\n", + " [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[23 [[2 []] [3 []]]]] [not] . infra first choice i\n", + " [23 [[2 []] [3 []]]] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] swaack first choice i\n", + " False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] swaack first choice i\n", + " False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] . swaack first choice i\n", + " [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False] . first choice i\n", + " [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i\n", + " [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i\n", + " [23 [[2 []] [3 []]]] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[[2 []] [3 []]]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[[2 []] [3 []]]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 . [[[2 []] [3 []]]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[[2 []] [3 []]]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 . [[2 []] [3 []]] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[2 []] [3 []]] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +\n", + " 23 [[2 []] [3 []]] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum +\n", + "23 [] [[[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first] . infra sum +\n", + " . [[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " [[3 []] 23] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " [[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] . [not] [pop 0] [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [not] . [pop 0] [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[3 []] 23] [not] . infra first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] . swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False 23] . first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 [3 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] . sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] . 0 [+] catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] 0 . [+] catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] 0 [+] . catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 [uncons swap] [+] . hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 3 23] [[] =] . infra first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] . swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 3 23] . first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] [pop 0] . i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] . pop 0 + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 . 0 + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 0 . + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 . [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 23 3 [] . swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " [3 23] . first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 3 . [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 3 [[2 []] 23] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum +\n", + " 3 [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . infra first [23] swaack sum +\n", + " 23 [2 []] . [not] [pop 0] [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [not] . [pop 0] [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[2 []] 23] [not] . infra first choice i [3] swaack first [23] swaack sum +\n", + " 23 [2 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] swaack first choice i [3] swaack first [23] swaack sum +\n", + " 23 False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] swaack first choice i [3] swaack first [23] swaack sum +\n", + " 23 False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] . swaack first choice i [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False 23] . first choice i [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i [3] swaack first [23] swaack sum +\n", + " 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i [3] swaack first [23] swaack sum +\n", + " 23 [2 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [] . sum + [3] swaack first [23] swaack sum +\n", + " 23 2 [] . 0 [+] catamorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] 0 . [+] catamorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] 0 [+] . catamorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 [uncons swap] [+] . hylomorphism + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 2 23] [[] =] . infra first choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] . swaack first choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 2 23] . first choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + [3] swaack first [23] swaack sum +\n", + " 23 2 [] [pop 0] . i + [3] swaack first [23] swaack sum +\n", + " 23 2 [] . pop 0 + [3] swaack first [23] swaack sum +\n", + " 23 2 . 0 + [3] swaack first [23] swaack sum +\n", + " 23 2 0 . + [3] swaack first [23] swaack sum +\n", + " 23 2 . [3] swaack first [23] swaack sum +\n", + " 23 2 [3] . swaack first [23] swaack sum +\n", + " 3 [2 23] . first [23] swaack sum +\n", + " 3 2 . [23] swaack sum +\n", + " 3 2 [23] . swaack sum +\n", + " 23 [2 3] . sum +\n", + " 23 [2 3] . 0 [+] catamorphism +\n", + " 23 [2 3] 0 . [+] catamorphism +\n", + " 23 [2 3] 0 [+] . catamorphism +\n", + " 23 [2 3] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism +\n", + " 23 [2 3] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism +\n", + " 23 [2 3] [[] =] 0 [+] . [uncons swap] swap hylomorphism +\n", + " 23 [2 3] [[] =] 0 [+] [uncons swap] . swap hylomorphism +\n", + " 23 [2 3] [[] =] 0 [uncons swap] [+] . hylomorphism +\n", + " 23 [2 3] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap] [dip +] . genrec +\n", + " 23 [2 3] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte +\n", + " 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[2 3] 23] [[] =] . infra first choice i +\n", + " 23 [2 3] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i +\n", + " 23 [2 3] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i +\n", + " 23 False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i +\n", + " 23 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] . swaack first choice i +\n", + " 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False 23] . first choice i +\n", + " 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i +\n", + " 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i +\n", + " 23 [2 3] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + +\n", + " 23 2 [3] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + +\n", + " 23 [3] 2 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + +\n", + " 23 [3] 2 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + +\n", + " 23 [3] . [[] =] [pop 0] [uncons swap] [dip +] genrec 2 + +\n", + " 23 [3] [[] =] . [pop 0] [uncons swap] [dip +] genrec 2 + +\n", + " 23 [3] [[] =] [pop 0] . [uncons swap] [dip +] genrec 2 + +\n", + " 23 [3] [[] =] [pop 0] [uncons swap] . [dip +] genrec 2 + +\n", + " 23 [3] [[] =] [pop 0] [uncons swap] [dip +] . genrec 2 + +\n", + " 23 [3] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 2 + +\n", + " 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[3] 23] [[] =] . infra first choice i 2 + +\n", + " 23 [3] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + +\n", + " 23 [3] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + +\n", + " 23 False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + +\n", + " 23 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] . swaack first choice i 2 + +\n", + " 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False 23] . first choice i 2 + +\n", + " 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 2 + +\n", + " 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 2 + +\n", + " 23 [3] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + +\n", + " 23 3 [] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + +\n", + " 23 [] 3 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + +\n", + " 23 [] 3 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 2 + +\n", + " 23 [] . [[] =] [pop 0] [uncons swap] [dip +] genrec 3 + 2 + +\n", + " 23 [] [[] =] . [pop 0] [uncons swap] [dip +] genrec 3 + 2 + +\n", + " 23 [] [[] =] [pop 0] . [uncons swap] [dip +] genrec 3 + 2 + +\n", + " 23 [] [[] =] [pop 0] [uncons swap] . [dip +] genrec 3 + 2 + +\n", + " 23 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec 3 + 2 + +\n", + " 23 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 3 + 2 + +\n", + " 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 23] [[] =] . infra first choice i 3 + 2 + +\n", + " 23 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + +\n", + " 23 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + +\n", + " 23 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + +\n", + " 23 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] . swaack first choice i 3 + 2 + +\n", + " 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 23] . first choice i 3 + 2 + +\n", + " 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i 3 + 2 + +\n", + " 23 [] [pop 0] . i 3 + 2 + +\n", + " 23 [] . pop 0 3 + 2 + +\n", + " 23 . 0 3 + 2 + +\n", + " 23 0 . 3 + 2 + +\n", + " 23 0 3 . + 2 + +\n", + " 23 3 . 2 + +\n", + " 23 3 2 . + +\n", + " 23 5 . +\n", + " 28 . \n" + ] + } + ], + "source": [ + "V('[23 [[2 []] [3 []]]] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "140\n" + ] + } + ], + "source": [ + "J('[23 [[2 [[23 [[2 []] [3 []]]][23 [[2 []] [3 []]]]]] [3 [[23 [[2 []] [3 []]]][23 [[2 []] [3 []]]]]]]] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[]\n" + ] + } + ], + "source": [ + "J('[] [] [unit cons] [23 +] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[46 []]\n" + ] + } + ], + "source": [ + "J('[23 []] [] [unit cons] [23 +] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[46 [[25 []] [26 []]]]\n" + ] + } + ], + "source": [ + "J('[23 [[2 []] [3 []]]] [] [unit cons] [23 +] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "define('treemap == [] [unit cons] roll< treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[46 [[25 []] [26 []]]]\n" + ] + } + ], + "source": [ + "J('[23 [[2 []] [3 []]]] [23 +] treemap')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.md b/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.md new file mode 100644 index 0000000..c3550cd --- /dev/null +++ b/docs/Hylo-, Ana-, Cata-, and Para-morphisms - Recursion Combinators.md @@ -0,0 +1,2449 @@ + +Cf. ["Bananas, Lenses, & Barbed Wire"](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125) + +# [Hylomorphism](https://en.wikipedia.org/wiki/Hylomorphism_%28computer_science%29) +A [hylomorphism](https://en.wikipedia.org/wiki/Hylomorphism_%28computer_science%29) `H :: A -> B` converts a value of type A into a value of type B by means of: + +- A generator `G :: A -> (A, B)` +- A combiner `F :: (B, B) -> B` +- A predicate `P :: A -> Bool` to detect the base case +- A base case value `c :: B` +- Recursive calls (zero or more); it has a "call stack in the form of a cons list". + +It may be helpful to see this function implemented in imperative Python code. + + +```python +def hylomorphism(c, F, P, G): + '''Return a hylomorphism function H.''' + + def H(a): + if P(a): + result = c + else: + b, aa = G(a) + result = F(b, H(aa)) + return result + + return H +``` + +### Finding [Triangular Numbers](https://en.wikipedia.org/wiki/Triangular_number) +As a concrete example let's use a function that, given a positive integer, returns the sum of all positive integers less than that one. (In this case the types A and B are both `int`.) +### With `range()` and `sum()` + + +```python +r = range(10) +r +``` + + + + + [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + + + + +```python +sum(r) +``` + + + + + 45 + + + + +```python +range_sum = lambda n: sum(range(n)) +range_sum(10) +``` + + + + + 45 + + + +### As a hylomorphism + + +```python +G = lambda n: (n - 1, n - 1) +F = lambda a, b: a + b +P = lambda n: n <= 1 + +H = hylomorphism(0, F, P, G) +``` + + +```python +H(10) +``` + + + + + 45 + + + +If you were to run the above code in a debugger and check out the call stack you would find that the variable `b` in each call to `H()` is storing the intermediate values as `H()` recurses. This is what was meant by "call stack in the form of a cons list". + +### Joy Preamble + + +```python +from notebook_preamble import D, DefinitionWrapper, J, V, define +``` + +## Hylomorphism in Joy +We can define a combinator `hylomorphism` that will make a hylomorphism combinator `H` from constituent parts. + + H == c [F] [P] [G] hylomorphism + +The function `H` is recursive, so we start with `ifte` and set the else-part to +some function `J` that will contain a quoted copy of `H`. (The then-part just +discards the leftover `a` and replaces it with the base case value `c`.) + + H == [P] [pop c] [J] ifte + +The else-part `J` gets just the argument `a` on the stack. + + a J + a G The first thing to do is use the generator G + aa b which produces b and a new aa + aa b [H] dip we recur with H on the new aa + aa H b F and run F on the result. + +This gives us a definition for `J`. + + J == G [H] dip F + +Plug it in and convert to genrec. + + H == [P] [pop c] [G [H] dip F] ifte + H == [P] [pop c] [G] [dip F] genrec + +This is the form of a hylomorphism in Joy, which nicely illustrates that +it is a simple specialization of the general recursion combinator. + + H == [P] [pop c] [G] [dip F] genrec + +## Derivation of `hylomorphism` + +Now we just need to derive a definition that builds the `genrec` arguments +out of the pieces given to the `hylomorphism` combinator. + + H == [P] [pop c] [G] [dip F] genrec + [P] [c] [pop] swoncat [G] [F] [dip] swoncat genrec + [P] c unit [pop] swoncat [G] [F] [dip] swoncat genrec + [P] c [G] [F] [unit [pop] swoncat] dipd [dip] swoncat genrec + +Working in reverse: +- Use `swoncat` twice to decouple `[c]` and `[F]`. +- Use `unit` to dequote `c`. +- Use `dipd` to untangle `[unit [pop] swoncat]` from the givens. + +At this point all of the arguments (givens) to the hylomorphism are to the left so we have +a definition for `hylomorphism`: + + hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec + +The order of parameters is different than the one we started with but +that hardly matters, you can rearrange them or just supply them in the +expected order. + + [P] c [G] [F] hylomorphism == H + + + + +```python +define('hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec') +``` + +Demonstrate summing a range of integers from 0 to n-1. + +- `[P]` is `[0 <=]` +- `c` is `0` +- `[G]` is `[1 - dup]` +- `[F]` is `[+]` + +So to sum the positive integers less than five we can do this. + + +```python +V('5 [0 <=] 0 [1 - dup] [+] hylomorphism') +``` + + . 5 [0 <=] 0 [1 - dup] [+] hylomorphism + 5 . [0 <=] 0 [1 - dup] [+] hylomorphism + 5 [0 <=] . 0 [1 - dup] [+] hylomorphism + 5 [0 <=] 0 . [1 - dup] [+] hylomorphism + 5 [0 <=] 0 [1 - dup] . [+] hylomorphism + 5 [0 <=] 0 [1 - dup] [+] . hylomorphism + 5 [0 <=] 0 [1 - dup] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + 5 [0 <=] 0 [1 - dup] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + 5 [0 <=] 0 . unit [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] 0 . [] cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] 0 [] . cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] [0] . [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] [0] [pop] . swoncat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] [0] [pop] . swap concat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] [pop] [0] . concat [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] [pop 0] . [1 - dup] [+] [dip] swoncat genrec + 5 [0 <=] [pop 0] [1 - dup] . [+] [dip] swoncat genrec + 5 [0 <=] [pop 0] [1 - dup] [+] . [dip] swoncat genrec + 5 [0 <=] [pop 0] [1 - dup] [+] [dip] . swoncat genrec + 5 [0 <=] [pop 0] [1 - dup] [+] [dip] . swap concat genrec + 5 [0 <=] [pop 0] [1 - dup] [dip] [+] . concat genrec + 5 [0 <=] [pop 0] [1 - dup] [dip +] . genrec + 5 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [5] [0 <=] . infra first choice i + 5 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i + 5 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] . swaack first choice i + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i + 5 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 5 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 4 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 4 4 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 4 4 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + + 4 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 4 + + 4 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 4 + + 4 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 4 + + 4 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 4 + + 4 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 4 + + 4 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 4 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [4] [0 <=] . infra first choice i 4 + + 4 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + + 4 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] . swaack first choice i 4 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 4 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 4 + + 4 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + + 4 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + + 3 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + + 3 3 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + + 3 3 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 4 + + 3 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 3 + 4 + + 3 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 3 + 4 + + 3 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 3 + 4 + + 3 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 3 + 4 + + 3 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 3 + 4 + + 3 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 3 + 4 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [3] [0 <=] . infra first choice i 3 + 4 + + 3 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + + 3 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] . swaack first choice i 3 + 4 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 3 + 4 + + 3 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + + 3 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + + 2 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + + 2 2 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + + 2 2 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 3 + 4 + + 2 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + + 2 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + + 2 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 2 + 3 + 4 + + 2 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 2 + 3 + 4 + + 2 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 2 + 3 + 4 + + 2 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [2] [0 <=] . infra first choice i 2 + 3 + 4 + + 2 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + + 2 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] . swaack first choice i 2 + 3 + 4 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 2 + 3 + 4 + + 2 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + + 2 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + + 1 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + + 1 1 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + + 1 1 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 2 + 3 + 4 + + 1 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + + 1 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + + 1 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + + 1 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 1 + 2 + 3 + 4 + + 1 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 1 + 2 + 3 + 4 + + 1 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [1] [0 <=] . infra first choice i 1 + 2 + 3 + 4 + + 1 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + + 1 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] . swaack first choice i 1 + 2 + 3 + 4 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + + 1 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + + 1 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + + 0 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + + 0 0 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + + 0 0 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + + 0 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + + 0 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + + 0 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + + 0 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + + 0 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + + 0 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + + 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [0] [0 <=] . infra first choice i 0 + 1 + 2 + 3 + 4 + + 0 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + + 0 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + + True . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + + True [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] . swaack first choice i 0 + 1 + 2 + 3 + 4 + + 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + + 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + + 0 [pop 0] . i 0 + 1 + 2 + 3 + 4 + + 0 . pop 0 0 + 1 + 2 + 3 + 4 + + . 0 0 + 1 + 2 + 3 + 4 + + 0 . 0 + 1 + 2 + 3 + 4 + + 0 0 . + 1 + 2 + 3 + 4 + + 0 . 1 + 2 + 3 + 4 + + 0 1 . + 2 + 3 + 4 + + 1 . 2 + 3 + 4 + + 1 2 . + 3 + 4 + + 3 . 3 + 4 + + 3 3 . + 4 + + 6 . 4 + + 6 4 . + + 10 . + + +# Anamorphism +An anamorphism can be defined as a hylomorphism that uses `[]` for `c` and +`swons` for `F`. + + [P] [G] anamorphism == [P] [] [G] [swons] hylomorphism == A + +This allows us to define an anamorphism combinator in terms of +the hylomorphism combinator. + + [] swap [swons] hylomorphism == anamorphism + +Partial evaluation gives us a "pre-cooked" form. + + [P] [G] . anamorphism + [P] [G] . [] swap [swons] hylomorphism + [P] [G] [] . swap [swons] hylomorphism + [P] [] [G] . [swons] hylomorphism + [P] [] [G] [swons] . hylomorphism + [P] [] [G] [swons] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [P] [] [G] [swons] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [P] [] . unit [pop] swoncat [G] [swons] [dip] swoncat genrec + [P] [[]] [pop] . swoncat [G] [swons] [dip] swoncat genrec + [P] [pop []] [G] [swons] [dip] . swoncat genrec + + [P] [pop []] [G] [dip swons] genrec + +(We could also have just substituted for `c` and `F` in the definition of `H`.) + + H == [P] [pop c ] [G] [dip F ] genrec + A == [P] [pop []] [G] [dip swons] genrec + +The partial evaluation is overkill in this case but it serves as a +reminder that this sort of program specialization can, in many cases, be +carried out automatically.) + +Untangle `[G]` from `[pop []]` using `swap`. + + [P] [G] [pop []] swap [dip swons] genrec + +All of the arguments to `anamorphism` are to the left, so we have a definition for it. + + anamorphism == [pop []] swap [dip swons] genrec + +An example of an anamorphism is the range function. + + range == [0 <=] [1 - dup] anamorphism + + +# Catamorphism +A catamorphism can be defined as a hylomorphism that uses `[uncons swap]` for `[G]` +and `[[] =]` for the predicate `[P]`. + + c [F] catamorphism == [[] =] c [uncons swap] [F] hylomorphism == C + +This allows us to define a `catamorphism` combinator in terms of +the `hylomorphism` combinator. + + [[] =] roll> [uncons swap] swap hylomorphism == catamorphism + +Partial evaluation doesn't help much. + + c [F] . catamorphism + c [F] . [[] =] roll> [uncons swap] swap hylomorphism + c [F] [[] =] . roll> [uncons swap] swap hylomorphism + [[] =] c [F] [uncons swap] . swap hylomorphism + [[] =] c [uncons swap] [F] . hylomorphism + [[] =] c [uncons swap] [F] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [[] =] c . unit [pop] swoncat [uncons swap] [F] [dip] swoncat genrec + [[] =] [c] [pop] . swoncat [uncons swap] [F] [dip] swoncat genrec + [[] =] [pop c] [uncons swap] [F] [dip] . swoncat genrec + [[] =] [pop c] [uncons swap] [dip F] genrec + +Because the arguments to catamorphism have to be prepared (unlike the arguments +to anamorphism, which only need to be rearranged slightly) there isn't much point +to "pre-cooking" the definition. + + catamorphism == [[] =] roll> [uncons swap] swap hylomorphism + +An example of a catamorphism is the sum function. + + sum == 0 [+] catamorphism + +### "Fusion Law" for catas (UNFINISHED!!!) + +I'm not sure exactly how to translate the "Fusion Law" for catamorphisms into Joy. + +I know that a `map` composed with a cata can be expressed as a new cata: + + [F] map b [B] cata == b [F B] cata + +But this isn't the one described in "Bananas...". That's more like: + +A cata composed with some function can be expressed as some other cata: + + b [B] catamorphism F == c [C] catamorphism + +Given: + + b F == c + + ... + + B F == [F] dip C + + ... + + b[B]cata F == c[C]cata + + F(B(head, tail)) == C(head, F(tail)) + + 1 [2 3] B F 1 [2 3] F C + + + b F == c + B F == F C + + b [B] catamorphism F == c [C] catamorphism + b [B] catamorphism F == b F [C] catamorphism + + ... + +Or maybe, + + [F] map b [B] cata == c [C] cata ??? + + [F] map b [B] cata == b [F B] cata I think this is generally true, unless F consumes stack items + instead of just transforming TOS. Of course, there's always [F] unary. + b [F] unary [[F] unary B] cata + + [10 *] map 0 swap [+] step == 0 swap [10 * +] step + + +For example: + + F == 10 * + b == 0 + B == + + c == 0 + C == F + + + b F == c + 0 10 * == 0 + + B F == [F] dip C + + 10 * == [10 *] dip F + + + 10 * == [10 *] dip 10 * + + + n m + 10 * == 10(n+m) + + n m [10 *] dip 10 * + + n 10 * m 10 * + + 10n m 10 * + + 10n 10m + + 10n+10m + + 10n+10m = 10(n+m) + +Ergo: + + 0 [+] catamorphism 10 * == 0 [10 * +] catamorphism + +## The `step` combinator will usually be better to use than `catamorphism`. + + sum == 0 swap [+] step + sum == 0 [+] catamorphism + +# anamorphism catamorphism == hylomorphism +Here is (part of) the payoff. + +An anamorphism followed by (composed with) a +catamorphism is a hylomorphism, with the advantage that the hylomorphism +does not create the intermediate list structure. The values are stored in +either the call stack, for those implementations that use one, or in the pending +expression ("continuation") for the Joypy interpreter. They still have to +be somewhere, converting from an anamorphism and catamorphism to a hylomorphism +just prevents using additional storage and doing additional processing. + + range == [0 <=] [1 - dup] anamorphism + sum == 0 [+] catamorphism + + range sum == [0 <=] [1 - dup] anamorphism 0 [+] catamorphism + == [0 <=] 0 [1 - dup] [+] hylomorphism + +We can let the `hylomorphism` combinator build `range_sum` for us or just +substitute ourselves. + + H == [P] [pop c] [G] [dip F] genrec + range_sum == [0 <=] [pop 0] [1 - dup] [dip +] genrec + + + +```python +defs = ''' +anamorphism == [pop []] swap [dip swons] genrec +hylomorphism == [unit [pop] swoncat] dipd [dip] swoncat genrec +catamorphism == [[] =] roll> [uncons swap] swap hylomorphism +range == [0 <=] [1 - dup] anamorphism +sum == 0 [+] catamorphism +range_sum == [0 <=] 0 [1 - dup] [+] hylomorphism +''' + +DefinitionWrapper.add_definitions(defs, D) +``` + + +```python +J('10 range') +``` + + [9 8 7 6 5 4 3 2 1 0] + + + +```python +J('[9 8 7 6 5 4 3 2 1 0] sum') +``` + + 45 + + + +```python +V('10 range sum') +``` + + . 10 range sum + 10 . range sum + 10 . [0 <=] [1 - dup] anamorphism sum + 10 [0 <=] . [1 - dup] anamorphism sum + 10 [0 <=] [1 - dup] . anamorphism sum + 10 [0 <=] [1 - dup] . [pop []] swap [dip swons] genrec sum + 10 [0 <=] [1 - dup] [pop []] . swap [dip swons] genrec sum + 10 [0 <=] [pop []] [1 - dup] . [dip swons] genrec sum + 10 [0 <=] [pop []] [1 - dup] [dip swons] . genrec sum + 10 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte sum + 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [10] [0 <=] . infra first choice i sum + 10 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum + 10 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] swaack first choice i sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 10] . swaack first choice i sum + 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i sum + 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i sum + 10 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i sum + 10 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum + 10 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum + 9 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum + 9 9 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons sum + 9 9 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons sum + 9 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 9 swons sum + 9 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 9 swons sum + 9 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 9 swons sum + 9 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 9 swons sum + 9 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 9 swons sum + 9 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 9 swons sum + 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [9] [0 <=] . infra first choice i 9 swons sum + 9 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum + 9 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] swaack first choice i 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 9] . swaack first choice i 9 swons sum + 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 9 swons sum + 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 9 swons sum + 9 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 9 swons sum + 9 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum + 9 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum + 8 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum + 8 8 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 9 swons sum + 8 8 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 9 swons sum + 8 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 8 swons 9 swons sum + 8 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 8 swons 9 swons sum + 8 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 8 swons 9 swons sum + 8 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 8 swons 9 swons sum + 8 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 8 swons 9 swons sum + 8 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 8 swons 9 swons sum + 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [8] [0 <=] . infra first choice i 8 swons 9 swons sum + 8 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum + 8 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] swaack first choice i 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 8] . swaack first choice i 8 swons 9 swons sum + 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 8 swons 9 swons sum + 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 8 swons 9 swons sum + 8 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 8 swons 9 swons sum + 8 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum + 8 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum + 7 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum + 7 7 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 8 swons 9 swons sum + 7 7 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 8 swons 9 swons sum + 7 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum + 7 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum + 7 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 7 swons 8 swons 9 swons sum + 7 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 7 swons 8 swons 9 swons sum + 7 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 7 swons 8 swons 9 swons sum + 7 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 7 swons 8 swons 9 swons sum + 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [7] [0 <=] . infra first choice i 7 swons 8 swons 9 swons sum + 7 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum + 7 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] swaack first choice i 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 7] . swaack first choice i 7 swons 8 swons 9 swons sum + 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 7 swons 8 swons 9 swons sum + 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 7 swons 8 swons 9 swons sum + 7 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 7 swons 8 swons 9 swons sum + 7 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum + 7 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum + 6 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum + 6 6 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 7 swons 8 swons 9 swons sum + 6 6 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 7 swons 8 swons 9 swons sum + 6 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum + 6 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum + 6 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum + 6 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 6 swons 7 swons 8 swons 9 swons sum + 6 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 6 swons 7 swons 8 swons 9 swons sum + 6 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 6 swons 7 swons 8 swons 9 swons sum + 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [6] [0 <=] . infra first choice i 6 swons 7 swons 8 swons 9 swons sum + 6 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum + 6 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] swaack first choice i 6 swons 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 6] . swaack first choice i 6 swons 7 swons 8 swons 9 swons sum + 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 6 swons 7 swons 8 swons 9 swons sum + 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 6 swons 7 swons 8 swons 9 swons sum + 6 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 6 swons 7 swons 8 swons 9 swons sum + 6 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum + 6 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum + 5 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum + 5 5 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 6 swons 7 swons 8 swons 9 swons sum + 5 5 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 6 swons 7 swons 8 swons 9 swons sum + 5 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [5] [0 <=] . infra first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 5] . swaack first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 5 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 4 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 4 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [4] [0 <=] . infra first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 4] . swaack first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 3 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 3 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [3] [0 <=] . infra first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 3] . swaack first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 2 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 2 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [2] [0 <=] . infra first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 2] . swaack first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 1 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 1 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [1] [0 <=] . infra first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + False [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 1] . swaack first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] False . choice i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . i 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 . 1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 1 . - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 . dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 0 . [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 0 [[0 <=] [pop []] [1 - dup] [dip swons] genrec] . dip swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 . [0 <=] [pop []] [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [0 <=] . [pop []] [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [0 <=] [pop []] . [1 - dup] [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [0 <=] [pop []] [1 - dup] . [dip swons] genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [0 <=] [pop []] [1 - dup] [dip swons] . genrec 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [0 <=] [pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] . ifte 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [0] [0 <=] . infra first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 . 0 <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 0 . <= [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + True . [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + True [[pop []] [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] 0] . swaack first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [1 - dup [[0 <=] [pop []] [1 - dup] [dip swons] genrec] dip swons] [pop []] True . choice i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [pop []] . i 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 . pop [] 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + . [] 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [] . 0 swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [] 0 . swons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [] 0 . swap cons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 0 [] . cons 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [0] . 1 swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [0] 1 . swons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [0] 1 . swap cons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 1 [0] . cons 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [1 0] . 2 swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [1 0] 2 . swons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [1 0] 2 . swap cons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 2 [1 0] . cons 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [2 1 0] . 3 swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [2 1 0] 3 . swons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [2 1 0] 3 . swap cons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 3 [2 1 0] . cons 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [3 2 1 0] . 4 swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [3 2 1 0] 4 . swons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [3 2 1 0] 4 . swap cons 5 swons 6 swons 7 swons 8 swons 9 swons sum + 4 [3 2 1 0] . cons 5 swons 6 swons 7 swons 8 swons 9 swons sum + [4 3 2 1 0] . 5 swons 6 swons 7 swons 8 swons 9 swons sum + [4 3 2 1 0] 5 . swons 6 swons 7 swons 8 swons 9 swons sum + [4 3 2 1 0] 5 . swap cons 6 swons 7 swons 8 swons 9 swons sum + 5 [4 3 2 1 0] . cons 6 swons 7 swons 8 swons 9 swons sum + [5 4 3 2 1 0] . 6 swons 7 swons 8 swons 9 swons sum + [5 4 3 2 1 0] 6 . swons 7 swons 8 swons 9 swons sum + [5 4 3 2 1 0] 6 . swap cons 7 swons 8 swons 9 swons sum + 6 [5 4 3 2 1 0] . cons 7 swons 8 swons 9 swons sum + [6 5 4 3 2 1 0] . 7 swons 8 swons 9 swons sum + [6 5 4 3 2 1 0] 7 . swons 8 swons 9 swons sum + [6 5 4 3 2 1 0] 7 . swap cons 8 swons 9 swons sum + 7 [6 5 4 3 2 1 0] . cons 8 swons 9 swons sum + [7 6 5 4 3 2 1 0] . 8 swons 9 swons sum + [7 6 5 4 3 2 1 0] 8 . swons 9 swons sum + [7 6 5 4 3 2 1 0] 8 . swap cons 9 swons sum + 8 [7 6 5 4 3 2 1 0] . cons 9 swons sum + [8 7 6 5 4 3 2 1 0] . 9 swons sum + [8 7 6 5 4 3 2 1 0] 9 . swons sum + [8 7 6 5 4 3 2 1 0] 9 . swap cons sum + 9 [8 7 6 5 4 3 2 1 0] . cons sum + [9 8 7 6 5 4 3 2 1 0] . sum + [9 8 7 6 5 4 3 2 1 0] . 0 [+] catamorphism + [9 8 7 6 5 4 3 2 1 0] 0 . [+] catamorphism + [9 8 7 6 5 4 3 2 1 0] 0 [+] . catamorphism + [9 8 7 6 5 4 3 2 1 0] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [9 8 7 6 5 4 3 2 1 0] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] . hylomorphism + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [9 8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[9 8 7 6 5 4 3 2 1 0]] [[] =] . infra first choice i + [9 8 7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i + [9 8 7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] swaack first choice i + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [9 8 7 6 5 4 3 2 1 0]] . swaack first choice i + [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i + [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i + [9 8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i + [9 8 7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + + 9 [8 7 6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + + [8 7 6 5 4 3 2 1 0] 9 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + + [8 7 6 5 4 3 2 1 0] 9 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + + [8 7 6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 9 + + [8 7 6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 9 + + [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 9 + + [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 9 + + [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 9 + + [8 7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 9 + + [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[8 7 6 5 4 3 2 1 0]] [[] =] . infra first choice i 9 + + [8 7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 + + [8 7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] swaack first choice i 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [8 7 6 5 4 3 2 1 0]] . swaack first choice i 9 + + [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 9 + + [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 9 + + [8 7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 9 + + [8 7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 + + 8 [7 6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 + + [7 6 5 4 3 2 1 0] 8 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 9 + + [7 6 5 4 3 2 1 0] 8 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 9 + + [7 6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 8 + 9 + + [7 6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 8 + 9 + + [7 6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 8 + 9 + + [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 8 + 9 + + [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 8 + 9 + + [7 6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 8 + 9 + + [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[7 6 5 4 3 2 1 0]] [[] =] . infra first choice i 8 + 9 + + [7 6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 + + [7 6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] swaack first choice i 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [7 6 5 4 3 2 1 0]] . swaack first choice i 8 + 9 + + [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 8 + 9 + + [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 8 + 9 + + [7 6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 8 + 9 + + [7 6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 + + 7 [6 5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 + + [6 5 4 3 2 1 0] 7 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 8 + 9 + + [6 5 4 3 2 1 0] 7 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 8 + 9 + + [6 5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 7 + 8 + 9 + + [6 5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 7 + 8 + 9 + + [6 5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 7 + 8 + 9 + + [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 7 + 8 + 9 + + [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 7 + 8 + 9 + + [6 5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 7 + 8 + 9 + + [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[6 5 4 3 2 1 0]] [[] =] . infra first choice i 7 + 8 + 9 + + [6 5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 + + [6 5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] swaack first choice i 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [6 5 4 3 2 1 0]] . swaack first choice i 7 + 8 + 9 + + [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 7 + 8 + 9 + + [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 7 + 8 + 9 + + [6 5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 7 + 8 + 9 + + [6 5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 + + 6 [5 4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 + + [5 4 3 2 1 0] 6 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 7 + 8 + 9 + + [5 4 3 2 1 0] 6 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 7 + 8 + 9 + + [5 4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[5 4 3 2 1 0]] [[] =] . infra first choice i 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] swaack first choice i 6 + 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [5 4 3 2 1 0]] . swaack first choice i 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 6 + 7 + 8 + 9 + + [5 4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + 5 [4 3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + [4 3 2 1 0] 5 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + [4 3 2 1 0] 5 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 6 + 7 + 8 + 9 + + [4 3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[4 3 2 1 0]] [[] =] . infra first choice i 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] swaack first choice i 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [4 3 2 1 0]] . swaack first choice i 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 5 + 6 + 7 + 8 + 9 + + [4 3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + 4 [3 2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] 4 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] 4 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[3 2 1 0]] [[] =] . infra first choice i 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3 2 1 0]] . swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 4 + 5 + 6 + 7 + 8 + 9 + + [3 2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [2 1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] 3 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] 3 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[2 1 0]] [[] =] . infra first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 1 0]] . swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [2 1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [1 0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] 2 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] 2 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[1 0]] [[] =] . infra first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [1 0]] . swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [1 0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [0] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] 1 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] 1 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] . [[] =] [pop 0] [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [[] =] . [pop 0] [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [[] =] [pop 0] . [uncons swap] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [[] =] [pop 0] [uncons swap] . [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [[] =] [pop 0] [uncons swap] [dip +] . genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[0]] [[] =] . infra first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [0]] . swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [0] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] 0 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] 0 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] . [[] =] [pop 0] [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [[] =] . [pop 0] [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [[] =] [pop 0] . [uncons swap] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [[] =] [pop 0] [uncons swap] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [[] =] [pop 0] [uncons swap] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[]] [[] =] . infra first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] []] . swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] [pop 0] . i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + [] . pop 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + . 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 0 . + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 1 . + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 . 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 2 . + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 . 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 3 . + 4 + 5 + 6 + 7 + 8 + 9 + + 6 . 4 + 5 + 6 + 7 + 8 + 9 + + 6 4 . + 5 + 6 + 7 + 8 + 9 + + 10 . 5 + 6 + 7 + 8 + 9 + + 10 5 . + 6 + 7 + 8 + 9 + + 15 . 6 + 7 + 8 + 9 + + 15 6 . + 7 + 8 + 9 + + 21 . 7 + 8 + 9 + + 21 7 . + 8 + 9 + + 28 . 8 + 9 + + 28 8 . + 9 + + 36 . 9 + + 36 9 . + + 45 . + + + +```python +V('10 range_sum') +``` + + . 10 range_sum + 10 . range_sum + 10 . [0 <=] 0 [1 - dup] [+] hylomorphism + 10 [0 <=] . 0 [1 - dup] [+] hylomorphism + 10 [0 <=] 0 . [1 - dup] [+] hylomorphism + 10 [0 <=] 0 [1 - dup] . [+] hylomorphism + 10 [0 <=] 0 [1 - dup] [+] . hylomorphism + 10 [0 <=] 0 [1 - dup] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + 10 [0 <=] 0 [1 - dup] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + 10 [0 <=] 0 . unit [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] 0 . [] cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] 0 [] . cons [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] [0] . [pop] swoncat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] [0] [pop] . swoncat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] [0] [pop] . swap concat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] [pop] [0] . concat [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] [pop 0] . [1 - dup] [+] [dip] swoncat genrec + 10 [0 <=] [pop 0] [1 - dup] . [+] [dip] swoncat genrec + 10 [0 <=] [pop 0] [1 - dup] [+] . [dip] swoncat genrec + 10 [0 <=] [pop 0] [1 - dup] [+] [dip] . swoncat genrec + 10 [0 <=] [pop 0] [1 - dup] [+] [dip] . swap concat genrec + 10 [0 <=] [pop 0] [1 - dup] [dip] [+] . concat genrec + 10 [0 <=] [pop 0] [1 - dup] [dip +] . genrec + 10 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte + 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [10] [0 <=] . infra first choice i + 10 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i + 10 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] swaack first choice i + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 10] . swaack first choice i + 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i + 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i + 10 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i + 10 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 10 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 9 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 9 9 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + + 9 9 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + + 9 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 9 + + 9 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 9 + + 9 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 9 + + 9 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 9 + + 9 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 9 + + 9 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 9 + + 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [9] [0 <=] . infra first choice i 9 + + 9 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 + + 9 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] swaack first choice i 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 9] . swaack first choice i 9 + + 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 9 + + 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 9 + + 9 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 9 + + 9 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 + + 9 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 + + 8 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 + + 8 8 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 9 + + 8 8 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 9 + + 8 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 8 + 9 + + 8 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 8 + 9 + + 8 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 8 + 9 + + 8 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 8 + 9 + + 8 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 8 + 9 + + 8 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 8 + 9 + + 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [8] [0 <=] . infra first choice i 8 + 9 + + 8 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 + + 8 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] swaack first choice i 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 8] . swaack first choice i 8 + 9 + + 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 8 + 9 + + 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 8 + 9 + + 8 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 8 + 9 + + 8 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 + + 8 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 + + 7 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 + + 7 7 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 8 + 9 + + 7 7 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 8 + 9 + + 7 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 7 + 8 + 9 + + 7 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 7 + 8 + 9 + + 7 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 7 + 8 + 9 + + 7 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 7 + 8 + 9 + + 7 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 7 + 8 + 9 + + 7 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 7 + 8 + 9 + + 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [7] [0 <=] . infra first choice i 7 + 8 + 9 + + 7 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 + + 7 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] swaack first choice i 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 7] . swaack first choice i 7 + 8 + 9 + + 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 7 + 8 + 9 + + 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 7 + 8 + 9 + + 7 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 7 + 8 + 9 + + 7 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 + + 7 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 + + 6 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 + + 6 6 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 7 + 8 + 9 + + 6 6 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 7 + 8 + 9 + + 6 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 + + 6 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 + + 6 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 6 + 7 + 8 + 9 + + 6 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 6 + 7 + 8 + 9 + + 6 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 6 + 7 + 8 + 9 + + 6 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 6 + 7 + 8 + 9 + + 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [6] [0 <=] . infra first choice i 6 + 7 + 8 + 9 + + 6 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 + + 6 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] swaack first choice i 6 + 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 6] . swaack first choice i 6 + 7 + 8 + 9 + + 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 6 + 7 + 8 + 9 + + 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 6 + 7 + 8 + 9 + + 6 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 6 + 7 + 8 + 9 + + 6 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + 6 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + 5 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + 5 5 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 6 + 7 + 8 + 9 + + 5 5 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 6 + 7 + 8 + 9 + + 5 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 + + 5 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 + + 5 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 5 + 6 + 7 + 8 + 9 + + 5 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 5 + 6 + 7 + 8 + 9 + + 5 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 5 + 6 + 7 + 8 + 9 + + 5 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 5 + 6 + 7 + 8 + 9 + + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [5] [0 <=] . infra first choice i 5 + 6 + 7 + 8 + 9 + + 5 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 + + 5 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] swaack first choice i 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 5] . swaack first choice i 5 + 6 + 7 + 8 + 9 + + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 5 + 6 + 7 + 8 + 9 + + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 5 + 6 + 7 + 8 + 9 + + 5 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 5 + 6 + 7 + 8 + 9 + + 5 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + 5 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + 4 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + 4 4 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 5 + 6 + 7 + 8 + 9 + + 4 4 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 5 + 6 + 7 + 8 + 9 + + 4 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + 4 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + 4 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + 4 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 4 + 5 + 6 + 7 + 8 + 9 + + 4 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 4 + 5 + 6 + 7 + 8 + 9 + + 4 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 4 + 5 + 6 + 7 + 8 + 9 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [4] [0 <=] . infra first choice i 4 + 5 + 6 + 7 + 8 + 9 + + 4 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + 4 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 4] . swaack first choice i 4 + 5 + 6 + 7 + 8 + 9 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 4 + 5 + 6 + 7 + 8 + 9 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 4 + 5 + 6 + 7 + 8 + 9 + + 4 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 4 + 5 + 6 + 7 + 8 + 9 + + 4 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + 4 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + 3 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + 3 3 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 4 + 5 + 6 + 7 + 8 + 9 + + 3 3 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 4 + 5 + 6 + 7 + 8 + 9 + + 3 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [3] [0 <=] . infra first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 3] . swaack first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 2 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 2 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [2] [0 <=] . infra first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 2] . swaack first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 2 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 1 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 1 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [1] [0 <=] . infra first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + False [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 1] . swaack first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [False] . first choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] False . choice i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . i 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 . 1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 1 . - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 0 . [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 0 [[0 <=] [pop 0] [1 - dup] [dip +] genrec] . dip + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . [0 <=] [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [0 <=] . [pop 0] [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [0 <=] [pop 0] . [1 - dup] [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [0 <=] [pop 0] [1 - dup] . [dip +] genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [0 <=] [pop 0] [1 - dup] [dip +] . genrec 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [0 <=] [pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] . ifte 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [0] [0 <=] . infra first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . 0 <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 0 . <= [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + True . [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + True [[pop 0] [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] 0] . swaack first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] [True] . first choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [1 - dup [[0 <=] [pop 0] [1 - dup] [dip +] genrec] dip +] [pop 0] True . choice i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 [pop 0] . i 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . pop 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + . 0 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 0 . + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 . 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 0 1 . + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 . 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 1 2 . + 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 . 3 + 4 + 5 + 6 + 7 + 8 + 9 + + 3 3 . + 4 + 5 + 6 + 7 + 8 + 9 + + 6 . 4 + 5 + 6 + 7 + 8 + 9 + + 6 4 . + 5 + 6 + 7 + 8 + 9 + + 10 . 5 + 6 + 7 + 8 + 9 + + 10 5 . + 6 + 7 + 8 + 9 + + 15 . 6 + 7 + 8 + 9 + + 15 6 . + 7 + 8 + 9 + + 21 . 7 + 8 + 9 + + 21 7 . + 8 + 9 + + 28 . 8 + 9 + + 28 8 . + 9 + + 36 . 9 + + 36 9 . + + 45 . + + +# Factorial Function and Paramorphisms +A paramorphism `P :: B -> A` is a recursion combinator that uses `dup` on intermediate values. + + n swap [P] [pop] [[F] dupdip G] primrec + +With +- `n :: A` is the "identity" for `F` (like 1 for multiplication, 0 for addition) +- `F :: (A, B) -> A` +- `G :: B -> B` generates the next `B` value. +- and lastly `P :: B -> Bool` detects the end of the series. + +For Factorial function (types `A` and `B` are both integer): + + n == 1 + F == * + G == -- + P == 1 <= + + +```python +define('factorial == 1 swap [1 <=] [pop] [[*] dupdip --] primrec') +``` + +Try it with input 3 (omitting evaluation of predicate): + + 3 1 swap [1 <=] [pop] [[*] dupdip --] primrec + 1 3 [1 <=] [pop] [[*] dupdip --] primrec + + 1 3 [*] dupdip -- + 1 3 * 3 -- + 3 3 -- + 3 2 + + 3 2 [*] dupdip -- + 3 2 * 2 -- + 6 2 -- + 6 1 + + 6 1 [1 <=] [pop] [[*] dupdip --] primrec + + 6 1 pop + 6 + + +```python +J('3 factorial') +``` + + 6 + + +### Derive `paramorphism` from the form above. + + n swap [P] [pop] [[F] dupdip G] primrec + + n swap [P] [pop] [[F] dupdip G] primrec + n [P] [swap] dip [pop] [[F] dupdip G] primrec + n [P] [[F] dupdip G] [[swap] dip [pop]] dip primrec + n [P] [F] [dupdip G] cons [[swap] dip [pop]] dip primrec + n [P] [F] [G] [dupdip] swoncat cons [[swap] dip [pop]] dip primrec + + paramorphism == [dupdip] swoncat cons [[swap] dip [pop]] dip primrec + + +```python +define('paramorphism == [dupdip] swoncat cons [[swap] dip [pop]] dip primrec') +define('factorial == 1 [1 <=] [*] [--] paramorphism') +``` + + +```python +J('3 factorial') +``` + + 6 + + +# `tails` +An example of a paramorphism for lists given in the ["Bananas..." paper](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125) is `tails` which returns the list of "tails" of a list. + + [1 2 3] tails == [[] [3] [2 3]] + +Using `paramorphism` we would write: + + n == [] + F == rest swons + G == rest + P == not + + tails == [] [not] [rest swons] [rest] paramorphism + + +```python +define('tails == [] [not] [rest swons] [rest] paramorphism') +``` + + +```python +J('[1 2 3] tails') +``` + + [[] [3] [2 3]] + + + +```python +J('25 range tails [popop] infra [sum] map') +``` + + [1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 153 171 190 210 231 253 276] + + + +```python +J('25 range [range_sum] map') +``` + + [276 253 231 210 190 171 153 136 120 105 91 78 66 55 45 36 28 21 15 10 6 3 1 0 0] + + +### Factoring `rest` +Right before the recursion begins we have: + + [] [1 2 3] [not] [pop] [[rest swons] dupdip rest] primrec + +But we might prefer to factor `rest` in the quote: + + [] [1 2 3] [not] [pop] [rest [swons] dupdip] primrec + +There's no way to do that with the `paramorphism` combinator as defined. We would have to write and use a slightly different recursion combinator that accepted an additional "preprocessor" function `[H]` and built: + + n swap [P] [pop] [H [F] dupdip G] primrec + +Or just write it out manually. This is yet another place where the *sufficiently smart compiler* will one day automatically refactor the code. We could write a `paramorphism` combinator that checked `[F]` and `[G]` for common prefix and extracted it. + +# Patterns of Recursion +Our story so far... + +- A combiner `F :: (B, B) -> B` +- A predicate `P :: A -> Bool` to detect the base case +- A base case value `c :: B` + + +### Hylo- Ana-, Cata- + + w/ G :: A -> (A, B) + + H == [P ] [pop c ] [G ] [dip F ] genrec + A == [P ] [pop []] [G ] [dip swons] genrec + C == [[] =] [pop c ] [uncons swap] [dip F ] genrec + +### Para-, ?-, ?- + + w/ G :: B -> B + + P == c swap [P ] [pop] [[F ] dupdip G ] primrec + ? == [] swap [P ] [pop] [[swons] dupdip G ] primrec + ? == c swap [[] =] [pop] [[F ] dupdip uncons swap] primrec + + +# Four Generalizations +There are at least four kinds of recursive combinator, depending on two choices. The first choice is whether the combiner function should be evaluated during the recursion or pushed into the pending expression to be "collapsed" at the end. The second choice is whether the combiner needs to operate on the current value of the datastructure or the generator's output. + + H == [P] [pop c] [G ] [dip F] genrec + H == c swap [P] [pop] [G [F] dip ] [i] genrec + H == [P] [pop c] [ [G] dupdip ] [dip F] genrec + H == c swap [P] [pop] [ [F] dupdip G] [i] genrec + +Consider: + + ... a G [H] dip F w/ a G == a' b + ... c a G [F] dip H a G == b a' + ... a [G] dupdip [H] dip F a G == a' + ... c a [F] dupdip G H a G == a' + +### 1 + + H == [P] [pop c] [G] [dip F] genrec + +Iterate n times. + + ... a [P] [pop c] [G] [dip F] genrec + ... a G [H] dip F + ... a' b [H] dip F + ... a' H b F + ... a' G [H] dip F b F + ... a'' b [H] dip F b F + ... a'' H b F b F + ... a'' G [H] dip F b F b F + ... a''' b [H] dip F b F b F + ... a''' H b F b F b F + ... a''' pop c b F b F b F + ... c b F b F b F + +This form builds up a continuation that contains the intermediate results along with the pending combiner functions. When the base case is reached the last term is replaced by the identity value c and the continuation "collapses" into the final result. + +### 2 +When you can start with the identity value c on the stack and the combiner can operate as you go, using the intermediate results immediately rather than queuing them up, use this form. An important difference is that the generator function must return its results in the reverse order. + + H == c swap [P] [pop] [G [F] dip] primrec + + ... c a G [F] dip H + ... c b a' [F] dip H + ... c b F a' H + ... c b F a' G [F] dip H + ... c b F b a'' [F] dip H + ... c b F b F a'' H + ... c b F b F a'' G [F] dip H + ... c b F b F b a''' [F] dip H + ... c b F b F b F a''' H + ... c b F b F b F a''' pop + ... c b F b F b F + +The end line here is the same as for above, but only because we didn't evaluate `F` when it normally would have been. + +### 3 +If the combiner and the generator both need to work on the current value then `dup` must be used at some point, and the generator must produce one item instead of two (the b is instead the duplicate of a.) + + + H == [P] [pop c] [[G] dupdip] [dip F] genrec + + ... a [G] dupdip [H] dip F + ... a G a [H] dip F + ... a' a [H] dip F + ... a' H a F + ... a' [G] dupdip [H] dip F a F + ... a' G a' [H] dip F a F + ... a'' a' [H] dip F a F + ... a'' H a' F a F + ... a'' [G] dupdip [H] dip F a' F a F + ... a'' G a'' [H] dip F a' F a F + ... a''' a'' [H] dip F a' F a F + ... a''' H a'' F a' F a F + ... a''' pop c a'' F a' F a F + ... c a'' F a' F a F + +### 4 +And, last but not least, if you can combine as you go, starting with c, and the combiner needs to work on the current item this is the form: + + W == c swap [P] [pop] [[F] dupdip G] primrec + + ... a c swap [P] [pop] [[F] dupdip G] primrec + ... c a [P] [pop] [[F] dupdip G] primrec + ... c a [F] dupdip G W + ... c a F a G W + ... c a F a' W + ... c a F a' [F] dupdip G W + ... c a F a' F a' G W + ... c a F a' F a'' W + ... c a F a' F a'' [F] dupdip G W + ... c a F a' F a'' F a'' G W + ... c a F a' F a'' F a''' W + ... c a F a' F a'' F a''' pop + ... c a F a' F a'' F + +Each of the four variations above can be specialized to ana- and catamorphic forms. + + +```python +def WTFmorphism(c, F, P, G): + '''Return a hylomorphism function H.''' + + def H(a, d=c): + if P(a): + result = d + else: + a, b = G(a) + result = H(a, F(d, b)) + return result + + return H +``` + + +```python +F = lambda a, b: a + b +P = lambda n: n <= 1 +G = lambda n: (n - 1, n - 1) + +wtf = WTFmorphism(0, F, P, G) + +print wtf(5) +``` + + 10 + + + H == [P ] [pop c ] [G ] [dip F ] genrec + + +```python +DefinitionWrapper.add_definitions(''' +P == 1 <= +Ga == -- dup +Gb == -- +c == 0 +F == + +''', D) +``` + + +```python +V('[1 2 3] [[] =] [pop []] [uncons swap] [dip swons] genrec') +``` + + . [1 2 3] [[] =] [pop []] [uncons swap] [dip swons] genrec + [1 2 3] . [[] =] [pop []] [uncons swap] [dip swons] genrec + [1 2 3] [[] =] . [pop []] [uncons swap] [dip swons] genrec + [1 2 3] [[] =] [pop []] . [uncons swap] [dip swons] genrec + [1 2 3] [[] =] [pop []] [uncons swap] . [dip swons] genrec + [1 2 3] [[] =] [pop []] [uncons swap] [dip swons] . genrec + [1 2 3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte + [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[1 2 3]] [[] =] . infra first choice i + [1 2 3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i + [1 2 3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i + False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] swaack first choice i + False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [1 2 3]] . swaack first choice i + [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i + [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i + [1 2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i + [1 2 3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons + 1 [2 3] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons + [2 3] 1 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons + [2 3] 1 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons + [2 3] . [[] =] [pop []] [uncons swap] [dip swons] genrec 1 swons + [2 3] [[] =] . [pop []] [uncons swap] [dip swons] genrec 1 swons + [2 3] [[] =] [pop []] . [uncons swap] [dip swons] genrec 1 swons + [2 3] [[] =] [pop []] [uncons swap] . [dip swons] genrec 1 swons + [2 3] [[] =] [pop []] [uncons swap] [dip swons] . genrec 1 swons + [2 3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 1 swons + [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[2 3]] [[] =] . infra first choice i 1 swons + [2 3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons + [2 3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons + False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] swaack first choice i 1 swons + False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [2 3]] . swaack first choice i 1 swons + [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 1 swons + [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i 1 swons + [2 3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i 1 swons + [2 3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons + 2 [3] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons + [3] 2 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 1 swons + [3] 2 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons 1 swons + [3] . [[] =] [pop []] [uncons swap] [dip swons] genrec 2 swons 1 swons + [3] [[] =] . [pop []] [uncons swap] [dip swons] genrec 2 swons 1 swons + [3] [[] =] [pop []] . [uncons swap] [dip swons] genrec 2 swons 1 swons + [3] [[] =] [pop []] [uncons swap] . [dip swons] genrec 2 swons 1 swons + [3] [[] =] [pop []] [uncons swap] [dip swons] . genrec 2 swons 1 swons + [3] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 2 swons 1 swons + [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[3]] [[] =] . infra first choice i 2 swons 1 swons + [3] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons + [3] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons + False . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] swaack first choice i 2 swons 1 swons + False [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [3]] . swaack first choice i 2 swons 1 swons + [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons 1 swons + [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons 1 swons + [3] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . i 2 swons 1 swons + [3] . uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons + 3 [] . swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons + [] 3 . [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons 2 swons 1 swons + [] 3 [[[] =] [pop []] [uncons swap] [dip swons] genrec] . dip swons 2 swons 1 swons + [] . [[] =] [pop []] [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons + [] [[] =] . [pop []] [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons + [] [[] =] [pop []] . [uncons swap] [dip swons] genrec 3 swons 2 swons 1 swons + [] [[] =] [pop []] [uncons swap] . [dip swons] genrec 3 swons 2 swons 1 swons + [] [[] =] [pop []] [uncons swap] [dip swons] . genrec 3 swons 2 swons 1 swons + [] [[] =] [pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] . ifte 3 swons 2 swons 1 swons + [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [[]] [[] =] . infra first choice i 3 swons 2 swons 1 swons + [] . [] = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons + [] [] . = [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons + True . [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] swaack first choice i 3 swons 2 swons 1 swons + True [[pop []] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] []] . swaack first choice i 3 swons 2 swons 1 swons + [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 3 swons 2 swons 1 swons + [] [uncons swap [[[] =] [pop []] [uncons swap] [dip swons] genrec] dip swons] [pop []] True . choice i 3 swons 2 swons 1 swons + [] [pop []] . i 3 swons 2 swons 1 swons + [] . pop [] 3 swons 2 swons 1 swons + . [] 3 swons 2 swons 1 swons + [] . 3 swons 2 swons 1 swons + [] 3 . swons 2 swons 1 swons + [] 3 . swap cons 2 swons 1 swons + 3 [] . cons 2 swons 1 swons + [3] . 2 swons 1 swons + [3] 2 . swons 1 swons + [3] 2 . swap cons 1 swons + 2 [3] . cons 1 swons + [2 3] . 1 swons + [2 3] 1 . swons + [2 3] 1 . swap cons + 1 [2 3] . cons + [1 2 3] . + + + +```python +V('3 [P] [pop c] [Ga] [dip F] genrec') +``` + + . 3 [P] [pop c] [Ga] [dip F] genrec + 3 . [P] [pop c] [Ga] [dip F] genrec + 3 [P] . [pop c] [Ga] [dip F] genrec + 3 [P] [pop c] . [Ga] [dip F] genrec + 3 [P] [pop c] [Ga] . [dip F] genrec + 3 [P] [pop c] [Ga] [dip F] . genrec + 3 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte + 3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [3] [P] . infra first choice i + 3 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i + 3 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i + 3 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i + False . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] swaack first choice i + False [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 3] . swaack first choice i + 3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [False] . first choice i + 3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] False . choice i + 3 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . i + 3 . Ga [[P] [pop c] [Ga] [dip F] genrec] dip F + 3 . -- dup [[P] [pop c] [Ga] [dip F] genrec] dip F + 2 . dup [[P] [pop c] [Ga] [dip F] genrec] dip F + 2 2 . [[P] [pop c] [Ga] [dip F] genrec] dip F + 2 2 [[P] [pop c] [Ga] [dip F] genrec] . dip F + 2 . [P] [pop c] [Ga] [dip F] genrec 2 F + 2 [P] . [pop c] [Ga] [dip F] genrec 2 F + 2 [P] [pop c] . [Ga] [dip F] genrec 2 F + 2 [P] [pop c] [Ga] . [dip F] genrec 2 F + 2 [P] [pop c] [Ga] [dip F] . genrec 2 F + 2 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte 2 F + 2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [2] [P] . infra first choice i 2 F + 2 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F + 2 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F + 2 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F + False . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] swaack first choice i 2 F + False [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 2] . swaack first choice i 2 F + 2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [False] . first choice i 2 F + 2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] False . choice i 2 F + 2 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . i 2 F + 2 . Ga [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F + 2 . -- dup [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F + 1 . dup [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F + 1 1 . [[P] [pop c] [Ga] [dip F] genrec] dip F 2 F + 1 1 [[P] [pop c] [Ga] [dip F] genrec] . dip F 2 F + 1 . [P] [pop c] [Ga] [dip F] genrec 1 F 2 F + 1 [P] . [pop c] [Ga] [dip F] genrec 1 F 2 F + 1 [P] [pop c] . [Ga] [dip F] genrec 1 F 2 F + 1 [P] [pop c] [Ga] . [dip F] genrec 1 F 2 F + 1 [P] [pop c] [Ga] [dip F] . genrec 1 F 2 F + 1 [P] [pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] . ifte 1 F 2 F + 1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [1] [P] . infra first choice i 1 F 2 F + 1 . P [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F + 1 . 1 <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F + 1 1 . <= [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F + True . [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] swaack first choice i 1 F 2 F + True [[pop c] [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] 1] . swaack first choice i 1 F 2 F + 1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] [True] . first choice i 1 F 2 F + 1 [Ga [[P] [pop c] [Ga] [dip F] genrec] dip F] [pop c] True . choice i 1 F 2 F + 1 [pop c] . i 1 F 2 F + 1 . pop c 1 F 2 F + . c 1 F 2 F + . 0 1 F 2 F + 0 . 1 F 2 F + 0 1 . F 2 F + 0 1 . + 2 F + 1 . 2 F + 1 2 . F + 1 2 . + + 3 . + + + +```python +V('3 [P] [pop []] [Ga] [dip swons] genrec') +``` + + . 3 [P] [pop []] [Ga] [dip swons] genrec + 3 . [P] [pop []] [Ga] [dip swons] genrec + 3 [P] . [pop []] [Ga] [dip swons] genrec + 3 [P] [pop []] . [Ga] [dip swons] genrec + 3 [P] [pop []] [Ga] . [dip swons] genrec + 3 [P] [pop []] [Ga] [dip swons] . genrec + 3 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte + 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [3] [P] . infra first choice i + 3 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i + 3 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i + 3 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i + False . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] swaack first choice i + False [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 3] . swaack first choice i + 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [False] . first choice i + 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] False . choice i + 3 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . i + 3 . Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons + 3 . -- dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons + 2 . dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons + 2 2 . [[P] [pop []] [Ga] [dip swons] genrec] dip swons + 2 2 [[P] [pop []] [Ga] [dip swons] genrec] . dip swons + 2 . [P] [pop []] [Ga] [dip swons] genrec 2 swons + 2 [P] . [pop []] [Ga] [dip swons] genrec 2 swons + 2 [P] [pop []] . [Ga] [dip swons] genrec 2 swons + 2 [P] [pop []] [Ga] . [dip swons] genrec 2 swons + 2 [P] [pop []] [Ga] [dip swons] . genrec 2 swons + 2 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte 2 swons + 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [2] [P] . infra first choice i 2 swons + 2 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons + 2 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons + 2 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons + False . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] swaack first choice i 2 swons + False [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 2] . swaack first choice i 2 swons + 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [False] . first choice i 2 swons + 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] False . choice i 2 swons + 2 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . i 2 swons + 2 . Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons + 2 . -- dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons + 1 . dup [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons + 1 1 . [[P] [pop []] [Ga] [dip swons] genrec] dip swons 2 swons + 1 1 [[P] [pop []] [Ga] [dip swons] genrec] . dip swons 2 swons + 1 . [P] [pop []] [Ga] [dip swons] genrec 1 swons 2 swons + 1 [P] . [pop []] [Ga] [dip swons] genrec 1 swons 2 swons + 1 [P] [pop []] . [Ga] [dip swons] genrec 1 swons 2 swons + 1 [P] [pop []] [Ga] . [dip swons] genrec 1 swons 2 swons + 1 [P] [pop []] [Ga] [dip swons] . genrec 1 swons 2 swons + 1 [P] [pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] . ifte 1 swons 2 swons + 1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [1] [P] . infra first choice i 1 swons 2 swons + 1 . P [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons + 1 . 1 <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons + 1 1 . <= [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons + True . [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] swaack first choice i 1 swons 2 swons + True [[pop []] [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] 1] . swaack first choice i 1 swons 2 swons + 1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] [True] . first choice i 1 swons 2 swons + 1 [Ga [[P] [pop []] [Ga] [dip swons] genrec] dip swons] [pop []] True . choice i 1 swons 2 swons + 1 [pop []] . i 1 swons 2 swons + 1 . pop [] 1 swons 2 swons + . [] 1 swons 2 swons + [] . 1 swons 2 swons + [] 1 . swons 2 swons + [] 1 . swap cons 2 swons + 1 [] . cons 2 swons + [1] . 2 swons + [1] 2 . swons + [1] 2 . swap cons + 2 [1] . cons + [2 1] . + + + +```python +V('[2 1] [[] =] [pop c ] [uncons swap] [dip F] genrec') +``` + + . [2 1] [[] =] [pop c] [uncons swap] [dip F] genrec + [2 1] . [[] =] [pop c] [uncons swap] [dip F] genrec + [2 1] [[] =] . [pop c] [uncons swap] [dip F] genrec + [2 1] [[] =] [pop c] . [uncons swap] [dip F] genrec + [2 1] [[] =] [pop c] [uncons swap] . [dip F] genrec + [2 1] [[] =] [pop c] [uncons swap] [dip F] . genrec + [2 1] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte + [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[2 1]] [[] =] . infra first choice i + [2 1] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i + [2 1] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i + False . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] swaack first choice i + False [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [2 1]] . swaack first choice i + [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [False] . first choice i + [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] False . choice i + [2 1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . i + [2 1] . uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F + 2 [1] . swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F + [1] 2 . [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F + [1] 2 [[[] =] [pop c] [uncons swap] [dip F] genrec] . dip F + [1] . [[] =] [pop c] [uncons swap] [dip F] genrec 2 F + [1] [[] =] . [pop c] [uncons swap] [dip F] genrec 2 F + [1] [[] =] [pop c] . [uncons swap] [dip F] genrec 2 F + [1] [[] =] [pop c] [uncons swap] . [dip F] genrec 2 F + [1] [[] =] [pop c] [uncons swap] [dip F] . genrec 2 F + [1] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte 2 F + [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[1]] [[] =] . infra first choice i 2 F + [1] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F + [1] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F + False . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] swaack first choice i 2 F + False [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [1]] . swaack first choice i 2 F + [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [False] . first choice i 2 F + [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] False . choice i 2 F + [1] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . i 2 F + [1] . uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F + 1 [] . swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F + [] 1 . [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F 2 F + [] 1 [[[] =] [pop c] [uncons swap] [dip F] genrec] . dip F 2 F + [] . [[] =] [pop c] [uncons swap] [dip F] genrec 1 F 2 F + [] [[] =] . [pop c] [uncons swap] [dip F] genrec 1 F 2 F + [] [[] =] [pop c] . [uncons swap] [dip F] genrec 1 F 2 F + [] [[] =] [pop c] [uncons swap] . [dip F] genrec 1 F 2 F + [] [[] =] [pop c] [uncons swap] [dip F] . genrec 1 F 2 F + [] [[] =] [pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] . ifte 1 F 2 F + [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [[]] [[] =] . infra first choice i 1 F 2 F + [] . [] = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F + [] [] . = [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F + True . [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] swaack first choice i 1 F 2 F + True [[pop c] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] []] . swaack first choice i 1 F 2 F + [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] [True] . first choice i 1 F 2 F + [] [uncons swap [[[] =] [pop c] [uncons swap] [dip F] genrec] dip F] [pop c] True . choice i 1 F 2 F + [] [pop c] . i 1 F 2 F + [] . pop c 1 F 2 F + . c 1 F 2 F + . 0 1 F 2 F + 0 . 1 F 2 F + 0 1 . F 2 F + 0 1 . + 2 F + 1 . 2 F + 1 2 . F + 1 2 . + + 3 . + + +## Appendix - Fun with Symbols + + |[ (c, F), (G, P) ]| == (|c, F|) • [(G, P)] + +["Bananas, Lenses, & Barbed Wire"](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125) + + (|...|) [(...)] [<...>] + +I think they are having slightly too much fun with the symbols. + +"Too much is always better than not enough." + +# Tree with node and list of trees. + + tree = [] | [node [tree*]] + +### `treestep` + + tree z [C] [N] treestep + + + [] z [C] [N] treestep + --------------------------- + z + + + [node [tree*]] z [C] [N] treestep + --------------------------------------- w/ K == z [C] [N] treestep + node N [tree*] [K] map C + +### Derive the recursive form. + K == [not] [pop z] [J] ifte + + + [node [tree*]] J + ------------------------------ + node N [tree*] [K] map C + + + J == .. [N] .. [K] .. [C] .. + + [node [tree*]] uncons [N] dip + node [[tree*]] [N] dip + node N [[tree*]] + + node N [[tree*]] i [K] map + node N [tree*] [K] map + node N [K.tree*] + + J == uncons [N] dip i [K] map [C] i + + K == [not] [pop z] [uncons [N] dip i [K] map [C] i] ifte + K == [not] [pop z] [uncons [N] dip i] [map [C] i] genrec + +### Extract the givens to parameterize the program. + [not] [pop z] [uncons [N] dip unquote] [map [C] i] genrec + [not] [z] [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec + [not] z unit [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec + z [not] swap unit [pop] swoncat [uncons [N] dip unquote] [map [C] i] genrec + \............TS0............/ + z TS0 [uncons [N] dip unquote] [map [C] i] genrec + z [uncons [N] dip unquote] [TS0] dip [map [C] i] genrec + z [[N] dip unquote] [uncons] swoncat [TS0] dip [map [C] i] genrec + z [N] [dip unquote] cons [uncons] swoncat [TS0] dip [map [C] i] genrec + \...........TS1.................../ + z [N] TS1 [TS0] dip [map [C] i] genrec + z [N] [map [C] i] [TS1 [TS0] dip] dip genrec + z [N] [map C ] [TS1 [TS0] dip] dip genrec + z [N] [C] [map] swoncat [TS1 [TS0] dip] dip genrec + z [C] [N] swap [map] swoncat [TS1 [TS0] dip] dip genrec + + TS0 == [not] swap unit [pop] swoncat + TS1 == [dip i] cons [uncons] swoncat + treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec + + [] 0 [C] [N] treestep + --------------------------- + 0 + + + [n [tree*]] 0 [sum +] [] treestep + -------------------------------------------------- + n [tree*] [0 [sum +] [] treestep] map sum + + + +```python +DefinitionWrapper.add_definitions(''' + + TS0 == [not] swap unit [pop] swoncat + TS1 == [dip i] cons [uncons] swoncat +treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec + +''', D) +``` + + +```python +V('[] 0 [sum +] [] treestep') +``` + + . [] 0 [sum +] [] treestep + [] . 0 [sum +] [] treestep + [] 0 . [sum +] [] treestep + [] 0 [sum +] . [] treestep + [] 0 [sum +] [] . treestep + [] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec + [] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec + [] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec + [] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec + [] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec + [] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec + [] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec + [] 0 [] . TS1 [TS0] dip [map sum +] genrec + [] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec + [] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec + [] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec + [] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec + [] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec + [] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec + [] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec + [] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec + [] 0 . TS0 [uncons [] dip i] [map sum +] genrec + [] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec + [] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec + [] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec + [] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec + [] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec + [] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec + [] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec + [] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec + [] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec + [] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte + [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[]] [not] . infra first choice i + [] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] swaack first choice i + True . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] swaack first choice i + True [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] []] . swaack first choice i + [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [True] . first choice i + [] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] True . choice i + [] [pop 0] . i + [] . pop 0 + . 0 + 0 . + + + +```python +V('[23 []] 0 [sum +] [] treestep') +``` + + . [23 []] 0 [sum +] [] treestep + [23 []] . 0 [sum +] [] treestep + [23 []] 0 . [sum +] [] treestep + [23 []] 0 [sum +] . [] treestep + [23 []] 0 [sum +] [] . treestep + [23 []] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec + [23 []] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec + [23 []] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec + [23 []] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec + [23 []] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec + [23 []] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec + [23 []] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec + [23 []] 0 [] . TS1 [TS0] dip [map sum +] genrec + [23 []] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec + [23 []] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec + [23 []] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec + [23 []] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec + [23 []] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec + [23 []] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec + [23 []] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec + [23 []] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec + [23 []] 0 . TS0 [uncons [] dip i] [map sum +] genrec + [23 []] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 []] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 []] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 []] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 []] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 []] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 []] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec + [23 []] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec + [23 []] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec + [23 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec + [23 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec + [23 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec + [23 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte + [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[23 []]] [not] . infra first choice i + [23 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] swaack first choice i + False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] swaack first choice i + False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 []]] . swaack first choice i + [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False] . first choice i + [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i + [23 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i + [23 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + + 23 [] . sum + + 23 [] . 0 [+] catamorphism + + 23 [] 0 . [+] catamorphism + + 23 [] 0 [+] . catamorphism + + 23 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + + 23 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + + 23 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + + 23 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + + 23 [] [[] =] 0 [uncons swap] [+] . hylomorphism + + 23 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + + 23 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + + 23 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + + 23 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + + 23 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + + 23 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + + 23 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + + 23 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + + 23 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + + 23 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + + 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 23] [[] =] . infra first choice i + + 23 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i + + 23 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i + + 23 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i + + 23 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] . swaack first choice i + + 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 23] . first choice i + + 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + + 23 [] [pop 0] . i + + 23 [] . pop 0 + + 23 . 0 + + 23 0 . + + 23 . + + + +```python +V('[23 [[2 []] [3 []]]] 0 [sum +] [] treestep') +``` + + . [23 [[2 []] [3 []]]] 0 [sum +] [] treestep + [23 [[2 []] [3 []]]] . 0 [sum +] [] treestep + [23 [[2 []] [3 []]]] 0 . [sum +] [] treestep + [23 [[2 []] [3 []]]] 0 [sum +] . [] treestep + [23 [[2 []] [3 []]]] 0 [sum +] [] . treestep + [23 [[2 []] [3 []]]] 0 [sum +] [] . swap [map] swoncat [TS1 [TS0] dip] dip genrec + [23 [[2 []] [3 []]]] 0 [] [sum +] . [map] swoncat [TS1 [TS0] dip] dip genrec + [23 [[2 []] [3 []]]] 0 [] [sum +] [map] . swoncat [TS1 [TS0] dip] dip genrec + [23 [[2 []] [3 []]]] 0 [] [sum +] [map] . swap concat [TS1 [TS0] dip] dip genrec + [23 [[2 []] [3 []]]] 0 [] [map] [sum +] . concat [TS1 [TS0] dip] dip genrec + [23 [[2 []] [3 []]]] 0 [] [map sum +] . [TS1 [TS0] dip] dip genrec + [23 [[2 []] [3 []]]] 0 [] [map sum +] [TS1 [TS0] dip] . dip genrec + [23 [[2 []] [3 []]]] 0 [] . TS1 [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [] . [dip i] cons [uncons] swoncat [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [] [dip i] . cons [uncons] swoncat [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [[] dip i] . [uncons] swoncat [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [[] dip i] [uncons] . swoncat [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [[] dip i] [uncons] . swap concat [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [uncons] [[] dip i] . concat [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [uncons [] dip i] . [TS0] dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [uncons [] dip i] [TS0] . dip [map sum +] genrec + [23 [[2 []] [3 []]]] 0 . TS0 [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] 0 . [not] swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] 0 [not] . swap unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] 0 . unit [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] 0 . [] cons [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] 0 [] . cons [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [0] . [pop] swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [0] [pop] . swoncat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [0] [pop] . swap concat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [pop] [0] . concat [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec + [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec + [23 [[2 []] [3 []]]] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte + [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[23 [[2 []] [3 []]]]] [not] . infra first choice i + [23 [[2 []] [3 []]]] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] swaack first choice i + False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] swaack first choice i + False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [23 [[2 []] [3 []]]]] . swaack first choice i + [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False] . first choice i + [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i + [23 [[2 []] [3 []]]] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i + [23 [[2 []] [3 []]]] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[[2 []] [3 []]]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[[2 []] [3 []]]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 . [[[2 []] [3 []]]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[[2 []] [3 []]]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 . [[2 []] [3 []]] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[2 []] [3 []]] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + + 23 [[2 []] [3 []]] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + + 23 [] [[[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first] . infra sum + + . [[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + [[3 []] 23] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + [[3 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . infra first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] . [not] [pop 0] [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [not] . [pop 0] [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[3 []] 23] [not] . infra first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [3 []] 23] . swaack first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False 23] . first choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 [3 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] . sum + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] . 0 [+] catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] 0 . [+] catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] 0 [+] . catamorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 [uncons swap] [+] . hylomorphism + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 3 23] [[] =] . infra first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 3 23] . swaack first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 3 23] . first choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] [pop 0] . i + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] . pop 0 + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 . 0 + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 0 . + [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 . [] swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 23 3 [] . swaack first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + [3 23] . first [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 3 . [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 3 [[2 []] 23] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] infra first [23] swaack sum + + 3 [[2 []] 23] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . infra first [23] swaack sum + + 23 [2 []] . [not] [pop 0] [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum + + 23 [2 []] [not] . [pop 0] [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum + + 23 [2 []] [not] [pop 0] . [uncons [] dip i] [map sum +] genrec [3] swaack first [23] swaack sum + + 23 [2 []] [not] [pop 0] [uncons [] dip i] . [map sum +] genrec [3] swaack first [23] swaack sum + + 23 [2 []] [not] [pop 0] [uncons [] dip i] [map sum +] . genrec [3] swaack first [23] swaack sum + + 23 [2 []] [not] [pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . ifte [3] swaack first [23] swaack sum + + 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [[2 []] 23] [not] . infra first choice i [3] swaack first [23] swaack sum + + 23 [2 []] . not [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] swaack first choice i [3] swaack first [23] swaack sum + + 23 False . [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] swaack first choice i [3] swaack first [23] swaack sum + + 23 False [[pop 0] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [2 []] 23] . swaack first choice i [3] swaack first [23] swaack sum + + 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] [False 23] . first choice i [3] swaack first [23] swaack sum + + 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] [pop 0] False . choice i [3] swaack first [23] swaack sum + + 23 [2 []] [uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum +] . i [3] swaack first [23] swaack sum + + 23 [2 []] . uncons [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 [[]] . [] dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 [[]] [] . dip i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 . [[]] i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 [[]] . i [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 . [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 [] . [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] map sum + [3] swaack first [23] swaack sum + + 23 2 [] [[not] [pop 0] [uncons [] dip i] [map sum +] genrec] . map sum + [3] swaack first [23] swaack sum + + 23 2 [] . sum + [3] swaack first [23] swaack sum + + 23 2 [] . 0 [+] catamorphism + [3] swaack first [23] swaack sum + + 23 2 [] 0 . [+] catamorphism + [3] swaack first [23] swaack sum + + 23 2 [] 0 [+] . catamorphism + [3] swaack first [23] swaack sum + + 23 2 [] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum + + 23 2 [] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 [+] . [uncons swap] swap hylomorphism + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 [+] [uncons swap] . swap hylomorphism + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 [uncons swap] [+] . hylomorphism + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec + [3] swaack first [23] swaack sum + + 23 2 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + [3] swaack first [23] swaack sum + + 23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 2 23] [[] =] . infra first choice i + [3] swaack first [23] swaack sum + + 23 2 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum + + 23 2 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum + + 23 2 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] swaack first choice i + [3] swaack first [23] swaack sum + + 23 2 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 2 23] . swaack first choice i + [3] swaack first [23] swaack sum + + 23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 2 23] . first choice i + [3] swaack first [23] swaack sum + + 23 2 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i + [3] swaack first [23] swaack sum + + 23 2 [] [pop 0] . i + [3] swaack first [23] swaack sum + + 23 2 [] . pop 0 + [3] swaack first [23] swaack sum + + 23 2 . 0 + [3] swaack first [23] swaack sum + + 23 2 0 . + [3] swaack first [23] swaack sum + + 23 2 . [3] swaack first [23] swaack sum + + 23 2 [3] . swaack first [23] swaack sum + + 3 [2 23] . first [23] swaack sum + + 3 2 . [23] swaack sum + + 3 2 [23] . swaack sum + + 23 [2 3] . sum + + 23 [2 3] . 0 [+] catamorphism + + 23 [2 3] 0 . [+] catamorphism + + 23 [2 3] 0 [+] . catamorphism + + 23 [2 3] 0 [+] . [[] =] roll> [uncons swap] swap hylomorphism + + 23 [2 3] 0 [+] [[] =] . roll> [uncons swap] swap hylomorphism + + 23 [2 3] [[] =] 0 [+] . [uncons swap] swap hylomorphism + + 23 [2 3] [[] =] 0 [+] [uncons swap] . swap hylomorphism + + 23 [2 3] [[] =] 0 [uncons swap] [+] . hylomorphism + + 23 [2 3] [[] =] 0 [uncons swap] [+] . [unit [pop] swoncat] dipd [dip] swoncat genrec + + 23 [2 3] [[] =] 0 [uncons swap] [+] [unit [pop] swoncat] . dipd [dip] swoncat genrec + + 23 [2 3] [[] =] 0 . unit [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] 0 . [] cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] 0 [] . cons [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [0] . [pop] swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [0] [pop] . swoncat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [0] [pop] . swap concat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [pop] [0] . concat [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [pop 0] . [uncons swap] [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap] . [+] [dip] swoncat genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap] [+] . [dip] swoncat genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap] [+] [dip] . swoncat genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap] [+] [dip] . swap concat genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap] [dip] [+] . concat genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap] [dip +] . genrec + + 23 [2 3] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte + + 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[2 3] 23] [[] =] . infra first choice i + + 23 [2 3] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i + + 23 [2 3] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i + + 23 False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] swaack first choice i + + 23 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [2 3] 23] . swaack first choice i + + 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False 23] . first choice i + + 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i + + 23 [2 3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i + + 23 [2 3] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + + + 23 2 [3] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + + + 23 [3] 2 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + + + 23 [3] 2 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + + + 23 [3] . [[] =] [pop 0] [uncons swap] [dip +] genrec 2 + + + 23 [3] [[] =] . [pop 0] [uncons swap] [dip +] genrec 2 + + + 23 [3] [[] =] [pop 0] . [uncons swap] [dip +] genrec 2 + + + 23 [3] [[] =] [pop 0] [uncons swap] . [dip +] genrec 2 + + + 23 [3] [[] =] [pop 0] [uncons swap] [dip +] . genrec 2 + + + 23 [3] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 2 + + + 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[3] 23] [[] =] . infra first choice i 2 + + + 23 [3] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + + + 23 [3] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + + + 23 False . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] swaack first choice i 2 + + + 23 False [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [3] 23] . swaack first choice i 2 + + + 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [False 23] . first choice i 2 + + + 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] False . choice i 2 + + + 23 [3] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . i 2 + + + 23 [3] . uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + + + 23 3 [] . swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + + + 23 [] 3 . [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip + 2 + + + 23 [] 3 [[[] =] [pop 0] [uncons swap] [dip +] genrec] . dip + 2 + + + 23 [] . [[] =] [pop 0] [uncons swap] [dip +] genrec 3 + 2 + + + 23 [] [[] =] . [pop 0] [uncons swap] [dip +] genrec 3 + 2 + + + 23 [] [[] =] [pop 0] . [uncons swap] [dip +] genrec 3 + 2 + + + 23 [] [[] =] [pop 0] [uncons swap] . [dip +] genrec 3 + 2 + + + 23 [] [[] =] [pop 0] [uncons swap] [dip +] . genrec 3 + 2 + + + 23 [] [[] =] [pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] . ifte 3 + 2 + + + 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [[] 23] [[] =] . infra first choice i 3 + 2 + + + 23 [] . [] = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + + + 23 [] [] . = [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + + + 23 True . [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] swaack first choice i 3 + 2 + + + 23 True [[pop 0] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [] 23] . swaack first choice i 3 + 2 + + + 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] [True 23] . first choice i 3 + 2 + + + 23 [] [uncons swap [[[] =] [pop 0] [uncons swap] [dip +] genrec] dip +] [pop 0] True . choice i 3 + 2 + + + 23 [] [pop 0] . i 3 + 2 + + + 23 [] . pop 0 3 + 2 + + + 23 . 0 3 + 2 + + + 23 0 . 3 + 2 + + + 23 0 3 . + 2 + + + 23 3 . 2 + + + 23 3 2 . + + + 23 5 . + + 28 . + + + +```python +J('[23 [[2 [[23 [[2 []] [3 []]]][23 [[2 []] [3 []]]]]] [3 [[23 [[2 []] [3 []]]][23 [[2 []] [3 []]]]]]]] 0 [sum +] [] treestep') +``` + + 140 + + + +```python +J('[] [] [unit cons] [23 +] treestep') +``` + + [] + + + +```python +J('[23 []] [] [unit cons] [23 +] treestep') +``` + + [46 []] + + + +```python +J('[23 [[2 []] [3 []]]] [] [unit cons] [23 +] treestep') +``` + + [46 [[25 []] [26 []]]] + + + +```python +define('treemap == [] [unit cons] roll< treestep') +``` + + +```python +J('[23 [[2 []] [3 []]]] [23 +] treemap') +``` + + [46 [[25 []] [26 []]]] + diff --git a/docs/Library Examples.pdf b/docs/Library Examples.pdf new file mode 100644 index 0000000..c534cac Binary files /dev/null and b/docs/Library Examples.pdf differ diff --git a/docs/Newton-Raphson.html b/docs/Newton-Raphson.html new file mode 100644 index 0000000..643821f --- /dev/null +++ b/docs/Newton-Raphson.html @@ -0,0 +1,12129 @@ + + + +Newton-Raphson + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+ +
+
+
+
+

$a_{i+1} = \frac{(a_i+\frac{n}{a_i})}{2}$

+ +
+
+
+
+
+
+
+

Let's define a function that computes the above equation:

+ +
     n a Q
+---------------
+   (a+n/a)/2
+
+n a tuck / + 2 /
+a n a    / + 2 /
+a n/a      + 2 /
+a+n/a        2 /
+(a+n/a)/2
+
+
+

We want it to leave n but replace a, so we execute it with unary:

+ +
Q == [tuck / + 2 /] unary
+ +
+
+
+
+
+
In [2]:
+
+
+
define('Q == [tuck / + 2 /] unary')
+
+ +
+
+
+ +
+
+
+
+
+

And a function to compute the error:

+ +
n a sqr - abs
+|n-a**2|
+
+
+

This should be nullary so as to leave both n and a on the stack below the error.

+ +
err == [sqr - abs] nullary
+ +
+
+
+
+
+
In [3]:
+
+
+
define('err == [sqr - abs] nullary')
+
+ +
+
+
+ +
+
+
+
+
+

Now we can define a recursive program that expects a number n, an initial estimate a, and an epsilon value ε, and that leaves on the stack the square root of n to within the precision of the epsilon value. (Later on we'll refine it to generate the initial estimate and hard-code an epsilon value.)

+ +
n a ε square-root
+-----------------
+      √n
+
+
+
+

If we apply the two functions Q and err defined above we get the next approximation and the error on the stack below the epsilon.

+ +
n a ε [Q err] dip
+n a Q err ε 
+n a'  err ε 
+n a' e    ε
+
+
+

Let's define the recursive function from here. Start with ifte; the predicate and the base case behavior are obvious:

+ +
n a' e ε [<] [popop popd] [J] ifte
+
+
+

Base-case

+ +
n a' e ε popop popd
+n a'           popd
+  a'
+
+
+

The recursive branch is pretty easy. Discard the error and recur.

+ +
w/ K == [<] [popop popd] [J] ifte
+
+n a' e ε J
+n a' e ε popd [Q err] dip [K] i
+n a'   ε      [Q err] dip [K] i
+n a' Q err ε              [K] i
+n a''  e   ε               K
+
+
+

This fragment alone is pretty useful.

+ +
+
+
+
+
+
In [4]:
+
+
+
define('K == [<] [popop popd] [popd [Q err] dip] primrec')
+
+ +
+
+
+ +
+
+
+
In [5]:
+
+
+
J('25 10 0.001 dup K')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5.000000232305737
+
+
+
+ +
+
+ +
+
+
+
In [6]:
+
+
+
J('25 10 0.000001 dup K')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
5.000000000000005
+
+
+
+ +
+
+ +
+
+
+
+
+

So now all we need is a way to generate an initial approximation and an epsilon value:

+ +
square-root == dup 3 / 0.000001 dup K
+ +
+
+
+
+
+
In [7]:
+
+
+
define('square-root == dup 3 / 0.000001 dup K')
+
+ +
+
+
+ +
+
+
+
In [8]:
+
+
+
J('36 square-root')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
6.000000000000007
+
+
+
+ +
+
+ +
+
+
+
In [9]:
+
+
+
J('4895048365636 square-root')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2212475.6192184356
+
+
+
+ +
+
+ +
+
+
+
In [10]:
+
+
+
2212475.6192184356 * 2212475.6192184356
+
+ +
+
+
+ +
+
+ + +
+ +
Out[10]:
+ + + + +
+
4895048365636.0
+
+ +
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/Newton-Raphson.ipynb b/docs/Newton-Raphson.ipynb new file mode 100644 index 0000000..4df7883 --- /dev/null +++ b/docs/Newton-Raphson.ipynb @@ -0,0 +1,266 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Newton's method](https://en.wikipedia.org/wiki/Newton%27s_method)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Cf. [\"Why Functional Programming Matters\" by John Hughes](https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$a_{i+1} = \\frac{(a_i+\\frac{n}{a_i})}{2}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's define a function that computes the above equation:\n", + "\n", + " n a Q\n", + " ---------------\n", + " (a+n/a)/2\n", + "\n", + " n a tuck / + 2 /\n", + " a n a / + 2 /\n", + " a n/a + 2 /\n", + " a+n/a 2 /\n", + " (a+n/a)/2\n", + "\n", + "We want it to leave n but replace a, so we execute it with `unary`:\n", + "\n", + " Q == [tuck / + 2 /] unary" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "define('Q == [tuck / + 2 /] unary')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And a function to compute the error:\n", + "\n", + " n a sqr - abs\n", + " |n-a**2|\n", + "\n", + "This should be `nullary` so as to leave both n and a on the stack below the error.\n", + "\n", + " err == [sqr - abs] nullary" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "define('err == [sqr - abs] nullary')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can define a recursive program that expects a number `n`, an initial estimate `a`, and an epsilon value `ε`, and that leaves on the stack the square root of `n` to within the precision of the epsilon value. (Later on we'll refine it to generate the initial estimate and hard-code an epsilon value.)\n", + "\n", + " n a ε square-root\n", + " -----------------\n", + " √n\n", + "\n", + "\n", + "If we apply the two functions `Q` and `err` defined above we get the next approximation and the error on the stack below the epsilon.\n", + "\n", + " n a ε [Q err] dip\n", + " n a Q err ε \n", + " n a' err ε \n", + " n a' e ε\n", + "\n", + "Let's define the recursive function from here. Start with `ifte`; the predicate and the base case behavior are obvious:\n", + "\n", + " n a' e ε [<] [popop popd] [J] ifte\n", + "\n", + "Base-case\n", + "\n", + " n a' e ε popop popd\n", + " n a' popd\n", + " a'\n", + "\n", + "The recursive branch is pretty easy. Discard the error and recur.\n", + "\n", + " w/ K == [<] [popop popd] [J] ifte\n", + "\n", + " n a' e ε J\n", + " n a' e ε popd [Q err] dip [K] i\n", + " n a' ε [Q err] dip [K] i\n", + " n a' Q err ε [K] i\n", + " n a'' e ε K\n", + "\n", + "This fragment alone is pretty useful." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "define('K == [<] [popop popd] [popd [Q err] dip] primrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5.000000232305737\n" + ] + } + ], + "source": [ + "J('25 10 0.001 dup K')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5.000000000000005\n" + ] + } + ], + "source": [ + "J('25 10 0.000001 dup K')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So now all we need is a way to generate an initial approximation and an epsilon value:\n", + "\n", + " square-root == dup 3 / 0.000001 dup K" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "define('square-root == dup 3 / 0.000001 dup K')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.000000000000007\n" + ] + } + ], + "source": [ + "J('36 square-root')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2212475.6192184356\n" + ] + } + ], + "source": [ + "J('4895048365636 square-root')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4895048365636.0" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "2212475.6192184356 * 2212475.6192184356" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Newton-Raphson.md b/docs/Newton-Raphson.md new file mode 100644 index 0000000..148afab --- /dev/null +++ b/docs/Newton-Raphson.md @@ -0,0 +1,140 @@ + +# [Newton's method](https://en.wikipedia.org/wiki/Newton%27s_method) + + +```python +from notebook_preamble import J, V, define +``` + +Cf. ["Why Functional Programming Matters" by John Hughes](https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf) + +$a_{i+1} = \frac{(a_i+\frac{n}{a_i})}{2}$ + +Let's define a function that computes the above equation: + + n a Q + --------------- + (a+n/a)/2 + + n a tuck / + 2 / + a n a / + 2 / + a n/a + 2 / + a+n/a 2 / + (a+n/a)/2 + +We want it to leave n but replace a, so we execute it with `unary`: + + Q == [tuck / + 2 /] unary + + +```python +define('Q == [tuck / + 2 /] unary') +``` + +And a function to compute the error: + + n a sqr - abs + |n-a**2| + +This should be `nullary` so as to leave both n and a on the stack below the error. + + err == [sqr - abs] nullary + + +```python +define('err == [sqr - abs] nullary') +``` + +Now we can define a recursive program that expects a number `n`, an initial estimate `a`, and an epsilon value `ε`, and that leaves on the stack the square root of `n` to within the precision of the epsilon value. (Later on we'll refine it to generate the initial estimate and hard-code an epsilon value.) + + n a ε square-root + ----------------- + √n + + +If we apply the two functions `Q` and `err` defined above we get the next approximation and the error on the stack below the epsilon. + + n a ε [Q err] dip + n a Q err ε + n a' err ε + n a' e ε + +Let's define the recursive function from here. Start with `ifte`; the predicate and the base case behavior are obvious: + + n a' e ε [<] [popop popd] [J] ifte + +Base-case + + n a' e ε popop popd + n a' popd + a' + +The recursive branch is pretty easy. Discard the error and recur. + + w/ K == [<] [popop popd] [J] ifte + + n a' e ε J + n a' e ε popd [Q err] dip [K] i + n a' ε [Q err] dip [K] i + n a' Q err ε [K] i + n a'' e ε K + +This fragment alone is pretty useful. + + +```python +define('K == [<] [popop popd] [popd [Q err] dip] primrec') +``` + + +```python +J('25 10 0.001 dup K') +``` + + 5.000000232305737 + + + +```python +J('25 10 0.000001 dup K') +``` + + 5.000000000000005 + + +So now all we need is a way to generate an initial approximation and an epsilon value: + + square-root == dup 3 / 0.000001 dup K + + +```python +define('square-root == dup 3 / 0.000001 dup K') +``` + + +```python +J('36 square-root') +``` + + 6.000000000000007 + + + +```python +J('4895048365636 square-root') +``` + + 2212475.6192184356 + + + +```python +2212475.6192184356 * 2212475.6192184356 +``` + + + + + 4895048365636.0 + + diff --git a/docs/Quadratic.html b/docs/Quadratic.html new file mode 100644 index 0000000..f524c57 --- /dev/null +++ b/docs/Quadratic.html @@ -0,0 +1,12111 @@ + + + +Quadratic + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+ +
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+ +
         -b  +/- sqrt(b^2 - 4 * a * c)
+         -----------------------------
+                    2 * a
+ +
+
+
+
+
+
+
+

$\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$

+ +
+
+
+
+
+
+
+

Write a straightforward program with variable names.

+
b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2
+
+
+

Check it.

+
 b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2
+-b     b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2
+-b     b^2   4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2
+-b     b^2 4ac         - sqrt [+] [-] cleave a 2 * [truediv] cons app2
+-b     b^2-4ac           sqrt [+] [-] cleave a 2 * [truediv] cons app2
+-b sqrt(b^2-4ac)              [+] [-] cleave a 2 * [truediv] cons app2
+
+-b -b+sqrt(b^2-4ac)    -b-sqrt(b^2-4ac)    a 2 * [truediv] cons app2
+-b -b+sqrt(b^2-4ac)    -b-sqrt(b^2-4ac)    2a    [truediv] cons app2
+-b -b+sqrt(b^2-4ac)    -b-sqrt(b^2-4ac)    [2a truediv]         app2
+-b -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a
+
+

Codicil

+
-b -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a                          roll< pop
+   -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a -b                             pop
+   -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a
+ +
+
+
+
+
+
+
+

Derive a definition.

+
b neg b           sqr 4 a c        * * - sqrt [+] [-] cleave a       2 * [truediv] cons app2 roll< pop
+b    [neg] dupdip sqr 4 a c        * * - sqrt [+] [-] cleave a       2 * [truediv] cons app2 roll< pop
+b a c    [[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave a       2 * [truediv] cons app2 roll< pop
+b a c a    [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop
+b a c over [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop
+ +
+
+
+
+
+
In [2]:
+
+
+
define('quadratic == over [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop')
+
+ +
+
+
+ +
+
+
+
In [3]:
+
+
+
J('3 1 1 quadratic')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-0.3819660112501051 -2.618033988749895
+
+
+
+ +
+
+ +
+
+
+
+
+

Simplify

We can define a pm plus-or-minus function:

+ +
+
+
+
+
+
In [4]:
+
+
+
define('pm == [+] [-] cleave popdd')
+
+ +
+
+
+ +
+
+
+
+
+

Then quadratic becomes:

+ +
+
+
+
+
+
In [5]:
+
+
+
define('quadratic == over [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2')
+
+ +
+
+
+ +
+
+
+
In [6]:
+
+
+
J('3 1 1 quadratic')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
-0.3819660112501051 -2.618033988749895
+
+
+
+ +
+
+ +
+
+
+
+
+

Define a "native" pm function.

The definition of pm above is pretty elegant, but the implementation takes a lot of steps relative to what it's accomplishing. Since we are likely to use pm more than once in the future, let's write a primitive in Python and add it to the dictionary.

+ +
+
+
+
+
+
In [7]:
+
+
+
from joy.library import SimpleFunctionWrapper
+from notebook_preamble import D
+
+
+@SimpleFunctionWrapper
+def pm(stack):
+    a, (b, stack) = stack
+    p, m, = b + a, b - a
+    return m, (p, stack)
+
+
+D['pm'] = pm
+
+ +
+
+
+ +
+
+
+
+
+

The resulting trace is short enough to fit on a page.

+ +
+
+
+
+
+
In [8]:
+
+
+
V('3 1 1 quadratic')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                    . 3 1 1 quadratic
+                                                  3 . 1 1 quadratic
+                                                3 1 . 1 quadratic
+                                              3 1 1 . quadratic
+                                              3 1 1 . over [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2
+                                            3 1 1 1 . [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2
+  3 1 1 1 [[[neg] dupdip sqr 4] dipd * * - sqrt pm] . dip 2 * [truediv] cons app2
+                                              3 1 1 . [[neg] dupdip sqr 4] dipd * * - sqrt pm 1 2 * [truediv] cons app2
+                         3 1 1 [[neg] dupdip sqr 4] . dipd * * - sqrt pm 1 2 * [truediv] cons app2
+                                                  3 . [neg] dupdip sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                            3 [neg] . dupdip sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                                  3 . neg 3 sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                                 -3 . 3 sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                               -3 3 . sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                               -3 3 . dup mul 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                             -3 3 3 . mul 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                               -3 9 . 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                             -3 9 4 . 1 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                           -3 9 4 1 . 1 * * - sqrt pm 1 2 * [truediv] cons app2
+                                         -3 9 4 1 1 . * * - sqrt pm 1 2 * [truediv] cons app2
+                                           -3 9 4 1 . * - sqrt pm 1 2 * [truediv] cons app2
+                                             -3 9 4 . - sqrt pm 1 2 * [truediv] cons app2
+                                               -3 5 . sqrt pm 1 2 * [truediv] cons app2
+                                -3 2.23606797749979 . pm 1 2 * [truediv] cons app2
+              -0.7639320225002102 -5.23606797749979 . 1 2 * [truediv] cons app2
+            -0.7639320225002102 -5.23606797749979 1 . 2 * [truediv] cons app2
+          -0.7639320225002102 -5.23606797749979 1 2 . * [truediv] cons app2
+            -0.7639320225002102 -5.23606797749979 2 . [truediv] cons app2
+  -0.7639320225002102 -5.23606797749979 2 [truediv] . cons app2
+  -0.7639320225002102 -5.23606797749979 [2 truediv] . app2
+                  [-0.7639320225002102] [2 truediv] . infra first [-5.23606797749979] [2 truediv] infra first
+                                -0.7639320225002102 . 2 truediv [] swaack first [-5.23606797749979] [2 truediv] infra first
+                              -0.7639320225002102 2 . truediv [] swaack first [-5.23606797749979] [2 truediv] infra first
+                                -0.3819660112501051 . [] swaack first [-5.23606797749979] [2 truediv] infra first
+                             -0.3819660112501051 [] . swaack first [-5.23606797749979] [2 truediv] infra first
+                              [-0.3819660112501051] . first [-5.23606797749979] [2 truediv] infra first
+                                -0.3819660112501051 . [-5.23606797749979] [2 truediv] infra first
+            -0.3819660112501051 [-5.23606797749979] . [2 truediv] infra first
+-0.3819660112501051 [-5.23606797749979] [2 truediv] . infra first
+                                  -5.23606797749979 . 2 truediv [-0.3819660112501051] swaack first
+                                -5.23606797749979 2 . truediv [-0.3819660112501051] swaack first
+                                 -2.618033988749895 . [-0.3819660112501051] swaack first
+           -2.618033988749895 [-0.3819660112501051] . swaack first
+           -0.3819660112501051 [-2.618033988749895] . first
+             -0.3819660112501051 -2.618033988749895 . 
+
+
+
+ +
+
+ +
+
+
+ + + + + + diff --git a/docs/Quadratic.ipynb b/docs/Quadratic.ipynb new file mode 100644 index 0000000..9ba1208 --- /dev/null +++ b/docs/Quadratic.ipynb @@ -0,0 +1,275 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# [Quadratic formula](https://en.wikipedia.org/wiki/Quadratic_formula)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Cf. [jp-quadratic.html](http://www.kevinalbrecht.com/code/joy-mirror/jp-quadratic.html)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " -b +/- sqrt(b^2 - 4 * a * c)\n", + " -----------------------------\n", + " 2 * a" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$\\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Write a straightforward program with variable names.\n", + " b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2\n", + "\n", + "### Check it.\n", + "\n", + " b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2\n", + " -b b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2\n", + " -b b^2 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2\n", + " -b b^2 4ac - sqrt [+] [-] cleave a 2 * [truediv] cons app2\n", + " -b b^2-4ac sqrt [+] [-] cleave a 2 * [truediv] cons app2\n", + " -b sqrt(b^2-4ac) [+] [-] cleave a 2 * [truediv] cons app2\n", + "\n", + " -b -b+sqrt(b^2-4ac) -b-sqrt(b^2-4ac) a 2 * [truediv] cons app2\n", + " -b -b+sqrt(b^2-4ac) -b-sqrt(b^2-4ac) 2a [truediv] cons app2\n", + " -b -b+sqrt(b^2-4ac) -b-sqrt(b^2-4ac) [2a truediv] app2\n", + " -b -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a\n", + "### Codicil\n", + " -b -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a roll< pop\n", + " -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a -b pop\n", + " -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Derive a definition.\n", + "\n", + " b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 roll< pop\n", + " b [neg] dupdip sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 roll< pop\n", + " b a c [[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 roll< pop\n", + " b a c a [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop\n", + " b a c over [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "define('quadratic == over [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.3819660112501051 -2.618033988749895\n" + ] + } + ], + "source": [ + "J('3 1 1 quadratic')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Simplify\n", + "We can define a `pm` plus-or-minus function:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "define('pm == [+] [-] cleave popdd')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then `quadratic` becomes:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "define('quadratic == over [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.3819660112501051 -2.618033988749895\n" + ] + } + ], + "source": [ + "J('3 1 1 quadratic')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define a \"native\" `pm` function.\n", + "The definition of `pm` above is pretty elegant, but the implementation takes a lot of steps relative to what it's accomplishing. Since we are likely to use `pm` more than once in the future, let's write a primitive in Python and add it to the dictionary." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.library import SimpleFunctionWrapper\n", + "from notebook_preamble import D\n", + "\n", + "\n", + "@SimpleFunctionWrapper\n", + "def pm(stack):\n", + " a, (b, stack) = stack\n", + " p, m, = b + a, b - a\n", + " return m, (p, stack)\n", + "\n", + "\n", + "D['pm'] = pm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The resulting trace is short enough to fit on a page." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 3 1 1 quadratic\n", + " 3 . 1 1 quadratic\n", + " 3 1 . 1 quadratic\n", + " 3 1 1 . quadratic\n", + " 3 1 1 . over [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2\n", + " 3 1 1 1 . [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2\n", + " 3 1 1 1 [[[neg] dupdip sqr 4] dipd * * - sqrt pm] . dip 2 * [truediv] cons app2\n", + " 3 1 1 . [[neg] dupdip sqr 4] dipd * * - sqrt pm 1 2 * [truediv] cons app2\n", + " 3 1 1 [[neg] dupdip sqr 4] . dipd * * - sqrt pm 1 2 * [truediv] cons app2\n", + " 3 . [neg] dupdip sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " 3 [neg] . dupdip sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " 3 . neg 3 sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 . 3 sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 3 . sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 3 . dup mul 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 3 3 . mul 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 9 . 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 9 4 . 1 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 9 4 1 . 1 * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 9 4 1 1 . * * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 9 4 1 . * - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 9 4 . - sqrt pm 1 2 * [truediv] cons app2\n", + " -3 5 . sqrt pm 1 2 * [truediv] cons app2\n", + " -3 2.23606797749979 . pm 1 2 * [truediv] cons app2\n", + " -0.7639320225002102 -5.23606797749979 . 1 2 * [truediv] cons app2\n", + " -0.7639320225002102 -5.23606797749979 1 . 2 * [truediv] cons app2\n", + " -0.7639320225002102 -5.23606797749979 1 2 . * [truediv] cons app2\n", + " -0.7639320225002102 -5.23606797749979 2 . [truediv] cons app2\n", + " -0.7639320225002102 -5.23606797749979 2 [truediv] . cons app2\n", + " -0.7639320225002102 -5.23606797749979 [2 truediv] . app2\n", + " [-0.7639320225002102] [2 truediv] . infra first [-5.23606797749979] [2 truediv] infra first\n", + " -0.7639320225002102 . 2 truediv [] swaack first [-5.23606797749979] [2 truediv] infra first\n", + " -0.7639320225002102 2 . truediv [] swaack first [-5.23606797749979] [2 truediv] infra first\n", + " -0.3819660112501051 . [] swaack first [-5.23606797749979] [2 truediv] infra first\n", + " -0.3819660112501051 [] . swaack first [-5.23606797749979] [2 truediv] infra first\n", + " [-0.3819660112501051] . first [-5.23606797749979] [2 truediv] infra first\n", + " -0.3819660112501051 . [-5.23606797749979] [2 truediv] infra first\n", + " -0.3819660112501051 [-5.23606797749979] . [2 truediv] infra first\n", + "-0.3819660112501051 [-5.23606797749979] [2 truediv] . infra first\n", + " -5.23606797749979 . 2 truediv [-0.3819660112501051] swaack first\n", + " -5.23606797749979 2 . truediv [-0.3819660112501051] swaack first\n", + " -2.618033988749895 . [-0.3819660112501051] swaack first\n", + " -2.618033988749895 [-0.3819660112501051] . swaack first\n", + " -0.3819660112501051 [-2.618033988749895] . first\n", + " -0.3819660112501051 -2.618033988749895 . \n" + ] + } + ], + "source": [ + "V('3 1 1 quadratic')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Quadratic.md b/docs/Quadratic.md new file mode 100644 index 0000000..b8dfb54 --- /dev/null +++ b/docs/Quadratic.md @@ -0,0 +1,153 @@ + +# [Quadratic formula](https://en.wikipedia.org/wiki/Quadratic_formula) + + +```python +from notebook_preamble import J, V, define +``` + +Cf. [jp-quadratic.html](http://www.kevinalbrecht.com/code/joy-mirror/jp-quadratic.html) + + -b +/- sqrt(b^2 - 4 * a * c) + ----------------------------- + 2 * a + +$\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$ + +# Write a straightforward program with variable names. + b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 + +### Check it. + + b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 + -b b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 + -b b^2 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 + -b b^2 4ac - sqrt [+] [-] cleave a 2 * [truediv] cons app2 + -b b^2-4ac sqrt [+] [-] cleave a 2 * [truediv] cons app2 + -b sqrt(b^2-4ac) [+] [-] cleave a 2 * [truediv] cons app2 + + -b -b+sqrt(b^2-4ac) -b-sqrt(b^2-4ac) a 2 * [truediv] cons app2 + -b -b+sqrt(b^2-4ac) -b-sqrt(b^2-4ac) 2a [truediv] cons app2 + -b -b+sqrt(b^2-4ac) -b-sqrt(b^2-4ac) [2a truediv] app2 + -b -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a +### Codicil + -b -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a roll< pop + -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a -b pop + -b+sqrt(b^2-4ac)/2a -b-sqrt(b^2-4ac)/2a + +# Derive a definition. + + b neg b sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 roll< pop + b [neg] dupdip sqr 4 a c * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 roll< pop + b a c [[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave a 2 * [truediv] cons app2 roll< pop + b a c a [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop + b a c over [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop + + +```python +define('quadratic == over [[[neg] dupdip sqr 4] dipd * * - sqrt [+] [-] cleave] dip 2 * [truediv] cons app2 roll< pop') +``` + + +```python +J('3 1 1 quadratic') +``` + + -0.3819660112501051 -2.618033988749895 + + +### Simplify +We can define a `pm` plus-or-minus function: + + +```python +define('pm == [+] [-] cleave popdd') +``` + +Then `quadratic` becomes: + + +```python +define('quadratic == over [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2') +``` + + +```python +J('3 1 1 quadratic') +``` + + -0.3819660112501051 -2.618033988749895 + + +### Define a "native" `pm` function. +The definition of `pm` above is pretty elegant, but the implementation takes a lot of steps relative to what it's accomplishing. Since we are likely to use `pm` more than once in the future, let's write a primitive in Python and add it to the dictionary. + + +```python +from joy.library import SimpleFunctionWrapper +from notebook_preamble import D + + +@SimpleFunctionWrapper +def pm(stack): + a, (b, stack) = stack + p, m, = b + a, b - a + return m, (p, stack) + + +D['pm'] = pm +``` + +The resulting trace is short enough to fit on a page. + + +```python +V('3 1 1 quadratic') +``` + + . 3 1 1 quadratic + 3 . 1 1 quadratic + 3 1 . 1 quadratic + 3 1 1 . quadratic + 3 1 1 . over [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2 + 3 1 1 1 . [[[neg] dupdip sqr 4] dipd * * - sqrt pm] dip 2 * [truediv] cons app2 + 3 1 1 1 [[[neg] dupdip sqr 4] dipd * * - sqrt pm] . dip 2 * [truediv] cons app2 + 3 1 1 . [[neg] dupdip sqr 4] dipd * * - sqrt pm 1 2 * [truediv] cons app2 + 3 1 1 [[neg] dupdip sqr 4] . dipd * * - sqrt pm 1 2 * [truediv] cons app2 + 3 . [neg] dupdip sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + 3 [neg] . dupdip sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + 3 . neg 3 sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 . 3 sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 3 . sqr 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 3 . dup mul 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 3 3 . mul 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 9 . 4 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 9 4 . 1 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 9 4 1 . 1 * * - sqrt pm 1 2 * [truediv] cons app2 + -3 9 4 1 1 . * * - sqrt pm 1 2 * [truediv] cons app2 + -3 9 4 1 . * - sqrt pm 1 2 * [truediv] cons app2 + -3 9 4 . - sqrt pm 1 2 * [truediv] cons app2 + -3 5 . sqrt pm 1 2 * [truediv] cons app2 + -3 2.23606797749979 . pm 1 2 * [truediv] cons app2 + -0.7639320225002102 -5.23606797749979 . 1 2 * [truediv] cons app2 + -0.7639320225002102 -5.23606797749979 1 . 2 * [truediv] cons app2 + -0.7639320225002102 -5.23606797749979 1 2 . * [truediv] cons app2 + -0.7639320225002102 -5.23606797749979 2 . [truediv] cons app2 + -0.7639320225002102 -5.23606797749979 2 [truediv] . cons app2 + -0.7639320225002102 -5.23606797749979 [2 truediv] . app2 + [-0.7639320225002102] [2 truediv] . infra first [-5.23606797749979] [2 truediv] infra first + -0.7639320225002102 . 2 truediv [] swaack first [-5.23606797749979] [2 truediv] infra first + -0.7639320225002102 2 . truediv [] swaack first [-5.23606797749979] [2 truediv] infra first + -0.3819660112501051 . [] swaack first [-5.23606797749979] [2 truediv] infra first + -0.3819660112501051 [] . swaack first [-5.23606797749979] [2 truediv] infra first + [-0.3819660112501051] . first [-5.23606797749979] [2 truediv] infra first + -0.3819660112501051 . [-5.23606797749979] [2 truediv] infra first + -0.3819660112501051 [-5.23606797749979] . [2 truediv] infra first + -0.3819660112501051 [-5.23606797749979] [2 truediv] . infra first + -5.23606797749979 . 2 truediv [-0.3819660112501051] swaack first + -5.23606797749979 2 . truediv [-0.3819660112501051] swaack first + -2.618033988749895 . [-0.3819660112501051] swaack first + -2.618033988749895 [-0.3819660112501051] . swaack first + -0.3819660112501051 [-2.618033988749895] . first + -0.3819660112501051 -2.618033988749895 . + diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..5f1d4fa --- /dev/null +++ b/docs/README.md @@ -0,0 +1,44 @@ +# Some Jupyter Notebooks and other material. + +All of the notebooks are also available as HTML and Markdown files (generated using nbconvert) so you can view them without running Jupyter. + +In order to run the [Jupyter Notebooks](https://jupyter.org/index.html) you need Jupyter (obviously) and you should install `Joypy`. Here's an example using `virtualenv` from the `joypy/` directory: + + virtualenv --system-site-packages + . .//bin/activate + python ./setup.py install + +Once that's done you should be able to start Jupyter Notebook server with, e.g.: + + python -n notebook + +This starts it using the `virtualenv` version of Python so `joy` will be available. Navigate to the `joypy/docs` directory and the notebooks should be able to import the `notebook_preamble.py` file. + +## Table of Contents + +- 1. Basic Use of Joy in a Notebook +- 2. Library Examples - Short examples of each word in the dictionary. Various formats. +- 3. Developing a Program - Working with the first problem from Project Euler, "Find the sum of all the multiples of 3 or 5 below 1000", several forms of the program are derived. +- 4. Replacing Functions in the Dictionary - Shows the basics of defining new "primitive" functions in Python or as definitions and adding them to the dictionary. +- Factorial Function and Paramorphisms - A basic pattern of recursive control-flow. +- Generator Programs - Using the x combinator to make generator programs which can be used to create unbounded streams of values. +- Hylo-, Ana-, Cata-morphisms - Some basic patterns of recursive control-flow structures. +- Quadratic - Not-so-annoying Quadratic Formula. +- Trees - Ordered Binary Trees in Joy and more recursion. +- Zipper - A preliminary examination of the idea of data-structure "zippers" for traversing datastructures. +- notebook_preamble.py - Imported into notebooks to simplify the preamble code. +- pe1.py pe1.txt - Set up and execute a Joy program for the first problem from Project Euler. The pe1.txt file is the trace. It's 2.8M uncompressed. Compressed with gzip it becomes just 0.12M. +- repl.py - Run this script to start a REPL. Useful for e.g. running Joy code in a debugger. + +## Notes + +One of the things that interests me about Joy is how programming becomes +less about writing code and more about sound reasoning about simple +(almost geometric) programs. Many of the notebooks in this collection +consist of several pages of discussion to arrive at a few lines of Joy +definitions. I think this is a good thing. This is "literate +programming". The "programs" resemble mathematical proofs. You aren't +implementing so much as deriving. The structure of Joy seems to force +you to think clearly about the task in a way that is reliable but +extremely flexible. It feels like a puzzle game, and the puzzles are +often simple, and the solutions build on each other. diff --git a/docs/Trees.html b/docs/Trees.html new file mode 100644 index 0000000..a9614c3 --- /dev/null +++ b/docs/Trees.html @@ -0,0 +1,14521 @@ + + + +Trees + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

Treating Trees

Although any expression in Joy can be considered to describe a tree with the quotes as compound nodes and the non-quote values as leaf nodes, in this page I want to talk about ordered binary trees and how to make and use them.

+

The basic structure, in a crude type notation, is:

+ +
BTree :: [] | [key value BTree BTree]
+
+
+

That says that a BTree is either the empty quote [] or a quote with four items: a key, a value, and two BTrees representing the left and right branches of the tree.

+ +
+
+
+
+
+
+
+

A Function to Traverse this Structure

Let's take a crack at writing a function that can recursively iterate or traverse these trees.

+ +
+
+
+
+
+
+
+

Base case []

The stopping predicate just has to detect the empty list:

+ +
BTree-iter == [not] [E] [R0] [R1] genrec
+
+
+

And since there's nothing at this node, we just pop it:

+ +
BTree-iter == [not] [pop] [R0] [R1] genrec
+ +
+
+
+
+
+
+
+

Node case [key value left right]

Now we need to figure out R0 and R1:

+ +
BTree-iter == [not] [pop] [R0]            [R1] genrec
+           == [not] [pop] [R0 [BTree-iter] R1] ifte
+
+
+

Let's look at it in situ:

+ +
[key value left right] R0 [BTree-iter] R1
+ +
+
+
+
+
+
+
+

Processing the current node.

R0 is almost certainly going to use dup to make a copy of the node and then dip on some function to process the copy with it:

+ +
[key value left right] [F] dupdip                 [BTree-iter] R1
+[key value left right]  F  [key value left right] [BTree-iter] R1
+
+
+

For example, if we're getting all the keys F would be first:

+ +
R0 == [first] dupdip
+
+[key value left right] [first] dupdip                 [BTree-iter] R1
+[key value left right]  first  [key value left right] [BTree-iter] R1
+key                            [key value left right] [BTree-iter] R1
+ +
+
+
+
+
+
+
+

Recur

Now R1 needs to apply [BTree-iter] to left and right. If we drop the key and value from the node using rest twice we are left with an interesting situation:

+ +
key [key value left right] [BTree-iter] R1
+key [key value left right] [BTree-iter] [rest rest] dip
+key [key value left right] rest rest [BTree-iter]
+key [left right] [BTree-iter]
+
+
+

Hmm, will step do?

+ +
key [left right] [BTree-iter] step
+key left BTree-iter [right] [BTree-iter] step
+key left-keys [right] [BTree-iter] step
+key left-keys right BTree-iter
+key left-keys right-keys
+
+
+

Wow. So:

+ +
R1 == [rest rest] dip step
+ +
+
+
+
+
+
+
+

Putting it together

We have:

+ +
BTree-iter == [not] [pop] [[F] dupdip] [[rest rest] dip step] genrec
+
+
+

When I was reading this over I realized rest rest could go in R0:

+ +
BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec
+
+
+

(And [step] genrec is such a cool and suggestive combinator!)

+ +
+
+
+
+
+
+
+

Parameterizing the F per-node processing function.

+
[F] BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec
+
+
+

Working backward:

+ +
[not] [pop] [[F] dupdip rest rest]            [step] genrec
+[not] [pop] [F]       [dupdip rest rest] cons [step] genrec
+[F] [not] [pop] roll< [dupdip rest rest] cons [step] genrec
+
+
+

Ergo:

+ +
BTree-iter == [not] [pop] roll< [dupdip rest rest] cons [step] genrec
+ +
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
In [2]:
+
+
+
define('BTree-iter == [not] [pop] roll< [dupdip rest rest] cons [step] genrec')
+
+ +
+
+
+ +
+
+
+
In [3]:
+
+
+
J('[] [23] BTree-iter')  #  It doesn't matter what F is as it won't be used.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
+
+
+
+ +
+
+ +
+
+
+
In [4]:
+
+
+
J('["tommy" 23 [] []] [first] BTree-iter')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
'tommy'
+
+
+
+ +
+
+ +
+
+
+
In [5]:
+
+
+
J('["tommy" 23 ["richard" 48 [] []] ["jenny" 18 [] []]] [first] BTree-iter')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
'tommy' 'richard' 'jenny'
+
+
+
+ +
+
+ +
+
+
+
In [6]:
+
+
+
J('["tommy" 23 ["richard" 48 [] []] ["jenny" 18 [] []]] [second] BTree-iter')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23 48 18
+
+
+
+ +
+
+ +
+
+
+
+
+

Adding Nodes to the BTree

Let's consider adding nodes to a BTree structure.

+ +
BTree value key BTree-add == BTree
+ +
+
+
+
+
+
+
+

Adding to an empty node.

If the current node is [] then you just return [key value [] []]:

+ +
BTree-add == [popop not] [[pop] dipd BTree-new] [R0] [R1] genrec
+
+
+

Where BTree-new is:

+ +
value key BTree-new == [key value [] []]
+
+value key swap [[] []] cons cons
+key value      [[] []] cons cons
+key      [value [] []]      cons
+     [key value [] []]
+
+BTree-new == swap [[] []] cons cons
+ +
+
+
+
+
+
In [7]:
+
+
+
define('BTree-new == swap [[] []] cons cons')
+
+ +
+
+
+ +
+
+
+
In [8]:
+
+
+
V('"v" "k" BTree-new')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                . 'v' 'k' BTree-new
+            'v' . 'k' BTree-new
+        'v' 'k' . BTree-new
+        'v' 'k' . swap [[] []] cons cons
+        'k' 'v' . [[] []] cons cons
+'k' 'v' [[] []] . cons cons
+'k' ['v' [] []] . cons
+['k' 'v' [] []] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

(As an implementation detail, the [[] []] literal used in the definition of BTree-new will be reused to supply the constant tail for all new nodes produced by it. This is one of those cases where you get amortized storage "for free" by using persistent datastructures. Because the tail, which is ((), ((), ())) in Python, is immutable and embedded in the definition body for BTree-new, all new nodes can reuse it as their own tail without fear that some other code somewhere will change it.)

+ +
+
+
+
+
+
+
+

If the current node isn't empty.

We now have to derive R0 and R1, consider:

+ +
[key_n value_n left right] value key R0 [BTree-add] R1
+
+
+

In this case, there are three possibilites: the key can be greater or less than or equal to the node's key. In two of those cases we will need to apply a copy of BTree-add, so R0 is pretty much out of the picture.

+ +
[R0] == []
+ +
+
+
+
+
+
+
+

A predicate to compare keys.

The first thing we need to do is compare the the key we're adding to see if it is greater than the node key and branch accordingly, although in this case it's easier to write a destructive predicate and then use ifte to apply it nullary:

+ +
[key_n value_n left right] value key [BTree-add] R1
+[key_n value_n left right] value key [BTree-add] [P >] [T] [E] ifte
+
+[key_n value_n left right] value key [BTree-add] P                   >
+[key_n value_n left right] value key [BTree-add] pop roll> pop first >
+[key_n value_n left right] value key                 roll> pop first >
+key [key_n value_n left right] value                 roll> pop first >
+key key_n                                                            >
+Boolean
+
+P > == pop roll> pop first >
+P < == pop roll> pop first <
+P   == pop roll> pop first
+ +
+
+
+
+
+
In [9]:
+
+
+
define('P == pop roll> pop first')
+
+ +
+
+
+ +
+
+
+
In [10]:
+
+
+
V('["k" "v" [] []] "vv" "kk" [0] P >')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                              . ['k' 'v' [] []] 'vv' 'kk' [0] P >
+              ['k' 'v' [] []] . 'vv' 'kk' [0] P >
+         ['k' 'v' [] []] 'vv' . 'kk' [0] P >
+    ['k' 'v' [] []] 'vv' 'kk' . [0] P >
+['k' 'v' [] []] 'vv' 'kk' [0] . P >
+['k' 'v' [] []] 'vv' 'kk' [0] . pop roll> pop first >
+    ['k' 'v' [] []] 'vv' 'kk' . roll> pop first >
+    'kk' ['k' 'v' [] []] 'vv' . pop first >
+         'kk' ['k' 'v' [] []] . first >
+                     'kk' 'k' . >
+                         True . 
+
+
+
+ +
+
+ +
+
+
+
+
+

If the key we're adding is greater than the node's key.

Here the parantheses are meant to signify that the right-hand side (RHS) is not literal, the code in the parentheses is meant to have been evaluated:

+ +
[key_n value_n left right] value key [BTree-add] T == [key_n value_n left (BTree-add key value right)]
+ +
+
+
+
+
+
+
+

Use infra on K.

So how do we do this? We know we're going to want to use infra on some function K that has the key and value to work with, as well as the quoted copy of BTree-add to apply somehow:

+ +
right left value_n key_n value key [BTree-add] K
+    ...
+right value key BTree-add left value_n key_n
+
+
+

Pretty easy:

+ +
right left value_n key_n value key [BTree-add] cons cons dipdd
+right left value_n key_n [value key BTree-add]           dipdd
+right value key BTree-add left value_n key_n
+
+
+

So:

+ +
K == cons cons dipdd
+
+
+

And:

+ +
[key_n value_n left right] [value key [BTree-add] K] infra
+
+
+

Derive T.

So now we're at getting from this to this:

+ +
[key_n value_n left right]  value key [BTree-add] T
+    ...
+[key_n value_n left right] [value key [BTree-add] K] infra
+
+
+

And so T is just:

+ +
value key [BTree-add] T == [value key [BTree-add] K]                infra
+                      T == [                      K] cons cons cons infra
+ +
+
+
+
+
+
In [11]:
+
+
+
define('K == cons cons dipdd')
+define('T == [K] cons cons cons infra')
+
+ +
+
+
+ +
+
+
+
In [12]:
+
+
+
V('"r" "l" "v" "k" "vv" "kk" [0] K')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                              . 'r' 'l' 'v' 'k' 'vv' 'kk' [0] K
+                          'r' . 'l' 'v' 'k' 'vv' 'kk' [0] K
+                      'r' 'l' . 'v' 'k' 'vv' 'kk' [0] K
+                  'r' 'l' 'v' . 'k' 'vv' 'kk' [0] K
+              'r' 'l' 'v' 'k' . 'vv' 'kk' [0] K
+         'r' 'l' 'v' 'k' 'vv' . 'kk' [0] K
+    'r' 'l' 'v' 'k' 'vv' 'kk' . [0] K
+'r' 'l' 'v' 'k' 'vv' 'kk' [0] . K
+'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipdd
+'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipdd
+'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipdd
+                          'r' . 'vv' 'kk' 0 'l' 'v' 'k'
+                     'r' 'vv' . 'kk' 0 'l' 'v' 'k'
+                'r' 'vv' 'kk' . 0 'l' 'v' 'k'
+              'r' 'vv' 'kk' 0 . 'l' 'v' 'k'
+          'r' 'vv' 'kk' 0 'l' . 'v' 'k'
+      'r' 'vv' 'kk' 0 'l' 'v' . 'k'
+  'r' 'vv' 'kk' 0 'l' 'v' 'k' . 
+
+
+
+ +
+
+ +
+
+
+
In [13]:
+
+
+
V('["k" "v" "l" "r"] "vv" "kk" [0] T')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                    . ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] T
+                  ['k' 'v' 'l' 'r'] . 'vv' 'kk' [0] T
+             ['k' 'v' 'l' 'r'] 'vv' . 'kk' [0] T
+        ['k' 'v' 'l' 'r'] 'vv' 'kk' . [0] T
+    ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . T
+    ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . [K] cons cons cons infra
+['k' 'v' 'l' 'r'] 'vv' 'kk' [0] [K] . cons cons cons infra
+['k' 'v' 'l' 'r'] 'vv' 'kk' [[0] K] . cons cons infra
+['k' 'v' 'l' 'r'] 'vv' ['kk' [0] K] . cons infra
+['k' 'v' 'l' 'r'] ['vv' 'kk' [0] K] . infra
+                    'r' 'l' 'v' 'k' . 'vv' 'kk' [0] K [] swaack
+               'r' 'l' 'v' 'k' 'vv' . 'kk' [0] K [] swaack
+          'r' 'l' 'v' 'k' 'vv' 'kk' . [0] K [] swaack
+      'r' 'l' 'v' 'k' 'vv' 'kk' [0] . K [] swaack
+      'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipdd [] swaack
+      'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipdd [] swaack
+      'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipdd [] swaack
+                                'r' . 'vv' 'kk' 0 'l' 'v' 'k' [] swaack
+                           'r' 'vv' . 'kk' 0 'l' 'v' 'k' [] swaack
+                      'r' 'vv' 'kk' . 0 'l' 'v' 'k' [] swaack
+                    'r' 'vv' 'kk' 0 . 'l' 'v' 'k' [] swaack
+                'r' 'vv' 'kk' 0 'l' . 'v' 'k' [] swaack
+            'r' 'vv' 'kk' 0 'l' 'v' . 'k' [] swaack
+        'r' 'vv' 'kk' 0 'l' 'v' 'k' . [] swaack
+     'r' 'vv' 'kk' 0 'l' 'v' 'k' [] . swaack
+      ['k' 'v' 'l' 0 'kk' 'vv' 'r'] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

If the key we're adding is less than the node's key.

This is very very similar to the above:

+ +
[key_n value_n left right] value key [BTree-add] E
+[key_n value_n left right] value key [BTree-add] [P <] [Te] [Ee] ifte
+
+
+

In this case Te works that same as T but on the left child tree instead of the right, so the only difference is that it must use dipd instead of dipdd:

+ +
Te == [cons cons dipd] cons cons cons infra
+
+
+

This suggests an alternate factorization:

+ +
ccons == cons cons
+T == [ccons dipdd] ccons cons infra
+Te == [ccons dipd] ccons cons infra
+
+
+

But whatever.

+ +
+
+
+
+
+
In [14]:
+
+
+
define('Te == [cons cons dipd] cons cons cons infra')
+
+ +
+
+
+ +
+
+
+
In [15]:
+
+
+
V('["k" "v" "l" "r"] "vv" "kk" [0] Te')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                 . ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] Te
+                               ['k' 'v' 'l' 'r'] . 'vv' 'kk' [0] Te
+                          ['k' 'v' 'l' 'r'] 'vv' . 'kk' [0] Te
+                     ['k' 'v' 'l' 'r'] 'vv' 'kk' . [0] Te
+                 ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . Te
+                 ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . [cons cons dipd] cons cons cons infra
+['k' 'v' 'l' 'r'] 'vv' 'kk' [0] [cons cons dipd] . cons cons cons infra
+['k' 'v' 'l' 'r'] 'vv' 'kk' [[0] cons cons dipd] . cons cons infra
+['k' 'v' 'l' 'r'] 'vv' ['kk' [0] cons cons dipd] . cons infra
+['k' 'v' 'l' 'r'] ['vv' 'kk' [0] cons cons dipd] . infra
+                                 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] cons cons dipd [] swaack
+                            'r' 'l' 'v' 'k' 'vv' . 'kk' [0] cons cons dipd [] swaack
+                       'r' 'l' 'v' 'k' 'vv' 'kk' . [0] cons cons dipd [] swaack
+                   'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipd [] swaack
+                   'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipd [] swaack
+                   'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipd [] swaack
+                                         'r' 'l' . 'vv' 'kk' 0 'v' 'k' [] swaack
+                                    'r' 'l' 'vv' . 'kk' 0 'v' 'k' [] swaack
+                               'r' 'l' 'vv' 'kk' . 0 'v' 'k' [] swaack
+                             'r' 'l' 'vv' 'kk' 0 . 'v' 'k' [] swaack
+                         'r' 'l' 'vv' 'kk' 0 'v' . 'k' [] swaack
+                     'r' 'l' 'vv' 'kk' 0 'v' 'k' . [] swaack
+                  'r' 'l' 'vv' 'kk' 0 'v' 'k' [] . swaack
+                   ['k' 'v' 0 'kk' 'vv' 'l' 'r'] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

Else the keys must be equal.

This means we must find:

+ +
[key_n value_n left right] value key [BTree-add] Ee
+    ...
+[key value left right]
+
+
+

This is another easy one:

+ +
Ee == pop swap roll< rest rest cons cons
+
+[key_n value_n left right] value key [BTree-add] pop swap roll< rest rest cons cons
+[key_n value_n left right] value key                 swap roll< rest rest cons cons
+[key_n value_n left right] key value                      roll< rest rest cons cons
+key value [key_n value_n left right]                            rest rest cons cons
+key value [              left right]                                      cons cons
+          [key   value   left right]
+ +
+
+
+
+
+
In [16]:
+
+
+
define('Ee == pop swap roll< rest rest cons cons')
+
+ +
+
+
+ +
+
+
+
In [17]:
+
+
+
V('["k" "v" "l" "r"] "vv" "k" [0] Ee')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                               . ['k' 'v' 'l' 'r'] 'vv' 'k' [0] Ee
+             ['k' 'v' 'l' 'r'] . 'vv' 'k' [0] Ee
+        ['k' 'v' 'l' 'r'] 'vv' . 'k' [0] Ee
+    ['k' 'v' 'l' 'r'] 'vv' 'k' . [0] Ee
+['k' 'v' 'l' 'r'] 'vv' 'k' [0] . Ee
+['k' 'v' 'l' 'r'] 'vv' 'k' [0] . pop swap roll< rest rest cons cons
+    ['k' 'v' 'l' 'r'] 'vv' 'k' . swap roll< rest rest cons cons
+    ['k' 'v' 'l' 'r'] 'k' 'vv' . roll< rest rest cons cons
+    'k' 'vv' ['k' 'v' 'l' 'r'] . rest rest cons cons
+        'k' 'vv' ['v' 'l' 'r'] . rest cons cons
+            'k' 'vv' ['l' 'r'] . cons cons
+            'k' ['vv' 'l' 'r'] . cons
+            ['k' 'vv' 'l' 'r'] . 
+
+
+
+ +
+
+ +
+
+
+
In [18]:
+
+
+
define('E == [P <] [Te] [Ee] ifte')
+
+ +
+
+
+ +
+
+
+
+
+

Now we can define BTree-add

+
BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec
+
+
+

Putting it all together:

+ +
BTree-new == swap [[] []] cons cons
+P == pop roll> pop first
+T == [cons cons dipdd] cons cons cons infra
+Te == [cons cons dipd] cons cons cons infra
+Ee == pop swap roll< rest rest cons cons
+E == [P <] [Te] [Ee] ifte
+
+BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec
+ +
+
+
+
+
+
In [19]:
+
+
+
define('BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec')
+
+ +
+
+
+ +
+
+
+
In [20]:
+
+
+
J('[] 23 "b" BTree-add')  # Initial
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 23 [] []]
+
+
+
+ +
+
+ +
+
+
+
In [21]:
+
+
+
J('["b" 23 [] []] 88 "c" BTree-add')  # Less than
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 23 [] ['c' 88 [] []]]
+
+
+
+ +
+
+ +
+
+
+
In [22]:
+
+
+
J('["b" 23 [] []] 88 "a" BTree-add')  # Greater than
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 23 ['a' 88 [] []] []]
+
+
+
+ +
+
+ +
+
+
+
In [23]:
+
+
+
J('["b" 23 [] []] 88 "b" BTree-add')  # Equal to
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 88 [] []]
+
+
+
+ +
+
+ +
+
+
+
In [24]:
+
+
+
J('[] 23 "a" BTree-add 88 "b" BTree-add 44 "c" BTree-add')  # Series.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['a' 23 [] ['b' 88 [] ['c' 44 [] []]]]
+
+
+
+ +
+
+ +
+
+
+
+
+

We can use this to make a set-like datastructure by just setting values to e.g. 0 and ignoring them. It's set-like in that duplicate items added to it will only occur once within it, and we can query it in $O(\log_2 N)$ time.

+ +
+
+
+
+
+
In [25]:
+
+
+
J('[] [3 9 5 2 8 6 7 8 4] [0 swap BTree-add] step')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]]
+
+
+
+ +
+
+ +
+
+
+
In [26]:
+
+
+
define('to_set == [] swap [0 swap BTree-add] step')
+
+ +
+
+
+ +
+
+
+
In [27]:
+
+
+
J('[3 9 5 2 8 6 7 8 4] to_set')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]]
+
+
+
+ +
+
+ +
+
+
+
+
+

And with that we can write a little program to remove duplicate items from a list.

+ +
+
+
+
+
+
In [28]:
+
+
+
define('unique == [to_set [first] BTree-iter] cons run')
+
+ +
+
+
+ +
+
+
+
In [29]:
+
+
+
J('[3 9 3 5 2 9 8 8 8 6 2 7 8 4 3] unique')  # Filter duplicate items.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[7 6 8 4 5 9 2 3]
+
+
+
+ +
+
+ +
+
+
+
+
+

cmp combinator

Instead of all this mucking about with nested ifte let's just go whole hog and define cmp which takes two values and three quoted programs on the stack and runs one of the three depending on the results of comparing the two values:

+ +
   a b [G] [E] [L] cmp
+------------------------- a > b
+        G
+
+   a b [G] [E] [L] cmp
+------------------------- a = b
+            E
+
+   a b [G] [E] [L] cmp
+------------------------- a < b
+                L
+
+
+

We need a new non-destructive predicate P:

+ +
[key_n value_n left right] value key [BTree-add] P
+[key_n value_n left right] value key [BTree-add] over [Q] nullary
+[key_n value_n left right] value key [BTree-add] key  [Q] nullary
+[key_n value_n left right] value key [BTree-add] key   Q
+[key_n value_n left right] value key [BTree-add] key   popop popop first
+[key_n value_n left right] value key                         popop first
+[key_n value_n left right]                                         first
+ key_n
+[key_n value_n left right] value key [BTree-add] key  [Q] nullary
+[key_n value_n left right] value key [BTree-add] key key_n
+
+P == over [popop popop first] nullary
+
+
+

Here are the definitions again, pruned and renamed in some cases:

+ +
BTree-new == swap [[] []] cons cons
+P == over [popop popop first] nullary
+T> == [cons cons dipdd] cons cons cons infra
+T< == [cons cons dipd] cons cons cons infra
+E == pop swap roll< rest rest cons cons
+
+
+

Using cmp to simplify our code above at R1:

+ +
[key_n value_n left right] value key [BTree-add] R1
+[key_n value_n left right] value key [BTree-add] P [T>] [E] [T<] cmp
+
+
+

The line above becomes one of the three lines below:

+ +
[key_n value_n left right] value key [BTree-add] T>
+[key_n value_n left right] value key [BTree-add] E
+[key_n value_n left right] value key [BTree-add] T<
+
+
+

The definition is a little longer but, I think, more elegant and easier to understand:

+ +
BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T>] [E] [T<] cmp] genrec
+ +
+
+
+
+
+
In [30]:
+
+
+
from joy.library import FunctionWrapper
+from joy.utils.stack import pushback
+from notebook_preamble import D
+
+
+@FunctionWrapper
+def cmp_(stack, expression, dictionary):
+    L, (E, (G, (b, (a, stack)))) = stack
+    expression = pushback(G if a > b else L if a < b else E, expression)
+    return stack, expression, dictionary
+
+
+D['cmp'] = cmp_
+
+ +
+
+
+ +
+
+
+
In [31]:
+
+
+
J("1 0 ['G'] ['E'] ['L'] cmp")
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
'G'
+
+
+
+ +
+
+ +
+
+
+
In [32]:
+
+
+
J("1 1 ['G'] ['E'] ['L'] cmp")
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
'E'
+
+
+
+ +
+
+ +
+
+
+
In [33]:
+
+
+
J("0 1 ['G'] ['E'] ['L'] cmp")
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
'L'
+
+
+
+ +
+
+ +
+
+
+
In [34]:
+
+
+
from joy.library import DefinitionWrapper
+
+
+DefinitionWrapper.add_definitions('''
+
+P == over [popop popop first] nullary
+T> == [cons cons dipdd] cons cons cons infra
+T< == [cons cons dipd] cons cons cons infra
+E == pop swap roll< rest rest cons cons
+
+BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T>] [E] [T<] cmp] genrec
+
+''', D)
+
+ +
+
+
+ +
+
+
+
In [35]:
+
+
+
J('[] 23 "b" BTree-add')  # Initial
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 23 [] []]
+
+
+
+ +
+
+ +
+
+
+
In [36]:
+
+
+
J('["b" 23 [] []] 88 "c" BTree-add')  # Less than
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 23 [] ['c' 88 [] []]]
+
+
+
+ +
+
+ +
+
+
+
In [37]:
+
+
+
J('["b" 23 [] []] 88 "a" BTree-add')  # Greater than
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 23 ['a' 88 [] []] []]
+
+
+
+ +
+
+ +
+
+
+
In [38]:
+
+
+
J('["b" 23 [] []] 88 "b" BTree-add')  # Equal to
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['b' 88 [] []]
+
+
+
+ +
+
+ +
+
+
+
In [39]:
+
+
+
J('[] 23 "a" BTree-add 88 "b" BTree-add 44 "c" BTree-add')  # Series.
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
['a' 23 [] ['b' 88 [] ['c' 44 [] []]]]
+
+
+
+ +
+
+ +
+
+
+
+
+

Factoring and naming

It may seem silly, but a big part of programming in Forth (and therefore in Joy) is the idea of small, highly-factored definitions. If you choose names carefully the resulting definitions can take on a semantic role.

+ +
get-node-key == popop popop first
+remove-key-and-value-from-node == rest rest
+pack-key-and-value == cons cons
+prep-new-key-and-value == pop swap roll<
+pack-and-apply == [pack-key-and-value] swoncat cons pack-key-and-value infra
+
+BTree-new == swap [[] []] pack-key-and-value
+P == over [get-node-key] nullary
+T> == [dipdd] pack-and-apply
+T< == [dipd] pack-and-apply
+E == prep-new-key-and-value remove-key-and-value-from-node pack-key-and-value
+ +
+
+
+
+
+
+
+

A Version of BTree-iter that does In-Order Traversal

+
+
+
+
+
+
+
+

If you look back to the non-empty case of the BTree-iter function we can design a varient that first processes the left child, then the current node, then the right child. This will allow us to traverse the tree in sort order.

+ +
BTree-iter-order == [not] [pop] [R0 [BTree-iter] R1] ifte
+
+
+

To define R0 and R1 it helps to look at them as they will appear when they run:

+ +
[key value left right] R0 [BTree-iter-order] R1
+ +
+
+
+
+
+
+
+

Process the left child.

Staring at this for a bit suggests dup third to start:

+ +
[key value left right] R0        [BTree-iter-order] R1
+[key value left right] dup third [BTree-iter-order] R1
+[key value left right] left      [BTree-iter-order] R1
+
+
+

Now maybe:

+ +
[key value left right] left [BTree-iter-order] [cons dip] dupdip
+[key value left right] left [BTree-iter-order] cons dip [BTree-iter-order]
+[key value left right] [left BTree-iter-order]      dip [BTree-iter-order]
+left BTree-iter-order [key value left right]            [BTree-iter-order]
+ +
+
+
+
+
+
+
+

Process the current node.

So far, so good. Now we need to process the current node's values:

+ +
left BTree-iter-order [key value left right] [BTree-iter-order] [[F] dupdip] dip
+left BTree-iter-order [key value left right] [F] dupdip [BTree-iter-order]
+left BTree-iter-order [key value left right] F [key value left right] [BTree-iter-order]
+
+
+

If F needs items from the stack below the left stuff it should have cons'd them before beginning maybe? For functions like first it works fine as-is.

+ +
left BTree-iter-order [key value left right] first [key value left right] [BTree-iter-order]
+left BTree-iter-order key [key value left right] [BTree-iter-order]
+ +
+
+
+
+
+
+
+

Process the right child.

First ditch the rest of the node and get the right child:

+ +
left BTree-iter-order key [key value left right] [BTree-iter-order] [rest rest rest first] dip
+left BTree-iter-order key right [BTree-iter-order]
+
+
+

Then, of course, we just need i to run BTree-iter-order on the right side:

+ +
left BTree-iter-order key right [BTree-iter-order] i
+left BTree-iter-order key right BTree-iter-order
+ +
+
+
+
+
+
+
+

Defining BTree-iter-order

The result is a little awkward:

+ +
R1 == [cons dip] dupdip [[F] dupdip] dip [rest rest rest first] dip i
+
+
+

Let's do a little semantic factoring:

+ +
fourth == rest rest rest first
+
+proc_left == [cons dip] dupdip
+proc_current == [[F] dupdip] dip
+proc_right == [fourth] dip i
+
+BTree-iter-order == [not] [pop] [dup third] [proc_left proc_current proc_right] genrec
+
+
+

Now we can sort sequences.

+ +
+
+
+
+
+
In [40]:
+
+
+
define('BTree-iter-order == [not] [pop] [dup third] [[cons dip] dupdip [[first] dupdip] dip [rest rest rest first] dip i] genrec')
+
+ +
+
+
+ +
+
+
+
In [41]:
+
+
+
J('[3 9 5 2 8 6 7 8 4] to_set BTree-iter-order')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2 3 4 5 6 7 8 9
+
+
+
+ +
+
+ +
+
+
+
+
+

Getting values by key

Let's derive a function that accepts a tree and a key and returns the value associated with that key.

+ +
   tree key BTree-get
+------------------------
+        value
+ +
+
+
+
+
+
+
+

The base case []

As before, the stopping predicate just has to detect the empty list:

+ +
BTree-get == [pop not] [E] [R0] [R1] genrec
+
+
+

But what do we do if the key isn't in the tree? In Python we might raise a KeyError but I'd like to avoid exceptions in Joy if possible, and here I think it's possible. (Division by zero is an example of where I think it's probably better to let Python crash Joy. Sometimes the machinery fails and you have to "stop the line", methinks.)

+

Let's pass the buck to the caller by making the base case a given, you have to decide for yourself what [E] should be.

+ +
   tree key [E] BTree-get
+---------------------------- key in tree
+           value
+
+   tree key [E] BTree-get
+---------------------------- key not in tree
+         tree key E
+
+
+

Now we define:

+ +
BTree-get == [pop not] swap [R0] [R1] genrec
+
+
+

Note that this BTree-get creates a slightly different function than itself and that function does the actual recursion. This kind of higher-level programming is unusual in most languages but natural in Joy.

+ +
tree key [E] [pop not] swap [R0] [R1] genrec
+tree key [pop not] [E] [R0] [R1] genrec
+
+
+

The anonymous specialized recursive function that will do the real work.

+ +
[pop not] [E] [R0] [R1] genrec
+ +
+
+
+
+
+
+
+

Node case [key value left right]

Now we need to figure out R0 and R1:

+ +
[key value left right] key R0 [BTree-get] R1
+
+
+

We want to compare the search key with the key in the node, and if they are the same return the value and if they differ then recurse on one of the child nodes. So it's very similar to the above funtion, with [R0] == [] and R1 == P [T>] [E] [T<] cmp:

+ +
[key value left right] key [BTree-get] P [T>] [E] [T<] cmp
+
+
+

So:

+ +
get-node-key == pop popop first
+P == over [get-node-key] nullary
+
+
+

The only difference is that get-node-key does one less pop because there's no value to discard. Now we have to derive the branches:

+ +
[key_n value_n left right] key [BTree-get] T>
+[key_n value_n left right] key [BTree-get] E
+[key_n value_n left right] key [BTree-get] T<
+
+
+

The cases of T> and T< are similar to above but instead of using infra we have to discard the rest of the structure:

+ +
[key_n value_n left right] key [BTree-get] T> == right key BTree-get
+[key_n value_n left right] key [BTree-get] T< == left key BTree-get
+
+
+

So:

+ +
T> == [fourth] dipd i
+T< == [third] dipd i
+
+
+

E.g.:

+ +
[key_n value_n left right]        key [BTree-get] [fourth] dipd i
+[key_n value_n left right] fourth key [BTree-get]               i
+                    right         key [BTree-get]               i
+                    right         key  BTree-get
+
+
+

And:

+ +
[key_n value_n left right] key [BTree-get] E == value_n
+
+E == popop second
+
+
+

So:

+ +
fourth == rest rest rest first
+get-node-key == pop popop first
+P == over [get-node-key] nullary
+T> == [fourth] dipd i
+T< == [third] dipd i
+E == popop second
+
+BTree-get == [pop not] swap [] [P [T>] [E] [T<] cmp] genrec
+ +
+
+
+
+
+
In [42]:
+
+
+
# I don't want to deal with name conflicts with the above so I'm inlining everything here.
+# The original Joy system has "hide" which is a meta-command which allows you to use named
+# definitions that are only in scope for a given definition.  I don't want to implement
+# that (yet) so...
+
+
+define('''
+BTree-get == [pop not] swap [] [
+  over [pop popop first] nullary
+  [[rest rest rest first] dipd i]
+  [popop second]
+  [[third] dipd i]
+  cmp
+  ] genrec
+''')
+
+ +
+
+
+ +
+
+
+
In [43]:
+
+
+
J('[] "gary" [popop "err"] BTree-get')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
'err'
+
+
+
+ +
+
+ +
+
+
+
In [44]:
+
+
+
J('["gary" 23 [] []] "gary" [popop "err"] BTree-get')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23
+
+
+
+ +
+
+ +
+
+
+
In [45]:
+
+
+
J('''
+
+    [] [[0 'a'] [1 'b'] [2 'c']] [i BTree-add] step
+
+    'c' [popop 'not found'] BTree-get
+
+''')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
2
+
+
+
+ +
+
+ +
+
+
+
+
+

TODO: BTree-delete

Then, once we have add, get, and delete we can see about abstracting them.

+ +
   tree key [E] BTree-delete
+---------------------------- key in tree
+       tree
+
+   tree key [E] BTree-delete
+---------------------------- key not in tree
+         tree key E
+ +
+
+
+
+
+
+
+

So:

+ +
BTree-delete == [pop not] [] [R0] [R1] genrec
+
+
+

And:

+ +
[n_key n_value left right] key R0              [BTree-get] R1
+[n_key n_value left right] key [dup first] dip [BTree-get] R1
+[n_key n_value left right] n_key key           [BTree-get] R1
+[n_key n_value left right] n_key key           [BTree-get] roll> [T>] [E] [T<] cmp
+[n_key n_value left right] [BTree-get] n_key key                 [T>] [E] [T<] cmp
+
+BTree-delete == [pop not] swap [[dup first] dip] [roll> [T>] [E] [T<] cmp] genrec
+ +
+
+
+
+
+
+
+ +
[n_key n_value left right] [BTree-get] T>
+[n_key n_value left right] [BTree-get] E
+[n_key n_value left right] [BTree-get] T<
+ +
+
+
+
+
+
+
+ +
[n_key n_value left right] [BTree-get] 
+[n_key n_value left right] [BTree-get] E
+[n_key n_value left right] [BTree-get] T<
+ +
+
+
+
+
+
+
+

Tree with node and list of trees.

Let's consider a tree structure, similar to one described "Why functional programming matters" by John Hughes, that consists of a node value and a sequence of zero or more child trees. (The asterisk is meant to indicate the Kleene star.)

+ +
tree = [] | [node [tree*]]
+ +
+
+
+
+
+
+
+

treestep

In the spirit of step we are going to define a combinator treestep which expects a tree and three additional items: a base-case value z, and two quoted programs [C] and [N].

+ +
tree z [C] [N] treestep
+
+
+

If the current tree node is empty then just leave z on the stack in lieu:

+ +
   [] z [C] [N] treestep
+---------------------------
+      z
+
+
+

Otherwise, evaluate N on the node value, map the whole function (abbreviated here as k) over the child trees recursively, and then combine the result with C.

+ +
   [node [tree*]] z [C] [N] treestep
+--------------------------------------- w/ K == z [C] [N] treestep
+       node N [tree*] [K] map C
+ +
+
+
+
+
+
+
+

Derive the recursive form.

Since this is a recursive function, we can begin to derive it by finding the ifte stage that genrec will produce. The predicate and base-case functions are trivial, so we just have to derive J.

+ +
K == [not] [pop z] [J] ifte
+
+
+

The behavior of J is to accept a (non-empty) tree node and arrive at the desired outcome.

+ +
       [node [tree*]] J
+------------------------------
+   node N [tree*] [K] map C
+
+
+

So J will have some form like:

+ +
J == .. [N] .. [K] .. [C] ..
+
+
+

Let's dive in. First, unquote the node and dip N.

+ +
[node [tree*]] i [N] dip
+ node [tree*]    [N] dip
+node N [tree*]
+
+
+

Next, map K over teh child trees and combine with C.

+ +
node N [tree*] [K] map C
+node N [tree*] [K] map C
+node N [K.tree*]       C
+
+
+

So:

+ +
J == i [N] dip [K] map C
+
+
+

Plug it in and convert to genrec:

+ +
K == [not] [pop z] [i [N] dip [K] map C] ifte
+K == [not] [pop z] [i [N] dip]   [map C] genrec
+ +
+
+
+
+
+
+
+

Extract the givens to parameterize the program.

+
[not] [pop z] [i [N] dip]   [map C] genrec
+
+[not] [pop z]                   [i [N] dip] [map C] genrec
+[not] [z]         [pop] swoncat [i [N] dip] [map C] genrec
+[not]  z     unit [pop] swoncat [i [N] dip] [map C] genrec
+z [not] swap unit [pop] swoncat [i [N] dip] [map C] genrec
+  \  .........TS0............./
+   \/
+z TS0 [i [N] dip]                       [map C] genrec
+z     [i [N] dip]             [TS0] dip [map C] genrec
+z       [[N] dip] [i] swoncat [TS0] dip [map C] genrec
+z  [N] [dip] cons [i] swoncat [TS0] dip [map C] genrec
+       \  ......TS1........./
+        \/
+z [N] TS1 [TS0] dip [map C]                      genrec
+z [N]               [map C]  [TS1 [TS0] dip] dip genrec
+z [N] [C]      [map] swoncat [TS1 [TS0] dip] dip genrec
+z [C] [N] swap [map] swoncat [TS1 [TS0] dip] dip genrec
+
+
+

The givens are all to the left so we have our definition.

+ +
+
+
+
+
+
+
+

Define treestep

+
     TS0 == [not] swap unit [pop] swoncat
+     TS1 == [dip] cons [i] swoncat
+treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec
+ +
+
+
+
+
+
In [46]:
+
+
+
DefinitionWrapper.add_definitions('''
+
+     TS0 == [not] swap unit [pop] swoncat
+     TS1 == [dip] cons [i] swoncat
+treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec
+
+''', D)
+
+ +
+
+
+ +
+
+
+
+
+ +
   [] 0 [C] [N] treestep
+---------------------------
+      0
+
+
+      [n [tree*]] 0 [sum +] [] treestep
+   --------------------------------------------------
+       n [tree*] [0 [sum +] [] treestep] map sum +
+ +
+
+
+
+
+
In [47]:
+
+
+
J('[] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
0
+
+
+
+ +
+
+ +
+
+
+
In [48]:
+
+
+
J('[23 []] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
23
+
+
+
+ +
+
+ +
+
+
+
In [49]:
+
+
+
J('[23 [[2 []] [3 []]]] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
28
+
+
+
+ +
+
+ +
+
+
+
+
+

A slight modification.

Let's simplify the tree datastructure definition slightly by just letting the children be the rest of the tree:

+ +
tree = [] | [node tree*]
+ +
+
+
+
+
+
+
+

The J function changes slightly.

+ +
        [node tree*] J
+------------------------------
+   node N [tree*] [K] map C
+
+
+[node tree*] uncons [N] dip [K] map C
+node [tree*]        [N] dip [K] map C
+node N [tree*]              [K] map C
+node N [tree*]              [K] map C
+node N [K.tree*]                    C
+
+J == uncons [N] dip [K] map C
+
+K == [not] [pop z] [uncons [N] dip] [map C] genrec
+ +
+
+
+
+
+
In [50]:
+
+
+
define('TS1 == [dip] cons [uncons] swoncat')  # We only need to redefine one word.
+
+ +
+
+
+ +
+
+
+
In [51]:
+
+
+
J('[23 [2] [3]] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
28
+
+
+
+ +
+
+ +
+
+
+
In [52]:
+
+
+
J('[23 [2 [8] [9]] [3] [4 []]] 0 [sum +] [] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
49
+
+
+
+ +
+
+ +
+
+
+
+
+

I think these trees seem a little easier to read.

+ +
+
+
+
+
+
+
+

Redefining our BTree in terms of this form.

+
BTree = [] | [[key value] left right]
+ +
+
+
+
+
+
+
+

What kind of functions can we write for this with our treestep? The pattern for processing a non-empty node is:

+ +
node N [tree*] [K] map C
+
+
+

Plugging in our BTree structure:

+ +
[key value] N [left right] [K] map C
+
+
+[key value] uncons pop [left right] [K] map i
+key [value]        pop [left right] [K] map i
+key                    [left right] [K] map i
+key                    [lkey rkey ]         i
+key                     lkey rkey
+ +
+
+
+
+
+
In [53]:
+
+
+
J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]]   23 [i] [uncons pop] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
3 23 23
+
+
+
+ +
+
+ +
+
+
+
+
+

Doesn't work because map extracts the first item of whatever its mapped function produces. We have to return a list, rather than depositing our results directly on the stack.

+ +
[key value] N     [left right] [K] map C
+
+[key value] first [left right] [K] map flatten cons
+key               [left right] [K] map flatten cons
+key               [[lk] [rk] ]         flatten cons
+key               [ lk   rk  ]                 cons
+                  [key  lk   rk  ]
+
+
+

So:

+ +
[] [flatten cons] [first] treestep
+ +
+
+
+
+
+
In [57]:
+
+
+
J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]]   [] [flatten cons] [first] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[3 2 9 5 4 8 6 7]
+
+
+
+ +
+
+ +
+
+
+
+
+

There we go.

+

In-order traversal with treestep.

From here:

+ +
key [[lk] [rk]] C
+key [[lk] [rk]] i
+key  [lk] [rk] roll<
+[lk] [rk] key swons concat
+[lk] [key rk]       concat
+[lk   key rk]
+
+
+

So:

+ +
[] [i roll< swons concat] [first] treestep
+ +
+
+
+
+
+
In [55]:
+
+
+
J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]]   [] [i roll< swons concat] [uncons pop] treestep')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[2 3 4 5 6 7 8 9]
+
+
+
+ +
+
+ +
+
+
+
+
+

Miscellaneous Crap

+
+
+
+
+
+
+
+

Toy with it.

Let's reexamine:

+ +
[key value left right] R0 [BTree-iter-order] R1
+    ...
+left BTree-iter-order key value F right BTree-iter-order
+
+
+[key value left right] disenstacken swap
+ key value left right               swap
+ key value right left
+
+key value right left [BTree-iter-order] [cons dipdd] dupdip
+key value right left [BTree-iter-order] cons dipdd [BTree-iter-order]
+key value right [left BTree-iter-order]      dipdd [BTree-iter-order]
+left BTree-iter-order key value right              [BTree-iter-order]
+
+left BTree-iter-order key value   right [F] dip [BTree-iter-order]
+left BTree-iter-order key value F right         [BTree-iter-order] i
+left BTree-iter-order key value F right          BTree-iter-order
+
+
+

So:

+ +
R0 == disenstacken swap
+R1 == [cons dipdd [F] dip] dupdip i
+
+[key value left right] R0                [BTree-iter-order] R1
+[key value left right] disenstacken swap [BTree-iter-order] [cons dipdd [F] dip] dupdip i
+ key value right left                    [BTree-iter-order] [cons dipdd [F] dip] dupdip i
+
+ key value right left [BTree-iter-order] cons dipdd [F] dip [BTree-iter-order] i
+ key value right [left BTree-iter-order]      dipdd [F] dip [BTree-iter-order] i
+ left BTree-iter-order key value   right            [F] dip [BTree-iter-order] i
+ left BTree-iter-order key value F right                    [BTree-iter-order] i
+ left BTree-iter-order key value F right                     BTree-iter-order
+
+
+BTree-iter-order == [not] [pop] [disenstacken swap] [[cons dipdd [F] dip] dupdip i] genrec
+ +
+
+
+
+
+
+
+

Refactor cons cons

+
cons2 == cons cons
+
+
+

Refactoring:

+ +
BTree-new == swap [[] []] cons2
+T == [cons2 dipdd] cons2 cons infra
+Te == [cons2 dipd] cons2 cons infra
+Ee == pop swap roll< rest rest cons2
+
+
+

It's used a lot because it's tied to the fact that there are two "data items" in each node. This point to a more general factorization that would render a combinator that could work for other geometries of trees.

+ +
+
+
+
+
+
+
+

A General Form for Trees

A general form for tree data with N children per node:

+ +
[[data] [child0] ... [childN-1]]
+
+
+

Suggests a general form of recursive iterator, but I have to go walk the dogs at the mo'.

+

For a given structure, you would have a structure of operator functions and sort of merge them and run them, possibly in a different order (pre- post- in- y'know). The Cn functions could all be the same and use the step trick if the children nodes are all of the right kind. If they are heterogeneous then we need a way to get the different Cn into the structure in the right order. If I understand correctly, the "Bananas..." paper shows how to do this automatically from a type description. They present, if I have it right, a tiny machine that accepts some sort of algebraic data type description and returns a function that can recusre over it, I think.

+ +
   [data.. [c0] [c1] ... [cN]] [F C0 C1 ... CN] infil
+--------------------------------------------------------
+   data F [c0] C0 [c1] C1 ... [cN] CN
+ +
+
+
+
+
+
+
+

Just make [F] a parameter.

We can generalize to a sort of pure form:

+ +
BTree-iter == [not] [pop] [[F]]            [R1] genrec
+           == [not] [pop] [[F] [BTree-iter] R1] ifte
+
+
+

Putting [F] to the left as a given:

+ +
 [F] unit [not] [pop] roll< [R1] genrec
+[[F]]     [not] [pop] roll< [R1] genrec
+          [not] [pop] [[F]] [R1] genrec
+
+
+

Let's us define a parameterized form:

+ +
BTree-iter == unit [not] [pop] roll< [R1] genrec
+
+
+

So in the general case of non-empty nodes:

+ +
[key value left right] [F] [BTree-iter] R1
+
+
+

We just define R1 to do whatever it has to to process the node. For example:

+ +
[key value left right] [F] [BTree-iter] R1
+    ...
+key value F   left BTree-iter   right BTree-iter
+left BTree-iter   key value F   right BTree-iter
+left BTree-iter   right BTree-iter   key value F
+
+
+

Pre-, ??-, post-order traversals.

+ +
[key value  left right] uncons uncons
+ key value [left right]
+
+
+

For pre- and post-order we can use the step trick:

+ +
[left right] [BTree-iter] step
+    ...
+left BTree-iter right BTree-iter
+
+
+

We worked out one scheme for ?in-order? traversal above, but maybe we can do better?

+ +
[key value left right]              [F] [BTree-iter] [disenstacken] dipd
+[key value left right] disenstacken [F] [BTree-iter]
+ key value left right               [F] [BTree-iter]
+
+key value left right [F] [BTree-iter] R1.1
+
+
+

Hmm...

+ +
key value left right              [F] [BTree-iter] tuck
+key value left right [BTree-iter] [F] [BTree-iter] 
+
+
+[key value left right]                          [F] [BTree-iter] [disenstacken [roll>] dip] dipd
+[key value left right] disenstacken [roll>] dip [F] [BTree-iter]
+ key value left right               [roll>] dip [F] [BTree-iter]
+ key value left roll> right                     [F] [BTree-iter]
+ left key value right                           [F] [BTree-iter]
+
+left            key value   right              [F] [BTree-iter] tuck foo
+left            key value   right [BTree-iter] [F] [BTree-iter] foo
+    ...
+left BTree-iter key value F right  BTree-iter
+
+
+

We could just let [R1] be a parameter too, for maximum flexibility.

+

Automatically deriving the recursion combinator for a data type?

If I understand it correctly, the "Bananas..." paper talks about a way to build the processor function automatically from the description of the type. I think if we came up with an elegant way for the Joy code to express that, it would be cool. In Joypy the definitions can be circular because lookup happens at evaluation, not parsing. E.g.:

+ +
A == ... B ...
+B == ... A ...
+
+
+

That's fine. Circular datastructures can't be made though.

+ +
+
+
+
+
+ + + + + + diff --git a/docs/Trees.ipynb b/docs/Trees.ipynb new file mode 100644 index 0000000..d9afaff --- /dev/null +++ b/docs/Trees.ipynb @@ -0,0 +1,2169 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Treating Trees\n", + "Although any expression in Joy can be considered to describe a [tree](https://en.wikipedia.org/wiki/Tree_structure) with the quotes as compound nodes and the non-quote values as leaf nodes, in this page I want to talk about [ordered binary trees](https://en.wikipedia.org/wiki/Binary_search_tree) and how to make and use them.\n", + "\n", + "The basic structure, in a [crude type notation](https://en.wikipedia.org/wiki/Algebraic_data_type), is:\n", + "\n", + " BTree :: [] | [key value BTree BTree]\n", + " \n", + "That says that a BTree is either the empty quote `[]` or a quote with four items: a key, a value, and two BTrees representing the left and right branches of the tree." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## A Function to Traverse this Structure\n", + "Let's take a crack at writing a function that can recursively iterate or traverse these trees." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Base case `[]`\n", + "The stopping predicate just has to detect the empty list:\n", + "\n", + " BTree-iter == [not] [E] [R0] [R1] genrec\n", + "\n", + "And since there's nothing at this node, we just `pop` it:\n", + "\n", + " BTree-iter == [not] [pop] [R0] [R1] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Node case `[key value left right]`\n", + "Now we need to figure out `R0` and `R1`: \n", + "\n", + " BTree-iter == [not] [pop] [R0] [R1] genrec\n", + " == [not] [pop] [R0 [BTree-iter] R1] ifte\n", + "\n", + "Let's look at it *in situ*:\n", + "\n", + " [key value left right] R0 [BTree-iter] R1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Processing the current node.\n", + "\n", + "`R0` is almost certainly going to use `dup` to make a copy of the node and then `dip` on some function to process the copy with it:\n", + "\n", + " [key value left right] [F] dupdip [BTree-iter] R1\n", + " [key value left right] F [key value left right] [BTree-iter] R1\n", + "\n", + "For example, if we're getting all the keys `F` would be `first`:\n", + "\n", + " R0 == [first] dupdip\n", + "\n", + " [key value left right] [first] dupdip [BTree-iter] R1\n", + " [key value left right] first [key value left right] [BTree-iter] R1\n", + " key [key value left right] [BTree-iter] R1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Recur\n", + "Now `R1` needs to apply `[BTree-iter]` to `left` and `right`. If we drop the key and value from the node using `rest` twice we are left with an interesting situation:\n", + "\n", + " key [key value left right] [BTree-iter] R1\n", + " key [key value left right] [BTree-iter] [rest rest] dip\n", + " key [key value left right] rest rest [BTree-iter]\n", + " key [left right] [BTree-iter]\n", + "\n", + "Hmm, will `step` do?\n", + "\n", + " key [left right] [BTree-iter] step\n", + " key left BTree-iter [right] [BTree-iter] step\n", + " key left-keys [right] [BTree-iter] step\n", + " key left-keys right BTree-iter\n", + " key left-keys right-keys\n", + "\n", + "Wow. So:\n", + "\n", + " R1 == [rest rest] dip step" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Putting it together\n", + "We have:\n", + "\n", + " BTree-iter == [not] [pop] [[F] dupdip] [[rest rest] dip step] genrec\n", + "\n", + "When I was reading this over I realized `rest rest` could go in `R0`:\n", + "\n", + " BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec\n", + "\n", + "(And `[step] genrec` is such a cool and suggestive combinator!)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Parameterizing the `F` per-node processing function.\n", + "\n", + " [F] BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec\n", + "\n", + "Working backward:\n", + "\n", + " [not] [pop] [[F] dupdip rest rest] [step] genrec\n", + " [not] [pop] [F] [dupdip rest rest] cons [step] genrec\n", + " [F] [not] [pop] roll< [dupdip rest rest] cons [step] genrec\n", + "\n", + "Ergo:\n", + "\n", + " BTree-iter == [not] [pop] roll< [dupdip rest rest] cons [step] genrec" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "define('BTree-iter == [not] [pop] roll< [dupdip rest rest] cons [step] genrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "J('[] [23] BTree-iter') # It doesn't matter what F is as it won't be used." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'tommy'\n" + ] + } + ], + "source": [ + "J('[\"tommy\" 23 [] []] [first] BTree-iter')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'tommy' 'richard' 'jenny'\n" + ] + } + ], + "source": [ + "J('[\"tommy\" 23 [\"richard\" 48 [] []] [\"jenny\" 18 [] []]] [first] BTree-iter')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23 48 18\n" + ] + } + ], + "source": [ + "J('[\"tommy\" 23 [\"richard\" 48 [] []] [\"jenny\" 18 [] []]] [second] BTree-iter')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Adding Nodes to the BTree\n", + "Let's consider adding nodes to a BTree structure.\n", + "\n", + " BTree value key BTree-add == BTree" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Adding to an empty node.\n", + "If the current node is `[]` then you just return `[key value [] []]`:\n", + "\n", + " BTree-add == [popop not] [[pop] dipd BTree-new] [R0] [R1] genrec\n", + "\n", + "Where `BTree-new` is:\n", + "\n", + " value key BTree-new == [key value [] []]\n", + "\n", + " value key swap [[] []] cons cons\n", + " key value [[] []] cons cons\n", + " key [value [] []] cons\n", + " [key value [] []]\n", + "\n", + " BTree-new == swap [[] []] cons cons" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "define('BTree-new == swap [[] []] cons cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 'v' 'k' BTree-new\n", + " 'v' . 'k' BTree-new\n", + " 'v' 'k' . BTree-new\n", + " 'v' 'k' . swap [[] []] cons cons\n", + " 'k' 'v' . [[] []] cons cons\n", + "'k' 'v' [[] []] . cons cons\n", + "'k' ['v' [] []] . cons\n", + "['k' 'v' [] []] . \n" + ] + } + ], + "source": [ + "V('\"v\" \"k\" BTree-new')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "(As an implementation detail, the `[[] []]` literal used in the definition of `BTree-new` will be reused to supply the *constant* tail for *all* new nodes produced by it. This is one of those cases where you get amortized storage \"for free\" by using [persistent datastructures](https://en.wikipedia.org/wiki/Persistent_data_structure). Because the tail, which is `((), ((), ()))` in Python, is immutable and embedded in the definition body for `BTree-new`, all new nodes can reuse it as their own tail without fear that some other code somewhere will change it.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### If the current node isn't empty.\n", + "\n", + "We now have to derive `R0` and `R1`, consider:\n", + "\n", + " [key_n value_n left right] value key R0 [BTree-add] R1\n", + "\n", + "In this case, there are three possibilites: the key can be greater or less than or equal to the node's key. In two of those cases we will need to apply a copy of `BTree-add`, so `R0` is pretty much out of the picture.\n", + "\n", + " [R0] == []" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### A predicate to compare keys.\n", + "The first thing we need to do is compare the the key we're adding to see if it is greater than the node key and `branch` accordingly, although in this case it's easier to write a destructive predicate and then use `ifte` to apply it `nullary`:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] R1\n", + " [key_n value_n left right] value key [BTree-add] [P >] [T] [E] ifte\n", + "\n", + " [key_n value_n left right] value key [BTree-add] P >\n", + " [key_n value_n left right] value key [BTree-add] pop roll> pop first >\n", + " [key_n value_n left right] value key roll> pop first >\n", + " key [key_n value_n left right] value roll> pop first >\n", + " key key_n >\n", + " Boolean\n", + "\n", + " P > == pop roll> pop first >\n", + " P < == pop roll> pop first <\n", + " P == pop roll> pop first" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "define('P == pop roll> pop first')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . ['k' 'v' [] []] 'vv' 'kk' [0] P >\n", + " ['k' 'v' [] []] . 'vv' 'kk' [0] P >\n", + " ['k' 'v' [] []] 'vv' . 'kk' [0] P >\n", + " ['k' 'v' [] []] 'vv' 'kk' . [0] P >\n", + "['k' 'v' [] []] 'vv' 'kk' [0] . P >\n", + "['k' 'v' [] []] 'vv' 'kk' [0] . pop roll> pop first >\n", + " ['k' 'v' [] []] 'vv' 'kk' . roll> pop first >\n", + " 'kk' ['k' 'v' [] []] 'vv' . pop first >\n", + " 'kk' ['k' 'v' [] []] . first >\n", + " 'kk' 'k' . >\n", + " True . \n" + ] + } + ], + "source": [ + "V('[\"k\" \"v\" [] []] \"vv\" \"kk\" [0] P >')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### If the key we're adding is greater than the node's key.\n", + "\n", + "Here the parantheses are meant to signify that the right-hand side (RHS) is not literal, the code in the parentheses is meant to have been evaluated:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] T == [key_n value_n left (BTree-add key value right)]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Use `infra` on `K`.\n", + "So how do we do this? We know we're going to want to use `infra` on some function `K` that has the key and value to work with, as well as the quoted copy of `BTree-add` to apply somehow:\n", + "\n", + " right left value_n key_n value key [BTree-add] K\n", + " ...\n", + " right value key BTree-add left value_n key_n\n", + "\n", + "Pretty easy:\n", + "\n", + " right left value_n key_n value key [BTree-add] cons cons dipdd\n", + " right left value_n key_n [value key BTree-add] dipdd\n", + " right value key BTree-add left value_n key_n\n", + "\n", + "So:\n", + "\n", + " K == cons cons dipdd\n", + "\n", + "And:\n", + "\n", + " [key_n value_n left right] [value key [BTree-add] K] infra\n", + "\n", + "#### Derive `T`.\n", + "So now we're at getting from this to this:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] T\n", + " ...\n", + " [key_n value_n left right] [value key [BTree-add] K] infra\n", + "\n", + "And so `T` is just:\n", + "\n", + " value key [BTree-add] T == [value key [BTree-add] K] infra\n", + " T == [ K] cons cons cons infra" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "define('K == cons cons dipdd')\n", + "define('T == [K] cons cons cons infra')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 'r' 'l' 'v' 'k' 'vv' 'kk' [0] K\n", + " 'r' . 'l' 'v' 'k' 'vv' 'kk' [0] K\n", + " 'r' 'l' . 'v' 'k' 'vv' 'kk' [0] K\n", + " 'r' 'l' 'v' . 'k' 'vv' 'kk' [0] K\n", + " 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] K\n", + " 'r' 'l' 'v' 'k' 'vv' . 'kk' [0] K\n", + " 'r' 'l' 'v' 'k' 'vv' 'kk' . [0] K\n", + "'r' 'l' 'v' 'k' 'vv' 'kk' [0] . K\n", + "'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipdd\n", + "'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipdd\n", + "'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipdd\n", + " 'r' . 'vv' 'kk' 0 'l' 'v' 'k'\n", + " 'r' 'vv' . 'kk' 0 'l' 'v' 'k'\n", + " 'r' 'vv' 'kk' . 0 'l' 'v' 'k'\n", + " 'r' 'vv' 'kk' 0 . 'l' 'v' 'k'\n", + " 'r' 'vv' 'kk' 0 'l' . 'v' 'k'\n", + " 'r' 'vv' 'kk' 0 'l' 'v' . 'k'\n", + " 'r' 'vv' 'kk' 0 'l' 'v' 'k' . \n" + ] + } + ], + "source": [ + "V('\"r\" \"l\" \"v\" \"k\" \"vv\" \"kk\" [0] K')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] T\n", + " ['k' 'v' 'l' 'r'] . 'vv' 'kk' [0] T\n", + " ['k' 'v' 'l' 'r'] 'vv' . 'kk' [0] T\n", + " ['k' 'v' 'l' 'r'] 'vv' 'kk' . [0] T\n", + " ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . T\n", + " ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . [K] cons cons cons infra\n", + "['k' 'v' 'l' 'r'] 'vv' 'kk' [0] [K] . cons cons cons infra\n", + "['k' 'v' 'l' 'r'] 'vv' 'kk' [[0] K] . cons cons infra\n", + "['k' 'v' 'l' 'r'] 'vv' ['kk' [0] K] . cons infra\n", + "['k' 'v' 'l' 'r'] ['vv' 'kk' [0] K] . infra\n", + " 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] K [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' . 'kk' [0] K [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' 'kk' . [0] K [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . K [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipdd [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipdd [] swaack\n", + " 'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipdd [] swaack\n", + " 'r' . 'vv' 'kk' 0 'l' 'v' 'k' [] swaack\n", + " 'r' 'vv' . 'kk' 0 'l' 'v' 'k' [] swaack\n", + " 'r' 'vv' 'kk' . 0 'l' 'v' 'k' [] swaack\n", + " 'r' 'vv' 'kk' 0 . 'l' 'v' 'k' [] swaack\n", + " 'r' 'vv' 'kk' 0 'l' . 'v' 'k' [] swaack\n", + " 'r' 'vv' 'kk' 0 'l' 'v' . 'k' [] swaack\n", + " 'r' 'vv' 'kk' 0 'l' 'v' 'k' . [] swaack\n", + " 'r' 'vv' 'kk' 0 'l' 'v' 'k' [] . swaack\n", + " ['k' 'v' 'l' 0 'kk' 'vv' 'r'] . \n" + ] + } + ], + "source": [ + "V('[\"k\" \"v\" \"l\" \"r\"] \"vv\" \"kk\" [0] T')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### If the key we're adding is less than the node's key.\n", + "This is very very similar to the above:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] E\n", + " [key_n value_n left right] value key [BTree-add] [P <] [Te] [Ee] ifte\n", + "\n", + "In this case `Te` works that same as `T` but on the left child tree instead of the right, so the only difference is that it must use `dipd` instead of `dipdd`:\n", + "\n", + " Te == [cons cons dipd] cons cons cons infra\n", + "\n", + "This suggests an alternate factorization:\n", + "\n", + " ccons == cons cons\n", + " T == [ccons dipdd] ccons cons infra\n", + " Te == [ccons dipd] ccons cons infra\n", + "\n", + "But whatever." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "define('Te == [cons cons dipd] cons cons cons infra')" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] Te\n", + " ['k' 'v' 'l' 'r'] . 'vv' 'kk' [0] Te\n", + " ['k' 'v' 'l' 'r'] 'vv' . 'kk' [0] Te\n", + " ['k' 'v' 'l' 'r'] 'vv' 'kk' . [0] Te\n", + " ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . Te\n", + " ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . [cons cons dipd] cons cons cons infra\n", + "['k' 'v' 'l' 'r'] 'vv' 'kk' [0] [cons cons dipd] . cons cons cons infra\n", + "['k' 'v' 'l' 'r'] 'vv' 'kk' [[0] cons cons dipd] . cons cons infra\n", + "['k' 'v' 'l' 'r'] 'vv' ['kk' [0] cons cons dipd] . cons infra\n", + "['k' 'v' 'l' 'r'] ['vv' 'kk' [0] cons cons dipd] . infra\n", + " 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] cons cons dipd [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' . 'kk' [0] cons cons dipd [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' 'kk' . [0] cons cons dipd [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipd [] swaack\n", + " 'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipd [] swaack\n", + " 'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipd [] swaack\n", + " 'r' 'l' . 'vv' 'kk' 0 'v' 'k' [] swaack\n", + " 'r' 'l' 'vv' . 'kk' 0 'v' 'k' [] swaack\n", + " 'r' 'l' 'vv' 'kk' . 0 'v' 'k' [] swaack\n", + " 'r' 'l' 'vv' 'kk' 0 . 'v' 'k' [] swaack\n", + " 'r' 'l' 'vv' 'kk' 0 'v' . 'k' [] swaack\n", + " 'r' 'l' 'vv' 'kk' 0 'v' 'k' . [] swaack\n", + " 'r' 'l' 'vv' 'kk' 0 'v' 'k' [] . swaack\n", + " ['k' 'v' 0 'kk' 'vv' 'l' 'r'] . \n" + ] + } + ], + "source": [ + "V('[\"k\" \"v\" \"l\" \"r\"] \"vv\" \"kk\" [0] Te')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Else the keys must be equal.\n", + "This means we must find:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] Ee\n", + " ...\n", + " [key value left right]\n", + "\n", + "This is another easy one:\n", + "\n", + " Ee == pop swap roll< rest rest cons cons\n", + "\n", + " [key_n value_n left right] value key [BTree-add] pop swap roll< rest rest cons cons\n", + " [key_n value_n left right] value key swap roll< rest rest cons cons\n", + " [key_n value_n left right] key value roll< rest rest cons cons\n", + " key value [key_n value_n left right] rest rest cons cons\n", + " key value [ left right] cons cons\n", + " [key value left right]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "define('Ee == pop swap roll< rest rest cons cons')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . ['k' 'v' 'l' 'r'] 'vv' 'k' [0] Ee\n", + " ['k' 'v' 'l' 'r'] . 'vv' 'k' [0] Ee\n", + " ['k' 'v' 'l' 'r'] 'vv' . 'k' [0] Ee\n", + " ['k' 'v' 'l' 'r'] 'vv' 'k' . [0] Ee\n", + "['k' 'v' 'l' 'r'] 'vv' 'k' [0] . Ee\n", + "['k' 'v' 'l' 'r'] 'vv' 'k' [0] . pop swap roll< rest rest cons cons\n", + " ['k' 'v' 'l' 'r'] 'vv' 'k' . swap roll< rest rest cons cons\n", + " ['k' 'v' 'l' 'r'] 'k' 'vv' . roll< rest rest cons cons\n", + " 'k' 'vv' ['k' 'v' 'l' 'r'] . rest rest cons cons\n", + " 'k' 'vv' ['v' 'l' 'r'] . rest cons cons\n", + " 'k' 'vv' ['l' 'r'] . cons cons\n", + " 'k' ['vv' 'l' 'r'] . cons\n", + " ['k' 'vv' 'l' 'r'] . \n" + ] + } + ], + "source": [ + "V('[\"k\" \"v\" \"l\" \"r\"] \"vv\" \"k\" [0] Ee')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "define('E == [P <] [Te] [Ee] ifte')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Now we can define `BTree-add`\n", + " BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec\n", + "\n", + "Putting it all together:\n", + "\n", + " BTree-new == swap [[] []] cons cons\n", + " P == pop roll> pop first\n", + " T == [cons cons dipdd] cons cons cons infra\n", + " Te == [cons cons dipd] cons cons cons infra\n", + " Ee == pop swap roll< rest rest cons cons\n", + " E == [P <] [Te] [Ee] ifte\n", + "\n", + " BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "define('BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 23 [] []]\n" + ] + } + ], + "source": [ + "J('[] 23 \"b\" BTree-add') # Initial" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 23 [] ['c' 88 [] []]]\n" + ] + } + ], + "source": [ + "J('[\"b\" 23 [] []] 88 \"c\" BTree-add') # Less than" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 23 ['a' 88 [] []] []]\n" + ] + } + ], + "source": [ + "J('[\"b\" 23 [] []] 88 \"a\" BTree-add') # Greater than" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 88 [] []]\n" + ] + } + ], + "source": [ + "J('[\"b\" 23 [] []] 88 \"b\" BTree-add') # Equal to" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a' 23 [] ['b' 88 [] ['c' 44 [] []]]]\n" + ] + } + ], + "source": [ + "J('[] 23 \"a\" BTree-add 88 \"b\" BTree-add 44 \"c\" BTree-add') # Series." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use this to make a set-like datastructure by just setting values to e.g. 0 and ignoring them. It's set-like in that duplicate items added to it will only occur once within it, and we can query it in [$O(\\log_2 N)$](https://en.wikipedia.org/wiki/Binary_search_tree#cite_note-2) time." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]]\n" + ] + } + ], + "source": [ + "J('[] [3 9 5 2 8 6 7 8 4] [0 swap BTree-add] step')" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "define('to_set == [] swap [0 swap BTree-add] step')" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]]\n" + ] + } + ], + "source": [ + "J('[3 9 5 2 8 6 7 8 4] to_set')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And with that we can write a little program to remove duplicate items from a list." + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "define('unique == [to_set [first] BTree-iter] cons run')" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[7 6 8 4 5 9 2 3]\n" + ] + } + ], + "source": [ + "J('[3 9 3 5 2 9 8 8 8 6 2 7 8 4 3] unique') # Filter duplicate items." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# `cmp` combinator\n", + "Instead of all this mucking about with nested `ifte` let's just go whole hog and define `cmp` which takes two values and three quoted programs on the stack and runs one of the three depending on the results of comparing the two values:\n", + "\n", + " a b [G] [E] [L] cmp\n", + " ------------------------- a > b\n", + " G\n", + "\n", + " a b [G] [E] [L] cmp\n", + " ------------------------- a = b\n", + " E\n", + "\n", + " a b [G] [E] [L] cmp\n", + " ------------------------- a < b\n", + " L\n", + "\n", + "We need a new non-destructive predicate `P`:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] P\n", + " [key_n value_n left right] value key [BTree-add] over [Q] nullary\n", + " [key_n value_n left right] value key [BTree-add] key [Q] nullary\n", + " [key_n value_n left right] value key [BTree-add] key Q\n", + " [key_n value_n left right] value key [BTree-add] key popop popop first\n", + " [key_n value_n left right] value key popop first\n", + " [key_n value_n left right] first\n", + " key_n\n", + " [key_n value_n left right] value key [BTree-add] key [Q] nullary\n", + " [key_n value_n left right] value key [BTree-add] key key_n\n", + "\n", + " P == over [popop popop first] nullary\n", + "\n", + "Here are the definitions again, pruned and renamed in some cases:\n", + "\n", + " BTree-new == swap [[] []] cons cons\n", + " P == over [popop popop first] nullary\n", + " T> == [cons cons dipdd] cons cons cons infra\n", + " T< == [cons cons dipd] cons cons cons infra\n", + " E == pop swap roll< rest rest cons cons\n", + "\n", + "Using `cmp` to simplify [our code above at `R1`](#If-the-current-node-isn't-empty.):\n", + "\n", + " [key_n value_n left right] value key [BTree-add] R1\n", + " [key_n value_n left right] value key [BTree-add] P [T>] [E] [T<] cmp\n", + "\n", + "The line above becomes one of the three lines below:\n", + "\n", + " [key_n value_n left right] value key [BTree-add] T>\n", + " [key_n value_n left right] value key [BTree-add] E\n", + " [key_n value_n left right] value key [BTree-add] T<\n", + "\n", + "The definition is a little longer but, I think, more elegant and easier to understand:\n", + "\n", + " BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T>] [E] [T<] cmp] genrec\n" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.library import FunctionWrapper\n", + "from joy.utils.stack import pushback\n", + "from notebook_preamble import D\n", + "\n", + "\n", + "@FunctionWrapper\n", + "def cmp_(stack, expression, dictionary):\n", + " L, (E, (G, (b, (a, stack)))) = stack\n", + " expression = pushback(G if a > b else L if a < b else E, expression)\n", + " return stack, expression, dictionary\n", + "\n", + "\n", + "D['cmp'] = cmp_" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'G'\n" + ] + } + ], + "source": [ + "J(\"1 0 ['G'] ['E'] ['L'] cmp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'E'\n" + ] + } + ], + "source": [ + "J(\"1 1 ['G'] ['E'] ['L'] cmp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'L'\n" + ] + } + ], + "source": [ + "J(\"0 1 ['G'] ['E'] ['L'] cmp\")" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "from joy.library import DefinitionWrapper\n", + "\n", + "\n", + "DefinitionWrapper.add_definitions('''\n", + "\n", + "P == over [popop popop first] nullary\n", + "T> == [cons cons dipdd] cons cons cons infra\n", + "T< == [cons cons dipd] cons cons cons infra\n", + "E == pop swap roll< rest rest cons cons\n", + "\n", + "BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T>] [E] [T<] cmp] genrec\n", + "\n", + "''', D)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 23 [] []]\n" + ] + } + ], + "source": [ + "J('[] 23 \"b\" BTree-add') # Initial" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 23 [] ['c' 88 [] []]]\n" + ] + } + ], + "source": [ + "J('[\"b\" 23 [] []] 88 \"c\" BTree-add') # Less than" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 23 ['a' 88 [] []] []]\n" + ] + } + ], + "source": [ + "J('[\"b\" 23 [] []] 88 \"a\" BTree-add') # Greater than" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['b' 88 [] []]\n" + ] + } + ], + "source": [ + "J('[\"b\" 23 [] []] 88 \"b\" BTree-add') # Equal to" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['a' 23 [] ['b' 88 [] ['c' 44 [] []]]]\n" + ] + } + ], + "source": [ + "J('[] 23 \"a\" BTree-add 88 \"b\" BTree-add 44 \"c\" BTree-add') # Series." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Factoring and naming\n", + "It may seem silly, but a big part of programming in Forth (and therefore in Joy) is the idea of small, highly-factored definitions. If you choose names carefully the resulting definitions can take on a semantic role.\n", + "\n", + " get-node-key == popop popop first\n", + " remove-key-and-value-from-node == rest rest\n", + " pack-key-and-value == cons cons\n", + " prep-new-key-and-value == pop swap roll<\n", + " pack-and-apply == [pack-key-and-value] swoncat cons pack-key-and-value infra\n", + "\n", + " BTree-new == swap [[] []] pack-key-and-value\n", + " P == over [get-node-key] nullary\n", + " T> == [dipdd] pack-and-apply\n", + " T< == [dipd] pack-and-apply\n", + " E == prep-new-key-and-value remove-key-and-value-from-node pack-key-and-value\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A Version of `BTree-iter` that does In-Order Traversal" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you look back to the [non-empty case of the `BTree-iter` function](#Node-case-[key-value-left-right]) we can design a varient that first processes the left child, then the current node, then the right child. This will allow us to traverse the tree in sort order.\n", + "\n", + " BTree-iter-order == [not] [pop] [R0 [BTree-iter] R1] ifte\n", + "\n", + "To define `R0` and `R1` it helps to look at them as they will appear when they run:\n", + "\n", + " [key value left right] R0 [BTree-iter-order] R1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Process the left child.\n", + "Staring at this for a bit suggests `dup third` to start:\n", + "\n", + " [key value left right] R0 [BTree-iter-order] R1\n", + " [key value left right] dup third [BTree-iter-order] R1\n", + " [key value left right] left [BTree-iter-order] R1\n", + "\n", + "Now maybe:\n", + "\n", + " [key value left right] left [BTree-iter-order] [cons dip] dupdip\n", + " [key value left right] left [BTree-iter-order] cons dip [BTree-iter-order]\n", + " [key value left right] [left BTree-iter-order] dip [BTree-iter-order]\n", + " left BTree-iter-order [key value left right] [BTree-iter-order]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Process the current node.\n", + "So far, so good. Now we need to process the current node's values:\n", + "\n", + " left BTree-iter-order [key value left right] [BTree-iter-order] [[F] dupdip] dip\n", + " left BTree-iter-order [key value left right] [F] dupdip [BTree-iter-order]\n", + " left BTree-iter-order [key value left right] F [key value left right] [BTree-iter-order]\n", + "\n", + "If `F` needs items from the stack below the left stuff it should have `cons`'d them before beginning maybe? For functions like `first` it works fine as-is.\n", + "\n", + " left BTree-iter-order [key value left right] first [key value left right] [BTree-iter-order]\n", + " left BTree-iter-order key [key value left right] [BTree-iter-order]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Process the right child.\n", + "First ditch the rest of the node and get the right child:\n", + "\n", + " left BTree-iter-order key [key value left right] [BTree-iter-order] [rest rest rest first] dip\n", + " left BTree-iter-order key right [BTree-iter-order]\n", + "\n", + "Then, of course, we just need `i` to run `BTree-iter-order` on the right side:\n", + "\n", + " left BTree-iter-order key right [BTree-iter-order] i\n", + " left BTree-iter-order key right BTree-iter-order" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Defining `BTree-iter-order`\n", + "The result is a little awkward:\n", + "\n", + " R1 == [cons dip] dupdip [[F] dupdip] dip [rest rest rest first] dip i\n", + "\n", + "Let's do a little semantic factoring:\n", + "\n", + " fourth == rest rest rest first\n", + "\n", + " proc_left == [cons dip] dupdip\n", + " proc_current == [[F] dupdip] dip\n", + " proc_right == [fourth] dip i\n", + "\n", + " BTree-iter-order == [not] [pop] [dup third] [proc_left proc_current proc_right] genrec\n", + "\n", + "Now we can sort sequences." + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "define('BTree-iter-order == [not] [pop] [dup third] [[cons dip] dupdip [[first] dupdip] dip [rest rest rest first] dip i] genrec')" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2 3 4 5 6 7 8 9\n" + ] + } + ], + "source": [ + "J('[3 9 5 2 8 6 7 8 4] to_set BTree-iter-order')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Getting values by key\n", + "Let's derive a function that accepts a tree and a key and returns the value associated with that key.\n", + "\n", + " tree key BTree-get\n", + " ------------------------\n", + " value" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### The base case `[]`\n", + "As before, the stopping predicate just has to detect the empty list:\n", + "\n", + " BTree-get == [pop not] [E] [R0] [R1] genrec\n", + "\n", + "But what do we do if the key isn't in the tree? In Python we might raise a `KeyError` but I'd like to avoid exceptions in Joy if possible, and here I think it's possible. (Division by zero is an example of where I think it's probably better to let Python crash Joy. Sometimes the machinery fails and you have to \"stop the line\", methinks.)\n", + "\n", + "Let's pass the buck to the caller by making the base case a given, you have to decide for yourself what `[E]` should be.\n", + "\n", + "\n", + " tree key [E] BTree-get\n", + " ---------------------------- key in tree\n", + " value\n", + "\n", + " tree key [E] BTree-get\n", + " ---------------------------- key not in tree\n", + " tree key E\n", + "\n", + "Now we define:\n", + "\n", + " BTree-get == [pop not] swap [R0] [R1] genrec\n", + "\n", + "Note that this `BTree-get` creates a slightly different function than itself and *that function* does the actual recursion. This kind of higher-level programming is unusual in most languages but natural in Joy.\n", + "\n", + " tree key [E] [pop not] swap [R0] [R1] genrec\n", + " tree key [pop not] [E] [R0] [R1] genrec\n", + "\n", + "The anonymous specialized recursive function that will do the real work.\n", + "\n", + " [pop not] [E] [R0] [R1] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Node case `[key value left right]`\n", + "Now we need to figure out `R0` and `R1`: \n", + "\n", + " [key value left right] key R0 [BTree-get] R1\n", + "\n", + "We want to compare the search key with the key in the node, and if they are the same return the value and if they differ then recurse on one of the child nodes. So it's very similar to the above funtion, with `[R0] == []` and `R1 == P [T>] [E] [T<] cmp`:\n", + "\n", + " [key value left right] key [BTree-get] P [T>] [E] [T<] cmp\n", + "\n", + "So:\n", + "\n", + " get-node-key == pop popop first\n", + " P == over [get-node-key] nullary\n", + "\n", + "The only difference is that `get-node-key` does one less `pop` because there's no value to discard. Now we have to derive the branches:\n", + "\n", + " [key_n value_n left right] key [BTree-get] T>\n", + " [key_n value_n left right] key [BTree-get] E\n", + " [key_n value_n left right] key [BTree-get] T<\n", + "\n", + "The cases of `T>` and `T<` are similar to above but instead of using `infra` we have to discard the rest of the structure:\n", + "\n", + " [key_n value_n left right] key [BTree-get] T> == right key BTree-get\n", + " [key_n value_n left right] key [BTree-get] T< == left key BTree-get\n", + "\n", + "So:\n", + " \n", + " T> == [fourth] dipd i\n", + " T< == [third] dipd i\n", + "\n", + "E.g.:\n", + "\n", + " [key_n value_n left right] key [BTree-get] [fourth] dipd i\n", + " [key_n value_n left right] fourth key [BTree-get] i\n", + " right key [BTree-get] i\n", + " right key BTree-get\n", + "\n", + "And:\n", + "\n", + " [key_n value_n left right] key [BTree-get] E == value_n\n", + "\n", + " E == popop second\n", + "\n", + "So:\n", + "\n", + " fourth == rest rest rest first\n", + " get-node-key == pop popop first\n", + " P == over [get-node-key] nullary\n", + " T> == [fourth] dipd i\n", + " T< == [third] dipd i\n", + " E == popop second\n", + "\n", + " BTree-get == [pop not] swap [] [P [T>] [E] [T<] cmp] genrec" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [], + "source": [ + "# I don't want to deal with name conflicts with the above so I'm inlining everything here.\n", + "# The original Joy system has \"hide\" which is a meta-command which allows you to use named\n", + "# definitions that are only in scope for a given definition. I don't want to implement\n", + "# that (yet) so...\n", + "\n", + "\n", + "define('''\n", + "BTree-get == [pop not] swap [] [\n", + " over [pop popop first] nullary\n", + " [[rest rest rest first] dipd i]\n", + " [popop second]\n", + " [[third] dipd i]\n", + " cmp\n", + " ] genrec\n", + "''')" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "'err'\n" + ] + } + ], + "source": [ + "J('[] \"gary\" [popop \"err\"] BTree-get')" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23\n" + ] + } + ], + "source": [ + "J('[\"gary\" 23 [] []] \"gary\" [popop \"err\"] BTree-get')" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n" + ] + } + ], + "source": [ + "J('''\n", + "\n", + " [] [[0 'a'] [1 'b'] [2 'c']] [i BTree-add] step\n", + "\n", + " 'c' [popop 'not found'] BTree-get\n", + "\n", + "''')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# TODO: BTree-delete\n", + "\n", + "Then, once we have add, get, and delete we can see about abstracting them.\n", + "\n", + " tree key [E] BTree-delete\n", + " ---------------------------- key in tree\n", + " tree\n", + "\n", + " tree key [E] BTree-delete\n", + " ---------------------------- key not in tree\n", + " tree key E" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So:\n", + "\n", + " BTree-delete == [pop not] [] [R0] [R1] genrec\n", + "\n", + "And:\n", + "\n", + " [n_key n_value left right] key R0 [BTree-get] R1\n", + " [n_key n_value left right] key [dup first] dip [BTree-get] R1\n", + " [n_key n_value left right] n_key key [BTree-get] R1\n", + " [n_key n_value left right] n_key key [BTree-get] roll> [T>] [E] [T<] cmp\n", + " [n_key n_value left right] [BTree-get] n_key key [T>] [E] [T<] cmp\n", + "\n", + " BTree-delete == [pop not] swap [[dup first] dip] [roll> [T>] [E] [T<] cmp] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " [n_key n_value left right] [BTree-get] T>\n", + " [n_key n_value left right] [BTree-get] E\n", + " [n_key n_value left right] [BTree-get] T<" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " [n_key n_value left right] [BTree-get] \n", + " [n_key n_value left right] [BTree-get] E\n", + " [n_key n_value left right] [BTree-get] T<" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tree with node and list of trees.\n", + "Let's consider a tree structure, similar to one described [\"Why functional programming matters\" by John Hughes](https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf), that consists of a node value and a sequence of zero or more child trees. (The asterisk is meant to indicate the [Kleene star](https://en.wikipedia.org/wiki/Kleene_star).)\n", + "\n", + " tree = [] | [node [tree*]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### `treestep`\n", + "In the spirit of `step` we are going to define a combinator `treestep` which expects a tree and three additional items: a base-case value `z`, and two quoted programs `[C]` and `[N]`.\n", + "\n", + " tree z [C] [N] treestep\n", + "\n", + "If the current tree node is empty then just leave `z` on the stack in lieu:\n", + "\n", + " [] z [C] [N] treestep\n", + " ---------------------------\n", + " z\n", + "\n", + "Otherwise, evaluate `N` on the node value, `map` the whole function (abbreviated here as `k`) over the child trees recursively, and then combine the result with `C`.\n", + "\n", + " [node [tree*]] z [C] [N] treestep\n", + " --------------------------------------- w/ K == z [C] [N] treestep\n", + " node N [tree*] [K] map C" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derive the recursive form.\n", + "Since this is a recursive function, we can begin to derive it by finding the `ifte` stage that `genrec` will produce. The predicate and base-case functions are trivial, so we just have to derive `J`.\n", + "\n", + " K == [not] [pop z] [J] ifte\n", + "\n", + "The behavior of `J` is to accept a (non-empty) tree node and arrive at the desired outcome.\n", + "\n", + " [node [tree*]] J\n", + " ------------------------------\n", + " node N [tree*] [K] map C\n", + "\n", + "So `J` will have some form like:\n", + "\n", + " J == .. [N] .. [K] .. [C] ..\n", + "\n", + "Let's dive in. First, unquote the node and `dip` `N`.\n", + "\n", + " [node [tree*]] i [N] dip\n", + " node [tree*] [N] dip\n", + " node N [tree*]\n", + "\n", + "Next, `map` `K` over teh child trees and combine with `C`.\n", + "\n", + " node N [tree*] [K] map C\n", + " node N [tree*] [K] map C\n", + " node N [K.tree*] C\n", + "\n", + "So:\n", + "\n", + " J == i [N] dip [K] map C\n", + "\n", + "Plug it in and convert to `genrec`:\n", + "\n", + " K == [not] [pop z] [i [N] dip [K] map C] ifte\n", + " K == [not] [pop z] [i [N] dip] [map C] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Extract the givens to parameterize the program.\n", + "\n", + " [not] [pop z] [i [N] dip] [map C] genrec\n", + "\n", + " [not] [pop z] [i [N] dip] [map C] genrec\n", + " [not] [z] [pop] swoncat [i [N] dip] [map C] genrec\n", + " [not] z unit [pop] swoncat [i [N] dip] [map C] genrec\n", + " z [not] swap unit [pop] swoncat [i [N] dip] [map C] genrec\n", + " \\ .........TS0............./\n", + " \\/\n", + " z TS0 [i [N] dip] [map C] genrec\n", + " z [i [N] dip] [TS0] dip [map C] genrec\n", + " z [[N] dip] [i] swoncat [TS0] dip [map C] genrec\n", + " z [N] [dip] cons [i] swoncat [TS0] dip [map C] genrec\n", + " \\ ......TS1........./\n", + " \\/\n", + " z [N] TS1 [TS0] dip [map C] genrec\n", + " z [N] [map C] [TS1 [TS0] dip] dip genrec\n", + " z [N] [C] [map] swoncat [TS1 [TS0] dip] dip genrec\n", + " z [C] [N] swap [map] swoncat [TS1 [TS0] dip] dip genrec\n", + "\n", + "The givens are all to the left so we have our definition." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define `treestep`\n", + " TS0 == [not] swap unit [pop] swoncat\n", + " TS1 == [dip] cons [i] swoncat\n", + " treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "DefinitionWrapper.add_definitions('''\n", + "\n", + " TS0 == [not] swap unit [pop] swoncat\n", + " TS1 == [dip] cons [i] swoncat\n", + "treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec\n", + "\n", + "''', D)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " [] 0 [C] [N] treestep\n", + " ---------------------------\n", + " 0\n", + "\n", + "\n", + " [n [tree*]] 0 [sum +] [] treestep\n", + " --------------------------------------------------\n", + " n [tree*] [0 [sum +] [] treestep] map sum +" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "J('[] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "23\n" + ] + } + ], + "source": [ + "J('[23 []] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "28\n" + ] + } + ], + "source": [ + "J('[23 [[2 []] [3 []]]] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## A slight modification.\n", + "Let's simplify the tree datastructure definition slightly by just letting the children be the `rest` of the tree:\n", + "\n", + " tree = [] | [node tree*]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `J` function changes slightly.\n", + "\n", + " [node tree*] J\n", + " ------------------------------\n", + " node N [tree*] [K] map C\n", + "\n", + "\n", + " [node tree*] uncons [N] dip [K] map C\n", + " node [tree*] [N] dip [K] map C\n", + " node N [tree*] [K] map C\n", + " node N [tree*] [K] map C\n", + " node N [K.tree*] C\n", + "\n", + " J == uncons [N] dip [K] map C\n", + "\n", + " K == [not] [pop z] [uncons [N] dip] [map C] genrec\n" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [], + "source": [ + "define('TS1 == [dip] cons [uncons] swoncat') # We only need to redefine one word." + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "28\n" + ] + } + ], + "source": [ + "J('[23 [2] [3]] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "49\n" + ] + } + ], + "source": [ + "J('[23 [2 [8] [9]] [3] [4 []]] 0 [sum +] [] treestep')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I think these trees seem a little easier to read." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Redefining our BTree in terms of this form.\n", + "\n", + " BTree = [] | [[key value] left right]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What kind of functions can we write for this with our `treestep`? The pattern for processing a non-empty node is:\n", + "\n", + " node N [tree*] [K] map C\n", + "\n", + "Plugging in our BTree structure:\n", + "\n", + " [key value] N [left right] [K] map C\n", + "\n", + "\n", + " [key value] uncons pop [left right] [K] map i\n", + " key [value] pop [left right] [K] map i\n", + " key [left right] [K] map i\n", + " key [lkey rkey ] i\n", + " key lkey rkey\n" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3 23 23\n" + ] + } + ], + "source": [ + "J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] 23 [i] [uncons pop] treestep')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Doesn't work because `map` extracts the `first` item of whatever its mapped function produces. We have to return a list, rather than depositing our results directly on the stack.\n", + "\n", + "\n", + " [key value] N [left right] [K] map C\n", + "\n", + " [key value] first [left right] [K] map flatten cons\n", + " key [left right] [K] map flatten cons\n", + " key [[lk] [rk] ] flatten cons\n", + " key [ lk rk ] cons\n", + " [key lk rk ]\n", + "\n", + "So:\n", + "\n", + " [] [flatten cons] [first] treestep" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3 2 9 5 4 8 6 7]\n" + ] + } + ], + "source": [ + "J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] [] [flatten cons] [first] treestep')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "There we go.\n", + "#### In-order traversal with `treestep`.\n", + "\n", + "From here:\n", + "\n", + " key [[lk] [rk]] C\n", + " key [[lk] [rk]] i\n", + " key [lk] [rk] roll<\n", + " [lk] [rk] key swons concat\n", + " [lk] [key rk] concat\n", + " [lk key rk]\n", + "\n", + "So:\n", + "\n", + " [] [i roll< swons concat] [first] treestep" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[2 3 4 5 6 7 8 9]\n" + ] + } + ], + "source": [ + "J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] [] [i roll< swons concat] [uncons pop] treestep')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Miscellaneous Crap" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Toy with it.\n", + "Let's reexamine:\n", + "\n", + " [key value left right] R0 [BTree-iter-order] R1\n", + " ...\n", + " left BTree-iter-order key value F right BTree-iter-order\n", + "\n", + "\n", + " [key value left right] disenstacken swap\n", + " key value left right swap\n", + " key value right left\n", + "\n", + " key value right left [BTree-iter-order] [cons dipdd] dupdip\n", + " key value right left [BTree-iter-order] cons dipdd [BTree-iter-order]\n", + " key value right [left BTree-iter-order] dipdd [BTree-iter-order]\n", + " left BTree-iter-order key value right [BTree-iter-order]\n", + "\n", + " left BTree-iter-order key value right [F] dip [BTree-iter-order]\n", + " left BTree-iter-order key value F right [BTree-iter-order] i\n", + " left BTree-iter-order key value F right BTree-iter-order\n", + "\n", + "So:\n", + "\n", + " R0 == disenstacken swap\n", + " R1 == [cons dipdd [F] dip] dupdip i\n", + "\n", + " [key value left right] R0 [BTree-iter-order] R1\n", + " [key value left right] disenstacken swap [BTree-iter-order] [cons dipdd [F] dip] dupdip i\n", + " key value right left [BTree-iter-order] [cons dipdd [F] dip] dupdip i\n", + "\n", + " key value right left [BTree-iter-order] cons dipdd [F] dip [BTree-iter-order] i\n", + " key value right [left BTree-iter-order] dipdd [F] dip [BTree-iter-order] i\n", + " left BTree-iter-order key value right [F] dip [BTree-iter-order] i\n", + " left BTree-iter-order key value F right [BTree-iter-order] i\n", + " left BTree-iter-order key value F right BTree-iter-order\n", + "\n", + "\n", + " BTree-iter-order == [not] [pop] [disenstacken swap] [[cons dipdd [F] dip] dupdip i] genrec" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Refactor `cons cons`\n", + " cons2 == cons cons\n", + "\n", + "Refactoring:\n", + "\n", + " BTree-new == swap [[] []] cons2\n", + " T == [cons2 dipdd] cons2 cons infra\n", + " Te == [cons2 dipd] cons2 cons infra\n", + " Ee == pop swap roll< rest rest cons2\n", + "\n", + "It's used a lot because it's tied to the fact that there are two \"data items\" in each node. This point to a more general factorization that would render a combinator that could work for other geometries of trees." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## A General Form for Trees\n", + "A general form for tree data with N children per node:\n", + "\n", + " [[data] [child0] ... [childN-1]]\n", + "\n", + "Suggests a general form of recursive iterator, but I have to go walk the dogs at the mo'.\n", + "\n", + "For a given structure, you would have a structure of operator functions and sort of merge them and run them, possibly in a different order (pre- post- in- y'know). The `Cn` functions could all be the same and use the `step` trick if the children nodes are all of the right kind. If they are heterogeneous then we need a way to get the different `Cn` into the structure in the right order. If I understand correctly, the \"Bananas...\" paper shows how to do this automatically from a type description. They present, if I have it right, a tiny machine that accepts [some sort of algebraic data type description and returns a function that can recusre over it](https://en.wikipedia.org/wiki/Catamorphism#General_case), I think.\n", + "\n", + " [data.. [c0] [c1] ... [cN]] [F C0 C1 ... CN] infil\n", + " --------------------------------------------------------\n", + " data F [c0] C0 [c1] C1 ... [cN] CN\n", + " \n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Just make `[F]` a parameter.\n", + "We can generalize to a sort of pure form:\n", + "\n", + " BTree-iter == [not] [pop] [[F]] [R1] genrec\n", + " == [not] [pop] [[F] [BTree-iter] R1] ifte\n", + "\n", + "Putting `[F]` to the left as a given:\n", + "\n", + " [F] unit [not] [pop] roll< [R1] genrec\n", + " [[F]] [not] [pop] roll< [R1] genrec\n", + " [not] [pop] [[F]] [R1] genrec\n", + "\n", + "Let's us define a parameterized form:\n", + "\n", + " BTree-iter == unit [not] [pop] roll< [R1] genrec\n", + "\n", + "So in the general case of non-empty nodes:\n", + "\n", + " [key value left right] [F] [BTree-iter] R1\n", + "\n", + "We just define `R1` to do whatever it has to to process the node. For example:\n", + "\n", + " [key value left right] [F] [BTree-iter] R1\n", + " ...\n", + " key value F left BTree-iter right BTree-iter\n", + " left BTree-iter key value F right BTree-iter\n", + " left BTree-iter right BTree-iter key value F\n", + "\n", + "Pre-, ??-, post-order traversals.\n", + "\n", + " [key value left right] uncons uncons\n", + " key value [left right]\n", + "\n", + "For pre- and post-order we can use the `step` trick:\n", + "\n", + " [left right] [BTree-iter] step\n", + " ...\n", + " left BTree-iter right BTree-iter\n", + "\n", + "We worked out one scheme for ?in-order? traversal above, but maybe we can do better?\n", + "\n", + " [key value left right] [F] [BTree-iter] [disenstacken] dipd\n", + " [key value left right] disenstacken [F] [BTree-iter]\n", + " key value left right [F] [BTree-iter]\n", + "\n", + " key value left right [F] [BTree-iter] R1.1\n", + "\n", + "Hmm...\n", + "\n", + " key value left right [F] [BTree-iter] tuck\n", + " key value left right [BTree-iter] [F] [BTree-iter] \n", + "\n", + "\n", + " [key value left right] [F] [BTree-iter] [disenstacken [roll>] dip] dipd\n", + " [key value left right] disenstacken [roll>] dip [F] [BTree-iter]\n", + " key value left right [roll>] dip [F] [BTree-iter]\n", + " key value left roll> right [F] [BTree-iter]\n", + " left key value right [F] [BTree-iter]\n", + "\n", + " left key value right [F] [BTree-iter] tuck foo\n", + " left key value right [BTree-iter] [F] [BTree-iter] foo\n", + " ...\n", + " left BTree-iter key value F right BTree-iter\n", + "\n", + "We could just let `[R1]` be a parameter too, for maximum flexibility.\n", + "\n", + "#### Automatically deriving the recursion combinator for a data type?\n", + "\n", + "If I understand it correctly, the \"Bananas...\" paper talks about a way to build the processor function automatically from the description of the type. I think if we came up with an elegant way for the Joy code to express that, it would be cool. In Joypy the definitions can be circular because lookup happens at evaluation, not parsing. E.g.:\n", + "\n", + " A == ... B ...\n", + " B == ... A ...\n", + "\n", + "That's fine. Circular datastructures can't be made though.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Trees.md b/docs/Trees.md new file mode 100644 index 0000000..6afde40 --- /dev/null +++ b/docs/Trees.md @@ -0,0 +1,1344 @@ + +# Treating Trees +Although any expression in Joy can be considered to describe a [tree](https://en.wikipedia.org/wiki/Tree_structure) with the quotes as compound nodes and the non-quote values as leaf nodes, in this page I want to talk about [ordered binary trees](https://en.wikipedia.org/wiki/Binary_search_tree) and how to make and use them. + +The basic structure, in a [crude type notation](https://en.wikipedia.org/wiki/Algebraic_data_type), is: + + BTree :: [] | [key value BTree BTree] + +That says that a BTree is either the empty quote `[]` or a quote with four items: a key, a value, and two BTrees representing the left and right branches of the tree. + +## A Function to Traverse this Structure +Let's take a crack at writing a function that can recursively iterate or traverse these trees. + +#### Base case `[]` +The stopping predicate just has to detect the empty list: + + BTree-iter == [not] [E] [R0] [R1] genrec + +And since there's nothing at this node, we just `pop` it: + + BTree-iter == [not] [pop] [R0] [R1] genrec + +#### Node case `[key value left right]` +Now we need to figure out `R0` and `R1`: + + BTree-iter == [not] [pop] [R0] [R1] genrec + == [not] [pop] [R0 [BTree-iter] R1] ifte + +Let's look at it *in situ*: + + [key value left right] R0 [BTree-iter] R1 + +#### Processing the current node. + +`R0` is almost certainly going to use `dup` to make a copy of the node and then `dip` on some function to process the copy with it: + + [key value left right] [F] dupdip [BTree-iter] R1 + [key value left right] F [key value left right] [BTree-iter] R1 + +For example, if we're getting all the keys `F` would be `first`: + + R0 == [first] dupdip + + [key value left right] [first] dupdip [BTree-iter] R1 + [key value left right] first [key value left right] [BTree-iter] R1 + key [key value left right] [BTree-iter] R1 + +#### Recur +Now `R1` needs to apply `[BTree-iter]` to `left` and `right`. If we drop the key and value from the node using `rest` twice we are left with an interesting situation: + + key [key value left right] [BTree-iter] R1 + key [key value left right] [BTree-iter] [rest rest] dip + key [key value left right] rest rest [BTree-iter] + key [left right] [BTree-iter] + +Hmm, will `step` do? + + key [left right] [BTree-iter] step + key left BTree-iter [right] [BTree-iter] step + key left-keys [right] [BTree-iter] step + key left-keys right BTree-iter + key left-keys right-keys + +Wow. So: + + R1 == [rest rest] dip step + +#### Putting it together +We have: + + BTree-iter == [not] [pop] [[F] dupdip] [[rest rest] dip step] genrec + +When I was reading this over I realized `rest rest` could go in `R0`: + + BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec + +(And `[step] genrec` is such a cool and suggestive combinator!) + +#### Parameterizing the `F` per-node processing function. + + [F] BTree-iter == [not] [pop] [[F] dupdip rest rest] [step] genrec + +Working backward: + + [not] [pop] [[F] dupdip rest rest] [step] genrec + [not] [pop] [F] [dupdip rest rest] cons [step] genrec + [F] [not] [pop] roll< [dupdip rest rest] cons [step] genrec + +Ergo: + + BTree-iter == [not] [pop] roll< [dupdip rest rest] cons [step] genrec + + +```python +from notebook_preamble import J, V, define +``` + + +```python +define('BTree-iter == [not] [pop] roll< [dupdip rest rest] cons [step] genrec') +``` + + +```python +J('[] [23] BTree-iter') # It doesn't matter what F is as it won't be used. +``` + + + + + +```python +J('["tommy" 23 [] []] [first] BTree-iter') +``` + + 'tommy' + + + +```python +J('["tommy" 23 ["richard" 48 [] []] ["jenny" 18 [] []]] [first] BTree-iter') +``` + + 'tommy' 'richard' 'jenny' + + + +```python +J('["tommy" 23 ["richard" 48 [] []] ["jenny" 18 [] []]] [second] BTree-iter') +``` + + 23 48 18 + + +# Adding Nodes to the BTree +Let's consider adding nodes to a BTree structure. + + BTree value key BTree-add == BTree + +#### Adding to an empty node. +If the current node is `[]` then you just return `[key value [] []]`: + + BTree-add == [popop not] [[pop] dipd BTree-new] [R0] [R1] genrec + +Where `BTree-new` is: + + value key BTree-new == [key value [] []] + + value key swap [[] []] cons cons + key value [[] []] cons cons + key [value [] []] cons + [key value [] []] + + BTree-new == swap [[] []] cons cons + + +```python +define('BTree-new == swap [[] []] cons cons') +``` + + +```python +V('"v" "k" BTree-new') +``` + + . 'v' 'k' BTree-new + 'v' . 'k' BTree-new + 'v' 'k' . BTree-new + 'v' 'k' . swap [[] []] cons cons + 'k' 'v' . [[] []] cons cons + 'k' 'v' [[] []] . cons cons + 'k' ['v' [] []] . cons + ['k' 'v' [] []] . + + +(As an implementation detail, the `[[] []]` literal used in the definition of `BTree-new` will be reused to supply the *constant* tail for *all* new nodes produced by it. This is one of those cases where you get amortized storage "for free" by using [persistent datastructures](https://en.wikipedia.org/wiki/Persistent_data_structure). Because the tail, which is `((), ((), ()))` in Python, is immutable and embedded in the definition body for `BTree-new`, all new nodes can reuse it as their own tail without fear that some other code somewhere will change it.) + +#### If the current node isn't empty. + +We now have to derive `R0` and `R1`, consider: + + [key_n value_n left right] value key R0 [BTree-add] R1 + +In this case, there are three possibilites: the key can be greater or less than or equal to the node's key. In two of those cases we will need to apply a copy of `BTree-add`, so `R0` is pretty much out of the picture. + + [R0] == [] + +#### A predicate to compare keys. +The first thing we need to do is compare the the key we're adding to see if it is greater than the node key and `branch` accordingly, although in this case it's easier to write a destructive predicate and then use `ifte` to apply it `nullary`: + + [key_n value_n left right] value key [BTree-add] R1 + [key_n value_n left right] value key [BTree-add] [P >] [T] [E] ifte + + [key_n value_n left right] value key [BTree-add] P > + [key_n value_n left right] value key [BTree-add] pop roll> pop first > + [key_n value_n left right] value key roll> pop first > + key [key_n value_n left right] value roll> pop first > + key key_n > + Boolean + + P > == pop roll> pop first > + P < == pop roll> pop first < + P == pop roll> pop first + + +```python +define('P == pop roll> pop first') +``` + + +```python +V('["k" "v" [] []] "vv" "kk" [0] P >') +``` + + . ['k' 'v' [] []] 'vv' 'kk' [0] P > + ['k' 'v' [] []] . 'vv' 'kk' [0] P > + ['k' 'v' [] []] 'vv' . 'kk' [0] P > + ['k' 'v' [] []] 'vv' 'kk' . [0] P > + ['k' 'v' [] []] 'vv' 'kk' [0] . P > + ['k' 'v' [] []] 'vv' 'kk' [0] . pop roll> pop first > + ['k' 'v' [] []] 'vv' 'kk' . roll> pop first > + 'kk' ['k' 'v' [] []] 'vv' . pop first > + 'kk' ['k' 'v' [] []] . first > + 'kk' 'k' . > + True . + + +#### If the key we're adding is greater than the node's key. + +Here the parantheses are meant to signify that the right-hand side (RHS) is not literal, the code in the parentheses is meant to have been evaluated: + + [key_n value_n left right] value key [BTree-add] T == [key_n value_n left (BTree-add key value right)] + +#### Use `infra` on `K`. +So how do we do this? We know we're going to want to use `infra` on some function `K` that has the key and value to work with, as well as the quoted copy of `BTree-add` to apply somehow: + + right left value_n key_n value key [BTree-add] K + ... + right value key BTree-add left value_n key_n + +Pretty easy: + + right left value_n key_n value key [BTree-add] cons cons dipdd + right left value_n key_n [value key BTree-add] dipdd + right value key BTree-add left value_n key_n + +So: + + K == cons cons dipdd + +And: + + [key_n value_n left right] [value key [BTree-add] K] infra + +#### Derive `T`. +So now we're at getting from this to this: + + [key_n value_n left right] value key [BTree-add] T + ... + [key_n value_n left right] [value key [BTree-add] K] infra + +And so `T` is just: + + value key [BTree-add] T == [value key [BTree-add] K] infra + T == [ K] cons cons cons infra + + +```python +define('K == cons cons dipdd') +define('T == [K] cons cons cons infra') +``` + + +```python +V('"r" "l" "v" "k" "vv" "kk" [0] K') +``` + + . 'r' 'l' 'v' 'k' 'vv' 'kk' [0] K + 'r' . 'l' 'v' 'k' 'vv' 'kk' [0] K + 'r' 'l' . 'v' 'k' 'vv' 'kk' [0] K + 'r' 'l' 'v' . 'k' 'vv' 'kk' [0] K + 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] K + 'r' 'l' 'v' 'k' 'vv' . 'kk' [0] K + 'r' 'l' 'v' 'k' 'vv' 'kk' . [0] K + 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . K + 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipdd + 'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipdd + 'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipdd + 'r' . 'vv' 'kk' 0 'l' 'v' 'k' + 'r' 'vv' . 'kk' 0 'l' 'v' 'k' + 'r' 'vv' 'kk' . 0 'l' 'v' 'k' + 'r' 'vv' 'kk' 0 . 'l' 'v' 'k' + 'r' 'vv' 'kk' 0 'l' . 'v' 'k' + 'r' 'vv' 'kk' 0 'l' 'v' . 'k' + 'r' 'vv' 'kk' 0 'l' 'v' 'k' . + + + +```python +V('["k" "v" "l" "r"] "vv" "kk" [0] T') +``` + + . ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] T + ['k' 'v' 'l' 'r'] . 'vv' 'kk' [0] T + ['k' 'v' 'l' 'r'] 'vv' . 'kk' [0] T + ['k' 'v' 'l' 'r'] 'vv' 'kk' . [0] T + ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . T + ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . [K] cons cons cons infra + ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] [K] . cons cons cons infra + ['k' 'v' 'l' 'r'] 'vv' 'kk' [[0] K] . cons cons infra + ['k' 'v' 'l' 'r'] 'vv' ['kk' [0] K] . cons infra + ['k' 'v' 'l' 'r'] ['vv' 'kk' [0] K] . infra + 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] K [] swaack + 'r' 'l' 'v' 'k' 'vv' . 'kk' [0] K [] swaack + 'r' 'l' 'v' 'k' 'vv' 'kk' . [0] K [] swaack + 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . K [] swaack + 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipdd [] swaack + 'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipdd [] swaack + 'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipdd [] swaack + 'r' . 'vv' 'kk' 0 'l' 'v' 'k' [] swaack + 'r' 'vv' . 'kk' 0 'l' 'v' 'k' [] swaack + 'r' 'vv' 'kk' . 0 'l' 'v' 'k' [] swaack + 'r' 'vv' 'kk' 0 . 'l' 'v' 'k' [] swaack + 'r' 'vv' 'kk' 0 'l' . 'v' 'k' [] swaack + 'r' 'vv' 'kk' 0 'l' 'v' . 'k' [] swaack + 'r' 'vv' 'kk' 0 'l' 'v' 'k' . [] swaack + 'r' 'vv' 'kk' 0 'l' 'v' 'k' [] . swaack + ['k' 'v' 'l' 0 'kk' 'vv' 'r'] . + + +#### If the key we're adding is less than the node's key. +This is very very similar to the above: + + [key_n value_n left right] value key [BTree-add] E + [key_n value_n left right] value key [BTree-add] [P <] [Te] [Ee] ifte + +In this case `Te` works that same as `T` but on the left child tree instead of the right, so the only difference is that it must use `dipd` instead of `dipdd`: + + Te == [cons cons dipd] cons cons cons infra + +This suggests an alternate factorization: + + ccons == cons cons + T == [ccons dipdd] ccons cons infra + Te == [ccons dipd] ccons cons infra + +But whatever. + + +```python +define('Te == [cons cons dipd] cons cons cons infra') +``` + + +```python +V('["k" "v" "l" "r"] "vv" "kk" [0] Te') +``` + + . ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] Te + ['k' 'v' 'l' 'r'] . 'vv' 'kk' [0] Te + ['k' 'v' 'l' 'r'] 'vv' . 'kk' [0] Te + ['k' 'v' 'l' 'r'] 'vv' 'kk' . [0] Te + ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . Te + ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] . [cons cons dipd] cons cons cons infra + ['k' 'v' 'l' 'r'] 'vv' 'kk' [0] [cons cons dipd] . cons cons cons infra + ['k' 'v' 'l' 'r'] 'vv' 'kk' [[0] cons cons dipd] . cons cons infra + ['k' 'v' 'l' 'r'] 'vv' ['kk' [0] cons cons dipd] . cons infra + ['k' 'v' 'l' 'r'] ['vv' 'kk' [0] cons cons dipd] . infra + 'r' 'l' 'v' 'k' . 'vv' 'kk' [0] cons cons dipd [] swaack + 'r' 'l' 'v' 'k' 'vv' . 'kk' [0] cons cons dipd [] swaack + 'r' 'l' 'v' 'k' 'vv' 'kk' . [0] cons cons dipd [] swaack + 'r' 'l' 'v' 'k' 'vv' 'kk' [0] . cons cons dipd [] swaack + 'r' 'l' 'v' 'k' 'vv' ['kk' 0] . cons dipd [] swaack + 'r' 'l' 'v' 'k' ['vv' 'kk' 0] . dipd [] swaack + 'r' 'l' . 'vv' 'kk' 0 'v' 'k' [] swaack + 'r' 'l' 'vv' . 'kk' 0 'v' 'k' [] swaack + 'r' 'l' 'vv' 'kk' . 0 'v' 'k' [] swaack + 'r' 'l' 'vv' 'kk' 0 . 'v' 'k' [] swaack + 'r' 'l' 'vv' 'kk' 0 'v' . 'k' [] swaack + 'r' 'l' 'vv' 'kk' 0 'v' 'k' . [] swaack + 'r' 'l' 'vv' 'kk' 0 'v' 'k' [] . swaack + ['k' 'v' 0 'kk' 'vv' 'l' 'r'] . + + +#### Else the keys must be equal. +This means we must find: + + [key_n value_n left right] value key [BTree-add] Ee + ... + [key value left right] + +This is another easy one: + + Ee == pop swap roll< rest rest cons cons + + [key_n value_n left right] value key [BTree-add] pop swap roll< rest rest cons cons + [key_n value_n left right] value key swap roll< rest rest cons cons + [key_n value_n left right] key value roll< rest rest cons cons + key value [key_n value_n left right] rest rest cons cons + key value [ left right] cons cons + [key value left right] + + +```python +define('Ee == pop swap roll< rest rest cons cons') +``` + + +```python +V('["k" "v" "l" "r"] "vv" "k" [0] Ee') +``` + + . ['k' 'v' 'l' 'r'] 'vv' 'k' [0] Ee + ['k' 'v' 'l' 'r'] . 'vv' 'k' [0] Ee + ['k' 'v' 'l' 'r'] 'vv' . 'k' [0] Ee + ['k' 'v' 'l' 'r'] 'vv' 'k' . [0] Ee + ['k' 'v' 'l' 'r'] 'vv' 'k' [0] . Ee + ['k' 'v' 'l' 'r'] 'vv' 'k' [0] . pop swap roll< rest rest cons cons + ['k' 'v' 'l' 'r'] 'vv' 'k' . swap roll< rest rest cons cons + ['k' 'v' 'l' 'r'] 'k' 'vv' . roll< rest rest cons cons + 'k' 'vv' ['k' 'v' 'l' 'r'] . rest rest cons cons + 'k' 'vv' ['v' 'l' 'r'] . rest cons cons + 'k' 'vv' ['l' 'r'] . cons cons + 'k' ['vv' 'l' 'r'] . cons + ['k' 'vv' 'l' 'r'] . + + + +```python +define('E == [P <] [Te] [Ee] ifte') +``` + +#### Now we can define `BTree-add` + BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec + +Putting it all together: + + BTree-new == swap [[] []] cons cons + P == pop roll> pop first + T == [cons cons dipdd] cons cons cons infra + Te == [cons cons dipd] cons cons cons infra + Ee == pop swap roll< rest rest cons cons + E == [P <] [Te] [Ee] ifte + + BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec + + +```python +define('BTree-add == [popop not] [[pop] dipd BTree-new] [] [[P >] [T] [E] ifte] genrec') +``` + + +```python +J('[] 23 "b" BTree-add') # Initial +``` + + ['b' 23 [] []] + + + +```python +J('["b" 23 [] []] 88 "c" BTree-add') # Less than +``` + + ['b' 23 [] ['c' 88 [] []]] + + + +```python +J('["b" 23 [] []] 88 "a" BTree-add') # Greater than +``` + + ['b' 23 ['a' 88 [] []] []] + + + +```python +J('["b" 23 [] []] 88 "b" BTree-add') # Equal to +``` + + ['b' 88 [] []] + + + +```python +J('[] 23 "a" BTree-add 88 "b" BTree-add 44 "c" BTree-add') # Series. +``` + + ['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] + + +We can use this to make a set-like datastructure by just setting values to e.g. 0 and ignoring them. It's set-like in that duplicate items added to it will only occur once within it, and we can query it in [$O(\log_2 N)$](https://en.wikipedia.org/wiki/Binary_search_tree#cite_note-2) time. + + +```python +J('[] [3 9 5 2 8 6 7 8 4] [0 swap BTree-add] step') +``` + + [3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]] + + + +```python +define('to_set == [] swap [0 swap BTree-add] step') +``` + + +```python +J('[3 9 5 2 8 6 7 8 4] to_set') +``` + + [3 0 [2 0 [] []] [9 0 [5 0 [4 0 [] []] [8 0 [6 0 [] [7 0 [] []]] []]] []]] + + +And with that we can write a little program to remove duplicate items from a list. + + +```python +define('unique == [to_set [first] BTree-iter] cons run') +``` + + +```python +J('[3 9 3 5 2 9 8 8 8 6 2 7 8 4 3] unique') # Filter duplicate items. +``` + + [7 6 8 4 5 9 2 3] + + +# `cmp` combinator +Instead of all this mucking about with nested `ifte` let's just go whole hog and define `cmp` which takes two values and three quoted programs on the stack and runs one of the three depending on the results of comparing the two values: + + a b [G] [E] [L] cmp + ------------------------- a > b + G + + a b [G] [E] [L] cmp + ------------------------- a = b + E + + a b [G] [E] [L] cmp + ------------------------- a < b + L + +We need a new non-destructive predicate `P`: + + [key_n value_n left right] value key [BTree-add] P + [key_n value_n left right] value key [BTree-add] over [Q] nullary + [key_n value_n left right] value key [BTree-add] key [Q] nullary + [key_n value_n left right] value key [BTree-add] key Q + [key_n value_n left right] value key [BTree-add] key popop popop first + [key_n value_n left right] value key popop first + [key_n value_n left right] first + key_n + [key_n value_n left right] value key [BTree-add] key [Q] nullary + [key_n value_n left right] value key [BTree-add] key key_n + + P == over [popop popop first] nullary + +Here are the definitions again, pruned and renamed in some cases: + + BTree-new == swap [[] []] cons cons + P == over [popop popop first] nullary + T> == [cons cons dipdd] cons cons cons infra + T< == [cons cons dipd] cons cons cons infra + E == pop swap roll< rest rest cons cons + +Using `cmp` to simplify [our code above at `R1`](#If-the-current-node-isn't-empty.): + + [key_n value_n left right] value key [BTree-add] R1 + [key_n value_n left right] value key [BTree-add] P [T>] [E] [T<] cmp + +The line above becomes one of the three lines below: + + [key_n value_n left right] value key [BTree-add] T> + [key_n value_n left right] value key [BTree-add] E + [key_n value_n left right] value key [BTree-add] T< + +The definition is a little longer but, I think, more elegant and easier to understand: + + BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T>] [E] [T<] cmp] genrec + + + +```python +from joy.library import FunctionWrapper +from joy.utils.stack import pushback +from notebook_preamble import D + + +@FunctionWrapper +def cmp_(stack, expression, dictionary): + L, (E, (G, (b, (a, stack)))) = stack + expression = pushback(G if a > b else L if a < b else E, expression) + return stack, expression, dictionary + + +D['cmp'] = cmp_ +``` + + +```python +J("1 0 ['G'] ['E'] ['L'] cmp") +``` + + 'G' + + + +```python +J("1 1 ['G'] ['E'] ['L'] cmp") +``` + + 'E' + + + +```python +J("0 1 ['G'] ['E'] ['L'] cmp") +``` + + 'L' + + + +```python +from joy.library import DefinitionWrapper + + +DefinitionWrapper.add_definitions(''' + +P == over [popop popop first] nullary +T> == [cons cons dipdd] cons cons cons infra +T< == [cons cons dipd] cons cons cons infra +E == pop swap roll< rest rest cons cons + +BTree-add == [popop not] [[pop] dipd BTree-new] [] [P [T>] [E] [T<] cmp] genrec + +''', D) +``` + + +```python +J('[] 23 "b" BTree-add') # Initial +``` + + ['b' 23 [] []] + + + +```python +J('["b" 23 [] []] 88 "c" BTree-add') # Less than +``` + + ['b' 23 [] ['c' 88 [] []]] + + + +```python +J('["b" 23 [] []] 88 "a" BTree-add') # Greater than +``` + + ['b' 23 ['a' 88 [] []] []] + + + +```python +J('["b" 23 [] []] 88 "b" BTree-add') # Equal to +``` + + ['b' 88 [] []] + + + +```python +J('[] 23 "a" BTree-add 88 "b" BTree-add 44 "c" BTree-add') # Series. +``` + + ['a' 23 [] ['b' 88 [] ['c' 44 [] []]]] + + +# Factoring and naming +It may seem silly, but a big part of programming in Forth (and therefore in Joy) is the idea of small, highly-factored definitions. If you choose names carefully the resulting definitions can take on a semantic role. + + get-node-key == popop popop first + remove-key-and-value-from-node == rest rest + pack-key-and-value == cons cons + prep-new-key-and-value == pop swap roll< + pack-and-apply == [pack-key-and-value] swoncat cons pack-key-and-value infra + + BTree-new == swap [[] []] pack-key-and-value + P == over [get-node-key] nullary + T> == [dipdd] pack-and-apply + T< == [dipd] pack-and-apply + E == prep-new-key-and-value remove-key-and-value-from-node pack-key-and-value + + +# A Version of `BTree-iter` that does In-Order Traversal + +If you look back to the [non-empty case of the `BTree-iter` function](#Node-case-[key-value-left-right]) we can design a varient that first processes the left child, then the current node, then the right child. This will allow us to traverse the tree in sort order. + + BTree-iter-order == [not] [pop] [R0 [BTree-iter] R1] ifte + +To define `R0` and `R1` it helps to look at them as they will appear when they run: + + [key value left right] R0 [BTree-iter-order] R1 + +#### Process the left child. +Staring at this for a bit suggests `dup third` to start: + + [key value left right] R0 [BTree-iter-order] R1 + [key value left right] dup third [BTree-iter-order] R1 + [key value left right] left [BTree-iter-order] R1 + +Now maybe: + + [key value left right] left [BTree-iter-order] [cons dip] dupdip + [key value left right] left [BTree-iter-order] cons dip [BTree-iter-order] + [key value left right] [left BTree-iter-order] dip [BTree-iter-order] + left BTree-iter-order [key value left right] [BTree-iter-order] + +#### Process the current node. +So far, so good. Now we need to process the current node's values: + + left BTree-iter-order [key value left right] [BTree-iter-order] [[F] dupdip] dip + left BTree-iter-order [key value left right] [F] dupdip [BTree-iter-order] + left BTree-iter-order [key value left right] F [key value left right] [BTree-iter-order] + +If `F` needs items from the stack below the left stuff it should have `cons`'d them before beginning maybe? For functions like `first` it works fine as-is. + + left BTree-iter-order [key value left right] first [key value left right] [BTree-iter-order] + left BTree-iter-order key [key value left right] [BTree-iter-order] + +#### Process the right child. +First ditch the rest of the node and get the right child: + + left BTree-iter-order key [key value left right] [BTree-iter-order] [rest rest rest first] dip + left BTree-iter-order key right [BTree-iter-order] + +Then, of course, we just need `i` to run `BTree-iter-order` on the right side: + + left BTree-iter-order key right [BTree-iter-order] i + left BTree-iter-order key right BTree-iter-order + +#### Defining `BTree-iter-order` +The result is a little awkward: + + R1 == [cons dip] dupdip [[F] dupdip] dip [rest rest rest first] dip i + +Let's do a little semantic factoring: + + fourth == rest rest rest first + + proc_left == [cons dip] dupdip + proc_current == [[F] dupdip] dip + proc_right == [fourth] dip i + + BTree-iter-order == [not] [pop] [dup third] [proc_left proc_current proc_right] genrec + +Now we can sort sequences. + + +```python +define('BTree-iter-order == [not] [pop] [dup third] [[cons dip] dupdip [[first] dupdip] dip [rest rest rest first] dip i] genrec') +``` + + +```python +J('[3 9 5 2 8 6 7 8 4] to_set BTree-iter-order') +``` + + 2 3 4 5 6 7 8 9 + + +# Getting values by key +Let's derive a function that accepts a tree and a key and returns the value associated with that key. + + tree key BTree-get + ------------------------ + value + +#### The base case `[]` +As before, the stopping predicate just has to detect the empty list: + + BTree-get == [pop not] [E] [R0] [R1] genrec + +But what do we do if the key isn't in the tree? In Python we might raise a `KeyError` but I'd like to avoid exceptions in Joy if possible, and here I think it's possible. (Division by zero is an example of where I think it's probably better to let Python crash Joy. Sometimes the machinery fails and you have to "stop the line", methinks.) + +Let's pass the buck to the caller by making the base case a given, you have to decide for yourself what `[E]` should be. + + + tree key [E] BTree-get + ---------------------------- key in tree + value + + tree key [E] BTree-get + ---------------------------- key not in tree + tree key E + +Now we define: + + BTree-get == [pop not] swap [R0] [R1] genrec + +Note that this `BTree-get` creates a slightly different function than itself and *that function* does the actual recursion. This kind of higher-level programming is unusual in most languages but natural in Joy. + + tree key [E] [pop not] swap [R0] [R1] genrec + tree key [pop not] [E] [R0] [R1] genrec + +The anonymous specialized recursive function that will do the real work. + + [pop not] [E] [R0] [R1] genrec + +#### Node case `[key value left right]` +Now we need to figure out `R0` and `R1`: + + [key value left right] key R0 [BTree-get] R1 + +We want to compare the search key with the key in the node, and if they are the same return the value and if they differ then recurse on one of the child nodes. So it's very similar to the above funtion, with `[R0] == []` and `R1 == P [T>] [E] [T<] cmp`: + + [key value left right] key [BTree-get] P [T>] [E] [T<] cmp + +So: + + get-node-key == pop popop first + P == over [get-node-key] nullary + +The only difference is that `get-node-key` does one less `pop` because there's no value to discard. Now we have to derive the branches: + + [key_n value_n left right] key [BTree-get] T> + [key_n value_n left right] key [BTree-get] E + [key_n value_n left right] key [BTree-get] T< + +The cases of `T>` and `T<` are similar to above but instead of using `infra` we have to discard the rest of the structure: + + [key_n value_n left right] key [BTree-get] T> == right key BTree-get + [key_n value_n left right] key [BTree-get] T< == left key BTree-get + +So: + + T> == [fourth] dipd i + T< == [third] dipd i + +E.g.: + + [key_n value_n left right] key [BTree-get] [fourth] dipd i + [key_n value_n left right] fourth key [BTree-get] i + right key [BTree-get] i + right key BTree-get + +And: + + [key_n value_n left right] key [BTree-get] E == value_n + + E == popop second + +So: + + fourth == rest rest rest first + get-node-key == pop popop first + P == over [get-node-key] nullary + T> == [fourth] dipd i + T< == [third] dipd i + E == popop second + + BTree-get == [pop not] swap [] [P [T>] [E] [T<] cmp] genrec + + +```python +# I don't want to deal with name conflicts with the above so I'm inlining everything here. +# The original Joy system has "hide" which is a meta-command which allows you to use named +# definitions that are only in scope for a given definition. I don't want to implement +# that (yet) so... + + +define(''' +BTree-get == [pop not] swap [] [ + over [pop popop first] nullary + [[rest rest rest first] dipd i] + [popop second] + [[third] dipd i] + cmp + ] genrec +''') +``` + + +```python +J('[] "gary" [popop "err"] BTree-get') +``` + + 'err' + + + +```python +J('["gary" 23 [] []] "gary" [popop "err"] BTree-get') +``` + + 23 + + + +```python +J(''' + + [] [[0 'a'] [1 'b'] [2 'c']] [i BTree-add] step + + 'c' [popop 'not found'] BTree-get + +''') +``` + + 2 + + +# TODO: BTree-delete + +Then, once we have add, get, and delete we can see about abstracting them. + + tree key [E] BTree-delete + ---------------------------- key in tree + tree + + tree key [E] BTree-delete + ---------------------------- key not in tree + tree key E + +So: + + BTree-delete == [pop not] [] [R0] [R1] genrec + +And: + + [n_key n_value left right] key R0 [BTree-get] R1 + [n_key n_value left right] key [dup first] dip [BTree-get] R1 + [n_key n_value left right] n_key key [BTree-get] R1 + [n_key n_value left right] n_key key [BTree-get] roll> [T>] [E] [T<] cmp + [n_key n_value left right] [BTree-get] n_key key [T>] [E] [T<] cmp + + BTree-delete == [pop not] swap [[dup first] dip] [roll> [T>] [E] [T<] cmp] genrec + + [n_key n_value left right] [BTree-get] T> + [n_key n_value left right] [BTree-get] E + [n_key n_value left right] [BTree-get] T< + + [n_key n_value left right] [BTree-get] + [n_key n_value left right] [BTree-get] E + [n_key n_value left right] [BTree-get] T< + +# Tree with node and list of trees. +Let's consider a tree structure, similar to one described ["Why functional programming matters" by John Hughes](https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf), that consists of a node value and a sequence of zero or more child trees. (The asterisk is meant to indicate the [Kleene star](https://en.wikipedia.org/wiki/Kleene_star).) + + tree = [] | [node [tree*]] + +### `treestep` +In the spirit of `step` we are going to define a combinator `treestep` which expects a tree and three additional items: a base-case value `z`, and two quoted programs `[C]` and `[N]`. + + tree z [C] [N] treestep + +If the current tree node is empty then just leave `z` on the stack in lieu: + + [] z [C] [N] treestep + --------------------------- + z + +Otherwise, evaluate `N` on the node value, `map` the whole function (abbreviated here as `k`) over the child trees recursively, and then combine the result with `C`. + + [node [tree*]] z [C] [N] treestep + --------------------------------------- w/ K == z [C] [N] treestep + node N [tree*] [K] map C + +### Derive the recursive form. +Since this is a recursive function, we can begin to derive it by finding the `ifte` stage that `genrec` will produce. The predicate and base-case functions are trivial, so we just have to derive `J`. + + K == [not] [pop z] [J] ifte + +The behavior of `J` is to accept a (non-empty) tree node and arrive at the desired outcome. + + [node [tree*]] J + ------------------------------ + node N [tree*] [K] map C + +So `J` will have some form like: + + J == .. [N] .. [K] .. [C] .. + +Let's dive in. First, unquote the node and `dip` `N`. + + [node [tree*]] i [N] dip + node [tree*] [N] dip + node N [tree*] + +Next, `map` `K` over teh child trees and combine with `C`. + + node N [tree*] [K] map C + node N [tree*] [K] map C + node N [K.tree*] C + +So: + + J == i [N] dip [K] map C + +Plug it in and convert to `genrec`: + + K == [not] [pop z] [i [N] dip [K] map C] ifte + K == [not] [pop z] [i [N] dip] [map C] genrec + +### Extract the givens to parameterize the program. + + [not] [pop z] [i [N] dip] [map C] genrec + + [not] [pop z] [i [N] dip] [map C] genrec + [not] [z] [pop] swoncat [i [N] dip] [map C] genrec + [not] z unit [pop] swoncat [i [N] dip] [map C] genrec + z [not] swap unit [pop] swoncat [i [N] dip] [map C] genrec + \ .........TS0............./ + \/ + z TS0 [i [N] dip] [map C] genrec + z [i [N] dip] [TS0] dip [map C] genrec + z [[N] dip] [i] swoncat [TS0] dip [map C] genrec + z [N] [dip] cons [i] swoncat [TS0] dip [map C] genrec + \ ......TS1........./ + \/ + z [N] TS1 [TS0] dip [map C] genrec + z [N] [map C] [TS1 [TS0] dip] dip genrec + z [N] [C] [map] swoncat [TS1 [TS0] dip] dip genrec + z [C] [N] swap [map] swoncat [TS1 [TS0] dip] dip genrec + +The givens are all to the left so we have our definition. + +### Define `treestep` + TS0 == [not] swap unit [pop] swoncat + TS1 == [dip] cons [i] swoncat + treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec + + +```python +DefinitionWrapper.add_definitions(''' + + TS0 == [not] swap unit [pop] swoncat + TS1 == [dip] cons [i] swoncat +treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec + +''', D) +``` + + [] 0 [C] [N] treestep + --------------------------- + 0 + + + [n [tree*]] 0 [sum +] [] treestep + -------------------------------------------------- + n [tree*] [0 [sum +] [] treestep] map sum + + + +```python +J('[] 0 [sum +] [] treestep') +``` + + 0 + + + +```python +J('[23 []] 0 [sum +] [] treestep') +``` + + 23 + + + +```python +J('[23 [[2 []] [3 []]]] 0 [sum +] [] treestep') +``` + + 28 + + +## A slight modification. +Let's simplify the tree datastructure definition slightly by just letting the children be the `rest` of the tree: + + tree = [] | [node tree*] + +The `J` function changes slightly. + + [node tree*] J + ------------------------------ + node N [tree*] [K] map C + + + [node tree*] uncons [N] dip [K] map C + node [tree*] [N] dip [K] map C + node N [tree*] [K] map C + node N [tree*] [K] map C + node N [K.tree*] C + + J == uncons [N] dip [K] map C + + K == [not] [pop z] [uncons [N] dip] [map C] genrec + + + +```python +define('TS1 == [dip] cons [uncons] swoncat') # We only need to redefine one word. +``` + + +```python +J('[23 [2] [3]] 0 [sum +] [] treestep') +``` + + 28 + + + +```python +J('[23 [2 [8] [9]] [3] [4 []]] 0 [sum +] [] treestep') +``` + + 49 + + +I think these trees seem a little easier to read. + +## Redefining our BTree in terms of this form. + + BTree = [] | [[key value] left right] + +What kind of functions can we write for this with our `treestep`? The pattern for processing a non-empty node is: + + node N [tree*] [K] map C + +Plugging in our BTree structure: + + [key value] N [left right] [K] map C + + + [key value] uncons pop [left right] [K] map i + key [value] pop [left right] [K] map i + key [left right] [K] map i + key [lkey rkey ] i + key lkey rkey + + + +```python +J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] 23 [i] [uncons pop] treestep') +``` + + 3 23 23 + + +Doesn't work because `map` extracts the `first` item of whatever its mapped function produces. We have to return a list, rather than depositing our results directly on the stack. + + + [key value] N [left right] [K] map C + + [key value] first [left right] [K] map flatten cons + key [left right] [K] map flatten cons + key [[lk] [rk] ] flatten cons + key [ lk rk ] cons + [key lk rk ] + +So: + + [] [flatten cons] [first] treestep + + +```python +J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] [] [flatten cons] [first] treestep') +``` + + [3 2 9 5 4 8 6 7] + + +There we go. +#### In-order traversal with `treestep`. + +From here: + + key [[lk] [rk]] C + key [[lk] [rk]] i + key [lk] [rk] roll< + [lk] [rk] key swons concat + [lk] [key rk] concat + [lk key rk] + +So: + + [] [i roll< swons concat] [first] treestep + + +```python +J('[[3 0] [[2 0] [] []] [[9 0] [[5 0] [[4 0] [] []] [[8 0] [[6 0] [] [[7 0] [] []]] []]] []]] [] [i roll< swons concat] [uncons pop] treestep') +``` + + [2 3 4 5 6 7 8 9] + + +## Miscellaneous Crap + +### Toy with it. +Let's reexamine: + + [key value left right] R0 [BTree-iter-order] R1 + ... + left BTree-iter-order key value F right BTree-iter-order + + + [key value left right] disenstacken swap + key value left right swap + key value right left + + key value right left [BTree-iter-order] [cons dipdd] dupdip + key value right left [BTree-iter-order] cons dipdd [BTree-iter-order] + key value right [left BTree-iter-order] dipdd [BTree-iter-order] + left BTree-iter-order key value right [BTree-iter-order] + + left BTree-iter-order key value right [F] dip [BTree-iter-order] + left BTree-iter-order key value F right [BTree-iter-order] i + left BTree-iter-order key value F right BTree-iter-order + +So: + + R0 == disenstacken swap + R1 == [cons dipdd [F] dip] dupdip i + + [key value left right] R0 [BTree-iter-order] R1 + [key value left right] disenstacken swap [BTree-iter-order] [cons dipdd [F] dip] dupdip i + key value right left [BTree-iter-order] [cons dipdd [F] dip] dupdip i + + key value right left [BTree-iter-order] cons dipdd [F] dip [BTree-iter-order] i + key value right [left BTree-iter-order] dipdd [F] dip [BTree-iter-order] i + left BTree-iter-order key value right [F] dip [BTree-iter-order] i + left BTree-iter-order key value F right [BTree-iter-order] i + left BTree-iter-order key value F right BTree-iter-order + + + BTree-iter-order == [not] [pop] [disenstacken swap] [[cons dipdd [F] dip] dupdip i] genrec + +#### Refactor `cons cons` + cons2 == cons cons + +Refactoring: + + BTree-new == swap [[] []] cons2 + T == [cons2 dipdd] cons2 cons infra + Te == [cons2 dipd] cons2 cons infra + Ee == pop swap roll< rest rest cons2 + +It's used a lot because it's tied to the fact that there are two "data items" in each node. This point to a more general factorization that would render a combinator that could work for other geometries of trees. + +## A General Form for Trees +A general form for tree data with N children per node: + + [[data] [child0] ... [childN-1]] + +Suggests a general form of recursive iterator, but I have to go walk the dogs at the mo'. + +For a given structure, you would have a structure of operator functions and sort of merge them and run them, possibly in a different order (pre- post- in- y'know). The `Cn` functions could all be the same and use the `step` trick if the children nodes are all of the right kind. If they are heterogeneous then we need a way to get the different `Cn` into the structure in the right order. If I understand correctly, the "Bananas..." paper shows how to do this automatically from a type description. They present, if I have it right, a tiny machine that accepts [some sort of algebraic data type description and returns a function that can recusre over it](https://en.wikipedia.org/wiki/Catamorphism#General_case), I think. + + [data.. [c0] [c1] ... [cN]] [F C0 C1 ... CN] infil + -------------------------------------------------------- + data F [c0] C0 [c1] C1 ... [cN] CN + + + +#### Just make `[F]` a parameter. +We can generalize to a sort of pure form: + + BTree-iter == [not] [pop] [[F]] [R1] genrec + == [not] [pop] [[F] [BTree-iter] R1] ifte + +Putting `[F]` to the left as a given: + + [F] unit [not] [pop] roll< [R1] genrec + [[F]] [not] [pop] roll< [R1] genrec + [not] [pop] [[F]] [R1] genrec + +Let's us define a parameterized form: + + BTree-iter == unit [not] [pop] roll< [R1] genrec + +So in the general case of non-empty nodes: + + [key value left right] [F] [BTree-iter] R1 + +We just define `R1` to do whatever it has to to process the node. For example: + + [key value left right] [F] [BTree-iter] R1 + ... + key value F left BTree-iter right BTree-iter + left BTree-iter key value F right BTree-iter + left BTree-iter right BTree-iter key value F + +Pre-, ??-, post-order traversals. + + [key value left right] uncons uncons + key value [left right] + +For pre- and post-order we can use the `step` trick: + + [left right] [BTree-iter] step + ... + left BTree-iter right BTree-iter + +We worked out one scheme for ?in-order? traversal above, but maybe we can do better? + + [key value left right] [F] [BTree-iter] [disenstacken] dipd + [key value left right] disenstacken [F] [BTree-iter] + key value left right [F] [BTree-iter] + + key value left right [F] [BTree-iter] R1.1 + +Hmm... + + key value left right [F] [BTree-iter] tuck + key value left right [BTree-iter] [F] [BTree-iter] + + + [key value left right] [F] [BTree-iter] [disenstacken [roll>] dip] dipd + [key value left right] disenstacken [roll>] dip [F] [BTree-iter] + key value left right [roll>] dip [F] [BTree-iter] + key value left roll> right [F] [BTree-iter] + left key value right [F] [BTree-iter] + + left key value right [F] [BTree-iter] tuck foo + left key value right [BTree-iter] [F] [BTree-iter] foo + ... + left BTree-iter key value F right BTree-iter + +We could just let `[R1]` be a parameter too, for maximum flexibility. + +#### Automatically deriving the recursion combinator for a data type? + +If I understand it correctly, the "Bananas..." paper talks about a way to build the processor function automatically from the description of the type. I think if we came up with an elegant way for the Joy code to express that, it would be cool. In Joypy the definitions can be circular because lookup happens at evaluation, not parsing. E.g.: + + A == ... B ... + B == ... A ... + +That's fine. Circular datastructures can't be made though. + + diff --git a/docs/Zipper.html b/docs/Zipper.html new file mode 100644 index 0000000..cbab02b --- /dev/null +++ b/docs/Zipper.html @@ -0,0 +1,12482 @@ + + + +Zipper + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+

This notebook is about using the "zipper" with joy datastructures. See the Zipper wikipedia entry or the original paper: "FUNCTIONAL PEARL The Zipper" by Gérard Huet

+

Given a datastructure on the stack we can navigate through it, modify it, and rebuild it using the "zipper" technique.

+ +
+
+
+
+
+
+
+

Preamble

+
+
+
+
+
+
In [1]:
+
+
+
from notebook_preamble import J, V, define
+
+ +
+
+
+ +
+
+
+
+
+

Trees

In Joypy there aren't any complex datastructures, just ints, floats, strings, Symbols (strings that are names of functions) and sequences (aka lists, aka quoted literals, aka aggregates, etc...), but we can build trees out of sequences.

+ +
+
+
+
+
+
In [2]:
+
+
+
J('[1 [2 [3 4 25 6] 7] 8]')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 [2 [3 4 25 6] 7] 8]
+
+
+
+ +
+
+ +
+
+
+
+
+

Zipper in Joy

Zippers work by keeping track of the current item, the already-seen items, and the yet-to-be seen items as you traverse a datastructure (the datastructure used to keep track of these items is the zipper.)

+

In Joy we can do this with the following words:

+ +
z-down == [] swap uncons swap
+z-up == swons swap shunt
+z-right == [swons] cons dip uncons swap
+z-left == swons [uncons swap] dip swap
+
+
+

Let's use them to change 25 into 625. The first time a word is used I show the trace so you can see how it works. If we were going to use these a lot it would make sense to write Python versions for efficiency, but see below.

+ +
+
+
+
+
+
In [3]:
+
+
+
define('z-down == [] swap uncons swap')
+define('z-up == swons swap shunt')
+define('z-right == [swons] cons dip uncons swap')
+define('z-left == swons [uncons swap] dip swap')
+
+ +
+
+
+ +
+
+
+
In [4]:
+
+
+
V('[1 [2 [3 4 25 6] 7] 8] z-down')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                          . [1 [2 [3 4 25 6] 7] 8] z-down
+   [1 [2 [3 4 25 6] 7] 8] . z-down
+   [1 [2 [3 4 25 6] 7] 8] . [] swap uncons swap
+[1 [2 [3 4 25 6] 7] 8] [] . swap uncons swap
+[] [1 [2 [3 4 25 6] 7] 8] . uncons swap
+[] 1 [[2 [3 4 25 6] 7] 8] . swap
+[] [[2 [3 4 25 6] 7] 8] 1 . 
+
+
+
+ +
+
+ +
+
+
+
In [5]:
+
+
+
V('[] [[2 [3 4 25 6] 7] 8] 1 z-right')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                  . [] [[2 [3 4 25 6] 7] 8] 1 z-right
+                               [] . [[2 [3 4 25 6] 7] 8] 1 z-right
+          [] [[2 [3 4 25 6] 7] 8] . 1 z-right
+        [] [[2 [3 4 25 6] 7] 8] 1 . z-right
+        [] [[2 [3 4 25 6] 7] 8] 1 . [swons] cons dip uncons swap
+[] [[2 [3 4 25 6] 7] 8] 1 [swons] . cons dip uncons swap
+[] [[2 [3 4 25 6] 7] 8] [1 swons] . dip uncons swap
+                               [] . 1 swons [[2 [3 4 25 6] 7] 8] uncons swap
+                             [] 1 . swons [[2 [3 4 25 6] 7] 8] uncons swap
+                             [] 1 . swap cons [[2 [3 4 25 6] 7] 8] uncons swap
+                             1 [] . cons [[2 [3 4 25 6] 7] 8] uncons swap
+                              [1] . [[2 [3 4 25 6] 7] 8] uncons swap
+         [1] [[2 [3 4 25 6] 7] 8] . uncons swap
+         [1] [2 [3 4 25 6] 7] [8] . swap
+         [1] [8] [2 [3 4 25 6] 7] . 
+
+
+
+ +
+
+ +
+
+
+
In [6]:
+
+
+
J('[1] [8] [2 [3 4 25 6] 7] z-down')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [] [[3 4 25 6] 7] 2
+
+
+
+ +
+
+ +
+
+
+
In [7]:
+
+
+
J('[1] [8] [] [[3 4 25 6] 7] 2 z-right')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [2] [7] [3 4 25 6]
+
+
+
+ +
+
+ +
+
+
+
In [8]:
+
+
+
J('[1] [8] [2] [7] [3 4 25 6] z-down')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [2] [7] [] [4 25 6] 3
+
+
+
+ +
+
+ +
+
+
+
In [9]:
+
+
+
J('[1] [8] [2] [7] [] [4 25 6] 3 z-right')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [2] [7] [3] [25 6] 4
+
+
+
+ +
+
+ +
+
+
+
In [10]:
+
+
+
J('[1] [8] [2] [7] [3] [25 6] 4 z-right')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [2] [7] [4 3] [6] 25
+
+
+
+ +
+
+ +
+
+
+
In [11]:
+
+
+
J('[1] [8] [2] [7] [4 3] [6] 25 sqr')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [2] [7] [4 3] [6] 625
+
+
+
+ +
+
+ +
+
+
+
In [12]:
+
+
+
V('[1] [8] [2] [7] [4 3] [6] 625 z-up')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                              . [1] [8] [2] [7] [4 3] [6] 625 z-up
+                          [1] . [8] [2] [7] [4 3] [6] 625 z-up
+                      [1] [8] . [2] [7] [4 3] [6] 625 z-up
+                  [1] [8] [2] . [7] [4 3] [6] 625 z-up
+              [1] [8] [2] [7] . [4 3] [6] 625 z-up
+        [1] [8] [2] [7] [4 3] . [6] 625 z-up
+    [1] [8] [2] [7] [4 3] [6] . 625 z-up
+[1] [8] [2] [7] [4 3] [6] 625 . z-up
+[1] [8] [2] [7] [4 3] [6] 625 . swons swap shunt
+[1] [8] [2] [7] [4 3] [6] 625 . swap cons swap shunt
+[1] [8] [2] [7] [4 3] 625 [6] . cons swap shunt
+[1] [8] [2] [7] [4 3] [625 6] . swap shunt
+[1] [8] [2] [7] [625 6] [4 3] . shunt
+  [1] [8] [2] [7] [3 4 625 6] . 
+
+
+
+ +
+
+ +
+
+
+
In [13]:
+
+
+
J('[1] [8] [2] [7] [3 4 625 6] z-up')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1] [8] [2 [3 4 625 6] 7]
+
+
+
+ +
+
+ +
+
+
+
In [14]:
+
+
+
J('[1] [8] [2 [3 4 625 6] 7] z-up')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 [2 [3 4 625 6] 7] 8]
+
+
+
+ +
+
+ +
+
+
+
+
+

dip and infra

In Joy we have the dip and infra combinators which can "target" or "address" any particular item in a Joy tree structure.

+ +
+
+
+
+
+
In [15]:
+
+
+
V('[1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] infra')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                                                                . [1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] infra
+                                         [1 [2 [3 4 25 6] 7] 8] . [[[[[[sqr] dipd] infra] dip] infra] dip] infra
+[1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] . infra
+                                           8 [2 [3 4 25 6] 7] 1 . [[[[[sqr] dipd] infra] dip] infra] dip [] swaack
+        8 [2 [3 4 25 6] 7] 1 [[[[[sqr] dipd] infra] dip] infra] . dip [] swaack
+                                             8 [2 [3 4 25 6] 7] . [[[[sqr] dipd] infra] dip] infra 1 [] swaack
+                  8 [2 [3 4 25 6] 7] [[[[sqr] dipd] infra] dip] . infra 1 [] swaack
+                                                 7 [3 4 25 6] 2 . [[[sqr] dipd] infra] dip [8] swaack 1 [] swaack
+                            7 [3 4 25 6] 2 [[[sqr] dipd] infra] . dip [8] swaack 1 [] swaack
+                                                   7 [3 4 25 6] . [[sqr] dipd] infra 2 [8] swaack 1 [] swaack
+                                      7 [3 4 25 6] [[sqr] dipd] . infra 2 [8] swaack 1 [] swaack
+                                                       6 25 4 3 . [sqr] dipd [7] swaack 2 [8] swaack 1 [] swaack
+                                                 6 25 4 3 [sqr] . dipd [7] swaack 2 [8] swaack 1 [] swaack
+                                                           6 25 . sqr 4 3 [7] swaack 2 [8] swaack 1 [] swaack
+                                                           6 25 . dup mul 4 3 [7] swaack 2 [8] swaack 1 [] swaack
+                                                        6 25 25 . mul 4 3 [7] swaack 2 [8] swaack 1 [] swaack
+                                                          6 625 . 4 3 [7] swaack 2 [8] swaack 1 [] swaack
+                                                        6 625 4 . 3 [7] swaack 2 [8] swaack 1 [] swaack
+                                                      6 625 4 3 . [7] swaack 2 [8] swaack 1 [] swaack
+                                                  6 625 4 3 [7] . swaack 2 [8] swaack 1 [] swaack
+                                                  7 [3 4 625 6] . 2 [8] swaack 1 [] swaack
+                                                7 [3 4 625 6] 2 . [8] swaack 1 [] swaack
+                                            7 [3 4 625 6] 2 [8] . swaack 1 [] swaack
+                                            8 [2 [3 4 625 6] 7] . 1 [] swaack
+                                          8 [2 [3 4 625 6] 7] 1 . [] swaack
+                                       8 [2 [3 4 625 6] 7] 1 [] . swaack
+                                        [1 [2 [3 4 625 6] 7] 8] . 
+
+
+
+ +
+
+ +
+
+
+
+
+

If you read the trace carefully you'll see that about half of it is the dip and infra combinators de-quoting programs and "digging" into the subject datastructure. Instead of maintaining temporary results on the stack they are pushed into the pending expression (continuation). When sqr has run the rest of the pending expression rebuilds the datastructure.

+

Z

Imagine a function Z that accepts a sequence of dip and infra combinators, a quoted program [Q], and a datastructure to work on. It would effectively execute the quoted program as if it had been embedded in a nested series of quoted programs, e.g.:

+ +
   [...] [Q] [dip dip infra dip infra dip infra] Z
+-------------------------------------------------------------
+   [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra
+
+
+

The Z function isn't hard to make.

+ +
+
+
+
+
+
In [16]:
+
+
+
define('Z == [[] cons cons] step i')
+
+ +
+
+
+ +
+
+
+
+
+

Here it is in action in a simplified scenario.

+ +
+
+
+
+
+
In [17]:
+
+
+
V('1 [2 3 4] Z')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
                             . 1 [2 3 4] Z
+                           1 . [2 3 4] Z
+                   1 [2 3 4] . Z
+                   1 [2 3 4] . [[] cons cons] step i
+    1 [2 3 4] [[] cons cons] . step i
+          1 2 [[] cons cons] . i [3 4] [[] cons cons] step i
+                         1 2 . [] cons cons [3 4] [[] cons cons] step i
+                      1 2 [] . cons cons [3 4] [[] cons cons] step i
+                       1 [2] . cons [3 4] [[] cons cons] step i
+                       [1 2] . [3 4] [[] cons cons] step i
+                 [1 2] [3 4] . [[] cons cons] step i
+  [1 2] [3 4] [[] cons cons] . step i
+      [1 2] 3 [[] cons cons] . i [4] [[] cons cons] step i
+                     [1 2] 3 . [] cons cons [4] [[] cons cons] step i
+                  [1 2] 3 [] . cons cons [4] [[] cons cons] step i
+                   [1 2] [3] . cons [4] [[] cons cons] step i
+                   [[1 2] 3] . [4] [[] cons cons] step i
+               [[1 2] 3] [4] . [[] cons cons] step i
+[[1 2] 3] [4] [[] cons cons] . step i
+  [[1 2] 3] 4 [[] cons cons] . i i
+                 [[1 2] 3] 4 . [] cons cons i
+              [[1 2] 3] 4 [] . cons cons i
+               [[1 2] 3] [4] . cons i
+               [[[1 2] 3] 4] . i
+                             . [[1 2] 3] 4
+                   [[1 2] 3] . 4
+                 [[1 2] 3] 4 . 
+
+
+
+ +
+
+ +
+
+
+
+
+

And here it is doing the main thing.

+ +
+
+
+
+
+
In [18]:
+
+
+
J('[1 [2 [3 4 25 6] 7] 8] [sqr] [dip dip infra dip infra dip infra] Z')
+
+ +
+
+
+ +
+
+ + +
+ +
+ + +
+
[1 [2 [3 4 625 6] 7] 8]
+
+
+
+ +
+
+ +
+
+
+
+
+

Addressing

Because we are only using two combinators we could replace the list with a string made from only two characters.

+ +
   [...] [Q] 'ddididi' Zstr
+-------------------------------------------------------------
+   [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra
+
+
+

The string can be considered a name or address for an item in the subject datastructure.

+

Determining the right "path" for an item in a tree.

It's easy to read off (in reverse) the right sequence of "d" and "i" from the subject datastructure:

+ +
[ n [ n [ n n x ...
+i d i d i d d Bingo!
+ +
+
+
+
+
+ + + + + + diff --git a/docs/Zipper.ipynb b/docs/Zipper.ipynb new file mode 100644 index 0000000..67ca6d0 --- /dev/null +++ b/docs/Zipper.ipynb @@ -0,0 +1,501 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook is about using the \"zipper\" with joy datastructures. See the [Zipper wikipedia entry](https://en.wikipedia.org/wiki/Zipper_%28data_structure%29) or the original paper: [\"FUNCTIONAL PEARL The Zipper\" by Gérard Huet](https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/huet-zipper.pdf)\n", + "\n", + "Given a datastructure on the stack we can navigate through it, modify it, and rebuild it using the \"zipper\" technique." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Preamble" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from notebook_preamble import J, V, define" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Trees\n", + "In Joypy there aren't any complex datastructures, just ints, floats, strings, Symbols (strings that are names of functions) and sequences (aka lists, aka quoted literals, aka aggregates, etc...), but we can build [trees](https://en.wikipedia.org/wiki/Tree_%28data_structure%29) out of sequences." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 [2 [3 4 25 6] 7] 8]\n" + ] + } + ], + "source": [ + "J('[1 [2 [3 4 25 6] 7] 8]')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Zipper in Joy\n", + "Zippers work by keeping track of the current item, the already-seen items, and the yet-to-be seen items as you traverse a datastructure (the datastructure used to keep track of these items is the zipper.)\n", + "\n", + "In Joy we can do this with the following words:\n", + "\n", + " z-down == [] swap uncons swap\n", + " z-up == swons swap shunt\n", + " z-right == [swons] cons dip uncons swap\n", + " z-left == swons [uncons swap] dip swap\n", + "\n", + "Let's use them to change 25 into 625. The first time a word is used I show the trace so you can see how it works. If we were going to use these a lot it would make sense to write Python versions for efficiency, but see below." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "define('z-down == [] swap uncons swap')\n", + "define('z-up == swons swap shunt')\n", + "define('z-right == [swons] cons dip uncons swap')\n", + "define('z-left == swons [uncons swap] dip swap')" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [1 [2 [3 4 25 6] 7] 8] z-down\n", + " [1 [2 [3 4 25 6] 7] 8] . z-down\n", + " [1 [2 [3 4 25 6] 7] 8] . [] swap uncons swap\n", + "[1 [2 [3 4 25 6] 7] 8] [] . swap uncons swap\n", + "[] [1 [2 [3 4 25 6] 7] 8] . uncons swap\n", + "[] 1 [[2 [3 4 25 6] 7] 8] . swap\n", + "[] [[2 [3 4 25 6] 7] 8] 1 . \n" + ] + } + ], + "source": [ + "V('[1 [2 [3 4 25 6] 7] 8] z-down')" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [] [[2 [3 4 25 6] 7] 8] 1 z-right\n", + " [] . [[2 [3 4 25 6] 7] 8] 1 z-right\n", + " [] [[2 [3 4 25 6] 7] 8] . 1 z-right\n", + " [] [[2 [3 4 25 6] 7] 8] 1 . z-right\n", + " [] [[2 [3 4 25 6] 7] 8] 1 . [swons] cons dip uncons swap\n", + "[] [[2 [3 4 25 6] 7] 8] 1 [swons] . cons dip uncons swap\n", + "[] [[2 [3 4 25 6] 7] 8] [1 swons] . dip uncons swap\n", + " [] . 1 swons [[2 [3 4 25 6] 7] 8] uncons swap\n", + " [] 1 . swons [[2 [3 4 25 6] 7] 8] uncons swap\n", + " [] 1 . swap cons [[2 [3 4 25 6] 7] 8] uncons swap\n", + " 1 [] . cons [[2 [3 4 25 6] 7] 8] uncons swap\n", + " [1] . [[2 [3 4 25 6] 7] 8] uncons swap\n", + " [1] [[2 [3 4 25 6] 7] 8] . uncons swap\n", + " [1] [2 [3 4 25 6] 7] [8] . swap\n", + " [1] [8] [2 [3 4 25 6] 7] . \n" + ] + } + ], + "source": [ + "V('[] [[2 [3 4 25 6] 7] 8] 1 z-right')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [] [[3 4 25 6] 7] 2\n" + ] + } + ], + "source": [ + "J('[1] [8] [2 [3 4 25 6] 7] z-down')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [2] [7] [3 4 25 6]\n" + ] + } + ], + "source": [ + "J('[1] [8] [] [[3 4 25 6] 7] 2 z-right')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [2] [7] [] [4 25 6] 3\n" + ] + } + ], + "source": [ + "J('[1] [8] [2] [7] [3 4 25 6] z-down')" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [2] [7] [3] [25 6] 4\n" + ] + } + ], + "source": [ + "J('[1] [8] [2] [7] [] [4 25 6] 3 z-right')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [2] [7] [4 3] [6] 25\n" + ] + } + ], + "source": [ + "J('[1] [8] [2] [7] [3] [25 6] 4 z-right')" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [2] [7] [4 3] [6] 625\n" + ] + } + ], + "source": [ + "J('[1] [8] [2] [7] [4 3] [6] 25 sqr')" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [1] [8] [2] [7] [4 3] [6] 625 z-up\n", + " [1] . [8] [2] [7] [4 3] [6] 625 z-up\n", + " [1] [8] . [2] [7] [4 3] [6] 625 z-up\n", + " [1] [8] [2] . [7] [4 3] [6] 625 z-up\n", + " [1] [8] [2] [7] . [4 3] [6] 625 z-up\n", + " [1] [8] [2] [7] [4 3] . [6] 625 z-up\n", + " [1] [8] [2] [7] [4 3] [6] . 625 z-up\n", + "[1] [8] [2] [7] [4 3] [6] 625 . z-up\n", + "[1] [8] [2] [7] [4 3] [6] 625 . swons swap shunt\n", + "[1] [8] [2] [7] [4 3] [6] 625 . swap cons swap shunt\n", + "[1] [8] [2] [7] [4 3] 625 [6] . cons swap shunt\n", + "[1] [8] [2] [7] [4 3] [625 6] . swap shunt\n", + "[1] [8] [2] [7] [625 6] [4 3] . shunt\n", + " [1] [8] [2] [7] [3 4 625 6] . \n" + ] + } + ], + "source": [ + "V('[1] [8] [2] [7] [4 3] [6] 625 z-up')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1] [8] [2 [3 4 625 6] 7]\n" + ] + } + ], + "source": [ + "J('[1] [8] [2] [7] [3 4 625 6] z-up')" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 [2 [3 4 625 6] 7] 8]\n" + ] + } + ], + "source": [ + "J('[1] [8] [2 [3 4 625 6] 7] z-up')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## `dip` and `infra`\n", + "In Joy we have the `dip` and `infra` combinators which can \"target\" or \"address\" any particular item in a Joy tree structure." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . [1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] infra\n", + " [1 [2 [3 4 25 6] 7] 8] . [[[[[[sqr] dipd] infra] dip] infra] dip] infra\n", + "[1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] . infra\n", + " 8 [2 [3 4 25 6] 7] 1 . [[[[[sqr] dipd] infra] dip] infra] dip [] swaack\n", + " 8 [2 [3 4 25 6] 7] 1 [[[[[sqr] dipd] infra] dip] infra] . dip [] swaack\n", + " 8 [2 [3 4 25 6] 7] . [[[[sqr] dipd] infra] dip] infra 1 [] swaack\n", + " 8 [2 [3 4 25 6] 7] [[[[sqr] dipd] infra] dip] . infra 1 [] swaack\n", + " 7 [3 4 25 6] 2 . [[[sqr] dipd] infra] dip [8] swaack 1 [] swaack\n", + " 7 [3 4 25 6] 2 [[[sqr] dipd] infra] . dip [8] swaack 1 [] swaack\n", + " 7 [3 4 25 6] . [[sqr] dipd] infra 2 [8] swaack 1 [] swaack\n", + " 7 [3 4 25 6] [[sqr] dipd] . infra 2 [8] swaack 1 [] swaack\n", + " 6 25 4 3 . [sqr] dipd [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 25 4 3 [sqr] . dipd [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 25 . sqr 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 25 . dup mul 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 25 25 . mul 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 625 . 4 3 [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 625 4 . 3 [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 625 4 3 . [7] swaack 2 [8] swaack 1 [] swaack\n", + " 6 625 4 3 [7] . swaack 2 [8] swaack 1 [] swaack\n", + " 7 [3 4 625 6] . 2 [8] swaack 1 [] swaack\n", + " 7 [3 4 625 6] 2 . [8] swaack 1 [] swaack\n", + " 7 [3 4 625 6] 2 [8] . swaack 1 [] swaack\n", + " 8 [2 [3 4 625 6] 7] . 1 [] swaack\n", + " 8 [2 [3 4 625 6] 7] 1 . [] swaack\n", + " 8 [2 [3 4 625 6] 7] 1 [] . swaack\n", + " [1 [2 [3 4 625 6] 7] 8] . \n" + ] + } + ], + "source": [ + "V('[1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] infra')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you read the trace carefully you'll see that about half of it is the `dip` and `infra` combinators de-quoting programs and \"digging\" into the subject datastructure. Instead of maintaining temporary results on the stack they are pushed into the pending expression (continuation). When `sqr` has run the rest of the pending expression rebuilds the datastructure.\n", + "\n", + "## `Z`\n", + "Imagine a function `Z` that accepts a sequence of `dip` and `infra` combinators, a quoted program `[Q]`, and a datastructure to work on. It would effectively execute the quoted program as if it had been embedded in a nested series of quoted programs, e.g.:\n", + "\n", + " [...] [Q] [dip dip infra dip infra dip infra] Z\n", + " -------------------------------------------------------------\n", + " [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra\n", + " \n", + "The `Z` function isn't hard to make." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "define('Z == [[] cons cons] step i')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here it is in action in a simplified scenario." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " . 1 [2 3 4] Z\n", + " 1 . [2 3 4] Z\n", + " 1 [2 3 4] . Z\n", + " 1 [2 3 4] . [[] cons cons] step i\n", + " 1 [2 3 4] [[] cons cons] . step i\n", + " 1 2 [[] cons cons] . i [3 4] [[] cons cons] step i\n", + " 1 2 . [] cons cons [3 4] [[] cons cons] step i\n", + " 1 2 [] . cons cons [3 4] [[] cons cons] step i\n", + " 1 [2] . cons [3 4] [[] cons cons] step i\n", + " [1 2] . [3 4] [[] cons cons] step i\n", + " [1 2] [3 4] . [[] cons cons] step i\n", + " [1 2] [3 4] [[] cons cons] . step i\n", + " [1 2] 3 [[] cons cons] . i [4] [[] cons cons] step i\n", + " [1 2] 3 . [] cons cons [4] [[] cons cons] step i\n", + " [1 2] 3 [] . cons cons [4] [[] cons cons] step i\n", + " [1 2] [3] . cons [4] [[] cons cons] step i\n", + " [[1 2] 3] . [4] [[] cons cons] step i\n", + " [[1 2] 3] [4] . [[] cons cons] step i\n", + "[[1 2] 3] [4] [[] cons cons] . step i\n", + " [[1 2] 3] 4 [[] cons cons] . i i\n", + " [[1 2] 3] 4 . [] cons cons i\n", + " [[1 2] 3] 4 [] . cons cons i\n", + " [[1 2] 3] [4] . cons i\n", + " [[[1 2] 3] 4] . i\n", + " . [[1 2] 3] 4\n", + " [[1 2] 3] . 4\n", + " [[1 2] 3] 4 . \n" + ] + } + ], + "source": [ + "V('1 [2 3 4] Z')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here it is doing the main thing." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1 [2 [3 4 625 6] 7] 8]\n" + ] + } + ], + "source": [ + "J('[1 [2 [3 4 25 6] 7] 8] [sqr] [dip dip infra dip infra dip infra] Z')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Addressing\n", + "Because we are only using two combinators we could replace the list with a string made from only two characters.\n", + "\n", + " [...] [Q] 'ddididi' Zstr\n", + " -------------------------------------------------------------\n", + " [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra\n", + "\n", + "The string can be considered a name or address for an item in the subject datastructure.\n", + "\n", + "## Determining the right \"path\" for an item in a tree.\n", + "It's easy to read off (in reverse) the right sequence of \"d\" and \"i\" from the subject datastructure:\n", + "\n", + " [ n [ n [ n n x ...\n", + " i d i d i d d Bingo!" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.13" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/Zipper.md b/docs/Zipper.md new file mode 100644 index 0000000..02e8690 --- /dev/null +++ b/docs/Zipper.md @@ -0,0 +1,277 @@ + +This notebook is about using the "zipper" with joy datastructures. See the [Zipper wikipedia entry](https://en.wikipedia.org/wiki/Zipper_%28data_structure%29) or the original paper: ["FUNCTIONAL PEARL The Zipper" by Gérard Huet](https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced-fp/docs/huet-zipper.pdf) + +Given a datastructure on the stack we can navigate through it, modify it, and rebuild it using the "zipper" technique. + +### Preamble + + +```python +from notebook_preamble import J, V, define +``` + +## Trees +In Joypy there aren't any complex datastructures, just ints, floats, strings, Symbols (strings that are names of functions) and sequences (aka lists, aka quoted literals, aka aggregates, etc...), but we can build [trees](https://en.wikipedia.org/wiki/Tree_%28data_structure%29) out of sequences. + + +```python +J('[1 [2 [3 4 25 6] 7] 8]') +``` + + [1 [2 [3 4 25 6] 7] 8] + + +## Zipper in Joy +Zippers work by keeping track of the current item, the already-seen items, and the yet-to-be seen items as you traverse a datastructure (the datastructure used to keep track of these items is the zipper.) + +In Joy we can do this with the following words: + + z-down == [] swap uncons swap + z-up == swons swap shunt + z-right == [swons] cons dip uncons swap + z-left == swons [uncons swap] dip swap + +Let's use them to change 25 into 625. The first time a word is used I show the trace so you can see how it works. If we were going to use these a lot it would make sense to write Python versions for efficiency, but see below. + + +```python +define('z-down == [] swap uncons swap') +define('z-up == swons swap shunt') +define('z-right == [swons] cons dip uncons swap') +define('z-left == swons [uncons swap] dip swap') +``` + + +```python +V('[1 [2 [3 4 25 6] 7] 8] z-down') +``` + + . [1 [2 [3 4 25 6] 7] 8] z-down + [1 [2 [3 4 25 6] 7] 8] . z-down + [1 [2 [3 4 25 6] 7] 8] . [] swap uncons swap + [1 [2 [3 4 25 6] 7] 8] [] . swap uncons swap + [] [1 [2 [3 4 25 6] 7] 8] . uncons swap + [] 1 [[2 [3 4 25 6] 7] 8] . swap + [] [[2 [3 4 25 6] 7] 8] 1 . + + + +```python +V('[] [[2 [3 4 25 6] 7] 8] 1 z-right') +``` + + . [] [[2 [3 4 25 6] 7] 8] 1 z-right + [] . [[2 [3 4 25 6] 7] 8] 1 z-right + [] [[2 [3 4 25 6] 7] 8] . 1 z-right + [] [[2 [3 4 25 6] 7] 8] 1 . z-right + [] [[2 [3 4 25 6] 7] 8] 1 . [swons] cons dip uncons swap + [] [[2 [3 4 25 6] 7] 8] 1 [swons] . cons dip uncons swap + [] [[2 [3 4 25 6] 7] 8] [1 swons] . dip uncons swap + [] . 1 swons [[2 [3 4 25 6] 7] 8] uncons swap + [] 1 . swons [[2 [3 4 25 6] 7] 8] uncons swap + [] 1 . swap cons [[2 [3 4 25 6] 7] 8] uncons swap + 1 [] . cons [[2 [3 4 25 6] 7] 8] uncons swap + [1] . [[2 [3 4 25 6] 7] 8] uncons swap + [1] [[2 [3 4 25 6] 7] 8] . uncons swap + [1] [2 [3 4 25 6] 7] [8] . swap + [1] [8] [2 [3 4 25 6] 7] . + + + +```python +J('[1] [8] [2 [3 4 25 6] 7] z-down') +``` + + [1] [8] [] [[3 4 25 6] 7] 2 + + + +```python +J('[1] [8] [] [[3 4 25 6] 7] 2 z-right') +``` + + [1] [8] [2] [7] [3 4 25 6] + + + +```python +J('[1] [8] [2] [7] [3 4 25 6] z-down') +``` + + [1] [8] [2] [7] [] [4 25 6] 3 + + + +```python +J('[1] [8] [2] [7] [] [4 25 6] 3 z-right') +``` + + [1] [8] [2] [7] [3] [25 6] 4 + + + +```python +J('[1] [8] [2] [7] [3] [25 6] 4 z-right') +``` + + [1] [8] [2] [7] [4 3] [6] 25 + + + +```python +J('[1] [8] [2] [7] [4 3] [6] 25 sqr') +``` + + [1] [8] [2] [7] [4 3] [6] 625 + + + +```python +V('[1] [8] [2] [7] [4 3] [6] 625 z-up') +``` + + . [1] [8] [2] [7] [4 3] [6] 625 z-up + [1] . [8] [2] [7] [4 3] [6] 625 z-up + [1] [8] . [2] [7] [4 3] [6] 625 z-up + [1] [8] [2] . [7] [4 3] [6] 625 z-up + [1] [8] [2] [7] . [4 3] [6] 625 z-up + [1] [8] [2] [7] [4 3] . [6] 625 z-up + [1] [8] [2] [7] [4 3] [6] . 625 z-up + [1] [8] [2] [7] [4 3] [6] 625 . z-up + [1] [8] [2] [7] [4 3] [6] 625 . swons swap shunt + [1] [8] [2] [7] [4 3] [6] 625 . swap cons swap shunt + [1] [8] [2] [7] [4 3] 625 [6] . cons swap shunt + [1] [8] [2] [7] [4 3] [625 6] . swap shunt + [1] [8] [2] [7] [625 6] [4 3] . shunt + [1] [8] [2] [7] [3 4 625 6] . + + + +```python +J('[1] [8] [2] [7] [3 4 625 6] z-up') +``` + + [1] [8] [2 [3 4 625 6] 7] + + + +```python +J('[1] [8] [2 [3 4 625 6] 7] z-up') +``` + + [1 [2 [3 4 625 6] 7] 8] + + +## `dip` and `infra` +In Joy we have the `dip` and `infra` combinators which can "target" or "address" any particular item in a Joy tree structure. + + +```python +V('[1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] infra') +``` + + . [1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] infra + [1 [2 [3 4 25 6] 7] 8] . [[[[[[sqr] dipd] infra] dip] infra] dip] infra + [1 [2 [3 4 25 6] 7] 8] [[[[[[sqr] dipd] infra] dip] infra] dip] . infra + 8 [2 [3 4 25 6] 7] 1 . [[[[[sqr] dipd] infra] dip] infra] dip [] swaack + 8 [2 [3 4 25 6] 7] 1 [[[[[sqr] dipd] infra] dip] infra] . dip [] swaack + 8 [2 [3 4 25 6] 7] . [[[[sqr] dipd] infra] dip] infra 1 [] swaack + 8 [2 [3 4 25 6] 7] [[[[sqr] dipd] infra] dip] . infra 1 [] swaack + 7 [3 4 25 6] 2 . [[[sqr] dipd] infra] dip [8] swaack 1 [] swaack + 7 [3 4 25 6] 2 [[[sqr] dipd] infra] . dip [8] swaack 1 [] swaack + 7 [3 4 25 6] . [[sqr] dipd] infra 2 [8] swaack 1 [] swaack + 7 [3 4 25 6] [[sqr] dipd] . infra 2 [8] swaack 1 [] swaack + 6 25 4 3 . [sqr] dipd [7] swaack 2 [8] swaack 1 [] swaack + 6 25 4 3 [sqr] . dipd [7] swaack 2 [8] swaack 1 [] swaack + 6 25 . sqr 4 3 [7] swaack 2 [8] swaack 1 [] swaack + 6 25 . dup mul 4 3 [7] swaack 2 [8] swaack 1 [] swaack + 6 25 25 . mul 4 3 [7] swaack 2 [8] swaack 1 [] swaack + 6 625 . 4 3 [7] swaack 2 [8] swaack 1 [] swaack + 6 625 4 . 3 [7] swaack 2 [8] swaack 1 [] swaack + 6 625 4 3 . [7] swaack 2 [8] swaack 1 [] swaack + 6 625 4 3 [7] . swaack 2 [8] swaack 1 [] swaack + 7 [3 4 625 6] . 2 [8] swaack 1 [] swaack + 7 [3 4 625 6] 2 . [8] swaack 1 [] swaack + 7 [3 4 625 6] 2 [8] . swaack 1 [] swaack + 8 [2 [3 4 625 6] 7] . 1 [] swaack + 8 [2 [3 4 625 6] 7] 1 . [] swaack + 8 [2 [3 4 625 6] 7] 1 [] . swaack + [1 [2 [3 4 625 6] 7] 8] . + + +If you read the trace carefully you'll see that about half of it is the `dip` and `infra` combinators de-quoting programs and "digging" into the subject datastructure. Instead of maintaining temporary results on the stack they are pushed into the pending expression (continuation). When `sqr` has run the rest of the pending expression rebuilds the datastructure. + +## `Z` +Imagine a function `Z` that accepts a sequence of `dip` and `infra` combinators, a quoted program `[Q]`, and a datastructure to work on. It would effectively execute the quoted program as if it had been embedded in a nested series of quoted programs, e.g.: + + [...] [Q] [dip dip infra dip infra dip infra] Z + ------------------------------------------------------------- + [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra + +The `Z` function isn't hard to make. + + +```python +define('Z == [[] cons cons] step i') +``` + +Here it is in action in a simplified scenario. + + +```python +V('1 [2 3 4] Z') +``` + + . 1 [2 3 4] Z + 1 . [2 3 4] Z + 1 [2 3 4] . Z + 1 [2 3 4] . [[] cons cons] step i + 1 [2 3 4] [[] cons cons] . step i + 1 2 [[] cons cons] . i [3 4] [[] cons cons] step i + 1 2 . [] cons cons [3 4] [[] cons cons] step i + 1 2 [] . cons cons [3 4] [[] cons cons] step i + 1 [2] . cons [3 4] [[] cons cons] step i + [1 2] . [3 4] [[] cons cons] step i + [1 2] [3 4] . [[] cons cons] step i + [1 2] [3 4] [[] cons cons] . step i + [1 2] 3 [[] cons cons] . i [4] [[] cons cons] step i + [1 2] 3 . [] cons cons [4] [[] cons cons] step i + [1 2] 3 [] . cons cons [4] [[] cons cons] step i + [1 2] [3] . cons [4] [[] cons cons] step i + [[1 2] 3] . [4] [[] cons cons] step i + [[1 2] 3] [4] . [[] cons cons] step i + [[1 2] 3] [4] [[] cons cons] . step i + [[1 2] 3] 4 [[] cons cons] . i i + [[1 2] 3] 4 . [] cons cons i + [[1 2] 3] 4 [] . cons cons i + [[1 2] 3] [4] . cons i + [[[1 2] 3] 4] . i + . [[1 2] 3] 4 + [[1 2] 3] . 4 + [[1 2] 3] 4 . + + +And here it is doing the main thing. + + +```python +J('[1 [2 [3 4 25 6] 7] 8] [sqr] [dip dip infra dip infra dip infra] Z') +``` + + [1 [2 [3 4 625 6] 7] 8] + + +## Addressing +Because we are only using two combinators we could replace the list with a string made from only two characters. + + [...] [Q] 'ddididi' Zstr + ------------------------------------------------------------- + [...] [[[[[[[Q] dip] dip] infra] dip] infra] dip] infra + +The string can be considered a name or address for an item in the subject datastructure. + +## Determining the right "path" for an item in a tree. +It's easy to read off (in reverse) the right sequence of "d" and "i" from the subject datastructure: + + [ n [ n [ n n x ... + i d i d i d d Bingo! diff --git a/docs/jupyter_kernel/Try out the Joypy Jupyter Kernel.ipynb b/docs/jupyter_kernel/Try out the Joypy Jupyter Kernel.ipynb new file mode 100644 index 0000000..e126e5e --- /dev/null +++ b/docs/jupyter_kernel/Try out the Joypy Jupyter Kernel.ipynb @@ -0,0 +1,159 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3" + ] + } + ], + "source": [ + "1 2 +" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9" + ] + } + ], + "source": [ + "sqr" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [] + } + ], + "source": [ + "clear" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]]" + ] + } + ], + "source": [ + "[\"tommy\" 23 [\"richard\" 48 [] []] [\"jenny\" 18 [] []]] " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]] [first]" + ] + } + ], + "source": [ + "[first]" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]] [u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]] [first]" + ] + } + ], + "source": [ + "[dup] dip" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]] [u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]] [not] [pop] [[first] dupdip] [[rest rest] dip step]" + ] + } + ], + "source": [ + "[not] [pop] roll< [dupdip] cons [[rest rest] dip step]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[u'tommy' 23 [u'richard' 48 [] []] [u'jenny' 18 [] []]] u'tommy' u'richard' u'jenny'" + ] + } + ], + "source": [ + "genrec" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Joypy", + "language": "", + "name": "joypy" + }, + "language_info": { + "file_extension": ".joy", + "mimetype": "text/plain", + "name": "Joy" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/docs/jupyter_kernel/joy_kernel.py b/docs/jupyter_kernel/joy_kernel.py new file mode 100644 index 0000000..e829b85 --- /dev/null +++ b/docs/jupyter_kernel/joy_kernel.py @@ -0,0 +1,50 @@ +from ipykernel.kernelbase import Kernel +from joy.library import initialize +from joy.joy import run +from joy.utils.stack import stack_to_string + + +class JoyKernel(Kernel): + implementation = 'Joypy' + implementation_version = '1.0' + language = 'Joy' + language_version = '0.1' + language_info = { + 'name': 'Joy', + 'mimetype': 'text/plain', + 'file_extension': '.joy', + } + banner = "Echo kernel - as useful as a parrot" + + def __init__(self, *a, **b): + self.D = initialize() + self.S = () + super(JoyKernel, self).__init__(*a, **b) + + def do_execute( + self, + code, + silent, + store_history=True, + user_expressions=None, + allow_stdin=False, + ): + self.S = run(code, self.S, self.D)[0] + if not silent: + stream_content = { + 'name': 'stdout', + 'text': stack_to_string(self.S), + } + self.send_response(self.iopub_socket, 'stream', stream_content) + + return {'status': 'ok', + # The base class increments the execution count + 'execution_count': self.execution_count, + 'payload': [], + 'user_expressions': {}, + } + + +if __name__ == '__main__': + from ipykernel.kernelapp import IPKernelApp + IPKernelApp.launch_instance(kernel_class=JoyKernel) diff --git a/docs/jupyter_kernel/kernel.json b/docs/jupyter_kernel/kernel.json new file mode 100644 index 0000000..b72db31 --- /dev/null +++ b/docs/jupyter_kernel/kernel.json @@ -0,0 +1,4 @@ +{ + "argv": ["python", "-m", "joy_kernel", "-f", "{connection_file}"], + "display_name": "Joypy" +} diff --git a/docs/notebook_preamble.py b/docs/notebook_preamble.py new file mode 100644 index 0000000..422b2a0 --- /dev/null +++ b/docs/notebook_preamble.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2017 Simon Forman +# +# This file is part of Joypy +# +# Joypy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Joypy 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 Joypy. If not see . +# +from traceback import print_exc, format_exc +from joy.joy import run +from joy.library import initialize, DefinitionWrapper +from joy.utils.stack import stack_to_string +from joy.utils.pretty_print import TracePrinter + + +D = initialize() +S = () + + +def J(text, stack=S, dictionary=D): + print stack_to_string(run(text, stack, dictionary)[0]) + + +def V(text, stack=S, dictionary=D): + tp = TracePrinter() + try: + run(text, stack, dictionary, tp.viewer) + except: + exc = format_exc() + tp.print_() + print '-' * 73 + print exc + else: + tp.print_() + + +define = lambda text: DefinitionWrapper.add_def(text, D) diff --git a/docs/pe1.py b/docs/pe1.py new file mode 100644 index 0000000..4bed2d4 --- /dev/null +++ b/docs/pe1.py @@ -0,0 +1,24 @@ +from notebook_preamble import J, D, DefinitionWrapper, V + +#J('[0 swap [dup [pop 14811] [] branch dup [3 &] dip 2 >>] dip rest cons] 466 [x] times pop enstacken sum') + + +DefinitionWrapper.add_definitions(''' + + direco == dip rest cons + G == [direco] cons [swap] swoncat cons + + PE1.1 == dup [3 &] dip 2 >> + PE1.1.check == dup [pop 14811] [] branch + PE1.2 == + dup [+] dip + + PE1 == 0 0 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop + + ''', D) + +V('PE1') + + +# If the cleave combinator is built-in then this should be faster: +# +# PE1.1 == [3 &] [2 >>] cleave diff --git a/docs/pe1.txt b/docs/pe1.txt new file mode 100644 index 0000000..80425a4 --- /dev/null +++ b/docs/pe1.txt @@ -0,0 +1,18789 @@ + . PE1 + . 0 0 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop + 0 . 0 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop + 0 0 . 0 [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop + 0 0 0 . [PE1.1.check PE1.1] G 466 [x [PE1.2] dip] times popop + 0 0 0 [PE1.1.check PE1.1] . G 466 [x [PE1.2] dip] times popop + 0 0 0 [PE1.1.check PE1.1] . [direco] cons [swap] swoncat cons 466 [x [PE1.2] dip] times popop + 0 0 0 [PE1.1.check PE1.1] [direco] . cons [swap] swoncat cons 466 [x [PE1.2] dip] times popop + 0 0 0 [[PE1.1.check PE1.1] direco] . [swap] swoncat cons 466 [x [PE1.2] dip] times popop + 0 0 0 [[PE1.1.check PE1.1] direco] [swap] . swoncat cons 466 [x [PE1.2] dip] times popop + 0 0 0 [[PE1.1.check PE1.1] direco] [swap] . swap concat cons 466 [x [PE1.2] dip] times popop + 0 0 0 [swap] [[PE1.1.check PE1.1] direco] . concat cons 466 [x [PE1.2] dip] times popop + 0 0 0 [swap [PE1.1.check PE1.1] direco] . cons 466 [x [PE1.2] dip] times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] . 466 [x [PE1.2] dip] times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] 466 . [x [PE1.2] dip] times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] 466 [x [PE1.2] dip] . times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 465 [x [PE1.2] dip] times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 465 [x [PE1.2] dip] times popop + 0 0 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 465 [x [PE1.2] dip] times popop + 0 0 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 0 0 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 0 3 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 0 3 3 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 0 3 3 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 0 3 . + 3 [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 3 . 3 [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 3 3 . [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] . 465 [x [PE1.2] dip] times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] 465 . [x [PE1.2] dip] times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] 465 [x [PE1.2] dip] . times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 464 [x [PE1.2] dip] times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 464 [x [PE1.2] dip] times popop + 3 3 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 464 [x [PE1.2] dip] times popop + 3 3 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 3 3 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 3 5 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 3 5 5 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 3 5 5 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 3 5 . + 5 [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 8 . 5 [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 8 5 . [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] . 464 [x [PE1.2] dip] times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] 464 . [x [PE1.2] dip] times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] 464 [x [PE1.2] dip] . times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 463 [x [PE1.2] dip] times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 463 [x [PE1.2] dip] times popop + 8 5 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 463 [x [PE1.2] dip] times popop + 8 5 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 8 5 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 8 6 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 8 6 6 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 8 6 6 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 8 6 . + 6 [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 14 . 6 [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 14 6 . [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] . 463 [x [PE1.2] dip] times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] 463 . [x [PE1.2] dip] times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] 463 [x [PE1.2] dip] . times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 462 [x [PE1.2] dip] times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 462 [x [PE1.2] dip] times popop + 14 6 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 462 [x [PE1.2] dip] times popop + 14 6 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 14 6 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 14 9 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 14 9 9 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 14 9 9 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 14 9 . + 9 [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 23 . 9 [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 23 9 . [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] . 462 [x [PE1.2] dip] times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] 462 . [x [PE1.2] dip] times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] 462 [x [PE1.2] dip] . times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 461 [x [PE1.2] dip] times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 461 [x [PE1.2] dip] times popop + 23 9 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 461 [x [PE1.2] dip] times popop + 23 9 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 23 9 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 23 10 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 23 10 10 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 23 10 10 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 23 10 . + 10 [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 33 . 10 [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 33 10 . [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] . 461 [x [PE1.2] dip] times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] 461 . [x [PE1.2] dip] times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] 461 [x [PE1.2] dip] . times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 460 [x [PE1.2] dip] times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 460 [x [PE1.2] dip] times popop + 33 10 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 460 [x [PE1.2] dip] times popop + 33 10 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 33 10 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 33 12 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 33 12 12 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 33 12 12 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 33 12 . + 12 [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 45 . 12 [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 45 12 . [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] . 460 [x [PE1.2] dip] times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] 460 . [x [PE1.2] dip] times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] 460 [x [PE1.2] dip] . times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 459 [x [PE1.2] dip] times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 459 [x [PE1.2] dip] times popop + 45 12 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 459 [x [PE1.2] dip] times popop + 45 12 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 45 12 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 45 15 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 45 15 15 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 45 15 15 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 45 15 . + 15 [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 60 . 15 [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 60 15 . [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] . 459 [x [PE1.2] dip] times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] 459 . [x [PE1.2] dip] times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] 459 [x [PE1.2] dip] . times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 458 [x [PE1.2] dip] times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 458 [x [PE1.2] dip] times popop + 60 15 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 458 [x [PE1.2] dip] times popop + 60 15 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 60 15 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 60 18 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 60 18 18 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 60 18 18 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 60 18 . + 18 [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 78 . 18 [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 78 18 . [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] . 458 [x [PE1.2] dip] times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] 458 . [x [PE1.2] dip] times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] 458 [x [PE1.2] dip] . times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 457 [x [PE1.2] dip] times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 457 [x [PE1.2] dip] times popop + 78 18 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 457 [x [PE1.2] dip] times popop + 78 18 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 78 18 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 78 20 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 78 20 20 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 78 20 20 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 78 20 . + 20 [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 98 . 20 [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 98 20 . [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] . 457 [x [PE1.2] dip] times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] 457 . [x [PE1.2] dip] times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] 457 [x [PE1.2] dip] . times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 456 [x [PE1.2] dip] times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 456 [x [PE1.2] dip] times popop + 98 20 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 456 [x [PE1.2] dip] times popop + 98 20 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 98 20 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 98 21 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 98 21 21 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 98 21 21 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 98 21 . + 21 [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 119 . 21 [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 119 21 . [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] . 456 [x [PE1.2] dip] times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] 456 . [x [PE1.2] dip] times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] 456 [x [PE1.2] dip] . times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 455 [x [PE1.2] dip] times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 455 [x [PE1.2] dip] times popop + 119 21 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 455 [x [PE1.2] dip] times popop + 119 21 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 119 21 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 119 24 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 119 24 24 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 119 24 24 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 119 24 . + 24 [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 143 . 24 [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 143 24 . [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] . 455 [x [PE1.2] dip] times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] 455 . [x [PE1.2] dip] times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] 455 [x [PE1.2] dip] . times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 454 [x [PE1.2] dip] times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 454 [x [PE1.2] dip] times popop + 143 24 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 454 [x [PE1.2] dip] times popop + 143 24 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 143 24 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 143 25 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 143 25 25 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 143 25 25 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 143 25 . + 25 [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 168 . 25 [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 168 25 . [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] . 454 [x [PE1.2] dip] times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] 454 . [x [PE1.2] dip] times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] 454 [x [PE1.2] dip] . times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 453 [x [PE1.2] dip] times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 453 [x [PE1.2] dip] times popop + 168 25 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 453 [x [PE1.2] dip] times popop + 168 25 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 168 25 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 168 27 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 168 27 27 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 168 27 27 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 168 27 . + 27 [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 195 . 27 [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 195 27 . [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] . 453 [x [PE1.2] dip] times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] 453 . [x [PE1.2] dip] times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] 453 [x [PE1.2] dip] . times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 452 [x [PE1.2] dip] times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 452 [x [PE1.2] dip] times popop + 195 27 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 452 [x [PE1.2] dip] times popop + 195 27 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 195 27 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 195 30 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 195 30 30 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 195 30 30 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 195 30 . + 30 [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 225 . 30 [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 225 30 . [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] . 452 [x [PE1.2] dip] times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] 452 . [x [PE1.2] dip] times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] 452 [x [PE1.2] dip] . times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 451 [x [PE1.2] dip] times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 451 [x [PE1.2] dip] times popop + 225 30 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 451 [x [PE1.2] dip] times popop + 225 30 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 225 30 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 225 33 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 225 33 33 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 225 33 33 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 225 33 . + 33 [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 258 . 33 [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 258 33 . [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] . 451 [x [PE1.2] dip] times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] 451 . [x [PE1.2] dip] times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] 451 [x [PE1.2] dip] . times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 450 [x [PE1.2] dip] times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 450 [x [PE1.2] dip] times popop + 258 33 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 450 [x [PE1.2] dip] times popop + 258 33 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 258 33 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 258 35 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 258 35 35 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 258 35 35 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 258 35 . + 35 [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 293 . 35 [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 293 35 . [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] . 450 [x [PE1.2] dip] times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] 450 . [x [PE1.2] dip] times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] 450 [x [PE1.2] dip] . times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 449 [x [PE1.2] dip] times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 449 [x [PE1.2] dip] times popop + 293 35 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 449 [x [PE1.2] dip] times popop + 293 35 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 293 35 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 293 36 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 293 36 36 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 293 36 36 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 293 36 . + 36 [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 329 . 36 [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 329 36 . [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] . 449 [x [PE1.2] dip] times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] 449 . [x [PE1.2] dip] times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] 449 [x [PE1.2] dip] . times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 448 [x [PE1.2] dip] times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 448 [x [PE1.2] dip] times popop + 329 36 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 448 [x [PE1.2] dip] times popop + 329 36 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 329 36 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 329 39 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 329 39 39 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 329 39 39 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 329 39 . + 39 [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 368 . 39 [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 368 39 . [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] . 448 [x [PE1.2] dip] times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] 448 . [x [PE1.2] dip] times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] 448 [x [PE1.2] dip] . times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 447 [x [PE1.2] dip] times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 447 [x [PE1.2] dip] times popop + 368 39 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 447 [x [PE1.2] dip] times popop + 368 39 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 368 39 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 368 40 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 368 40 40 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 368 40 40 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 368 40 . + 40 [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 408 . 40 [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 408 40 . [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] . 447 [x [PE1.2] dip] times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] 447 . [x [PE1.2] dip] times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] 447 [x [PE1.2] dip] . times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 446 [x [PE1.2] dip] times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 446 [x [PE1.2] dip] times popop + 408 40 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 446 [x [PE1.2] dip] times popop + 408 40 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 408 40 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 408 42 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 408 42 42 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 408 42 42 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 408 42 . + 42 [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 450 . 42 [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 450 42 . [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] . 446 [x [PE1.2] dip] times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] 446 . [x [PE1.2] dip] times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] 446 [x [PE1.2] dip] . times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 445 [x [PE1.2] dip] times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 445 [x [PE1.2] dip] times popop + 450 42 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 445 [x [PE1.2] dip] times popop + 450 42 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 450 42 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 450 45 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 450 45 45 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 450 45 45 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 450 45 . + 45 [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 495 . 45 [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 495 45 . [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] . 445 [x [PE1.2] dip] times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] 445 . [x [PE1.2] dip] times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] 445 [x [PE1.2] dip] . times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 444 [x [PE1.2] dip] times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 444 [x [PE1.2] dip] times popop + 495 45 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 444 [x [PE1.2] dip] times popop + 495 45 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 495 45 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 495 48 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 495 48 48 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 495 48 48 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 495 48 . + 48 [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 543 . 48 [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 543 48 . [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] . 444 [x [PE1.2] dip] times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] 444 . [x [PE1.2] dip] times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] 444 [x [PE1.2] dip] . times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 443 [x [PE1.2] dip] times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 443 [x [PE1.2] dip] times popop + 543 48 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 443 [x [PE1.2] dip] times popop + 543 48 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 543 48 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 543 50 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 543 50 50 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 543 50 50 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 543 50 . + 50 [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 593 . 50 [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 593 50 . [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] . 443 [x [PE1.2] dip] times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] 443 . [x [PE1.2] dip] times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] 443 [x [PE1.2] dip] . times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 442 [x [PE1.2] dip] times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 442 [x [PE1.2] dip] times popop + 593 50 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 442 [x [PE1.2] dip] times popop + 593 50 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 593 50 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 593 51 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 593 51 51 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 593 51 51 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 593 51 . + 51 [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 644 . 51 [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 644 51 . [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] . 442 [x [PE1.2] dip] times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] 442 . [x [PE1.2] dip] times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] 442 [x [PE1.2] dip] . times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 441 [x [PE1.2] dip] times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 441 [x [PE1.2] dip] times popop + 644 51 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 441 [x [PE1.2] dip] times popop + 644 51 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 644 51 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 644 54 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 644 54 54 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 644 54 54 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 644 54 . + 54 [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 698 . 54 [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 698 54 . [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] . 441 [x [PE1.2] dip] times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] 441 . [x [PE1.2] dip] times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] 441 [x [PE1.2] dip] . times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 440 [x [PE1.2] dip] times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 440 [x [PE1.2] dip] times popop + 698 54 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 440 [x [PE1.2] dip] times popop + 698 54 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 698 54 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 698 55 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 698 55 55 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 698 55 55 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 698 55 . + 55 [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 753 . 55 [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 753 55 . [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] . 440 [x [PE1.2] dip] times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] 440 . [x [PE1.2] dip] times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] 440 [x [PE1.2] dip] . times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 439 [x [PE1.2] dip] times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 439 [x [PE1.2] dip] times popop + 753 55 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 439 [x [PE1.2] dip] times popop + 753 55 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 753 55 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 753 57 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 753 57 57 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 753 57 57 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 753 57 . + 57 [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 810 . 57 [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 810 57 . [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] . 439 [x [PE1.2] dip] times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] 439 . [x [PE1.2] dip] times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] 439 [x [PE1.2] dip] . times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 438 [x [PE1.2] dip] times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 438 [x [PE1.2] dip] times popop + 810 57 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 438 [x [PE1.2] dip] times popop + 810 57 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 810 57 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 810 60 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 810 60 60 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 810 60 60 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 810 60 . + 60 [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 870 . 60 [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 870 60 . [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] . 438 [x [PE1.2] dip] times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] 438 . [x [PE1.2] dip] times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] 438 [x [PE1.2] dip] . times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 437 [x [PE1.2] dip] times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 437 [x [PE1.2] dip] times popop + 870 60 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 437 [x [PE1.2] dip] times popop + 870 60 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 870 60 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 870 63 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 870 63 63 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 870 63 63 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 870 63 . + 63 [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 933 . 63 [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 933 63 . [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] . 437 [x [PE1.2] dip] times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] 437 . [x [PE1.2] dip] times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] 437 [x [PE1.2] dip] . times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 436 [x [PE1.2] dip] times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 436 [x [PE1.2] dip] times popop + 933 63 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 436 [x [PE1.2] dip] times popop + 933 63 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 933 63 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 933 65 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 933 65 65 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 933 65 65 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 933 65 . + 65 [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 998 . 65 [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 998 65 . [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] . 436 [x [PE1.2] dip] times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] 436 . [x [PE1.2] dip] times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] 436 [x [PE1.2] dip] . times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 435 [x [PE1.2] dip] times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 435 [x [PE1.2] dip] times popop + 998 65 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 435 [x [PE1.2] dip] times popop + 998 65 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 998 65 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 998 66 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 998 66 66 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 998 66 66 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 998 66 . + 66 [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 1064 . 66 [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 1064 66 . [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] . 435 [x [PE1.2] dip] times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] 435 . [x [PE1.2] dip] times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] 435 [x [PE1.2] dip] . times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 434 [x [PE1.2] dip] times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 434 [x [PE1.2] dip] times popop + 1064 66 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 434 [x [PE1.2] dip] times popop + 1064 66 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1064 66 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1064 69 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1064 69 69 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1064 69 69 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1064 69 . + 69 [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1133 . 69 [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1133 69 . [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] . 434 [x [PE1.2] dip] times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] 434 . [x [PE1.2] dip] times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] 434 [x [PE1.2] dip] . times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 433 [x [PE1.2] dip] times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 433 [x [PE1.2] dip] times popop + 1133 69 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 433 [x [PE1.2] dip] times popop + 1133 69 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1133 69 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1133 70 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1133 70 70 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1133 70 70 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1133 70 . + 70 [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1203 . 70 [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1203 70 . [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] . 433 [x [PE1.2] dip] times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] 433 . [x [PE1.2] dip] times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] 433 [x [PE1.2] dip] . times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 432 [x [PE1.2] dip] times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 432 [x [PE1.2] dip] times popop + 1203 70 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 432 [x [PE1.2] dip] times popop + 1203 70 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1203 70 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1203 72 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1203 72 72 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1203 72 72 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1203 72 . + 72 [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1275 . 72 [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1275 72 . [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] . 432 [x [PE1.2] dip] times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] 432 . [x [PE1.2] dip] times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] 432 [x [PE1.2] dip] . times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 431 [x [PE1.2] dip] times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 431 [x [PE1.2] dip] times popop + 1275 72 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 431 [x [PE1.2] dip] times popop + 1275 72 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1275 72 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1275 75 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1275 75 75 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1275 75 75 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1275 75 . + 75 [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1350 . 75 [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1350 75 . [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] . 431 [x [PE1.2] dip] times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] 431 . [x [PE1.2] dip] times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] 431 [x [PE1.2] dip] . times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 430 [x [PE1.2] dip] times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 430 [x [PE1.2] dip] times popop + 1350 75 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 430 [x [PE1.2] dip] times popop + 1350 75 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1350 75 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1350 78 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1350 78 78 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1350 78 78 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1350 78 . + 78 [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1428 . 78 [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1428 78 . [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] . 430 [x [PE1.2] dip] times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] 430 . [x [PE1.2] dip] times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] 430 [x [PE1.2] dip] . times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 429 [x [PE1.2] dip] times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 429 [x [PE1.2] dip] times popop + 1428 78 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 429 [x [PE1.2] dip] times popop + 1428 78 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1428 78 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1428 80 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1428 80 80 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1428 80 80 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1428 80 . + 80 [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1508 . 80 [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1508 80 . [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] . 429 [x [PE1.2] dip] times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] 429 . [x [PE1.2] dip] times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] 429 [x [PE1.2] dip] . times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 428 [x [PE1.2] dip] times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 428 [x [PE1.2] dip] times popop + 1508 80 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 428 [x [PE1.2] dip] times popop + 1508 80 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1508 80 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1508 81 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1508 81 81 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1508 81 81 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1508 81 . + 81 [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1589 . 81 [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1589 81 . [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] . 428 [x [PE1.2] dip] times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] 428 . [x [PE1.2] dip] times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] 428 [x [PE1.2] dip] . times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 427 [x [PE1.2] dip] times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 427 [x [PE1.2] dip] times popop + 1589 81 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 427 [x [PE1.2] dip] times popop + 1589 81 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1589 81 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1589 84 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1589 84 84 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1589 84 84 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1589 84 . + 84 [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1673 . 84 [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1673 84 . [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] . 427 [x [PE1.2] dip] times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] 427 . [x [PE1.2] dip] times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] 427 [x [PE1.2] dip] . times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 426 [x [PE1.2] dip] times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 426 [x [PE1.2] dip] times popop + 1673 84 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 426 [x [PE1.2] dip] times popop + 1673 84 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1673 84 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1673 85 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1673 85 85 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1673 85 85 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1673 85 . + 85 [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1758 . 85 [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1758 85 . [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] . 426 [x [PE1.2] dip] times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] 426 . [x [PE1.2] dip] times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] 426 [x [PE1.2] dip] . times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 425 [x [PE1.2] dip] times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 425 [x [PE1.2] dip] times popop + 1758 85 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 425 [x [PE1.2] dip] times popop + 1758 85 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1758 85 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1758 87 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1758 87 87 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1758 87 87 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1758 87 . + 87 [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1845 . 87 [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1845 87 . [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] . 425 [x [PE1.2] dip] times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] 425 . [x [PE1.2] dip] times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] 425 [x [PE1.2] dip] . times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 424 [x [PE1.2] dip] times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 424 [x [PE1.2] dip] times popop + 1845 87 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 424 [x [PE1.2] dip] times popop + 1845 87 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1845 87 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1845 90 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1845 90 90 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1845 90 90 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1845 90 . + 90 [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1935 . 90 [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1935 90 . [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] . 424 [x [PE1.2] dip] times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] 424 . [x [PE1.2] dip] times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] 424 [x [PE1.2] dip] . times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 423 [x [PE1.2] dip] times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 423 [x [PE1.2] dip] times popop + 1935 90 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 423 [x [PE1.2] dip] times popop + 1935 90 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 1935 90 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 1935 93 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 1935 93 93 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 1935 93 93 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 1935 93 . + 93 [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 2028 . 93 [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 2028 93 . [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] . 423 [x [PE1.2] dip] times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] 423 . [x [PE1.2] dip] times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] 423 [x [PE1.2] dip] . times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 422 [x [PE1.2] dip] times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 422 [x [PE1.2] dip] times popop + 2028 93 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 422 [x [PE1.2] dip] times popop + 2028 93 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2028 93 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2028 95 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2028 95 95 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2028 95 95 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2028 95 . + 95 [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2123 . 95 [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2123 95 . [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] . 422 [x [PE1.2] dip] times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] 422 . [x [PE1.2] dip] times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] 422 [x [PE1.2] dip] . times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 421 [x [PE1.2] dip] times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 421 [x [PE1.2] dip] times popop + 2123 95 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 421 [x [PE1.2] dip] times popop + 2123 95 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2123 95 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2123 96 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2123 96 96 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2123 96 96 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2123 96 . + 96 [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2219 . 96 [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2219 96 . [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] . 421 [x [PE1.2] dip] times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] 421 . [x [PE1.2] dip] times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] 421 [x [PE1.2] dip] . times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 420 [x [PE1.2] dip] times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 420 [x [PE1.2] dip] times popop + 2219 96 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 420 [x [PE1.2] dip] times popop + 2219 96 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2219 96 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2219 99 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2219 99 99 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2219 99 99 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2219 99 . + 99 [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2318 . 99 [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2318 99 . [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] . 420 [x [PE1.2] dip] times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] 420 . [x [PE1.2] dip] times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] 420 [x [PE1.2] dip] . times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 419 [x [PE1.2] dip] times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 419 [x [PE1.2] dip] times popop + 2318 99 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 419 [x [PE1.2] dip] times popop + 2318 99 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2318 99 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2318 100 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2318 100 100 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2318 100 100 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2318 100 . + 100 [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2418 . 100 [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2418 100 . [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] . 419 [x [PE1.2] dip] times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] 419 . [x [PE1.2] dip] times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] 419 [x [PE1.2] dip] . times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 418 [x [PE1.2] dip] times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 418 [x [PE1.2] dip] times popop + 2418 100 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 418 [x [PE1.2] dip] times popop + 2418 100 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2418 100 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2418 102 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2418 102 102 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2418 102 102 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2418 102 . + 102 [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2520 . 102 [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2520 102 . [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] . 418 [x [PE1.2] dip] times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] 418 . [x [PE1.2] dip] times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] 418 [x [PE1.2] dip] . times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 417 [x [PE1.2] dip] times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 417 [x [PE1.2] dip] times popop + 2520 102 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 417 [x [PE1.2] dip] times popop + 2520 102 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2520 102 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2520 105 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2520 105 105 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2520 105 105 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2520 105 . + 105 [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2625 . 105 [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2625 105 . [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] . 417 [x [PE1.2] dip] times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] 417 . [x [PE1.2] dip] times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] 417 [x [PE1.2] dip] . times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 416 [x [PE1.2] dip] times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 416 [x [PE1.2] dip] times popop + 2625 105 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 416 [x [PE1.2] dip] times popop + 2625 105 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2625 105 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2625 108 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2625 108 108 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2625 108 108 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2625 108 . + 108 [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2733 . 108 [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2733 108 . [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] . 416 [x [PE1.2] dip] times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] 416 . [x [PE1.2] dip] times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] 416 [x [PE1.2] dip] . times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 415 [x [PE1.2] dip] times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 415 [x [PE1.2] dip] times popop + 2733 108 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 415 [x [PE1.2] dip] times popop + 2733 108 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2733 108 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2733 110 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2733 110 110 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2733 110 110 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2733 110 . + 110 [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2843 . 110 [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2843 110 . [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] . 415 [x [PE1.2] dip] times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] 415 . [x [PE1.2] dip] times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] 415 [x [PE1.2] dip] . times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 414 [x [PE1.2] dip] times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 414 [x [PE1.2] dip] times popop + 2843 110 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 414 [x [PE1.2] dip] times popop + 2843 110 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2843 110 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2843 111 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2843 111 111 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2843 111 111 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2843 111 . + 111 [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2954 . 111 [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2954 111 . [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] . 414 [x [PE1.2] dip] times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] 414 . [x [PE1.2] dip] times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] 414 [x [PE1.2] dip] . times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 413 [x [PE1.2] dip] times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 413 [x [PE1.2] dip] times popop + 2954 111 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 413 [x [PE1.2] dip] times popop + 2954 111 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 2954 111 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 2954 114 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 2954 114 114 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 2954 114 114 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 2954 114 . + 114 [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 3068 . 114 [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 3068 114 . [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] . 413 [x [PE1.2] dip] times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] 413 . [x [PE1.2] dip] times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] 413 [x [PE1.2] dip] . times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 412 [x [PE1.2] dip] times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 412 [x [PE1.2] dip] times popop + 3068 114 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 412 [x [PE1.2] dip] times popop + 3068 114 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3068 114 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3068 115 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3068 115 115 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3068 115 115 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3068 115 . + 115 [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3183 . 115 [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3183 115 . [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] . 412 [x [PE1.2] dip] times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] 412 . [x [PE1.2] dip] times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] 412 [x [PE1.2] dip] . times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 411 [x [PE1.2] dip] times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 411 [x [PE1.2] dip] times popop + 3183 115 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 411 [x [PE1.2] dip] times popop + 3183 115 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3183 115 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3183 117 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3183 117 117 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3183 117 117 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3183 117 . + 117 [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3300 . 117 [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3300 117 . [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] . 411 [x [PE1.2] dip] times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] 411 . [x [PE1.2] dip] times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] 411 [x [PE1.2] dip] . times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 410 [x [PE1.2] dip] times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 410 [x [PE1.2] dip] times popop + 3300 117 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 410 [x [PE1.2] dip] times popop + 3300 117 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3300 117 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3300 120 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3300 120 120 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3300 120 120 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3300 120 . + 120 [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3420 . 120 [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3420 120 . [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] . 410 [x [PE1.2] dip] times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] 410 . [x [PE1.2] dip] times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] 410 [x [PE1.2] dip] . times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 409 [x [PE1.2] dip] times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 409 [x [PE1.2] dip] times popop + 3420 120 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 409 [x [PE1.2] dip] times popop + 3420 120 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3420 120 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3420 123 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3420 123 123 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3420 123 123 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3420 123 . + 123 [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3543 . 123 [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3543 123 . [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] . 409 [x [PE1.2] dip] times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] 409 . [x [PE1.2] dip] times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] 409 [x [PE1.2] dip] . times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 408 [x [PE1.2] dip] times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 408 [x [PE1.2] dip] times popop + 3543 123 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 408 [x [PE1.2] dip] times popop + 3543 123 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3543 123 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3543 125 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3543 125 125 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3543 125 125 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3543 125 . + 125 [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3668 . 125 [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3668 125 . [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] . 408 [x [PE1.2] dip] times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] 408 . [x [PE1.2] dip] times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] 408 [x [PE1.2] dip] . times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 407 [x [PE1.2] dip] times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 407 [x [PE1.2] dip] times popop + 3668 125 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 407 [x [PE1.2] dip] times popop + 3668 125 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3668 125 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3668 126 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3668 126 126 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3668 126 126 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3668 126 . + 126 [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3794 . 126 [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3794 126 . [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] . 407 [x [PE1.2] dip] times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] 407 . [x [PE1.2] dip] times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] 407 [x [PE1.2] dip] . times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 406 [x [PE1.2] dip] times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 406 [x [PE1.2] dip] times popop + 3794 126 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 406 [x [PE1.2] dip] times popop + 3794 126 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3794 126 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3794 129 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3794 129 129 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3794 129 129 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3794 129 . + 129 [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3923 . 129 [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3923 129 . [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] . 406 [x [PE1.2] dip] times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] 406 . [x [PE1.2] dip] times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] 406 [x [PE1.2] dip] . times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 405 [x [PE1.2] dip] times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 405 [x [PE1.2] dip] times popop + 3923 129 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 405 [x [PE1.2] dip] times popop + 3923 129 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 3923 129 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 3923 130 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 3923 130 130 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 3923 130 130 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 3923 130 . + 130 [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 4053 . 130 [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 4053 130 . [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] . 405 [x [PE1.2] dip] times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] 405 . [x [PE1.2] dip] times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] 405 [x [PE1.2] dip] . times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 404 [x [PE1.2] dip] times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 404 [x [PE1.2] dip] times popop + 4053 130 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 404 [x [PE1.2] dip] times popop + 4053 130 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4053 130 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4053 132 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4053 132 132 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4053 132 132 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4053 132 . + 132 [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4185 . 132 [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4185 132 . [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] . 404 [x [PE1.2] dip] times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] 404 . [x [PE1.2] dip] times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] 404 [x [PE1.2] dip] . times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 403 [x [PE1.2] dip] times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 403 [x [PE1.2] dip] times popop + 4185 132 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 403 [x [PE1.2] dip] times popop + 4185 132 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4185 132 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4185 135 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4185 135 135 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4185 135 135 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4185 135 . + 135 [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4320 . 135 [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4320 135 . [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] . 403 [x [PE1.2] dip] times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] 403 . [x [PE1.2] dip] times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] 403 [x [PE1.2] dip] . times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 402 [x [PE1.2] dip] times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 402 [x [PE1.2] dip] times popop + 4320 135 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 402 [x [PE1.2] dip] times popop + 4320 135 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4320 135 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4320 138 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4320 138 138 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4320 138 138 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4320 138 . + 138 [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4458 . 138 [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4458 138 . [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] . 402 [x [PE1.2] dip] times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] 402 . [x [PE1.2] dip] times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] 402 [x [PE1.2] dip] . times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 401 [x [PE1.2] dip] times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 401 [x [PE1.2] dip] times popop + 4458 138 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 401 [x [PE1.2] dip] times popop + 4458 138 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4458 138 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4458 140 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4458 140 140 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4458 140 140 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4458 140 . + 140 [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4598 . 140 [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4598 140 . [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] . 401 [x [PE1.2] dip] times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] 401 . [x [PE1.2] dip] times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] 401 [x [PE1.2] dip] . times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 400 [x [PE1.2] dip] times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 400 [x [PE1.2] dip] times popop + 4598 140 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 400 [x [PE1.2] dip] times popop + 4598 140 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4598 140 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4598 141 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4598 141 141 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4598 141 141 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4598 141 . + 141 [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4739 . 141 [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4739 141 . [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] . 400 [x [PE1.2] dip] times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] 400 . [x [PE1.2] dip] times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] 400 [x [PE1.2] dip] . times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 399 [x [PE1.2] dip] times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 399 [x [PE1.2] dip] times popop + 4739 141 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 399 [x [PE1.2] dip] times popop + 4739 141 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4739 141 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4739 144 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4739 144 144 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4739 144 144 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4739 144 . + 144 [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4883 . 144 [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4883 144 . [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] . 399 [x [PE1.2] dip] times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] 399 . [x [PE1.2] dip] times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] 399 [x [PE1.2] dip] . times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 398 [x [PE1.2] dip] times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 398 [x [PE1.2] dip] times popop + 4883 144 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 398 [x [PE1.2] dip] times popop + 4883 144 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 4883 144 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 4883 145 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 4883 145 145 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 4883 145 145 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 4883 145 . + 145 [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 5028 . 145 [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 5028 145 . [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] . 398 [x [PE1.2] dip] times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] 398 . [x [PE1.2] dip] times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] 398 [x [PE1.2] dip] . times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 397 [x [PE1.2] dip] times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 397 [x [PE1.2] dip] times popop + 5028 145 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 397 [x [PE1.2] dip] times popop + 5028 145 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5028 145 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5028 147 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5028 147 147 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5028 147 147 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5028 147 . + 147 [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5175 . 147 [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5175 147 . [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] . 397 [x [PE1.2] dip] times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] 397 . [x [PE1.2] dip] times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] 397 [x [PE1.2] dip] . times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 396 [x [PE1.2] dip] times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 396 [x [PE1.2] dip] times popop + 5175 147 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 396 [x [PE1.2] dip] times popop + 5175 147 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5175 147 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5175 150 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5175 150 150 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5175 150 150 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5175 150 . + 150 [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5325 . 150 [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5325 150 . [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] . 396 [x [PE1.2] dip] times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] 396 . [x [PE1.2] dip] times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] 396 [x [PE1.2] dip] . times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 395 [x [PE1.2] dip] times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 395 [x [PE1.2] dip] times popop + 5325 150 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 395 [x [PE1.2] dip] times popop + 5325 150 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5325 150 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5325 153 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5325 153 153 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5325 153 153 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5325 153 . + 153 [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5478 . 153 [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5478 153 . [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] . 395 [x [PE1.2] dip] times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] 395 . [x [PE1.2] dip] times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] 395 [x [PE1.2] dip] . times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 394 [x [PE1.2] dip] times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 394 [x [PE1.2] dip] times popop + 5478 153 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 394 [x [PE1.2] dip] times popop + 5478 153 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5478 153 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5478 155 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5478 155 155 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5478 155 155 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5478 155 . + 155 [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5633 . 155 [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5633 155 . [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] . 394 [x [PE1.2] dip] times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] 394 . [x [PE1.2] dip] times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] 394 [x [PE1.2] dip] . times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 393 [x [PE1.2] dip] times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 393 [x [PE1.2] dip] times popop + 5633 155 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 393 [x [PE1.2] dip] times popop + 5633 155 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5633 155 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5633 156 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5633 156 156 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5633 156 156 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5633 156 . + 156 [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5789 . 156 [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5789 156 . [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] . 393 [x [PE1.2] dip] times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] 393 . [x [PE1.2] dip] times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] 393 [x [PE1.2] dip] . times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 392 [x [PE1.2] dip] times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 392 [x [PE1.2] dip] times popop + 5789 156 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 392 [x [PE1.2] dip] times popop + 5789 156 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5789 156 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5789 159 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5789 159 159 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5789 159 159 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5789 159 . + 159 [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5948 . 159 [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5948 159 . [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] . 392 [x [PE1.2] dip] times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] 392 . [x [PE1.2] dip] times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] 392 [x [PE1.2] dip] . times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 391 [x [PE1.2] dip] times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 391 [x [PE1.2] dip] times popop + 5948 159 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 391 [x [PE1.2] dip] times popop + 5948 159 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 5948 159 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 5948 160 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 5948 160 160 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 5948 160 160 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 5948 160 . + 160 [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 6108 . 160 [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 6108 160 . [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] . 391 [x [PE1.2] dip] times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] 391 . [x [PE1.2] dip] times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] 391 [x [PE1.2] dip] . times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 390 [x [PE1.2] dip] times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 390 [x [PE1.2] dip] times popop + 6108 160 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 390 [x [PE1.2] dip] times popop + 6108 160 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6108 160 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6108 162 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6108 162 162 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6108 162 162 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6108 162 . + 162 [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6270 . 162 [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6270 162 . [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] . 390 [x [PE1.2] dip] times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] 390 . [x [PE1.2] dip] times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] 390 [x [PE1.2] dip] . times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 389 [x [PE1.2] dip] times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 389 [x [PE1.2] dip] times popop + 6270 162 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 389 [x [PE1.2] dip] times popop + 6270 162 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6270 162 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6270 165 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6270 165 165 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6270 165 165 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6270 165 . + 165 [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6435 . 165 [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6435 165 . [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] . 389 [x [PE1.2] dip] times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] 389 . [x [PE1.2] dip] times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] 389 [x [PE1.2] dip] . times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 388 [x [PE1.2] dip] times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 388 [x [PE1.2] dip] times popop + 6435 165 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 388 [x [PE1.2] dip] times popop + 6435 165 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6435 165 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6435 168 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6435 168 168 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6435 168 168 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6435 168 . + 168 [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6603 . 168 [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6603 168 . [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] . 388 [x [PE1.2] dip] times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] 388 . [x [PE1.2] dip] times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] 388 [x [PE1.2] dip] . times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 387 [x [PE1.2] dip] times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 387 [x [PE1.2] dip] times popop + 6603 168 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 387 [x [PE1.2] dip] times popop + 6603 168 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6603 168 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6603 170 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6603 170 170 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6603 170 170 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6603 170 . + 170 [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6773 . 170 [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6773 170 . [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] . 387 [x [PE1.2] dip] times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] 387 . [x [PE1.2] dip] times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] 387 [x [PE1.2] dip] . times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 386 [x [PE1.2] dip] times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 386 [x [PE1.2] dip] times popop + 6773 170 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 386 [x [PE1.2] dip] times popop + 6773 170 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6773 170 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6773 171 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6773 171 171 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6773 171 171 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6773 171 . + 171 [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6944 . 171 [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6944 171 . [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] . 386 [x [PE1.2] dip] times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] 386 . [x [PE1.2] dip] times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] 386 [x [PE1.2] dip] . times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 385 [x [PE1.2] dip] times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 385 [x [PE1.2] dip] times popop + 6944 171 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 385 [x [PE1.2] dip] times popop + 6944 171 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 6944 171 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 6944 174 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 6944 174 174 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 6944 174 174 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 6944 174 . + 174 [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 7118 . 174 [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 7118 174 . [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] . 385 [x [PE1.2] dip] times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] 385 . [x [PE1.2] dip] times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] 385 [x [PE1.2] dip] . times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 384 [x [PE1.2] dip] times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 384 [x [PE1.2] dip] times popop + 7118 174 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 384 [x [PE1.2] dip] times popop + 7118 174 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7118 174 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7118 175 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7118 175 175 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7118 175 175 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7118 175 . + 175 [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7293 . 175 [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7293 175 . [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] . 384 [x [PE1.2] dip] times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] 384 . [x [PE1.2] dip] times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] 384 [x [PE1.2] dip] . times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 383 [x [PE1.2] dip] times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 383 [x [PE1.2] dip] times popop + 7293 175 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 383 [x [PE1.2] dip] times popop + 7293 175 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7293 175 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7293 177 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7293 177 177 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7293 177 177 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7293 177 . + 177 [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7470 . 177 [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7470 177 . [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] . 383 [x [PE1.2] dip] times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] 383 . [x [PE1.2] dip] times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] 383 [x [PE1.2] dip] . times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 382 [x [PE1.2] dip] times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 382 [x [PE1.2] dip] times popop + 7470 177 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 382 [x [PE1.2] dip] times popop + 7470 177 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7470 177 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7470 180 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7470 180 180 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7470 180 180 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7470 180 . + 180 [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7650 . 180 [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7650 180 . [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] . 382 [x [PE1.2] dip] times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] 382 . [x [PE1.2] dip] times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] 382 [x [PE1.2] dip] . times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 381 [x [PE1.2] dip] times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 381 [x [PE1.2] dip] times popop + 7650 180 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 381 [x [PE1.2] dip] times popop + 7650 180 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7650 180 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7650 183 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7650 183 183 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7650 183 183 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7650 183 . + 183 [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7833 . 183 [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7833 183 . [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] . 381 [x [PE1.2] dip] times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] 381 . [x [PE1.2] dip] times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] 381 [x [PE1.2] dip] . times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 380 [x [PE1.2] dip] times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 380 [x [PE1.2] dip] times popop + 7833 183 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 380 [x [PE1.2] dip] times popop + 7833 183 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 7833 183 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 7833 185 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 7833 185 185 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 7833 185 185 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 7833 185 . + 185 [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 8018 . 185 [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 8018 185 . [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] . 380 [x [PE1.2] dip] times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] 380 . [x [PE1.2] dip] times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] 380 [x [PE1.2] dip] . times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 379 [x [PE1.2] dip] times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 379 [x [PE1.2] dip] times popop + 8018 185 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 379 [x [PE1.2] dip] times popop + 8018 185 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8018 185 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8018 186 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8018 186 186 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8018 186 186 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8018 186 . + 186 [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8204 . 186 [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8204 186 . [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] . 379 [x [PE1.2] dip] times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] 379 . [x [PE1.2] dip] times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] 379 [x [PE1.2] dip] . times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 378 [x [PE1.2] dip] times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 378 [x [PE1.2] dip] times popop + 8204 186 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 378 [x [PE1.2] dip] times popop + 8204 186 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8204 186 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8204 189 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8204 189 189 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8204 189 189 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8204 189 . + 189 [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8393 . 189 [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8393 189 . [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] . 378 [x [PE1.2] dip] times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] 378 . [x [PE1.2] dip] times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] 378 [x [PE1.2] dip] . times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 377 [x [PE1.2] dip] times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 377 [x [PE1.2] dip] times popop + 8393 189 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 377 [x [PE1.2] dip] times popop + 8393 189 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8393 189 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8393 190 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8393 190 190 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8393 190 190 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8393 190 . + 190 [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8583 . 190 [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8583 190 . [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] . 377 [x [PE1.2] dip] times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] 377 . [x [PE1.2] dip] times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] 377 [x [PE1.2] dip] . times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 376 [x [PE1.2] dip] times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 376 [x [PE1.2] dip] times popop + 8583 190 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 376 [x [PE1.2] dip] times popop + 8583 190 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8583 190 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8583 192 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8583 192 192 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8583 192 192 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8583 192 . + 192 [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8775 . 192 [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8775 192 . [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] . 376 [x [PE1.2] dip] times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] 376 . [x [PE1.2] dip] times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] 376 [x [PE1.2] dip] . times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 375 [x [PE1.2] dip] times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 375 [x [PE1.2] dip] times popop + 8775 192 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 375 [x [PE1.2] dip] times popop + 8775 192 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8775 192 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8775 195 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8775 195 195 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8775 195 195 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8775 195 . + 195 [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8970 . 195 [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8970 195 . [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] . 375 [x [PE1.2] dip] times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] 375 . [x [PE1.2] dip] times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] 375 [x [PE1.2] dip] . times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 374 [x [PE1.2] dip] times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 374 [x [PE1.2] dip] times popop + 8970 195 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 374 [x [PE1.2] dip] times popop + 8970 195 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 8970 195 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 8970 198 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 8970 198 198 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 8970 198 198 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 8970 198 . + 198 [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 9168 . 198 [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 9168 198 . [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] . 374 [x [PE1.2] dip] times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] 374 . [x [PE1.2] dip] times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] 374 [x [PE1.2] dip] . times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 373 [x [PE1.2] dip] times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 373 [x [PE1.2] dip] times popop + 9168 198 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 373 [x [PE1.2] dip] times popop + 9168 198 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9168 198 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9168 200 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9168 200 200 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9168 200 200 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9168 200 . + 200 [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9368 . 200 [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9368 200 . [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] . 373 [x [PE1.2] dip] times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] 373 . [x [PE1.2] dip] times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] 373 [x [PE1.2] dip] . times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 372 [x [PE1.2] dip] times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 372 [x [PE1.2] dip] times popop + 9368 200 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 372 [x [PE1.2] dip] times popop + 9368 200 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9368 200 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9368 201 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9368 201 201 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9368 201 201 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9368 201 . + 201 [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9569 . 201 [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9569 201 . [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] . 372 [x [PE1.2] dip] times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] 372 . [x [PE1.2] dip] times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] 372 [x [PE1.2] dip] . times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 371 [x [PE1.2] dip] times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 371 [x [PE1.2] dip] times popop + 9569 201 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 371 [x [PE1.2] dip] times popop + 9569 201 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9569 201 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9569 204 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9569 204 204 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9569 204 204 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9569 204 . + 204 [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9773 . 204 [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9773 204 . [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] . 371 [x [PE1.2] dip] times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] 371 . [x [PE1.2] dip] times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] 371 [x [PE1.2] dip] . times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 370 [x [PE1.2] dip] times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 370 [x [PE1.2] dip] times popop + 9773 204 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 370 [x [PE1.2] dip] times popop + 9773 204 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9773 204 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9773 205 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9773 205 205 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9773 205 205 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9773 205 . + 205 [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9978 . 205 [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9978 205 . [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] . 370 [x [PE1.2] dip] times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] 370 . [x [PE1.2] dip] times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] 370 [x [PE1.2] dip] . times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 369 [x [PE1.2] dip] times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 369 [x [PE1.2] dip] times popop + 9978 205 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 369 [x [PE1.2] dip] times popop + 9978 205 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 9978 205 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 9978 207 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 9978 207 207 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 9978 207 207 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 9978 207 . + 207 [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 10185 . 207 [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 10185 207 . [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] . 369 [x [PE1.2] dip] times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] 369 . [x [PE1.2] dip] times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] 369 [x [PE1.2] dip] . times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 368 [x [PE1.2] dip] times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 368 [x [PE1.2] dip] times popop + 10185 207 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 368 [x [PE1.2] dip] times popop + 10185 207 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10185 207 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10185 210 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10185 210 210 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10185 210 210 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10185 210 . + 210 [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10395 . 210 [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10395 210 . [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] . 368 [x [PE1.2] dip] times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] 368 . [x [PE1.2] dip] times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] 368 [x [PE1.2] dip] . times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 367 [x [PE1.2] dip] times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 367 [x [PE1.2] dip] times popop + 10395 210 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 367 [x [PE1.2] dip] times popop + 10395 210 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10395 210 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10395 213 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10395 213 213 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10395 213 213 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10395 213 . + 213 [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10608 . 213 [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10608 213 . [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] . 367 [x [PE1.2] dip] times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] 367 . [x [PE1.2] dip] times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] 367 [x [PE1.2] dip] . times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 366 [x [PE1.2] dip] times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 366 [x [PE1.2] dip] times popop + 10608 213 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 366 [x [PE1.2] dip] times popop + 10608 213 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10608 213 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10608 215 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10608 215 215 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10608 215 215 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10608 215 . + 215 [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10823 . 215 [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10823 215 . [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] . 366 [x [PE1.2] dip] times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] 366 . [x [PE1.2] dip] times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] 366 [x [PE1.2] dip] . times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 365 [x [PE1.2] dip] times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 365 [x [PE1.2] dip] times popop + 10823 215 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 365 [x [PE1.2] dip] times popop + 10823 215 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 10823 215 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 10823 216 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 10823 216 216 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 10823 216 216 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 10823 216 . + 216 [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 11039 . 216 [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 11039 216 . [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] . 365 [x [PE1.2] dip] times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] 365 . [x [PE1.2] dip] times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] 365 [x [PE1.2] dip] . times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 364 [x [PE1.2] dip] times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 364 [x [PE1.2] dip] times popop + 11039 216 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 364 [x [PE1.2] dip] times popop + 11039 216 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11039 216 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11039 219 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11039 219 219 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11039 219 219 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11039 219 . + 219 [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11258 . 219 [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11258 219 . [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] . 364 [x [PE1.2] dip] times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] 364 . [x [PE1.2] dip] times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] 364 [x [PE1.2] dip] . times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 363 [x [PE1.2] dip] times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 363 [x [PE1.2] dip] times popop + 11258 219 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 363 [x [PE1.2] dip] times popop + 11258 219 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11258 219 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11258 220 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11258 220 220 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11258 220 220 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11258 220 . + 220 [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11478 . 220 [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11478 220 . [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] . 363 [x [PE1.2] dip] times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] 363 . [x [PE1.2] dip] times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] 363 [x [PE1.2] dip] . times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 362 [x [PE1.2] dip] times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 362 [x [PE1.2] dip] times popop + 11478 220 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 362 [x [PE1.2] dip] times popop + 11478 220 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11478 220 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11478 222 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11478 222 222 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11478 222 222 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11478 222 . + 222 [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11700 . 222 [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11700 222 . [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] . 362 [x [PE1.2] dip] times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] 362 . [x [PE1.2] dip] times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] 362 [x [PE1.2] dip] . times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 361 [x [PE1.2] dip] times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 361 [x [PE1.2] dip] times popop + 11700 222 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 361 [x [PE1.2] dip] times popop + 11700 222 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11700 222 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11700 225 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11700 225 225 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11700 225 225 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11700 225 . + 225 [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11925 . 225 [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11925 225 . [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] . 361 [x [PE1.2] dip] times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] 361 . [x [PE1.2] dip] times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] 361 [x [PE1.2] dip] . times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 360 [x [PE1.2] dip] times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 360 [x [PE1.2] dip] times popop + 11925 225 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 360 [x [PE1.2] dip] times popop + 11925 225 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 11925 225 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 11925 228 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 11925 228 228 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 11925 228 228 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 11925 228 . + 228 [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 12153 . 228 [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 12153 228 . [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] . 360 [x [PE1.2] dip] times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] 360 . [x [PE1.2] dip] times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] 360 [x [PE1.2] dip] . times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 359 [x [PE1.2] dip] times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 359 [x [PE1.2] dip] times popop + 12153 228 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 359 [x [PE1.2] dip] times popop + 12153 228 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12153 228 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12153 230 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12153 230 230 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12153 230 230 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12153 230 . + 230 [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12383 . 230 [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12383 230 . [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] . 359 [x [PE1.2] dip] times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] 359 . [x [PE1.2] dip] times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] 359 [x [PE1.2] dip] . times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 358 [x [PE1.2] dip] times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 358 [x [PE1.2] dip] times popop + 12383 230 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 358 [x [PE1.2] dip] times popop + 12383 230 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12383 230 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12383 231 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12383 231 231 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12383 231 231 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12383 231 . + 231 [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12614 . 231 [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12614 231 . [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] . 358 [x [PE1.2] dip] times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] 358 . [x [PE1.2] dip] times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] 358 [x [PE1.2] dip] . times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 357 [x [PE1.2] dip] times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 357 [x [PE1.2] dip] times popop + 12614 231 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 357 [x [PE1.2] dip] times popop + 12614 231 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12614 231 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12614 234 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12614 234 234 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12614 234 234 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12614 234 . + 234 [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12848 . 234 [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12848 234 . [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] . 357 [x [PE1.2] dip] times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] 357 . [x [PE1.2] dip] times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] 357 [x [PE1.2] dip] . times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 356 [x [PE1.2] dip] times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 356 [x [PE1.2] dip] times popop + 12848 234 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 356 [x [PE1.2] dip] times popop + 12848 234 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 12848 234 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 12848 235 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 12848 235 235 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 12848 235 235 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 12848 235 . + 235 [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 13083 . 235 [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 13083 235 . [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] . 356 [x [PE1.2] dip] times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] 356 . [x [PE1.2] dip] times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] 356 [x [PE1.2] dip] . times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 355 [x [PE1.2] dip] times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 355 [x [PE1.2] dip] times popop + 13083 235 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 355 [x [PE1.2] dip] times popop + 13083 235 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13083 235 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13083 237 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13083 237 237 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13083 237 237 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13083 237 . + 237 [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13320 . 237 [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13320 237 . [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] . 355 [x [PE1.2] dip] times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] 355 . [x [PE1.2] dip] times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] 355 [x [PE1.2] dip] . times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 354 [x [PE1.2] dip] times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 354 [x [PE1.2] dip] times popop + 13320 237 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 354 [x [PE1.2] dip] times popop + 13320 237 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13320 237 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13320 240 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13320 240 240 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13320 240 240 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13320 240 . + 240 [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13560 . 240 [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13560 240 . [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] . 354 [x [PE1.2] dip] times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] 354 . [x [PE1.2] dip] times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] 354 [x [PE1.2] dip] . times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 353 [x [PE1.2] dip] times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 353 [x [PE1.2] dip] times popop + 13560 240 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 353 [x [PE1.2] dip] times popop + 13560 240 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13560 240 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13560 243 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13560 243 243 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13560 243 243 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13560 243 . + 243 [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13803 . 243 [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13803 243 . [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] . 353 [x [PE1.2] dip] times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] 353 . [x [PE1.2] dip] times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] 353 [x [PE1.2] dip] . times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 352 [x [PE1.2] dip] times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 352 [x [PE1.2] dip] times popop + 13803 243 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 352 [x [PE1.2] dip] times popop + 13803 243 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 13803 243 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 13803 245 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 13803 245 245 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 13803 245 245 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 13803 245 . + 245 [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 14048 . 245 [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 14048 245 . [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] . 352 [x [PE1.2] dip] times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] 352 . [x [PE1.2] dip] times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] 352 [x [PE1.2] dip] . times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 351 [x [PE1.2] dip] times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 351 [x [PE1.2] dip] times popop + 14048 245 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 351 [x [PE1.2] dip] times popop + 14048 245 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14048 245 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14048 246 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14048 246 246 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14048 246 246 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14048 246 . + 246 [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14294 . 246 [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14294 246 . [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] . 351 [x [PE1.2] dip] times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] 351 . [x [PE1.2] dip] times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] 351 [x [PE1.2] dip] . times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 350 [x [PE1.2] dip] times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 350 [x [PE1.2] dip] times popop + 14294 246 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 350 [x [PE1.2] dip] times popop + 14294 246 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14294 246 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14294 249 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14294 249 249 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14294 249 249 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14294 249 . + 249 [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14543 . 249 [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14543 249 . [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] . 350 [x [PE1.2] dip] times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] 350 . [x [PE1.2] dip] times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] 350 [x [PE1.2] dip] . times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 349 [x [PE1.2] dip] times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 349 [x [PE1.2] dip] times popop + 14543 249 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 349 [x [PE1.2] dip] times popop + 14543 249 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14543 249 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14543 250 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14543 250 250 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14543 250 250 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14543 250 . + 250 [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14793 . 250 [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14793 250 . [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] . 349 [x [PE1.2] dip] times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] 349 . [x [PE1.2] dip] times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] 349 [x [PE1.2] dip] . times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 348 [x [PE1.2] dip] times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 348 [x [PE1.2] dip] times popop + 14793 250 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 348 [x [PE1.2] dip] times popop + 14793 250 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 14793 250 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 14793 252 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 14793 252 252 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 14793 252 252 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 14793 252 . + 252 [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 15045 . 252 [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 15045 252 . [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] . 348 [x [PE1.2] dip] times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] 348 . [x [PE1.2] dip] times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] 348 [x [PE1.2] dip] . times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 347 [x [PE1.2] dip] times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 347 [x [PE1.2] dip] times popop + 15045 252 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 347 [x [PE1.2] dip] times popop + 15045 252 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15045 252 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15045 255 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15045 255 255 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15045 255 255 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15045 255 . + 255 [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15300 . 255 [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15300 255 . [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] . 347 [x [PE1.2] dip] times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] 347 . [x [PE1.2] dip] times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] 347 [x [PE1.2] dip] . times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 346 [x [PE1.2] dip] times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 346 [x [PE1.2] dip] times popop + 15300 255 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 346 [x [PE1.2] dip] times popop + 15300 255 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15300 255 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15300 258 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15300 258 258 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15300 258 258 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15300 258 . + 258 [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15558 . 258 [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15558 258 . [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] . 346 [x [PE1.2] dip] times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] 346 . [x [PE1.2] dip] times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] 346 [x [PE1.2] dip] . times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 345 [x [PE1.2] dip] times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 345 [x [PE1.2] dip] times popop + 15558 258 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 345 [x [PE1.2] dip] times popop + 15558 258 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15558 258 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15558 260 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15558 260 260 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15558 260 260 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15558 260 . + 260 [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15818 . 260 [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15818 260 . [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] . 345 [x [PE1.2] dip] times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] 345 . [x [PE1.2] dip] times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] 345 [x [PE1.2] dip] . times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 344 [x [PE1.2] dip] times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 344 [x [PE1.2] dip] times popop + 15818 260 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 344 [x [PE1.2] dip] times popop + 15818 260 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 15818 260 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 15818 261 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 15818 261 261 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 15818 261 261 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 15818 261 . + 261 [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 16079 . 261 [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 16079 261 . [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] . 344 [x [PE1.2] dip] times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] 344 . [x [PE1.2] dip] times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] 344 [x [PE1.2] dip] . times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 343 [x [PE1.2] dip] times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 343 [x [PE1.2] dip] times popop + 16079 261 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 343 [x [PE1.2] dip] times popop + 16079 261 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16079 261 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16079 264 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16079 264 264 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16079 264 264 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16079 264 . + 264 [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16343 . 264 [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16343 264 . [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] . 343 [x [PE1.2] dip] times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] 343 . [x [PE1.2] dip] times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] 343 [x [PE1.2] dip] . times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 342 [x [PE1.2] dip] times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 342 [x [PE1.2] dip] times popop + 16343 264 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 342 [x [PE1.2] dip] times popop + 16343 264 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16343 264 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16343 265 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16343 265 265 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16343 265 265 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16343 265 . + 265 [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16608 . 265 [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16608 265 . [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] . 342 [x [PE1.2] dip] times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] 342 . [x [PE1.2] dip] times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] 342 [x [PE1.2] dip] . times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 341 [x [PE1.2] dip] times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 341 [x [PE1.2] dip] times popop + 16608 265 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 341 [x [PE1.2] dip] times popop + 16608 265 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16608 265 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16608 267 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16608 267 267 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16608 267 267 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16608 267 . + 267 [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16875 . 267 [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16875 267 . [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] . 341 [x [PE1.2] dip] times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] 341 . [x [PE1.2] dip] times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] 341 [x [PE1.2] dip] . times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 340 [x [PE1.2] dip] times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 340 [x [PE1.2] dip] times popop + 16875 267 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 340 [x [PE1.2] dip] times popop + 16875 267 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 16875 267 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 16875 270 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 16875 270 270 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 16875 270 270 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 16875 270 . + 270 [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 17145 . 270 [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 17145 270 . [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] . 340 [x [PE1.2] dip] times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] 340 . [x [PE1.2] dip] times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] 340 [x [PE1.2] dip] . times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 339 [x [PE1.2] dip] times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 339 [x [PE1.2] dip] times popop + 17145 270 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 339 [x [PE1.2] dip] times popop + 17145 270 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17145 270 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17145 273 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17145 273 273 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17145 273 273 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17145 273 . + 273 [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17418 . 273 [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17418 273 . [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] . 339 [x [PE1.2] dip] times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] 339 . [x [PE1.2] dip] times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] 339 [x [PE1.2] dip] . times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 338 [x [PE1.2] dip] times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 338 [x [PE1.2] dip] times popop + 17418 273 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 338 [x [PE1.2] dip] times popop + 17418 273 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17418 273 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17418 275 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17418 275 275 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17418 275 275 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17418 275 . + 275 [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17693 . 275 [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17693 275 . [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] . 338 [x [PE1.2] dip] times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] 338 . [x [PE1.2] dip] times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] 338 [x [PE1.2] dip] . times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 337 [x [PE1.2] dip] times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 337 [x [PE1.2] dip] times popop + 17693 275 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 337 [x [PE1.2] dip] times popop + 17693 275 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17693 275 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17693 276 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17693 276 276 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17693 276 276 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17693 276 . + 276 [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17969 . 276 [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17969 276 . [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] . 337 [x [PE1.2] dip] times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] 337 . [x [PE1.2] dip] times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] 337 [x [PE1.2] dip] . times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 336 [x [PE1.2] dip] times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 336 [x [PE1.2] dip] times popop + 17969 276 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 336 [x [PE1.2] dip] times popop + 17969 276 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 17969 276 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 17969 279 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 17969 279 279 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 17969 279 279 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 17969 279 . + 279 [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 18248 . 279 [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 18248 279 . [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] . 336 [x [PE1.2] dip] times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] 336 . [x [PE1.2] dip] times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] 336 [x [PE1.2] dip] . times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 335 [x [PE1.2] dip] times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 335 [x [PE1.2] dip] times popop + 18248 279 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 335 [x [PE1.2] dip] times popop + 18248 279 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18248 279 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18248 280 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18248 280 280 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18248 280 280 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18248 280 . + 280 [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18528 . 280 [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18528 280 . [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] . 335 [x [PE1.2] dip] times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] 335 . [x [PE1.2] dip] times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] 335 [x [PE1.2] dip] . times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 334 [x [PE1.2] dip] times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 334 [x [PE1.2] dip] times popop + 18528 280 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 334 [x [PE1.2] dip] times popop + 18528 280 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18528 280 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18528 282 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18528 282 282 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18528 282 282 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18528 282 . + 282 [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18810 . 282 [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18810 282 . [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] . 334 [x [PE1.2] dip] times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] 334 . [x [PE1.2] dip] times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] 334 [x [PE1.2] dip] . times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 333 [x [PE1.2] dip] times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 333 [x [PE1.2] dip] times popop + 18810 282 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 333 [x [PE1.2] dip] times popop + 18810 282 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 18810 282 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 18810 285 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 18810 285 285 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 18810 285 285 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 18810 285 . + 285 [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 19095 . 285 [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 19095 285 . [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] . 333 [x [PE1.2] dip] times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] 333 . [x [PE1.2] dip] times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] 333 [x [PE1.2] dip] . times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 332 [x [PE1.2] dip] times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 332 [x [PE1.2] dip] times popop + 19095 285 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 332 [x [PE1.2] dip] times popop + 19095 285 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19095 285 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19095 288 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19095 288 288 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19095 288 288 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19095 288 . + 288 [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19383 . 288 [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19383 288 . [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] . 332 [x [PE1.2] dip] times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] 332 . [x [PE1.2] dip] times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] 332 [x [PE1.2] dip] . times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 331 [x [PE1.2] dip] times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 331 [x [PE1.2] dip] times popop + 19383 288 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 331 [x [PE1.2] dip] times popop + 19383 288 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19383 288 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19383 290 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19383 290 290 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19383 290 290 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19383 290 . + 290 [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19673 . 290 [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19673 290 . [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] . 331 [x [PE1.2] dip] times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] 331 . [x [PE1.2] dip] times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] 331 [x [PE1.2] dip] . times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 330 [x [PE1.2] dip] times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 330 [x [PE1.2] dip] times popop + 19673 290 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 330 [x [PE1.2] dip] times popop + 19673 290 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19673 290 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19673 291 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19673 291 291 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19673 291 291 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19673 291 . + 291 [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19964 . 291 [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19964 291 . [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] . 330 [x [PE1.2] dip] times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] 330 . [x [PE1.2] dip] times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] 330 [x [PE1.2] dip] . times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 329 [x [PE1.2] dip] times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 329 [x [PE1.2] dip] times popop + 19964 291 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 329 [x [PE1.2] dip] times popop + 19964 291 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 19964 291 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 19964 294 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 19964 294 294 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 19964 294 294 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 19964 294 . + 294 [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 20258 . 294 [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 20258 294 . [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] . 329 [x [PE1.2] dip] times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] 329 . [x [PE1.2] dip] times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] 329 [x [PE1.2] dip] . times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 328 [x [PE1.2] dip] times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 328 [x [PE1.2] dip] times popop + 20258 294 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 328 [x [PE1.2] dip] times popop + 20258 294 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20258 294 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20258 295 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20258 295 295 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20258 295 295 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20258 295 . + 295 [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20553 . 295 [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20553 295 . [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] . 328 [x [PE1.2] dip] times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] 328 . [x [PE1.2] dip] times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] 328 [x [PE1.2] dip] . times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 327 [x [PE1.2] dip] times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 327 [x [PE1.2] dip] times popop + 20553 295 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 327 [x [PE1.2] dip] times popop + 20553 295 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20553 295 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20553 297 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20553 297 297 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20553 297 297 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20553 297 . + 297 [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20850 . 297 [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20850 297 . [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] . 327 [x [PE1.2] dip] times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] 327 . [x [PE1.2] dip] times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] 327 [x [PE1.2] dip] . times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 326 [x [PE1.2] dip] times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 326 [x [PE1.2] dip] times popop + 20850 297 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 326 [x [PE1.2] dip] times popop + 20850 297 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 20850 297 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 20850 300 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 20850 300 300 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 20850 300 300 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 20850 300 . + 300 [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 21150 . 300 [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 21150 300 . [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] . 326 [x [PE1.2] dip] times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] 326 . [x [PE1.2] dip] times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] 326 [x [PE1.2] dip] . times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 325 [x [PE1.2] dip] times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 325 [x [PE1.2] dip] times popop + 21150 300 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 325 [x [PE1.2] dip] times popop + 21150 300 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21150 300 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21150 303 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21150 303 303 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21150 303 303 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21150 303 . + 303 [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21453 . 303 [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21453 303 . [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] . 325 [x [PE1.2] dip] times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] 325 . [x [PE1.2] dip] times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] 325 [x [PE1.2] dip] . times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 324 [x [PE1.2] dip] times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 324 [x [PE1.2] dip] times popop + 21453 303 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 324 [x [PE1.2] dip] times popop + 21453 303 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21453 303 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21453 305 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21453 305 305 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21453 305 305 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21453 305 . + 305 [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21758 . 305 [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21758 305 . [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] . 324 [x [PE1.2] dip] times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] 324 . [x [PE1.2] dip] times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] 324 [x [PE1.2] dip] . times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 323 [x [PE1.2] dip] times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 323 [x [PE1.2] dip] times popop + 21758 305 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 323 [x [PE1.2] dip] times popop + 21758 305 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 21758 305 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 21758 306 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 21758 306 306 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 21758 306 306 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 21758 306 . + 306 [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 22064 . 306 [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 22064 306 . [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] . 323 [x [PE1.2] dip] times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] 323 . [x [PE1.2] dip] times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] 323 [x [PE1.2] dip] . times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 322 [x [PE1.2] dip] times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 322 [x [PE1.2] dip] times popop + 22064 306 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 322 [x [PE1.2] dip] times popop + 22064 306 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22064 306 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22064 309 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22064 309 309 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22064 309 309 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22064 309 . + 309 [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22373 . 309 [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22373 309 . [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] . 322 [x [PE1.2] dip] times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] 322 . [x [PE1.2] dip] times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] 322 [x [PE1.2] dip] . times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 321 [x [PE1.2] dip] times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 321 [x [PE1.2] dip] times popop + 22373 309 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 321 [x [PE1.2] dip] times popop + 22373 309 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22373 309 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22373 310 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22373 310 310 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22373 310 310 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22373 310 . + 310 [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22683 . 310 [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22683 310 . [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] . 321 [x [PE1.2] dip] times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] 321 . [x [PE1.2] dip] times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] 321 [x [PE1.2] dip] . times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 320 [x [PE1.2] dip] times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 320 [x [PE1.2] dip] times popop + 22683 310 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 320 [x [PE1.2] dip] times popop + 22683 310 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22683 310 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22683 312 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22683 312 312 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22683 312 312 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22683 312 . + 312 [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22995 . 312 [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22995 312 . [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] . 320 [x [PE1.2] dip] times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] 320 . [x [PE1.2] dip] times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] 320 [x [PE1.2] dip] . times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 319 [x [PE1.2] dip] times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 319 [x [PE1.2] dip] times popop + 22995 312 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 319 [x [PE1.2] dip] times popop + 22995 312 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 22995 312 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 22995 315 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 22995 315 315 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 22995 315 315 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 22995 315 . + 315 [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 23310 . 315 [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 23310 315 . [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] . 319 [x [PE1.2] dip] times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] 319 . [x [PE1.2] dip] times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] 319 [x [PE1.2] dip] . times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 318 [x [PE1.2] dip] times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 318 [x [PE1.2] dip] times popop + 23310 315 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 318 [x [PE1.2] dip] times popop + 23310 315 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23310 315 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23310 318 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23310 318 318 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23310 318 318 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23310 318 . + 318 [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23628 . 318 [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23628 318 . [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] . 318 [x [PE1.2] dip] times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] 318 . [x [PE1.2] dip] times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] 318 [x [PE1.2] dip] . times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 317 [x [PE1.2] dip] times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 317 [x [PE1.2] dip] times popop + 23628 318 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 317 [x [PE1.2] dip] times popop + 23628 318 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23628 318 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23628 320 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23628 320 320 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23628 320 320 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23628 320 . + 320 [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23948 . 320 [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23948 320 . [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] . 317 [x [PE1.2] dip] times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] 317 . [x [PE1.2] dip] times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] 317 [x [PE1.2] dip] . times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 316 [x [PE1.2] dip] times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 316 [x [PE1.2] dip] times popop + 23948 320 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 316 [x [PE1.2] dip] times popop + 23948 320 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 23948 320 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 23948 321 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 23948 321 321 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 23948 321 321 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 23948 321 . + 321 [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 24269 . 321 [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 24269 321 . [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] . 316 [x [PE1.2] dip] times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] 316 . [x [PE1.2] dip] times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] 316 [x [PE1.2] dip] . times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 315 [x [PE1.2] dip] times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 315 [x [PE1.2] dip] times popop + 24269 321 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 315 [x [PE1.2] dip] times popop + 24269 321 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24269 321 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24269 324 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24269 324 324 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24269 324 324 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24269 324 . + 324 [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24593 . 324 [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24593 324 . [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] . 315 [x [PE1.2] dip] times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] 315 . [x [PE1.2] dip] times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] 315 [x [PE1.2] dip] . times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 314 [x [PE1.2] dip] times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 314 [x [PE1.2] dip] times popop + 24593 324 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 314 [x [PE1.2] dip] times popop + 24593 324 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24593 324 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24593 325 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24593 325 325 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24593 325 325 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24593 325 . + 325 [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24918 . 325 [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24918 325 . [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] . 314 [x [PE1.2] dip] times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] 314 . [x [PE1.2] dip] times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] 314 [x [PE1.2] dip] . times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 313 [x [PE1.2] dip] times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 313 [x [PE1.2] dip] times popop + 24918 325 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 313 [x [PE1.2] dip] times popop + 24918 325 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 24918 325 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 24918 327 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 24918 327 327 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 24918 327 327 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 24918 327 . + 327 [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 25245 . 327 [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 25245 327 . [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] . 313 [x [PE1.2] dip] times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] 313 . [x [PE1.2] dip] times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] 313 [x [PE1.2] dip] . times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 312 [x [PE1.2] dip] times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 312 [x [PE1.2] dip] times popop + 25245 327 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 312 [x [PE1.2] dip] times popop + 25245 327 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25245 327 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25245 330 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25245 330 330 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25245 330 330 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25245 330 . + 330 [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25575 . 330 [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25575 330 . [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] . 312 [x [PE1.2] dip] times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] 312 . [x [PE1.2] dip] times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] 312 [x [PE1.2] dip] . times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 311 [x [PE1.2] dip] times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 311 [x [PE1.2] dip] times popop + 25575 330 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 311 [x [PE1.2] dip] times popop + 25575 330 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25575 330 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25575 333 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25575 333 333 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25575 333 333 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25575 333 . + 333 [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25908 . 333 [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25908 333 . [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] . 311 [x [PE1.2] dip] times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] 311 . [x [PE1.2] dip] times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] 311 [x [PE1.2] dip] . times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 310 [x [PE1.2] dip] times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 310 [x [PE1.2] dip] times popop + 25908 333 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 310 [x [PE1.2] dip] times popop + 25908 333 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 25908 333 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 25908 335 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 25908 335 335 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 25908 335 335 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 25908 335 . + 335 [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 26243 . 335 [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 26243 335 . [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] . 310 [x [PE1.2] dip] times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] 310 . [x [PE1.2] dip] times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] 310 [x [PE1.2] dip] . times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 309 [x [PE1.2] dip] times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 309 [x [PE1.2] dip] times popop + 26243 335 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 309 [x [PE1.2] dip] times popop + 26243 335 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26243 335 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26243 336 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26243 336 336 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26243 336 336 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26243 336 . + 336 [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26579 . 336 [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26579 336 . [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] . 309 [x [PE1.2] dip] times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] 309 . [x [PE1.2] dip] times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] 309 [x [PE1.2] dip] . times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 308 [x [PE1.2] dip] times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 308 [x [PE1.2] dip] times popop + 26579 336 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 308 [x [PE1.2] dip] times popop + 26579 336 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26579 336 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26579 339 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26579 339 339 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26579 339 339 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26579 339 . + 339 [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26918 . 339 [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26918 339 . [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] . 308 [x [PE1.2] dip] times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] 308 . [x [PE1.2] dip] times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] 308 [x [PE1.2] dip] . times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 307 [x [PE1.2] dip] times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 307 [x [PE1.2] dip] times popop + 26918 339 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 307 [x [PE1.2] dip] times popop + 26918 339 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 26918 339 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 26918 340 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 26918 340 340 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 26918 340 340 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 26918 340 . + 340 [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 27258 . 340 [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 27258 340 . [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] . 307 [x [PE1.2] dip] times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] 307 . [x [PE1.2] dip] times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] 307 [x [PE1.2] dip] . times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 306 [x [PE1.2] dip] times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 306 [x [PE1.2] dip] times popop + 27258 340 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 306 [x [PE1.2] dip] times popop + 27258 340 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27258 340 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27258 342 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27258 342 342 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27258 342 342 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27258 342 . + 342 [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27600 . 342 [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27600 342 . [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] . 306 [x [PE1.2] dip] times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] 306 . [x [PE1.2] dip] times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] 306 [x [PE1.2] dip] . times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 305 [x [PE1.2] dip] times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 305 [x [PE1.2] dip] times popop + 27600 342 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 305 [x [PE1.2] dip] times popop + 27600 342 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27600 342 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27600 345 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27600 345 345 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27600 345 345 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27600 345 . + 345 [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27945 . 345 [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27945 345 . [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] . 305 [x [PE1.2] dip] times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] 305 . [x [PE1.2] dip] times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] 305 [x [PE1.2] dip] . times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 304 [x [PE1.2] dip] times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 304 [x [PE1.2] dip] times popop + 27945 345 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 304 [x [PE1.2] dip] times popop + 27945 345 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 27945 345 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 27945 348 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 27945 348 348 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 27945 348 348 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 27945 348 . + 348 [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 28293 . 348 [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 28293 348 . [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] . 304 [x [PE1.2] dip] times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] 304 . [x [PE1.2] dip] times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] 304 [x [PE1.2] dip] . times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 303 [x [PE1.2] dip] times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 303 [x [PE1.2] dip] times popop + 28293 348 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 303 [x [PE1.2] dip] times popop + 28293 348 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28293 348 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28293 350 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28293 350 350 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28293 350 350 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28293 350 . + 350 [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28643 . 350 [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28643 350 . [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] . 303 [x [PE1.2] dip] times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] 303 . [x [PE1.2] dip] times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] 303 [x [PE1.2] dip] . times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 302 [x [PE1.2] dip] times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 302 [x [PE1.2] dip] times popop + 28643 350 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 302 [x [PE1.2] dip] times popop + 28643 350 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28643 350 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28643 351 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28643 351 351 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28643 351 351 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28643 351 . + 351 [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28994 . 351 [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28994 351 . [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] . 302 [x [PE1.2] dip] times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] 302 . [x [PE1.2] dip] times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] 302 [x [PE1.2] dip] . times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 301 [x [PE1.2] dip] times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 301 [x [PE1.2] dip] times popop + 28994 351 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 301 [x [PE1.2] dip] times popop + 28994 351 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 28994 351 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 28994 354 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 28994 354 354 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 28994 354 354 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 28994 354 . + 354 [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 29348 . 354 [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 29348 354 . [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] . 301 [x [PE1.2] dip] times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] 301 . [x [PE1.2] dip] times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] 301 [x [PE1.2] dip] . times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 300 [x [PE1.2] dip] times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 300 [x [PE1.2] dip] times popop + 29348 354 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 300 [x [PE1.2] dip] times popop + 29348 354 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29348 354 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29348 355 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29348 355 355 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29348 355 355 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29348 355 . + 355 [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29703 . 355 [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29703 355 . [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] . 300 [x [PE1.2] dip] times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] 300 . [x [PE1.2] dip] times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] 300 [x [PE1.2] dip] . times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 299 [x [PE1.2] dip] times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 299 [x [PE1.2] dip] times popop + 29703 355 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 299 [x [PE1.2] dip] times popop + 29703 355 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 29703 355 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 29703 357 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 29703 357 357 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 29703 357 357 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 29703 357 . + 357 [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 30060 . 357 [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 30060 357 . [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] . 299 [x [PE1.2] dip] times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] 299 . [x [PE1.2] dip] times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] 299 [x [PE1.2] dip] . times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 298 [x [PE1.2] dip] times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 298 [x [PE1.2] dip] times popop + 30060 357 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 298 [x [PE1.2] dip] times popop + 30060 357 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30060 357 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30060 360 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30060 360 360 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30060 360 360 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30060 360 . + 360 [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30420 . 360 [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30420 360 . [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] . 298 [x [PE1.2] dip] times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] 298 . [x [PE1.2] dip] times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] 298 [x [PE1.2] dip] . times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 297 [x [PE1.2] dip] times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 297 [x [PE1.2] dip] times popop + 30420 360 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 297 [x [PE1.2] dip] times popop + 30420 360 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30420 360 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30420 363 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30420 363 363 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30420 363 363 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30420 363 . + 363 [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30783 . 363 [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30783 363 . [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] . 297 [x [PE1.2] dip] times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] 297 . [x [PE1.2] dip] times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] 297 [x [PE1.2] dip] . times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 296 [x [PE1.2] dip] times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 296 [x [PE1.2] dip] times popop + 30783 363 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 296 [x [PE1.2] dip] times popop + 30783 363 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 30783 363 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 30783 365 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 30783 365 365 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 30783 365 365 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 30783 365 . + 365 [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 31148 . 365 [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 31148 365 . [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] . 296 [x [PE1.2] dip] times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] 296 . [x [PE1.2] dip] times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] 296 [x [PE1.2] dip] . times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 295 [x [PE1.2] dip] times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 295 [x [PE1.2] dip] times popop + 31148 365 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 295 [x [PE1.2] dip] times popop + 31148 365 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31148 365 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31148 366 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31148 366 366 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31148 366 366 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31148 366 . + 366 [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31514 . 366 [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31514 366 . [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] . 295 [x [PE1.2] dip] times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] 295 . [x [PE1.2] dip] times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] 295 [x [PE1.2] dip] . times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 294 [x [PE1.2] dip] times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 294 [x [PE1.2] dip] times popop + 31514 366 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 294 [x [PE1.2] dip] times popop + 31514 366 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31514 366 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31514 369 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31514 369 369 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31514 369 369 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31514 369 . + 369 [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31883 . 369 [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31883 369 . [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] . 294 [x [PE1.2] dip] times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] 294 . [x [PE1.2] dip] times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] 294 [x [PE1.2] dip] . times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 293 [x [PE1.2] dip] times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 293 [x [PE1.2] dip] times popop + 31883 369 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 293 [x [PE1.2] dip] times popop + 31883 369 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 31883 369 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 31883 370 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 31883 370 370 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 31883 370 370 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 31883 370 . + 370 [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 32253 . 370 [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 32253 370 . [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] . 293 [x [PE1.2] dip] times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] 293 . [x [PE1.2] dip] times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] 293 [x [PE1.2] dip] . times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 292 [x [PE1.2] dip] times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 292 [x [PE1.2] dip] times popop + 32253 370 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 292 [x [PE1.2] dip] times popop + 32253 370 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32253 370 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32253 372 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32253 372 372 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32253 372 372 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32253 372 . + 372 [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32625 . 372 [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32625 372 . [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] . 292 [x [PE1.2] dip] times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] 292 . [x [PE1.2] dip] times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] 292 [x [PE1.2] dip] . times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 291 [x [PE1.2] dip] times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 291 [x [PE1.2] dip] times popop + 32625 372 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 291 [x [PE1.2] dip] times popop + 32625 372 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 32625 372 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 32625 375 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 32625 375 375 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 32625 375 375 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 32625 375 . + 375 [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 33000 . 375 [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 33000 375 . [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] . 291 [x [PE1.2] dip] times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] 291 . [x [PE1.2] dip] times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] 291 [x [PE1.2] dip] . times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 290 [x [PE1.2] dip] times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 290 [x [PE1.2] dip] times popop + 33000 375 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 290 [x [PE1.2] dip] times popop + 33000 375 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33000 375 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33000 378 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33000 378 378 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33000 378 378 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33000 378 . + 378 [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33378 . 378 [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33378 378 . [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] . 290 [x [PE1.2] dip] times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] 290 . [x [PE1.2] dip] times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] 290 [x [PE1.2] dip] . times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 289 [x [PE1.2] dip] times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 289 [x [PE1.2] dip] times popop + 33378 378 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 289 [x [PE1.2] dip] times popop + 33378 378 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33378 378 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33378 380 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33378 380 380 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33378 380 380 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33378 380 . + 380 [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33758 . 380 [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33758 380 . [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] . 289 [x [PE1.2] dip] times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] 289 . [x [PE1.2] dip] times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] 289 [x [PE1.2] dip] . times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 288 [x [PE1.2] dip] times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 288 [x [PE1.2] dip] times popop + 33758 380 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 288 [x [PE1.2] dip] times popop + 33758 380 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 33758 380 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 33758 381 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 33758 381 381 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 33758 381 381 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 33758 381 . + 381 [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 34139 . 381 [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 34139 381 . [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] . 288 [x [PE1.2] dip] times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] 288 . [x [PE1.2] dip] times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] 288 [x [PE1.2] dip] . times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 287 [x [PE1.2] dip] times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 287 [x [PE1.2] dip] times popop + 34139 381 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 287 [x [PE1.2] dip] times popop + 34139 381 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34139 381 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34139 384 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34139 384 384 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34139 384 384 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34139 384 . + 384 [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34523 . 384 [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34523 384 . [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] . 287 [x [PE1.2] dip] times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] 287 . [x [PE1.2] dip] times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] 287 [x [PE1.2] dip] . times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 286 [x [PE1.2] dip] times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 286 [x [PE1.2] dip] times popop + 34523 384 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 286 [x [PE1.2] dip] times popop + 34523 384 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34523 384 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34523 385 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34523 385 385 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34523 385 385 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34523 385 . + 385 [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34908 . 385 [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34908 385 . [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] . 286 [x [PE1.2] dip] times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] 286 . [x [PE1.2] dip] times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] 286 [x [PE1.2] dip] . times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 285 [x [PE1.2] dip] times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 285 [x [PE1.2] dip] times popop + 34908 385 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 285 [x [PE1.2] dip] times popop + 34908 385 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 34908 385 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 34908 387 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 34908 387 387 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 34908 387 387 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 34908 387 . + 387 [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 35295 . 387 [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 35295 387 . [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] . 285 [x [PE1.2] dip] times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] 285 . [x [PE1.2] dip] times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] 285 [x [PE1.2] dip] . times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 284 [x [PE1.2] dip] times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 284 [x [PE1.2] dip] times popop + 35295 387 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 284 [x [PE1.2] dip] times popop + 35295 387 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35295 387 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35295 390 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35295 390 390 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35295 390 390 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35295 390 . + 390 [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35685 . 390 [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35685 390 . [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] . 284 [x [PE1.2] dip] times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] 284 . [x [PE1.2] dip] times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] 284 [x [PE1.2] dip] . times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 283 [x [PE1.2] dip] times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 283 [x [PE1.2] dip] times popop + 35685 390 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 283 [x [PE1.2] dip] times popop + 35685 390 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 35685 390 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 35685 393 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 35685 393 393 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 35685 393 393 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 35685 393 . + 393 [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 36078 . 393 [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 36078 393 . [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] . 283 [x [PE1.2] dip] times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] 283 . [x [PE1.2] dip] times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] 283 [x [PE1.2] dip] . times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 282 [x [PE1.2] dip] times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 282 [x [PE1.2] dip] times popop + 36078 393 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 282 [x [PE1.2] dip] times popop + 36078 393 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36078 393 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36078 395 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36078 395 395 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36078 395 395 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36078 395 . + 395 [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36473 . 395 [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36473 395 . [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] . 282 [x [PE1.2] dip] times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] 282 . [x [PE1.2] dip] times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] 282 [x [PE1.2] dip] . times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 281 [x [PE1.2] dip] times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 281 [x [PE1.2] dip] times popop + 36473 395 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 281 [x [PE1.2] dip] times popop + 36473 395 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36473 395 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36473 396 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36473 396 396 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36473 396 396 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36473 396 . + 396 [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36869 . 396 [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36869 396 . [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] . 281 [x [PE1.2] dip] times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] 281 . [x [PE1.2] dip] times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] 281 [x [PE1.2] dip] . times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 280 [x [PE1.2] dip] times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 280 [x [PE1.2] dip] times popop + 36869 396 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 280 [x [PE1.2] dip] times popop + 36869 396 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 36869 396 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 36869 399 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 36869 399 399 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 36869 399 399 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 36869 399 . + 399 [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 37268 . 399 [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 37268 399 . [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] . 280 [x [PE1.2] dip] times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] 280 . [x [PE1.2] dip] times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] 280 [x [PE1.2] dip] . times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 279 [x [PE1.2] dip] times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 279 [x [PE1.2] dip] times popop + 37268 399 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 279 [x [PE1.2] dip] times popop + 37268 399 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37268 399 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37268 400 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37268 400 400 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37268 400 400 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37268 400 . + 400 [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37668 . 400 [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37668 400 . [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] . 279 [x [PE1.2] dip] times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] 279 . [x [PE1.2] dip] times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] 279 [x [PE1.2] dip] . times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 278 [x [PE1.2] dip] times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 278 [x [PE1.2] dip] times popop + 37668 400 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 278 [x [PE1.2] dip] times popop + 37668 400 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 37668 400 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 37668 402 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 37668 402 402 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 37668 402 402 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 37668 402 . + 402 [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 38070 . 402 [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 38070 402 . [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] . 278 [x [PE1.2] dip] times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] 278 . [x [PE1.2] dip] times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] 278 [x [PE1.2] dip] . times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 277 [x [PE1.2] dip] times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 277 [x [PE1.2] dip] times popop + 38070 402 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 277 [x [PE1.2] dip] times popop + 38070 402 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38070 402 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38070 405 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38070 405 405 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38070 405 405 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38070 405 . + 405 [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38475 . 405 [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38475 405 . [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] . 277 [x [PE1.2] dip] times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] 277 . [x [PE1.2] dip] times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] 277 [x [PE1.2] dip] . times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 276 [x [PE1.2] dip] times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 276 [x [PE1.2] dip] times popop + 38475 405 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 276 [x [PE1.2] dip] times popop + 38475 405 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38475 405 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38475 408 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38475 408 408 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38475 408 408 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38475 408 . + 408 [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38883 . 408 [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38883 408 . [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] . 276 [x [PE1.2] dip] times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] 276 . [x [PE1.2] dip] times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] 276 [x [PE1.2] dip] . times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 275 [x [PE1.2] dip] times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 275 [x [PE1.2] dip] times popop + 38883 408 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 275 [x [PE1.2] dip] times popop + 38883 408 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 38883 408 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 38883 410 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 38883 410 410 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 38883 410 410 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 38883 410 . + 410 [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 39293 . 410 [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 39293 410 . [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] . 275 [x [PE1.2] dip] times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] 275 . [x [PE1.2] dip] times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] 275 [x [PE1.2] dip] . times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 274 [x [PE1.2] dip] times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 274 [x [PE1.2] dip] times popop + 39293 410 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 274 [x [PE1.2] dip] times popop + 39293 410 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39293 410 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39293 411 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39293 411 411 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39293 411 411 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39293 411 . + 411 [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39704 . 411 [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39704 411 . [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] . 274 [x [PE1.2] dip] times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] 274 . [x [PE1.2] dip] times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] 274 [x [PE1.2] dip] . times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 273 [x [PE1.2] dip] times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 273 [x [PE1.2] dip] times popop + 39704 411 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 273 [x [PE1.2] dip] times popop + 39704 411 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 39704 411 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 39704 414 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 39704 414 414 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 39704 414 414 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 39704 414 . + 414 [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 40118 . 414 [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 40118 414 . [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] . 273 [x [PE1.2] dip] times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] 273 . [x [PE1.2] dip] times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] 273 [x [PE1.2] dip] . times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 272 [x [PE1.2] dip] times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 272 [x [PE1.2] dip] times popop + 40118 414 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 272 [x [PE1.2] dip] times popop + 40118 414 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40118 414 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40118 415 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40118 415 415 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40118 415 415 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40118 415 . + 415 [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40533 . 415 [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40533 415 . [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] . 272 [x [PE1.2] dip] times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] 272 . [x [PE1.2] dip] times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] 272 [x [PE1.2] dip] . times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 271 [x [PE1.2] dip] times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 271 [x [PE1.2] dip] times popop + 40533 415 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 271 [x [PE1.2] dip] times popop + 40533 415 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40533 415 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40533 417 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40533 417 417 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40533 417 417 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40533 417 . + 417 [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40950 . 417 [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40950 417 . [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] . 271 [x [PE1.2] dip] times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] 271 . [x [PE1.2] dip] times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] 271 [x [PE1.2] dip] . times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 270 [x [PE1.2] dip] times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 270 [x [PE1.2] dip] times popop + 40950 417 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 270 [x [PE1.2] dip] times popop + 40950 417 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 40950 417 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 40950 420 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 40950 420 420 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 40950 420 420 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 40950 420 . + 420 [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 41370 . 420 [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 41370 420 . [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] . 270 [x [PE1.2] dip] times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] 270 . [x [PE1.2] dip] times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] 270 [x [PE1.2] dip] . times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 269 [x [PE1.2] dip] times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 269 [x [PE1.2] dip] times popop + 41370 420 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 269 [x [PE1.2] dip] times popop + 41370 420 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41370 420 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41370 423 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41370 423 423 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41370 423 423 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41370 423 . + 423 [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41793 . 423 [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41793 423 . [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] . 269 [x [PE1.2] dip] times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] 269 . [x [PE1.2] dip] times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] 269 [x [PE1.2] dip] . times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 268 [x [PE1.2] dip] times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 268 [x [PE1.2] dip] times popop + 41793 423 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 268 [x [PE1.2] dip] times popop + 41793 423 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 41793 423 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 41793 425 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 41793 425 425 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 41793 425 425 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 41793 425 . + 425 [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 42218 . 425 [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 42218 425 . [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] . 268 [x [PE1.2] dip] times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] 268 . [x [PE1.2] dip] times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] 268 [x [PE1.2] dip] . times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 267 [x [PE1.2] dip] times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 267 [x [PE1.2] dip] times popop + 42218 425 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 267 [x [PE1.2] dip] times popop + 42218 425 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42218 425 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42218 426 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42218 426 426 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42218 426 426 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42218 426 . + 426 [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42644 . 426 [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42644 426 . [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] . 267 [x [PE1.2] dip] times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] 267 . [x [PE1.2] dip] times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] 267 [x [PE1.2] dip] . times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 266 [x [PE1.2] dip] times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 266 [x [PE1.2] dip] times popop + 42644 426 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 266 [x [PE1.2] dip] times popop + 42644 426 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 42644 426 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 42644 429 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 42644 429 429 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 42644 429 429 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 42644 429 . + 429 [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 43073 . 429 [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 43073 429 . [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] . 266 [x [PE1.2] dip] times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] 266 . [x [PE1.2] dip] times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] 266 [x [PE1.2] dip] . times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 265 [x [PE1.2] dip] times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 265 [x [PE1.2] dip] times popop + 43073 429 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 265 [x [PE1.2] dip] times popop + 43073 429 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43073 429 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43073 430 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43073 430 430 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43073 430 430 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43073 430 . + 430 [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43503 . 430 [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43503 430 . [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] . 265 [x [PE1.2] dip] times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] 265 . [x [PE1.2] dip] times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] 265 [x [PE1.2] dip] . times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 264 [x [PE1.2] dip] times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 264 [x [PE1.2] dip] times popop + 43503 430 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 264 [x [PE1.2] dip] times popop + 43503 430 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43503 430 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43503 432 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43503 432 432 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43503 432 432 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43503 432 . + 432 [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43935 . 432 [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43935 432 . [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] . 264 [x [PE1.2] dip] times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] 264 . [x [PE1.2] dip] times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] 264 [x [PE1.2] dip] . times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 263 [x [PE1.2] dip] times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 263 [x [PE1.2] dip] times popop + 43935 432 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 263 [x [PE1.2] dip] times popop + 43935 432 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 43935 432 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 43935 435 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 43935 435 435 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 43935 435 435 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 43935 435 . + 435 [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 44370 . 435 [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 44370 435 . [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] . 263 [x [PE1.2] dip] times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] 263 . [x [PE1.2] dip] times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] 263 [x [PE1.2] dip] . times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 262 [x [PE1.2] dip] times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 262 [x [PE1.2] dip] times popop + 44370 435 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 262 [x [PE1.2] dip] times popop + 44370 435 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44370 435 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44370 438 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44370 438 438 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44370 438 438 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44370 438 . + 438 [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44808 . 438 [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44808 438 . [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] . 262 [x [PE1.2] dip] times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] 262 . [x [PE1.2] dip] times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] 262 [x [PE1.2] dip] . times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 261 [x [PE1.2] dip] times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 261 [x [PE1.2] dip] times popop + 44808 438 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 261 [x [PE1.2] dip] times popop + 44808 438 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 44808 438 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 44808 440 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 44808 440 440 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 44808 440 440 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 44808 440 . + 440 [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 45248 . 440 [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 45248 440 . [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] . 261 [x [PE1.2] dip] times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] 261 . [x [PE1.2] dip] times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] 261 [x [PE1.2] dip] . times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 260 [x [PE1.2] dip] times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 260 [x [PE1.2] dip] times popop + 45248 440 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 260 [x [PE1.2] dip] times popop + 45248 440 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45248 440 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45248 441 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45248 441 441 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45248 441 441 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45248 441 . + 441 [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45689 . 441 [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45689 441 . [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] . 260 [x [PE1.2] dip] times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] 260 . [x [PE1.2] dip] times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] 260 [x [PE1.2] dip] . times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 259 [x [PE1.2] dip] times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 259 [x [PE1.2] dip] times popop + 45689 441 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 259 [x [PE1.2] dip] times popop + 45689 441 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 45689 441 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 45689 444 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 45689 444 444 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 45689 444 444 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 45689 444 . + 444 [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 46133 . 444 [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 46133 444 . [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] . 259 [x [PE1.2] dip] times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] 259 . [x [PE1.2] dip] times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] 259 [x [PE1.2] dip] . times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 258 [x [PE1.2] dip] times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 258 [x [PE1.2] dip] times popop + 46133 444 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 258 [x [PE1.2] dip] times popop + 46133 444 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46133 444 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46133 445 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46133 445 445 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46133 445 445 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46133 445 . + 445 [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46578 . 445 [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46578 445 . [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] . 258 [x [PE1.2] dip] times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] 258 . [x [PE1.2] dip] times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] 258 [x [PE1.2] dip] . times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 257 [x [PE1.2] dip] times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 257 [x [PE1.2] dip] times popop + 46578 445 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 257 [x [PE1.2] dip] times popop + 46578 445 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 46578 445 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 46578 447 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 46578 447 447 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 46578 447 447 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 46578 447 . + 447 [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 47025 . 447 [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 47025 447 . [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] . 257 [x [PE1.2] dip] times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] 257 . [x [PE1.2] dip] times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] 257 [x [PE1.2] dip] . times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 256 [x [PE1.2] dip] times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 256 [x [PE1.2] dip] times popop + 47025 447 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 256 [x [PE1.2] dip] times popop + 47025 447 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47025 447 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47025 450 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47025 450 450 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47025 450 450 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47025 450 . + 450 [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47475 . 450 [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47475 450 . [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] . 256 [x [PE1.2] dip] times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] 256 . [x [PE1.2] dip] times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] 256 [x [PE1.2] dip] . times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 255 [x [PE1.2] dip] times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 255 [x [PE1.2] dip] times popop + 47475 450 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 255 [x [PE1.2] dip] times popop + 47475 450 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47475 450 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47475 453 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47475 453 453 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47475 453 453 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47475 453 . + 453 [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47928 . 453 [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47928 453 . [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] . 255 [x [PE1.2] dip] times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] 255 . [x [PE1.2] dip] times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] 255 [x [PE1.2] dip] . times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 254 [x [PE1.2] dip] times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 254 [x [PE1.2] dip] times popop + 47928 453 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 254 [x [PE1.2] dip] times popop + 47928 453 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 47928 453 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 47928 455 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 47928 455 455 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 47928 455 455 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 47928 455 . + 455 [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 48383 . 455 [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 48383 455 . [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] . 254 [x [PE1.2] dip] times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] 254 . [x [PE1.2] dip] times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] 254 [x [PE1.2] dip] . times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 253 [x [PE1.2] dip] times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 253 [x [PE1.2] dip] times popop + 48383 455 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 253 [x [PE1.2] dip] times popop + 48383 455 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48383 455 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48383 456 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48383 456 456 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48383 456 456 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48383 456 . + 456 [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48839 . 456 [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48839 456 . [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] . 253 [x [PE1.2] dip] times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] 253 . [x [PE1.2] dip] times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] 253 [x [PE1.2] dip] . times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 252 [x [PE1.2] dip] times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 252 [x [PE1.2] dip] times popop + 48839 456 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 252 [x [PE1.2] dip] times popop + 48839 456 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 48839 456 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 48839 459 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 48839 459 459 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 48839 459 459 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 48839 459 . + 459 [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 49298 . 459 [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 49298 459 . [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] . 252 [x [PE1.2] dip] times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] 252 . [x [PE1.2] dip] times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] 252 [x [PE1.2] dip] . times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 251 [x [PE1.2] dip] times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 251 [x [PE1.2] dip] times popop + 49298 459 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 251 [x [PE1.2] dip] times popop + 49298 459 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49298 459 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49298 460 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49298 460 460 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49298 460 460 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49298 460 . + 460 [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49758 . 460 [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49758 460 . [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] . 251 [x [PE1.2] dip] times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] 251 . [x [PE1.2] dip] times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] 251 [x [PE1.2] dip] . times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 250 [x [PE1.2] dip] times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 250 [x [PE1.2] dip] times popop + 49758 460 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 250 [x [PE1.2] dip] times popop + 49758 460 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 49758 460 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 49758 462 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 49758 462 462 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 49758 462 462 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 49758 462 . + 462 [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 50220 . 462 [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 50220 462 . [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] . 250 [x [PE1.2] dip] times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] 250 . [x [PE1.2] dip] times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] 250 [x [PE1.2] dip] . times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 249 [x [PE1.2] dip] times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 249 [x [PE1.2] dip] times popop + 50220 462 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 249 [x [PE1.2] dip] times popop + 50220 462 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50220 462 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50220 465 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50220 465 465 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50220 465 465 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50220 465 . + 465 [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50685 . 465 [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50685 465 . [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] . 249 [x [PE1.2] dip] times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] 249 . [x [PE1.2] dip] times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] 249 [x [PE1.2] dip] . times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 248 [x [PE1.2] dip] times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 248 [x [PE1.2] dip] times popop + 50685 465 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 248 [x [PE1.2] dip] times popop + 50685 465 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 50685 465 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 50685 468 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 50685 468 468 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 50685 468 468 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 50685 468 . + 468 [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 51153 . 468 [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 51153 468 . [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] . 248 [x [PE1.2] dip] times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] 248 . [x [PE1.2] dip] times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] 248 [x [PE1.2] dip] . times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 247 [x [PE1.2] dip] times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 247 [x [PE1.2] dip] times popop + 51153 468 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 247 [x [PE1.2] dip] times popop + 51153 468 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51153 468 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51153 470 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51153 470 470 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51153 470 470 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51153 470 . + 470 [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51623 . 470 [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51623 470 . [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] . 247 [x [PE1.2] dip] times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] 247 . [x [PE1.2] dip] times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] 247 [x [PE1.2] dip] . times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 246 [x [PE1.2] dip] times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 246 [x [PE1.2] dip] times popop + 51623 470 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 246 [x [PE1.2] dip] times popop + 51623 470 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 51623 470 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 51623 471 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 51623 471 471 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 51623 471 471 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 51623 471 . + 471 [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 52094 . 471 [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 52094 471 . [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] . 246 [x [PE1.2] dip] times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] 246 . [x [PE1.2] dip] times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] 246 [x [PE1.2] dip] . times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 245 [x [PE1.2] dip] times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 245 [x [PE1.2] dip] times popop + 52094 471 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 245 [x [PE1.2] dip] times popop + 52094 471 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52094 471 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52094 474 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52094 474 474 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52094 474 474 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52094 474 . + 474 [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52568 . 474 [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52568 474 . [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] . 245 [x [PE1.2] dip] times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] 245 . [x [PE1.2] dip] times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] 245 [x [PE1.2] dip] . times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 244 [x [PE1.2] dip] times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 244 [x [PE1.2] dip] times popop + 52568 474 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 244 [x [PE1.2] dip] times popop + 52568 474 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 52568 474 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 52568 475 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 52568 475 475 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 52568 475 475 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 52568 475 . + 475 [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 53043 . 475 [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 53043 475 . [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] . 244 [x [PE1.2] dip] times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] 244 . [x [PE1.2] dip] times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] 244 [x [PE1.2] dip] . times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 243 [x [PE1.2] dip] times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 243 [x [PE1.2] dip] times popop + 53043 475 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 243 [x [PE1.2] dip] times popop + 53043 475 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53043 475 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53043 477 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53043 477 477 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53043 477 477 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53043 477 . + 477 [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53520 . 477 [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53520 477 . [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] . 243 [x [PE1.2] dip] times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] 243 . [x [PE1.2] dip] times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] 243 [x [PE1.2] dip] . times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 242 [x [PE1.2] dip] times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 242 [x [PE1.2] dip] times popop + 53520 477 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 242 [x [PE1.2] dip] times popop + 53520 477 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 53520 477 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 53520 480 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 53520 480 480 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 53520 480 480 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 53520 480 . + 480 [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 54000 . 480 [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 54000 480 . [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] . 242 [x [PE1.2] dip] times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] 242 . [x [PE1.2] dip] times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] 242 [x [PE1.2] dip] . times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 241 [x [PE1.2] dip] times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 241 [x [PE1.2] dip] times popop + 54000 480 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 241 [x [PE1.2] dip] times popop + 54000 480 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54000 480 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54000 483 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54000 483 483 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54000 483 483 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54000 483 . + 483 [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54483 . 483 [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54483 483 . [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] . 241 [x [PE1.2] dip] times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] 241 . [x [PE1.2] dip] times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] 241 [x [PE1.2] dip] . times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 240 [x [PE1.2] dip] times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 240 [x [PE1.2] dip] times popop + 54483 483 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 240 [x [PE1.2] dip] times popop + 54483 483 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54483 483 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54483 485 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54483 485 485 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54483 485 485 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54483 485 . + 485 [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54968 . 485 [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54968 485 . [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] . 240 [x [PE1.2] dip] times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] 240 . [x [PE1.2] dip] times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] 240 [x [PE1.2] dip] . times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 239 [x [PE1.2] dip] times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 239 [x [PE1.2] dip] times popop + 54968 485 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 239 [x [PE1.2] dip] times popop + 54968 485 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 54968 485 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 54968 486 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 54968 486 486 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 54968 486 486 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 54968 486 . + 486 [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 55454 . 486 [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 55454 486 . [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] . 239 [x [PE1.2] dip] times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] 239 . [x [PE1.2] dip] times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] 239 [x [PE1.2] dip] . times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 238 [x [PE1.2] dip] times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 238 [x [PE1.2] dip] times popop + 55454 486 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 238 [x [PE1.2] dip] times popop + 55454 486 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55454 486 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55454 489 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55454 489 489 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55454 489 489 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55454 489 . + 489 [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55943 . 489 [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55943 489 . [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] . 238 [x [PE1.2] dip] times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] 238 . [x [PE1.2] dip] times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] 238 [x [PE1.2] dip] . times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 237 [x [PE1.2] dip] times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 237 [x [PE1.2] dip] times popop + 55943 489 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 237 [x [PE1.2] dip] times popop + 55943 489 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 55943 489 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 55943 490 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 55943 490 490 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 55943 490 490 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 55943 490 . + 490 [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 56433 . 490 [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 56433 490 . [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] . 237 [x [PE1.2] dip] times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] 237 . [x [PE1.2] dip] times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] 237 [x [PE1.2] dip] . times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 236 [x [PE1.2] dip] times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 236 [x [PE1.2] dip] times popop + 56433 490 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 236 [x [PE1.2] dip] times popop + 56433 490 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56433 490 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56433 492 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56433 492 492 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56433 492 492 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56433 492 . + 492 [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56925 . 492 [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56925 492 . [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] . 236 [x [PE1.2] dip] times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] 236 . [x [PE1.2] dip] times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] 236 [x [PE1.2] dip] . times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 235 [x [PE1.2] dip] times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 235 [x [PE1.2] dip] times popop + 56925 492 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 235 [x [PE1.2] dip] times popop + 56925 492 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 56925 492 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 56925 495 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 56925 495 495 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 56925 495 495 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 56925 495 . + 495 [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 57420 . 495 [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 57420 495 . [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] . 235 [x [PE1.2] dip] times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] 235 . [x [PE1.2] dip] times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] 235 [x [PE1.2] dip] . times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 234 [x [PE1.2] dip] times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 234 [x [PE1.2] dip] times popop + 57420 495 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 234 [x [PE1.2] dip] times popop + 57420 495 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57420 495 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57420 498 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57420 498 498 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57420 498 498 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57420 498 . + 498 [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57918 . 498 [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57918 498 . [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] . 234 [x [PE1.2] dip] times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] 234 . [x [PE1.2] dip] times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] 234 [x [PE1.2] dip] . times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 233 [x [PE1.2] dip] times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 233 [x [PE1.2] dip] times popop + 57918 498 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 233 [x [PE1.2] dip] times popop + 57918 498 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 57918 498 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 57918 500 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 57918 500 500 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 57918 500 500 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 57918 500 . + 500 [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 58418 . 500 [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 58418 500 . [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] . 233 [x [PE1.2] dip] times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] 233 . [x [PE1.2] dip] times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] 233 [x [PE1.2] dip] . times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 232 [x [PE1.2] dip] times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 232 [x [PE1.2] dip] times popop + 58418 500 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 232 [x [PE1.2] dip] times popop + 58418 500 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58418 500 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58418 501 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58418 501 501 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58418 501 501 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58418 501 . + 501 [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58919 . 501 [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58919 501 . [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] . 232 [x [PE1.2] dip] times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] 232 . [x [PE1.2] dip] times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] 232 [x [PE1.2] dip] . times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 231 [x [PE1.2] dip] times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 231 [x [PE1.2] dip] times popop + 58919 501 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 231 [x [PE1.2] dip] times popop + 58919 501 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 58919 501 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 58919 504 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 58919 504 504 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 58919 504 504 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 58919 504 . + 504 [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 59423 . 504 [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 59423 504 . [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] . 231 [x [PE1.2] dip] times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] 231 . [x [PE1.2] dip] times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] 231 [x [PE1.2] dip] . times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 230 [x [PE1.2] dip] times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 230 [x [PE1.2] dip] times popop + 59423 504 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 230 [x [PE1.2] dip] times popop + 59423 504 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59423 504 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59423 505 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59423 505 505 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59423 505 505 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59423 505 . + 505 [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59928 . 505 [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59928 505 . [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] . 230 [x [PE1.2] dip] times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] 230 . [x [PE1.2] dip] times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] 230 [x [PE1.2] dip] . times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 229 [x [PE1.2] dip] times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 229 [x [PE1.2] dip] times popop + 59928 505 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 229 [x [PE1.2] dip] times popop + 59928 505 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 59928 505 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 59928 507 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 59928 507 507 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 59928 507 507 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 59928 507 . + 507 [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 60435 . 507 [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 60435 507 . [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] . 229 [x [PE1.2] dip] times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] 229 . [x [PE1.2] dip] times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] 229 [x [PE1.2] dip] . times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 228 [x [PE1.2] dip] times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 228 [x [PE1.2] dip] times popop + 60435 507 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 228 [x [PE1.2] dip] times popop + 60435 507 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60435 507 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60435 510 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60435 510 510 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60435 510 510 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60435 510 . + 510 [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60945 . 510 [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60945 510 . [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] . 228 [x [PE1.2] dip] times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] 228 . [x [PE1.2] dip] times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] 228 [x [PE1.2] dip] . times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 227 [x [PE1.2] dip] times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 227 [x [PE1.2] dip] times popop + 60945 510 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 227 [x [PE1.2] dip] times popop + 60945 510 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 60945 510 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 60945 513 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 60945 513 513 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 60945 513 513 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 60945 513 . + 513 [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 61458 . 513 [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 61458 513 . [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] . 227 [x [PE1.2] dip] times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] 227 . [x [PE1.2] dip] times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] 227 [x [PE1.2] dip] . times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 226 [x [PE1.2] dip] times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 226 [x [PE1.2] dip] times popop + 61458 513 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 226 [x [PE1.2] dip] times popop + 61458 513 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61458 513 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61458 515 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61458 515 515 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61458 515 515 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61458 515 . + 515 [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61973 . 515 [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61973 515 . [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] . 226 [x [PE1.2] dip] times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] 226 . [x [PE1.2] dip] times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] 226 [x [PE1.2] dip] . times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 225 [x [PE1.2] dip] times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 225 [x [PE1.2] dip] times popop + 61973 515 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 225 [x [PE1.2] dip] times popop + 61973 515 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 61973 515 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 61973 516 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 61973 516 516 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 61973 516 516 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 61973 516 . + 516 [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 62489 . 516 [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 62489 516 . [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] . 225 [x [PE1.2] dip] times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] 225 . [x [PE1.2] dip] times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] 225 [x [PE1.2] dip] . times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 224 [x [PE1.2] dip] times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 224 [x [PE1.2] dip] times popop + 62489 516 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 224 [x [PE1.2] dip] times popop + 62489 516 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 62489 516 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 62489 519 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 62489 519 519 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 62489 519 519 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 62489 519 . + 519 [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 63008 . 519 [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 63008 519 . [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] . 224 [x [PE1.2] dip] times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] 224 . [x [PE1.2] dip] times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] 224 [x [PE1.2] dip] . times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 223 [x [PE1.2] dip] times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 223 [x [PE1.2] dip] times popop + 63008 519 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 223 [x [PE1.2] dip] times popop + 63008 519 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63008 519 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63008 520 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63008 520 520 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63008 520 520 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63008 520 . + 520 [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63528 . 520 [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63528 520 . [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] . 223 [x [PE1.2] dip] times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] 223 . [x [PE1.2] dip] times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] 223 [x [PE1.2] dip] . times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 222 [x [PE1.2] dip] times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 222 [x [PE1.2] dip] times popop + 63528 520 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 222 [x [PE1.2] dip] times popop + 63528 520 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 63528 520 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 63528 522 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 63528 522 522 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 63528 522 522 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 63528 522 . + 522 [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 64050 . 522 [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 64050 522 . [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] . 222 [x [PE1.2] dip] times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] 222 . [x [PE1.2] dip] times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] 222 [x [PE1.2] dip] . times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 221 [x [PE1.2] dip] times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 221 [x [PE1.2] dip] times popop + 64050 522 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 221 [x [PE1.2] dip] times popop + 64050 522 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64050 522 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64050 525 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64050 525 525 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64050 525 525 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64050 525 . + 525 [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64575 . 525 [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64575 525 . [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] . 221 [x [PE1.2] dip] times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] 221 . [x [PE1.2] dip] times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] 221 [x [PE1.2] dip] . times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 220 [x [PE1.2] dip] times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 220 [x [PE1.2] dip] times popop + 64575 525 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 220 [x [PE1.2] dip] times popop + 64575 525 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 64575 525 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 64575 528 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 64575 528 528 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 64575 528 528 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 64575 528 . + 528 [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 65103 . 528 [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 65103 528 . [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] . 220 [x [PE1.2] dip] times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] 220 . [x [PE1.2] dip] times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] 220 [x [PE1.2] dip] . times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 219 [x [PE1.2] dip] times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 219 [x [PE1.2] dip] times popop + 65103 528 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 219 [x [PE1.2] dip] times popop + 65103 528 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65103 528 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65103 530 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65103 530 530 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65103 530 530 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65103 530 . + 530 [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65633 . 530 [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65633 530 . [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] . 219 [x [PE1.2] dip] times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] 219 . [x [PE1.2] dip] times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] 219 [x [PE1.2] dip] . times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 218 [x [PE1.2] dip] times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 218 [x [PE1.2] dip] times popop + 65633 530 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 218 [x [PE1.2] dip] times popop + 65633 530 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 65633 530 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 65633 531 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 65633 531 531 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 65633 531 531 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 65633 531 . + 531 [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 66164 . 531 [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 66164 531 . [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] . 218 [x [PE1.2] dip] times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] 218 . [x [PE1.2] dip] times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] 218 [x [PE1.2] dip] . times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 217 [x [PE1.2] dip] times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 217 [x [PE1.2] dip] times popop + 66164 531 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 217 [x [PE1.2] dip] times popop + 66164 531 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66164 531 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66164 534 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66164 534 534 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66164 534 534 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66164 534 . + 534 [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66698 . 534 [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66698 534 . [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] . 217 [x [PE1.2] dip] times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] 217 . [x [PE1.2] dip] times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] 217 [x [PE1.2] dip] . times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 216 [x [PE1.2] dip] times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 216 [x [PE1.2] dip] times popop + 66698 534 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 216 [x [PE1.2] dip] times popop + 66698 534 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 66698 534 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 66698 535 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 66698 535 535 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 66698 535 535 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 66698 535 . + 535 [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 67233 . 535 [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 67233 535 . [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] . 216 [x [PE1.2] dip] times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] 216 . [x [PE1.2] dip] times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] 216 [x [PE1.2] dip] . times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 215 [x [PE1.2] dip] times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 215 [x [PE1.2] dip] times popop + 67233 535 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 215 [x [PE1.2] dip] times popop + 67233 535 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67233 535 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67233 537 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67233 537 537 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67233 537 537 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67233 537 . + 537 [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67770 . 537 [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67770 537 . [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] . 215 [x [PE1.2] dip] times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] 215 . [x [PE1.2] dip] times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] 215 [x [PE1.2] dip] . times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 214 [x [PE1.2] dip] times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 214 [x [PE1.2] dip] times popop + 67770 537 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 214 [x [PE1.2] dip] times popop + 67770 537 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 67770 537 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 67770 540 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 67770 540 540 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 67770 540 540 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 67770 540 . + 540 [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 68310 . 540 [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 68310 540 . [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] . 214 [x [PE1.2] dip] times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] 214 . [x [PE1.2] dip] times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] 214 [x [PE1.2] dip] . times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 213 [x [PE1.2] dip] times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 213 [x [PE1.2] dip] times popop + 68310 540 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 213 [x [PE1.2] dip] times popop + 68310 540 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68310 540 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68310 543 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68310 543 543 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68310 543 543 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68310 543 . + 543 [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68853 . 543 [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68853 543 . [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] . 213 [x [PE1.2] dip] times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] 213 . [x [PE1.2] dip] times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] 213 [x [PE1.2] dip] . times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 212 [x [PE1.2] dip] times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 212 [x [PE1.2] dip] times popop + 68853 543 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 212 [x [PE1.2] dip] times popop + 68853 543 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 68853 543 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 68853 545 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 68853 545 545 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 68853 545 545 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 68853 545 . + 545 [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 69398 . 545 [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 69398 545 . [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] . 212 [x [PE1.2] dip] times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] 212 . [x [PE1.2] dip] times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] 212 [x [PE1.2] dip] . times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 211 [x [PE1.2] dip] times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 211 [x [PE1.2] dip] times popop + 69398 545 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 211 [x [PE1.2] dip] times popop + 69398 545 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69398 545 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69398 546 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69398 546 546 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69398 546 546 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69398 546 . + 546 [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69944 . 546 [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69944 546 . [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] . 211 [x [PE1.2] dip] times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] 211 . [x [PE1.2] dip] times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] 211 [x [PE1.2] dip] . times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 210 [x [PE1.2] dip] times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 210 [x [PE1.2] dip] times popop + 69944 546 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 210 [x [PE1.2] dip] times popop + 69944 546 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 69944 546 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 69944 549 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 69944 549 549 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 69944 549 549 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 69944 549 . + 549 [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 70493 . 549 [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 70493 549 . [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] . 210 [x [PE1.2] dip] times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] 210 . [x [PE1.2] dip] times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] 210 [x [PE1.2] dip] . times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 209 [x [PE1.2] dip] times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 209 [x [PE1.2] dip] times popop + 70493 549 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 209 [x [PE1.2] dip] times popop + 70493 549 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 70493 549 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 70493 550 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 70493 550 550 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 70493 550 550 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 70493 550 . + 550 [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 71043 . 550 [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 71043 550 . [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] . 209 [x [PE1.2] dip] times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] 209 . [x [PE1.2] dip] times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] 209 [x [PE1.2] dip] . times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 208 [x [PE1.2] dip] times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 208 [x [PE1.2] dip] times popop + 71043 550 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 208 [x [PE1.2] dip] times popop + 71043 550 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71043 550 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71043 552 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71043 552 552 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71043 552 552 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71043 552 . + 552 [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71595 . 552 [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71595 552 . [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] . 208 [x [PE1.2] dip] times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] 208 . [x [PE1.2] dip] times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] 208 [x [PE1.2] dip] . times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 207 [x [PE1.2] dip] times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 207 [x [PE1.2] dip] times popop + 71595 552 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 207 [x [PE1.2] dip] times popop + 71595 552 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 71595 552 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 71595 555 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 71595 555 555 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 71595 555 555 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 71595 555 . + 555 [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 72150 . 555 [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 72150 555 . [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] . 207 [x [PE1.2] dip] times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] 207 . [x [PE1.2] dip] times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] 207 [x [PE1.2] dip] . times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 206 [x [PE1.2] dip] times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 206 [x [PE1.2] dip] times popop + 72150 555 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 206 [x [PE1.2] dip] times popop + 72150 555 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72150 555 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72150 558 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72150 558 558 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72150 558 558 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72150 558 . + 558 [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72708 . 558 [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72708 558 . [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] . 206 [x [PE1.2] dip] times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] 206 . [x [PE1.2] dip] times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] 206 [x [PE1.2] dip] . times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 205 [x [PE1.2] dip] times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 205 [x [PE1.2] dip] times popop + 72708 558 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 205 [x [PE1.2] dip] times popop + 72708 558 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 72708 558 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 72708 560 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 72708 560 560 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 72708 560 560 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 72708 560 . + 560 [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 73268 . 560 [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 73268 560 . [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] . 205 [x [PE1.2] dip] times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] 205 . [x [PE1.2] dip] times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] 205 [x [PE1.2] dip] . times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 204 [x [PE1.2] dip] times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 204 [x [PE1.2] dip] times popop + 73268 560 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 204 [x [PE1.2] dip] times popop + 73268 560 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73268 560 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73268 561 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73268 561 561 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73268 561 561 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73268 561 . + 561 [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73829 . 561 [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73829 561 . [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] . 204 [x [PE1.2] dip] times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] 204 . [x [PE1.2] dip] times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] 204 [x [PE1.2] dip] . times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 203 [x [PE1.2] dip] times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 203 [x [PE1.2] dip] times popop + 73829 561 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 203 [x [PE1.2] dip] times popop + 73829 561 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 73829 561 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 73829 564 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 73829 564 564 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 73829 564 564 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 73829 564 . + 564 [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 74393 . 564 [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 74393 564 . [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] . 203 [x [PE1.2] dip] times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] 203 . [x [PE1.2] dip] times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] 203 [x [PE1.2] dip] . times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 202 [x [PE1.2] dip] times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 202 [x [PE1.2] dip] times popop + 74393 564 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 202 [x [PE1.2] dip] times popop + 74393 564 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74393 564 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74393 565 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74393 565 565 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74393 565 565 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74393 565 . + 565 [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74958 . 565 [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74958 565 . [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] . 202 [x [PE1.2] dip] times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] 202 . [x [PE1.2] dip] times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] 202 [x [PE1.2] dip] . times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 201 [x [PE1.2] dip] times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 201 [x [PE1.2] dip] times popop + 74958 565 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 201 [x [PE1.2] dip] times popop + 74958 565 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 74958 565 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 74958 567 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 74958 567 567 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 74958 567 567 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 74958 567 . + 567 [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 75525 . 567 [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 75525 567 . [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] . 201 [x [PE1.2] dip] times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] 201 . [x [PE1.2] dip] times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] 201 [x [PE1.2] dip] . times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 200 [x [PE1.2] dip] times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 200 [x [PE1.2] dip] times popop + 75525 567 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 200 [x [PE1.2] dip] times popop + 75525 567 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 75525 567 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 75525 570 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 75525 570 570 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 75525 570 570 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 75525 570 . + 570 [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 76095 . 570 [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 76095 570 . [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] . 200 [x [PE1.2] dip] times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] 200 . [x [PE1.2] dip] times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] 200 [x [PE1.2] dip] . times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 199 [x [PE1.2] dip] times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 199 [x [PE1.2] dip] times popop + 76095 570 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 199 [x [PE1.2] dip] times popop + 76095 570 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76095 570 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76095 573 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76095 573 573 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76095 573 573 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76095 573 . + 573 [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76668 . 573 [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76668 573 . [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] . 199 [x [PE1.2] dip] times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] 199 . [x [PE1.2] dip] times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] 199 [x [PE1.2] dip] . times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 198 [x [PE1.2] dip] times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 198 [x [PE1.2] dip] times popop + 76668 573 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 198 [x [PE1.2] dip] times popop + 76668 573 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 76668 573 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 76668 575 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 76668 575 575 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 76668 575 575 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 76668 575 . + 575 [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 77243 . 575 [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 77243 575 . [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] . 198 [x [PE1.2] dip] times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] 198 . [x [PE1.2] dip] times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] 198 [x [PE1.2] dip] . times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 197 [x [PE1.2] dip] times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 197 [x [PE1.2] dip] times popop + 77243 575 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 197 [x [PE1.2] dip] times popop + 77243 575 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77243 575 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77243 576 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77243 576 576 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77243 576 576 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77243 576 . + 576 [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77819 . 576 [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77819 576 . [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] . 197 [x [PE1.2] dip] times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] 197 . [x [PE1.2] dip] times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] 197 [x [PE1.2] dip] . times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 196 [x [PE1.2] dip] times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 196 [x [PE1.2] dip] times popop + 77819 576 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 196 [x [PE1.2] dip] times popop + 77819 576 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 77819 576 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 77819 579 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 77819 579 579 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 77819 579 579 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 77819 579 . + 579 [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 78398 . 579 [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 78398 579 . [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] . 196 [x [PE1.2] dip] times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] 196 . [x [PE1.2] dip] times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] 196 [x [PE1.2] dip] . times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 195 [x [PE1.2] dip] times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 195 [x [PE1.2] dip] times popop + 78398 579 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 195 [x [PE1.2] dip] times popop + 78398 579 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78398 579 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78398 580 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78398 580 580 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78398 580 580 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78398 580 . + 580 [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78978 . 580 [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78978 580 . [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] . 195 [x [PE1.2] dip] times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] 195 . [x [PE1.2] dip] times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] 195 [x [PE1.2] dip] . times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 194 [x [PE1.2] dip] times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 194 [x [PE1.2] dip] times popop + 78978 580 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 194 [x [PE1.2] dip] times popop + 78978 580 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 78978 580 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 78978 582 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 78978 582 582 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 78978 582 582 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 78978 582 . + 582 [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 79560 . 582 [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 79560 582 . [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] . 194 [x [PE1.2] dip] times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] 194 . [x [PE1.2] dip] times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] 194 [x [PE1.2] dip] . times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 193 [x [PE1.2] dip] times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 193 [x [PE1.2] dip] times popop + 79560 582 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 193 [x [PE1.2] dip] times popop + 79560 582 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 79560 582 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 79560 585 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 79560 585 585 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 79560 585 585 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 79560 585 . + 585 [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 80145 . 585 [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 80145 585 . [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] . 193 [x [PE1.2] dip] times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] 193 . [x [PE1.2] dip] times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] 193 [x [PE1.2] dip] . times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 192 [x [PE1.2] dip] times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 192 [x [PE1.2] dip] times popop + 80145 585 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 192 [x [PE1.2] dip] times popop + 80145 585 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80145 585 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80145 588 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80145 588 588 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80145 588 588 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80145 588 . + 588 [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80733 . 588 [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80733 588 . [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] . 192 [x [PE1.2] dip] times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] 192 . [x [PE1.2] dip] times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] 192 [x [PE1.2] dip] . times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 191 [x [PE1.2] dip] times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 191 [x [PE1.2] dip] times popop + 80733 588 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 191 [x [PE1.2] dip] times popop + 80733 588 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 80733 588 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 80733 590 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 80733 590 590 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 80733 590 590 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 80733 590 . + 590 [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 81323 . 590 [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 81323 590 . [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] . 191 [x [PE1.2] dip] times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] 191 . [x [PE1.2] dip] times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] 191 [x [PE1.2] dip] . times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 190 [x [PE1.2] dip] times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 190 [x [PE1.2] dip] times popop + 81323 590 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 190 [x [PE1.2] dip] times popop + 81323 590 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81323 590 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81323 591 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81323 591 591 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81323 591 591 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81323 591 . + 591 [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81914 . 591 [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81914 591 . [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] . 190 [x [PE1.2] dip] times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] 190 . [x [PE1.2] dip] times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] 190 [x [PE1.2] dip] . times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 189 [x [PE1.2] dip] times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 189 [x [PE1.2] dip] times popop + 81914 591 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 189 [x [PE1.2] dip] times popop + 81914 591 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 81914 591 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 81914 594 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 81914 594 594 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 81914 594 594 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 81914 594 . + 594 [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 82508 . 594 [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 82508 594 . [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] . 189 [x [PE1.2] dip] times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] 189 . [x [PE1.2] dip] times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] 189 [x [PE1.2] dip] . times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 188 [x [PE1.2] dip] times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 188 [x [PE1.2] dip] times popop + 82508 594 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 188 [x [PE1.2] dip] times popop + 82508 594 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 82508 594 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 82508 595 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 82508 595 595 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 82508 595 595 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 82508 595 . + 595 [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 83103 . 595 [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 83103 595 . [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] . 188 [x [PE1.2] dip] times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] 188 . [x [PE1.2] dip] times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] 188 [x [PE1.2] dip] . times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 187 [x [PE1.2] dip] times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 187 [x [PE1.2] dip] times popop + 83103 595 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 187 [x [PE1.2] dip] times popop + 83103 595 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83103 595 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83103 597 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83103 597 597 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83103 597 597 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83103 597 . + 597 [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83700 . 597 [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83700 597 . [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] . 187 [x [PE1.2] dip] times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] 187 . [x [PE1.2] dip] times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] 187 [x [PE1.2] dip] . times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 186 [x [PE1.2] dip] times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 186 [x [PE1.2] dip] times popop + 83700 597 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 186 [x [PE1.2] dip] times popop + 83700 597 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 83700 597 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 83700 600 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 83700 600 600 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 83700 600 600 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 83700 600 . + 600 [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 84300 . 600 [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 84300 600 . [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] . 186 [x [PE1.2] dip] times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] 186 . [x [PE1.2] dip] times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] 186 [x [PE1.2] dip] . times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 185 [x [PE1.2] dip] times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 185 [x [PE1.2] dip] times popop + 84300 600 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 185 [x [PE1.2] dip] times popop + 84300 600 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84300 600 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84300 603 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84300 603 603 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84300 603 603 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84300 603 . + 603 [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84903 . 603 [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84903 603 . [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] . 185 [x [PE1.2] dip] times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] 185 . [x [PE1.2] dip] times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] 185 [x [PE1.2] dip] . times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 184 [x [PE1.2] dip] times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 184 [x [PE1.2] dip] times popop + 84903 603 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 184 [x [PE1.2] dip] times popop + 84903 603 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 84903 603 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 84903 605 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 84903 605 605 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 84903 605 605 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 84903 605 . + 605 [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 85508 . 605 [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 85508 605 . [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] . 184 [x [PE1.2] dip] times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] 184 . [x [PE1.2] dip] times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] 184 [x [PE1.2] dip] . times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 183 [x [PE1.2] dip] times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 183 [x [PE1.2] dip] times popop + 85508 605 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 183 [x [PE1.2] dip] times popop + 85508 605 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 85508 605 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 85508 606 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 85508 606 606 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 85508 606 606 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 85508 606 . + 606 [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 86114 . 606 [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 86114 606 . [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] . 183 [x [PE1.2] dip] times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] 183 . [x [PE1.2] dip] times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] 183 [x [PE1.2] dip] . times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 182 [x [PE1.2] dip] times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 182 [x [PE1.2] dip] times popop + 86114 606 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 182 [x [PE1.2] dip] times popop + 86114 606 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86114 606 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86114 609 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86114 609 609 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86114 609 609 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86114 609 . + 609 [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86723 . 609 [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86723 609 . [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] . 182 [x [PE1.2] dip] times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] 182 . [x [PE1.2] dip] times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] 182 [x [PE1.2] dip] . times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 181 [x [PE1.2] dip] times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 181 [x [PE1.2] dip] times popop + 86723 609 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 181 [x [PE1.2] dip] times popop + 86723 609 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 86723 609 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 86723 610 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 86723 610 610 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 86723 610 610 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 86723 610 . + 610 [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 87333 . 610 [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 87333 610 . [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] . 181 [x [PE1.2] dip] times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] 181 . [x [PE1.2] dip] times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] 181 [x [PE1.2] dip] . times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 180 [x [PE1.2] dip] times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 180 [x [PE1.2] dip] times popop + 87333 610 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 180 [x [PE1.2] dip] times popop + 87333 610 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87333 610 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87333 612 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87333 612 612 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87333 612 612 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87333 612 . + 612 [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87945 . 612 [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87945 612 . [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] . 180 [x [PE1.2] dip] times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] 180 . [x [PE1.2] dip] times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] 180 [x [PE1.2] dip] . times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 179 [x [PE1.2] dip] times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 179 [x [PE1.2] dip] times popop + 87945 612 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 179 [x [PE1.2] dip] times popop + 87945 612 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 87945 612 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 87945 615 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 87945 615 615 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 87945 615 615 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 87945 615 . + 615 [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 88560 . 615 [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 88560 615 . [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] . 179 [x [PE1.2] dip] times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] 179 . [x [PE1.2] dip] times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] 179 [x [PE1.2] dip] . times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 178 [x [PE1.2] dip] times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 178 [x [PE1.2] dip] times popop + 88560 615 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 178 [x [PE1.2] dip] times popop + 88560 615 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 88560 615 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 88560 618 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 88560 618 618 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 88560 618 618 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 88560 618 . + 618 [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 89178 . 618 [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 89178 618 . [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] . 178 [x [PE1.2] dip] times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] 178 . [x [PE1.2] dip] times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] 178 [x [PE1.2] dip] . times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 177 [x [PE1.2] dip] times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 177 [x [PE1.2] dip] times popop + 89178 618 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 177 [x [PE1.2] dip] times popop + 89178 618 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89178 618 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89178 620 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89178 620 620 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89178 620 620 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89178 620 . + 620 [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89798 . 620 [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89798 620 . [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] . 177 [x [PE1.2] dip] times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] 177 . [x [PE1.2] dip] times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] 177 [x [PE1.2] dip] . times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 176 [x [PE1.2] dip] times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 176 [x [PE1.2] dip] times popop + 89798 620 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 176 [x [PE1.2] dip] times popop + 89798 620 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 89798 620 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 89798 621 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 89798 621 621 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 89798 621 621 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 89798 621 . + 621 [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 90419 . 621 [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 90419 621 . [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] . 176 [x [PE1.2] dip] times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] 176 . [x [PE1.2] dip] times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] 176 [x [PE1.2] dip] . times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 175 [x [PE1.2] dip] times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 175 [x [PE1.2] dip] times popop + 90419 621 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 175 [x [PE1.2] dip] times popop + 90419 621 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 90419 621 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 90419 624 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 90419 624 624 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 90419 624 624 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 90419 624 . + 624 [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 91043 . 624 [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 91043 624 . [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] . 175 [x [PE1.2] dip] times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] 175 . [x [PE1.2] dip] times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] 175 [x [PE1.2] dip] . times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 174 [x [PE1.2] dip] times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 174 [x [PE1.2] dip] times popop + 91043 624 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 174 [x [PE1.2] dip] times popop + 91043 624 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91043 624 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91043 625 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91043 625 625 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91043 625 625 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91043 625 . + 625 [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91668 . 625 [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91668 625 . [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] . 174 [x [PE1.2] dip] times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] 174 . [x [PE1.2] dip] times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] 174 [x [PE1.2] dip] . times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 173 [x [PE1.2] dip] times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 173 [x [PE1.2] dip] times popop + 91668 625 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 173 [x [PE1.2] dip] times popop + 91668 625 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 91668 625 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 91668 627 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 91668 627 627 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 91668 627 627 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 91668 627 . + 627 [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 92295 . 627 [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 92295 627 . [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] . 173 [x [PE1.2] dip] times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] 173 . [x [PE1.2] dip] times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] 173 [x [PE1.2] dip] . times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 172 [x [PE1.2] dip] times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 172 [x [PE1.2] dip] times popop + 92295 627 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 172 [x [PE1.2] dip] times popop + 92295 627 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92295 627 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92295 630 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92295 630 630 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92295 630 630 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92295 630 . + 630 [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92925 . 630 [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92925 630 . [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] . 172 [x [PE1.2] dip] times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] 172 . [x [PE1.2] dip] times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] 172 [x [PE1.2] dip] . times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 171 [x [PE1.2] dip] times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 171 [x [PE1.2] dip] times popop + 92925 630 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 171 [x [PE1.2] dip] times popop + 92925 630 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 92925 630 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 92925 633 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 92925 633 633 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 92925 633 633 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 92925 633 . + 633 [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 93558 . 633 [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 93558 633 . [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] . 171 [x [PE1.2] dip] times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] 171 . [x [PE1.2] dip] times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] 171 [x [PE1.2] dip] . times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 170 [x [PE1.2] dip] times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 170 [x [PE1.2] dip] times popop + 93558 633 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 170 [x [PE1.2] dip] times popop + 93558 633 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 93558 633 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 93558 635 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 93558 635 635 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 93558 635 635 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 93558 635 . + 635 [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 94193 . 635 [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 94193 635 . [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] . 170 [x [PE1.2] dip] times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] 170 . [x [PE1.2] dip] times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] 170 [x [PE1.2] dip] . times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 169 [x [PE1.2] dip] times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 169 [x [PE1.2] dip] times popop + 94193 635 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 169 [x [PE1.2] dip] times popop + 94193 635 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94193 635 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94193 636 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94193 636 636 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94193 636 636 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94193 636 . + 636 [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94829 . 636 [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94829 636 . [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] . 169 [x [PE1.2] dip] times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] 169 . [x [PE1.2] dip] times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] 169 [x [PE1.2] dip] . times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 168 [x [PE1.2] dip] times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 168 [x [PE1.2] dip] times popop + 94829 636 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 168 [x [PE1.2] dip] times popop + 94829 636 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 94829 636 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 94829 639 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 94829 639 639 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 94829 639 639 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 94829 639 . + 639 [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 95468 . 639 [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 95468 639 . [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] . 168 [x [PE1.2] dip] times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] 168 . [x [PE1.2] dip] times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] 168 [x [PE1.2] dip] . times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 167 [x [PE1.2] dip] times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 167 [x [PE1.2] dip] times popop + 95468 639 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 167 [x [PE1.2] dip] times popop + 95468 639 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 95468 639 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 95468 640 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 95468 640 640 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 95468 640 640 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 95468 640 . + 640 [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 96108 . 640 [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 96108 640 . [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] . 167 [x [PE1.2] dip] times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] 167 . [x [PE1.2] dip] times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] 167 [x [PE1.2] dip] . times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 166 [x [PE1.2] dip] times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 166 [x [PE1.2] dip] times popop + 96108 640 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 166 [x [PE1.2] dip] times popop + 96108 640 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96108 640 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96108 642 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96108 642 642 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96108 642 642 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96108 642 . + 642 [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96750 . 642 [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96750 642 . [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] . 166 [x [PE1.2] dip] times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] 166 . [x [PE1.2] dip] times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] 166 [x [PE1.2] dip] . times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 165 [x [PE1.2] dip] times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 165 [x [PE1.2] dip] times popop + 96750 642 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 165 [x [PE1.2] dip] times popop + 96750 642 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 96750 642 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 96750 645 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 96750 645 645 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 96750 645 645 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 96750 645 . + 645 [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 97395 . 645 [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 97395 645 . [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] . 165 [x [PE1.2] dip] times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] 165 . [x [PE1.2] dip] times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] 165 [x [PE1.2] dip] . times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 164 [x [PE1.2] dip] times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 164 [x [PE1.2] dip] times popop + 97395 645 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 164 [x [PE1.2] dip] times popop + 97395 645 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 97395 645 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 97395 648 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 97395 648 648 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 97395 648 648 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 97395 648 . + 648 [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 98043 . 648 [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 98043 648 . [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] . 164 [x [PE1.2] dip] times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] 164 . [x [PE1.2] dip] times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] 164 [x [PE1.2] dip] . times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 163 [x [PE1.2] dip] times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 163 [x [PE1.2] dip] times popop + 98043 648 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 163 [x [PE1.2] dip] times popop + 98043 648 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98043 648 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98043 650 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98043 650 650 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98043 650 650 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98043 650 . + 650 [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98693 . 650 [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98693 650 . [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] . 163 [x [PE1.2] dip] times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] 163 . [x [PE1.2] dip] times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] 163 [x [PE1.2] dip] . times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 162 [x [PE1.2] dip] times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 162 [x [PE1.2] dip] times popop + 98693 650 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 162 [x [PE1.2] dip] times popop + 98693 650 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 98693 650 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 98693 651 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 98693 651 651 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 98693 651 651 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 98693 651 . + 651 [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 99344 . 651 [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 99344 651 . [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] . 162 [x [PE1.2] dip] times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] 162 . [x [PE1.2] dip] times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] 162 [x [PE1.2] dip] . times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 161 [x [PE1.2] dip] times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 161 [x [PE1.2] dip] times popop + 99344 651 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 161 [x [PE1.2] dip] times popop + 99344 651 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99344 651 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99344 654 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99344 654 654 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99344 654 654 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99344 654 . + 654 [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99998 . 654 [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99998 654 . [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] . 161 [x [PE1.2] dip] times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] 161 . [x [PE1.2] dip] times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] 161 [x [PE1.2] dip] . times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 160 [x [PE1.2] dip] times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 160 [x [PE1.2] dip] times popop + 99998 654 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 160 [x [PE1.2] dip] times popop + 99998 654 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 99998 654 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 99998 655 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 99998 655 655 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 99998 655 655 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 99998 655 . + 655 [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 100653 . 655 [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 100653 655 . [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] . 160 [x [PE1.2] dip] times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] 160 . [x [PE1.2] dip] times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] 160 [x [PE1.2] dip] . times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 159 [x [PE1.2] dip] times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 159 [x [PE1.2] dip] times popop + 100653 655 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 159 [x [PE1.2] dip] times popop + 100653 655 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 100653 655 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 100653 657 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 100653 657 657 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 100653 657 657 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 100653 657 . + 657 [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 101310 . 657 [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 101310 657 . [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] . 159 [x [PE1.2] dip] times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] 159 . [x [PE1.2] dip] times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] 159 [x [PE1.2] dip] . times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 158 [x [PE1.2] dip] times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 158 [x [PE1.2] dip] times popop + 101310 657 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 158 [x [PE1.2] dip] times popop + 101310 657 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101310 657 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101310 660 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101310 660 660 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101310 660 660 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101310 660 . + 660 [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101970 . 660 [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101970 660 . [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] . 158 [x [PE1.2] dip] times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] 158 . [x [PE1.2] dip] times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] 158 [x [PE1.2] dip] . times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 157 [x [PE1.2] dip] times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 157 [x [PE1.2] dip] times popop + 101970 660 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 157 [x [PE1.2] dip] times popop + 101970 660 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 101970 660 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 101970 663 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 101970 663 663 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 101970 663 663 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 101970 663 . + 663 [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 102633 . 663 [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 102633 663 . [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] . 157 [x [PE1.2] dip] times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] 157 . [x [PE1.2] dip] times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] 157 [x [PE1.2] dip] . times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 156 [x [PE1.2] dip] times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 156 [x [PE1.2] dip] times popop +102633 663 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 156 [x [PE1.2] dip] times popop +102633 663 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 156 [x [PE1.2] dip] times popop + 102633 663 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 156 [x [PE1.2] dip] times popop + 102633 663 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 102633 663 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 102633 665 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 102633 665 665 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 102633 665 665 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 102633 665 . + 665 [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 103298 . 665 [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 103298 665 . [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] . 156 [x [PE1.2] dip] times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] 156 . [x [PE1.2] dip] times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] 156 [x [PE1.2] dip] . times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 155 [x [PE1.2] dip] times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 155 [x [PE1.2] dip] times popop + 103298 665 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 155 [x [PE1.2] dip] times popop + 103298 665 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103298 665 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103298 666 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103298 666 666 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103298 666 666 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103298 666 . + 666 [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103964 . 666 [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103964 666 . [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] . 155 [x [PE1.2] dip] times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] 155 . [x [PE1.2] dip] times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] 155 [x [PE1.2] dip] . times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 154 [x [PE1.2] dip] times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 154 [x [PE1.2] dip] times popop + 103964 666 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 154 [x [PE1.2] dip] times popop + 103964 666 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 103964 666 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 103964 669 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 103964 669 669 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 103964 669 669 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 103964 669 . + 669 [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 104633 . 669 [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 104633 669 . [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] . 154 [x [PE1.2] dip] times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] 154 . [x [PE1.2] dip] times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] 154 [x [PE1.2] dip] . times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 153 [x [PE1.2] dip] times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 153 [x [PE1.2] dip] times popop + 104633 669 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 153 [x [PE1.2] dip] times popop + 104633 669 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 104633 669 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 104633 670 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 104633 670 670 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 104633 670 670 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 104633 670 . + 670 [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 105303 . 670 [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 105303 670 . [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] . 153 [x [PE1.2] dip] times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] 153 . [x [PE1.2] dip] times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] 153 [x [PE1.2] dip] . times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 152 [x [PE1.2] dip] times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 152 [x [PE1.2] dip] times popop + 105303 670 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 152 [x [PE1.2] dip] times popop + 105303 670 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105303 670 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105303 672 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105303 672 672 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105303 672 672 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105303 672 . + 672 [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105975 . 672 [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105975 672 . [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] . 152 [x [PE1.2] dip] times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] 152 . [x [PE1.2] dip] times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] 152 [x [PE1.2] dip] . times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 151 [x [PE1.2] dip] times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 151 [x [PE1.2] dip] times popop + 105975 672 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 151 [x [PE1.2] dip] times popop + 105975 672 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 105975 672 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 105975 675 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 105975 675 675 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 105975 675 675 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 105975 675 . + 675 [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 106650 . 675 [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 106650 675 . [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] . 151 [x [PE1.2] dip] times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] 151 . [x [PE1.2] dip] times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] 151 [x [PE1.2] dip] . times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 150 [x [PE1.2] dip] times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 150 [x [PE1.2] dip] times popop + 106650 675 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 150 [x [PE1.2] dip] times popop + 106650 675 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 106650 675 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 106650 678 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 106650 678 678 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 106650 678 678 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 106650 678 . + 678 [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 107328 . 678 [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 107328 678 . [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] . 150 [x [PE1.2] dip] times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] 150 . [x [PE1.2] dip] times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] 150 [x [PE1.2] dip] . times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 149 [x [PE1.2] dip] times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 149 [x [PE1.2] dip] times popop +107328 678 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 149 [x [PE1.2] dip] times popop +107328 678 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 149 [x [PE1.2] dip] times popop + 107328 678 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 149 [x [PE1.2] dip] times popop + 107328 678 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 107328 678 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 107328 680 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 107328 680 680 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 107328 680 680 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 107328 680 . + 680 [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 108008 . 680 [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 108008 680 . [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] . 149 [x [PE1.2] dip] times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] 149 . [x [PE1.2] dip] times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] 149 [x [PE1.2] dip] . times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 148 [x [PE1.2] dip] times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 148 [x [PE1.2] dip] times popop + 108008 680 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 148 [x [PE1.2] dip] times popop + 108008 680 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108008 680 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108008 681 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108008 681 681 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108008 681 681 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108008 681 . + 681 [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108689 . 681 [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108689 681 . [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] . 148 [x [PE1.2] dip] times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] 148 . [x [PE1.2] dip] times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] 148 [x [PE1.2] dip] . times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 147 [x [PE1.2] dip] times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 147 [x [PE1.2] dip] times popop + 108689 681 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 147 [x [PE1.2] dip] times popop + 108689 681 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 108689 681 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 108689 684 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 108689 684 684 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 108689 684 684 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 108689 684 . + 684 [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 109373 . 684 [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 109373 684 . [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] . 147 [x [PE1.2] dip] times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] 147 . [x [PE1.2] dip] times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] 147 [x [PE1.2] dip] . times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 146 [x [PE1.2] dip] times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 146 [x [PE1.2] dip] times popop + 109373 684 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 146 [x [PE1.2] dip] times popop + 109373 684 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 109373 684 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 109373 685 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 109373 685 685 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 109373 685 685 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 109373 685 . + 685 [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 110058 . 685 [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 110058 685 . [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] . 146 [x [PE1.2] dip] times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] 146 . [x [PE1.2] dip] times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] 146 [x [PE1.2] dip] . times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 145 [x [PE1.2] dip] times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 145 [x [PE1.2] dip] times popop + 110058 685 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 145 [x [PE1.2] dip] times popop + 110058 685 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110058 685 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110058 687 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110058 687 687 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110058 687 687 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110058 687 . + 687 [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110745 . 687 [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110745 687 . [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] . 145 [x [PE1.2] dip] times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] 145 . [x [PE1.2] dip] times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] 145 [x [PE1.2] dip] . times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 144 [x [PE1.2] dip] times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 144 [x [PE1.2] dip] times popop + 110745 687 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 144 [x [PE1.2] dip] times popop + 110745 687 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 110745 687 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 110745 690 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 110745 690 690 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 110745 690 690 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 110745 690 . + 690 [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 111435 . 690 [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 111435 690 . [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] . 144 [x [PE1.2] dip] times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] 144 . [x [PE1.2] dip] times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] 144 [x [PE1.2] dip] . times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 143 [x [PE1.2] dip] times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 143 [x [PE1.2] dip] times popop + 111435 690 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 143 [x [PE1.2] dip] times popop + 111435 690 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 111435 690 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 111435 693 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 111435 693 693 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 111435 693 693 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 111435 693 . + 693 [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 112128 . 693 [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 112128 693 . [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] . 143 [x [PE1.2] dip] times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] 143 . [x [PE1.2] dip] times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] 143 [x [PE1.2] dip] . times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 142 [x [PE1.2] dip] times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 142 [x [PE1.2] dip] times popop +112128 693 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 142 [x [PE1.2] dip] times popop +112128 693 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 142 [x [PE1.2] dip] times popop + 112128 693 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 142 [x [PE1.2] dip] times popop + 112128 693 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112128 693 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112128 695 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112128 695 695 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112128 695 695 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112128 695 . + 695 [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112823 . 695 [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112823 695 . [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] . 142 [x [PE1.2] dip] times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] 142 . [x [PE1.2] dip] times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] 142 [x [PE1.2] dip] . times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 141 [x [PE1.2] dip] times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 141 [x [PE1.2] dip] times popop + 112823 695 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 141 [x [PE1.2] dip] times popop + 112823 695 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 112823 695 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 112823 696 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 112823 696 696 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 112823 696 696 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 112823 696 . + 696 [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 113519 . 696 [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 113519 696 . [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] . 141 [x [PE1.2] dip] times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] 141 . [x [PE1.2] dip] times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] 141 [x [PE1.2] dip] . times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 140 [x [PE1.2] dip] times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 140 [x [PE1.2] dip] times popop + 113519 696 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 140 [x [PE1.2] dip] times popop + 113519 696 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 113519 696 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 113519 699 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 113519 699 699 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 113519 699 699 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 113519 699 . + 699 [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 114218 . 699 [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 114218 699 . [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] . 140 [x [PE1.2] dip] times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] 140 . [x [PE1.2] dip] times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] 140 [x [PE1.2] dip] . times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 139 [x [PE1.2] dip] times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 139 [x [PE1.2] dip] times popop + 114218 699 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 139 [x [PE1.2] dip] times popop + 114218 699 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114218 699 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114218 700 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114218 700 700 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114218 700 700 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114218 700 . + 700 [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114918 . 700 [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114918 700 . [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] . 139 [x [PE1.2] dip] times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] 139 . [x [PE1.2] dip] times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] 139 [x [PE1.2] dip] . times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 138 [x [PE1.2] dip] times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 138 [x [PE1.2] dip] times popop + 114918 700 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 138 [x [PE1.2] dip] times popop + 114918 700 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 114918 700 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 114918 702 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 114918 702 702 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 114918 702 702 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 114918 702 . + 702 [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 115620 . 702 [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 115620 702 . [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] . 138 [x [PE1.2] dip] times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] 138 . [x [PE1.2] dip] times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] 138 [x [PE1.2] dip] . times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 137 [x [PE1.2] dip] times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 137 [x [PE1.2] dip] times popop + 115620 702 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 137 [x [PE1.2] dip] times popop + 115620 702 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 115620 702 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 115620 705 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 115620 705 705 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 115620 705 705 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 115620 705 . + 705 [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 116325 . 705 [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 116325 705 . [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] . 137 [x [PE1.2] dip] times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] 137 . [x [PE1.2] dip] times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] 137 [x [PE1.2] dip] . times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 136 [x [PE1.2] dip] times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 136 [x [PE1.2] dip] times popop + 116325 705 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 136 [x [PE1.2] dip] times popop + 116325 705 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 116325 705 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 116325 708 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 116325 708 708 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 116325 708 708 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 116325 708 . + 708 [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 117033 . 708 [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 117033 708 . [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] . 136 [x [PE1.2] dip] times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] 136 . [x [PE1.2] dip] times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] 136 [x [PE1.2] dip] . times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 135 [x [PE1.2] dip] times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 135 [x [PE1.2] dip] times popop +117033 708 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 135 [x [PE1.2] dip] times popop +117033 708 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 135 [x [PE1.2] dip] times popop + 117033 708 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 135 [x [PE1.2] dip] times popop + 117033 708 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117033 708 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117033 710 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117033 710 710 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117033 710 710 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117033 710 . + 710 [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117743 . 710 [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117743 710 . [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] . 135 [x [PE1.2] dip] times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] 135 . [x [PE1.2] dip] times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] 135 [x [PE1.2] dip] . times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 134 [x [PE1.2] dip] times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 134 [x [PE1.2] dip] times popop + 117743 710 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 134 [x [PE1.2] dip] times popop + 117743 710 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 117743 710 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 117743 711 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 117743 711 711 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 117743 711 711 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 117743 711 . + 711 [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 118454 . 711 [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 118454 711 . [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] . 134 [x [PE1.2] dip] times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] 134 . [x [PE1.2] dip] times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] 134 [x [PE1.2] dip] . times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 133 [x [PE1.2] dip] times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 133 [x [PE1.2] dip] times popop + 118454 711 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 133 [x [PE1.2] dip] times popop + 118454 711 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 118454 711 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 118454 714 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 118454 714 714 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 118454 714 714 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 118454 714 . + 714 [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 119168 . 714 [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 119168 714 . [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] . 133 [x [PE1.2] dip] times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] 133 . [x [PE1.2] dip] times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] 133 [x [PE1.2] dip] . times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 132 [x [PE1.2] dip] times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 132 [x [PE1.2] dip] times popop + 119168 714 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 132 [x [PE1.2] dip] times popop + 119168 714 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119168 714 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119168 715 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119168 715 715 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119168 715 715 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119168 715 . + 715 [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119883 . 715 [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119883 715 . [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] . 132 [x [PE1.2] dip] times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] 132 . [x [PE1.2] dip] times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] 132 [x [PE1.2] dip] . times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 131 [x [PE1.2] dip] times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 131 [x [PE1.2] dip] times popop + 119883 715 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 131 [x [PE1.2] dip] times popop + 119883 715 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 119883 715 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 119883 717 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 119883 717 717 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 119883 717 717 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 119883 717 . + 717 [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 120600 . 717 [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 120600 717 . [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] . 131 [x [PE1.2] dip] times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] 131 . [x [PE1.2] dip] times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] 131 [x [PE1.2] dip] . times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 130 [x [PE1.2] dip] times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 130 [x [PE1.2] dip] times popop + 120600 717 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 130 [x [PE1.2] dip] times popop + 120600 717 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 120600 717 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 120600 720 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 120600 720 720 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 120600 720 720 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 120600 720 . + 720 [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 121320 . 720 [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 121320 720 . [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] . 130 [x [PE1.2] dip] times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] 130 . [x [PE1.2] dip] times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] 130 [x [PE1.2] dip] . times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 129 [x [PE1.2] dip] times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 129 [x [PE1.2] dip] times popop + 121320 720 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 129 [x [PE1.2] dip] times popop + 121320 720 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 121320 720 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 121320 723 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 121320 723 723 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 121320 723 723 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 121320 723 . + 723 [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 122043 . 723 [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 122043 723 . [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] . 129 [x [PE1.2] dip] times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] 129 . [x [PE1.2] dip] times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] 129 [x [PE1.2] dip] . times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 128 [x [PE1.2] dip] times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 128 [x [PE1.2] dip] times popop +122043 723 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 128 [x [PE1.2] dip] times popop +122043 723 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 128 [x [PE1.2] dip] times popop + 122043 723 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 128 [x [PE1.2] dip] times popop + 122043 723 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122043 723 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122043 725 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122043 725 725 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122043 725 725 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122043 725 . + 725 [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122768 . 725 [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122768 725 . [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] . 128 [x [PE1.2] dip] times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] 128 . [x [PE1.2] dip] times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] 128 [x [PE1.2] dip] . times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 127 [x [PE1.2] dip] times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 127 [x [PE1.2] dip] times popop + 122768 725 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 127 [x [PE1.2] dip] times popop + 122768 725 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 122768 725 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 122768 726 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 122768 726 726 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 122768 726 726 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 122768 726 . + 726 [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 123494 . 726 [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 123494 726 . [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] . 127 [x [PE1.2] dip] times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] 127 . [x [PE1.2] dip] times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] 127 [x [PE1.2] dip] . times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 126 [x [PE1.2] dip] times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 126 [x [PE1.2] dip] times popop + 123494 726 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 126 [x [PE1.2] dip] times popop + 123494 726 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 123494 726 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 123494 729 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 123494 729 729 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 123494 729 729 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 123494 729 . + 729 [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 124223 . 729 [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 124223 729 . [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] . 126 [x [PE1.2] dip] times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] 126 . [x [PE1.2] dip] times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] 126 [x [PE1.2] dip] . times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 125 [x [PE1.2] dip] times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 125 [x [PE1.2] dip] times popop + 124223 729 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 125 [x [PE1.2] dip] times popop + 124223 729 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124223 729 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124223 730 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124223 730 730 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124223 730 730 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124223 730 . + 730 [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124953 . 730 [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124953 730 . [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] . 125 [x [PE1.2] dip] times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] 125 . [x [PE1.2] dip] times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] 125 [x [PE1.2] dip] . times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 124 [x [PE1.2] dip] times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 124 [x [PE1.2] dip] times popop + 124953 730 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 124 [x [PE1.2] dip] times popop + 124953 730 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 124953 730 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 124953 732 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 124953 732 732 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 124953 732 732 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 124953 732 . + 732 [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 125685 . 732 [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 125685 732 . [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] . 124 [x [PE1.2] dip] times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] 124 . [x [PE1.2] dip] times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] 124 [x [PE1.2] dip] . times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 123 [x [PE1.2] dip] times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 123 [x [PE1.2] dip] times popop + 125685 732 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 123 [x [PE1.2] dip] times popop + 125685 732 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 125685 732 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 125685 735 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 125685 735 735 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 125685 735 735 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 125685 735 . + 735 [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 126420 . 735 [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 126420 735 . [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] . 123 [x [PE1.2] dip] times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] 123 . [x [PE1.2] dip] times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] 123 [x [PE1.2] dip] . times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 122 [x [PE1.2] dip] times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 122 [x [PE1.2] dip] times popop + 126420 735 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 122 [x [PE1.2] dip] times popop + 126420 735 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 126420 735 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 126420 738 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 126420 738 738 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 126420 738 738 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 126420 738 . + 738 [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 127158 . 738 [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 127158 738 . [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] . 122 [x [PE1.2] dip] times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] 122 . [x [PE1.2] dip] times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] 122 [x [PE1.2] dip] . times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 121 [x [PE1.2] dip] times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 121 [x [PE1.2] dip] times popop +127158 738 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 121 [x [PE1.2] dip] times popop +127158 738 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 121 [x [PE1.2] dip] times popop + 127158 738 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 121 [x [PE1.2] dip] times popop + 127158 738 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127158 738 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127158 740 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127158 740 740 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127158 740 740 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127158 740 . + 740 [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127898 . 740 [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127898 740 . [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] . 121 [x [PE1.2] dip] times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] 121 . [x [PE1.2] dip] times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] 121 [x [PE1.2] dip] . times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 120 [x [PE1.2] dip] times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 120 [x [PE1.2] dip] times popop + 127898 740 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 120 [x [PE1.2] dip] times popop + 127898 740 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 127898 740 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 127898 741 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 127898 741 741 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 127898 741 741 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 127898 741 . + 741 [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 128639 . 741 [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 128639 741 . [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] . 120 [x [PE1.2] dip] times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] 120 . [x [PE1.2] dip] times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] 120 [x [PE1.2] dip] . times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 119 [x [PE1.2] dip] times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 119 [x [PE1.2] dip] times popop + 128639 741 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 119 [x [PE1.2] dip] times popop + 128639 741 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 128639 741 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 128639 744 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 128639 744 744 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 128639 744 744 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 128639 744 . + 744 [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 129383 . 744 [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 129383 744 . [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] . 119 [x [PE1.2] dip] times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] 119 . [x [PE1.2] dip] times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] 119 [x [PE1.2] dip] . times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 118 [x [PE1.2] dip] times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 118 [x [PE1.2] dip] times popop + 129383 744 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 118 [x [PE1.2] dip] times popop + 129383 744 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 129383 744 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 129383 745 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 129383 745 745 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 129383 745 745 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 129383 745 . + 745 [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 130128 . 745 [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 130128 745 . [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] . 118 [x [PE1.2] dip] times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] 118 . [x [PE1.2] dip] times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] 118 [x [PE1.2] dip] . times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 117 [x [PE1.2] dip] times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 117 [x [PE1.2] dip] times popop + 130128 745 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 117 [x [PE1.2] dip] times popop + 130128 745 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130128 745 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130128 747 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130128 747 747 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130128 747 747 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130128 747 . + 747 [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130875 . 747 [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130875 747 . [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] . 117 [x [PE1.2] dip] times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] 117 . [x [PE1.2] dip] times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] 117 [x [PE1.2] dip] . times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 116 [x [PE1.2] dip] times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 116 [x [PE1.2] dip] times popop + 130875 747 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 116 [x [PE1.2] dip] times popop + 130875 747 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 130875 747 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 130875 750 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 130875 750 750 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 130875 750 750 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 130875 750 . + 750 [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 131625 . 750 [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 131625 750 . [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] . 116 [x [PE1.2] dip] times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] 116 . [x [PE1.2] dip] times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] 116 [x [PE1.2] dip] . times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 115 [x [PE1.2] dip] times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 115 [x [PE1.2] dip] times popop + 131625 750 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 115 [x [PE1.2] dip] times popop + 131625 750 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 131625 750 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 131625 753 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 131625 753 753 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 131625 753 753 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 131625 753 . + 753 [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 132378 . 753 [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 132378 753 . [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] . 115 [x [PE1.2] dip] times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] 115 . [x [PE1.2] dip] times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] 115 [x [PE1.2] dip] . times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 114 [x [PE1.2] dip] times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 114 [x [PE1.2] dip] times popop +132378 753 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 114 [x [PE1.2] dip] times popop +132378 753 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 114 [x [PE1.2] dip] times popop + 132378 753 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 114 [x [PE1.2] dip] times popop + 132378 753 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 132378 753 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 132378 755 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 132378 755 755 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 132378 755 755 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 132378 755 . + 755 [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 133133 . 755 [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 133133 755 . [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] . 114 [x [PE1.2] dip] times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] 114 . [x [PE1.2] dip] times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] 114 [x [PE1.2] dip] . times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 113 [x [PE1.2] dip] times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 113 [x [PE1.2] dip] times popop + 133133 755 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 113 [x [PE1.2] dip] times popop + 133133 755 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133133 755 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133133 756 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133133 756 756 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133133 756 756 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133133 756 . + 756 [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133889 . 756 [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133889 756 . [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] . 113 [x [PE1.2] dip] times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] 113 . [x [PE1.2] dip] times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] 113 [x [PE1.2] dip] . times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 112 [x [PE1.2] dip] times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 112 [x [PE1.2] dip] times popop + 133889 756 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 112 [x [PE1.2] dip] times popop + 133889 756 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 133889 756 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 133889 759 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 133889 759 759 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 133889 759 759 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 133889 759 . + 759 [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 134648 . 759 [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 134648 759 . [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] . 112 [x [PE1.2] dip] times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] 112 . [x [PE1.2] dip] times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] 112 [x [PE1.2] dip] . times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 111 [x [PE1.2] dip] times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 111 [x [PE1.2] dip] times popop + 134648 759 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 111 [x [PE1.2] dip] times popop + 134648 759 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 134648 759 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 134648 760 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 134648 760 760 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 134648 760 760 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 134648 760 . + 760 [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 135408 . 760 [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 135408 760 . [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] . 111 [x [PE1.2] dip] times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] 111 . [x [PE1.2] dip] times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] 111 [x [PE1.2] dip] . times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 110 [x [PE1.2] dip] times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 110 [x [PE1.2] dip] times popop + 135408 760 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 110 [x [PE1.2] dip] times popop + 135408 760 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 135408 760 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 135408 762 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 135408 762 762 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 135408 762 762 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 135408 762 . + 762 [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 136170 . 762 [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 136170 762 . [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] . 110 [x [PE1.2] dip] times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] 110 . [x [PE1.2] dip] times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] 110 [x [PE1.2] dip] . times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 109 [x [PE1.2] dip] times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 109 [x [PE1.2] dip] times popop + 136170 762 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 109 [x [PE1.2] dip] times popop + 136170 762 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136170 762 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136170 765 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136170 765 765 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136170 765 765 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136170 765 . + 765 [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136935 . 765 [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136935 765 . [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] . 109 [x [PE1.2] dip] times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] 109 . [x [PE1.2] dip] times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] 109 [x [PE1.2] dip] . times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 108 [x [PE1.2] dip] times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 108 [x [PE1.2] dip] times popop + 136935 765 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 108 [x [PE1.2] dip] times popop + 136935 765 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 136935 765 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 136935 768 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 136935 768 768 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 136935 768 768 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 136935 768 . + 768 [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 137703 . 768 [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 137703 768 . [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] . 108 [x [PE1.2] dip] times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] 108 . [x [PE1.2] dip] times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] 108 [x [PE1.2] dip] . times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 107 [x [PE1.2] dip] times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 107 [x [PE1.2] dip] times popop +137703 768 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 107 [x [PE1.2] dip] times popop +137703 768 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 107 [x [PE1.2] dip] times popop + 137703 768 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 107 [x [PE1.2] dip] times popop + 137703 768 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 137703 768 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 137703 770 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 137703 770 770 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 137703 770 770 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 137703 770 . + 770 [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 138473 . 770 [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 138473 770 . [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] . 107 [x [PE1.2] dip] times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] 107 . [x [PE1.2] dip] times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] 107 [x [PE1.2] dip] . times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 106 [x [PE1.2] dip] times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 106 [x [PE1.2] dip] times popop + 138473 770 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 106 [x [PE1.2] dip] times popop + 138473 770 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 138473 770 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 138473 771 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 138473 771 771 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 138473 771 771 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 138473 771 . + 771 [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 139244 . 771 [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 139244 771 . [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] . 106 [x [PE1.2] dip] times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] 106 . [x [PE1.2] dip] times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] 106 [x [PE1.2] dip] . times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 105 [x [PE1.2] dip] times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 105 [x [PE1.2] dip] times popop + 139244 771 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 105 [x [PE1.2] dip] times popop + 139244 771 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 139244 771 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 139244 774 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 139244 774 774 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 139244 774 774 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 139244 774 . + 774 [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 140018 . 774 [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 140018 774 . [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] . 105 [x [PE1.2] dip] times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] 105 . [x [PE1.2] dip] times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] 105 [x [PE1.2] dip] . times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 104 [x [PE1.2] dip] times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 104 [x [PE1.2] dip] times popop + 140018 774 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 104 [x [PE1.2] dip] times popop + 140018 774 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140018 774 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140018 775 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140018 775 775 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140018 775 775 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140018 775 . + 775 [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140793 . 775 [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140793 775 . [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] . 104 [x [PE1.2] dip] times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] 104 . [x [PE1.2] dip] times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] 104 [x [PE1.2] dip] . times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 103 [x [PE1.2] dip] times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 103 [x [PE1.2] dip] times popop + 140793 775 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 103 [x [PE1.2] dip] times popop + 140793 775 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 140793 775 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 140793 777 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 140793 777 777 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 140793 777 777 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 140793 777 . + 777 [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 141570 . 777 [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 141570 777 . [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] . 103 [x [PE1.2] dip] times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] 103 . [x [PE1.2] dip] times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] 103 [x [PE1.2] dip] . times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 102 [x [PE1.2] dip] times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 102 [x [PE1.2] dip] times popop + 141570 777 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 102 [x [PE1.2] dip] times popop + 141570 777 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 141570 777 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 141570 780 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 141570 780 780 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 141570 780 780 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 141570 780 . + 780 [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 142350 . 780 [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 142350 780 . [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] . 102 [x [PE1.2] dip] times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] 102 . [x [PE1.2] dip] times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] 102 [x [PE1.2] dip] . times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 101 [x [PE1.2] dip] times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 101 [x [PE1.2] dip] times popop + 142350 780 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 101 [x [PE1.2] dip] times popop + 142350 780 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 142350 780 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 142350 783 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 142350 783 783 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 142350 783 783 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 142350 783 . + 783 [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 143133 . 783 [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 143133 783 . [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] . 101 [x [PE1.2] dip] times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] 101 . [x [PE1.2] dip] times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] 101 [x [PE1.2] dip] . times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 100 [x [PE1.2] dip] times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 100 [x [PE1.2] dip] times popop +143133 783 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 100 [x [PE1.2] dip] times popop +143133 783 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 100 [x [PE1.2] dip] times popop + 143133 783 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 100 [x [PE1.2] dip] times popop + 143133 783 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143133 783 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143133 785 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143133 785 785 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143133 785 785 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143133 785 . + 785 [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143918 . 785 [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143918 785 . [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] . 100 [x [PE1.2] dip] times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] 100 . [x [PE1.2] dip] times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] 100 [x [PE1.2] dip] . times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 99 [x [PE1.2] dip] times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 99 [x [PE1.2] dip] times popop + 143918 785 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 99 [x [PE1.2] dip] times popop + 143918 785 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 143918 785 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 143918 786 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 143918 786 786 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 143918 786 786 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 143918 786 . + 786 [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 144704 . 786 [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 144704 786 . [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] . 99 [x [PE1.2] dip] times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] 99 . [x [PE1.2] dip] times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] 99 [x [PE1.2] dip] . times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 98 [x [PE1.2] dip] times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 98 [x [PE1.2] dip] times popop + 144704 786 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 98 [x [PE1.2] dip] times popop + 144704 786 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 144704 786 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 144704 789 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 144704 789 789 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 144704 789 789 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 144704 789 . + 789 [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 145493 . 789 [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 145493 789 . [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] . 98 [x [PE1.2] dip] times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] 98 . [x [PE1.2] dip] times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] 98 [x [PE1.2] dip] . times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 97 [x [PE1.2] dip] times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 97 [x [PE1.2] dip] times popop + 145493 789 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 97 [x [PE1.2] dip] times popop + 145493 789 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 145493 789 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 145493 790 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 145493 790 790 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 145493 790 790 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 145493 790 . + 790 [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 146283 . 790 [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 146283 790 . [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] . 97 [x [PE1.2] dip] times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] 97 . [x [PE1.2] dip] times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] 97 [x [PE1.2] dip] . times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 96 [x [PE1.2] dip] times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 96 [x [PE1.2] dip] times popop + 146283 790 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 96 [x [PE1.2] dip] times popop + 146283 790 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 146283 790 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 146283 792 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 146283 792 792 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 146283 792 792 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 146283 792 . + 792 [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 147075 . 792 [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 147075 792 . [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] . 96 [x [PE1.2] dip] times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] 96 . [x [PE1.2] dip] times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] 96 [x [PE1.2] dip] . times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 95 [x [PE1.2] dip] times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 95 [x [PE1.2] dip] times popop + 147075 792 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 95 [x [PE1.2] dip] times popop + 147075 792 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147075 792 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147075 795 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147075 795 795 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147075 795 795 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147075 795 . + 795 [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147870 . 795 [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147870 795 . [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] . 95 [x [PE1.2] dip] times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] 95 . [x [PE1.2] dip] times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] 95 [x [PE1.2] dip] . times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 94 [x [PE1.2] dip] times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 94 [x [PE1.2] dip] times popop + 147870 795 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 94 [x [PE1.2] dip] times popop + 147870 795 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 147870 795 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 147870 798 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 147870 798 798 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 147870 798 798 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 147870 798 . + 798 [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 148668 . 798 [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 148668 798 . [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] . 94 [x [PE1.2] dip] times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] 94 . [x [PE1.2] dip] times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] 94 [x [PE1.2] dip] . times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 93 [x [PE1.2] dip] times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 93 [x [PE1.2] dip] times popop +148668 798 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 93 [x [PE1.2] dip] times popop +148668 798 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 93 [x [PE1.2] dip] times popop + 148668 798 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 93 [x [PE1.2] dip] times popop + 148668 798 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 148668 798 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 148668 800 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 148668 800 800 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 148668 800 800 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 148668 800 . + 800 [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 149468 . 800 [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 149468 800 . [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] . 93 [x [PE1.2] dip] times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] 93 . [x [PE1.2] dip] times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] 93 [x [PE1.2] dip] . times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 92 [x [PE1.2] dip] times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 92 [x [PE1.2] dip] times popop + 149468 800 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 92 [x [PE1.2] dip] times popop + 149468 800 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 149468 800 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 149468 801 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 149468 801 801 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 149468 801 801 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 149468 801 . + 801 [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 150269 . 801 [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 150269 801 . [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] . 92 [x [PE1.2] dip] times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] 92 . [x [PE1.2] dip] times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] 92 [x [PE1.2] dip] . times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 91 [x [PE1.2] dip] times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 91 [x [PE1.2] dip] times popop + 150269 801 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 91 [x [PE1.2] dip] times popop + 150269 801 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 150269 801 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 150269 804 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 150269 804 804 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 150269 804 804 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 150269 804 . + 804 [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 151073 . 804 [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 151073 804 . [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] . 91 [x [PE1.2] dip] times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] 91 . [x [PE1.2] dip] times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] 91 [x [PE1.2] dip] . times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 90 [x [PE1.2] dip] times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 90 [x [PE1.2] dip] times popop + 151073 804 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 90 [x [PE1.2] dip] times popop + 151073 804 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151073 804 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151073 805 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151073 805 805 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151073 805 805 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151073 805 . + 805 [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151878 . 805 [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151878 805 . [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] . 90 [x [PE1.2] dip] times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] 90 . [x [PE1.2] dip] times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] 90 [x [PE1.2] dip] . times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 89 [x [PE1.2] dip] times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 89 [x [PE1.2] dip] times popop + 151878 805 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 89 [x [PE1.2] dip] times popop + 151878 805 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 151878 805 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 151878 807 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 151878 807 807 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 151878 807 807 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 151878 807 . + 807 [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 152685 . 807 [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 152685 807 . [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] . 89 [x [PE1.2] dip] times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] 89 . [x [PE1.2] dip] times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] 89 [x [PE1.2] dip] . times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 88 [x [PE1.2] dip] times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 88 [x [PE1.2] dip] times popop + 152685 807 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 88 [x [PE1.2] dip] times popop + 152685 807 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 152685 807 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 152685 810 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 152685 810 810 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 152685 810 810 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 152685 810 . + 810 [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 153495 . 810 [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 153495 810 . [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] . 88 [x [PE1.2] dip] times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] 88 . [x [PE1.2] dip] times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] 88 [x [PE1.2] dip] . times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 87 [x [PE1.2] dip] times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 87 [x [PE1.2] dip] times popop + 153495 810 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 87 [x [PE1.2] dip] times popop + 153495 810 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 153495 810 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 153495 813 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 153495 813 813 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 153495 813 813 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 153495 813 . + 813 [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 154308 . 813 [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 154308 813 . [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] . 87 [x [PE1.2] dip] times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] 87 . [x [PE1.2] dip] times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] 87 [x [PE1.2] dip] . times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 86 [x [PE1.2] dip] times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 86 [x [PE1.2] dip] times popop +154308 813 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 86 [x [PE1.2] dip] times popop +154308 813 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 86 [x [PE1.2] dip] times popop + 154308 813 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 86 [x [PE1.2] dip] times popop + 154308 813 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 154308 813 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 154308 815 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 154308 815 815 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 154308 815 815 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 154308 815 . + 815 [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 155123 . 815 [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 155123 815 . [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] . 86 [x [PE1.2] dip] times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] 86 . [x [PE1.2] dip] times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] 86 [x [PE1.2] dip] . times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 85 [x [PE1.2] dip] times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 85 [x [PE1.2] dip] times popop + 155123 815 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 85 [x [PE1.2] dip] times popop + 155123 815 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155123 815 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155123 816 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155123 816 816 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155123 816 816 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155123 816 . + 816 [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155939 . 816 [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155939 816 . [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] . 85 [x [PE1.2] dip] times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] 85 . [x [PE1.2] dip] times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] 85 [x [PE1.2] dip] . times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 84 [x [PE1.2] dip] times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 84 [x [PE1.2] dip] times popop + 155939 816 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 84 [x [PE1.2] dip] times popop + 155939 816 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 155939 816 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 155939 819 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 155939 819 819 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 155939 819 819 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 155939 819 . + 819 [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 156758 . 819 [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 156758 819 . [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] . 84 [x [PE1.2] dip] times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] 84 . [x [PE1.2] dip] times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] 84 [x [PE1.2] dip] . times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 83 [x [PE1.2] dip] times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 83 [x [PE1.2] dip] times popop + 156758 819 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 83 [x [PE1.2] dip] times popop + 156758 819 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 156758 819 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 156758 820 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 156758 820 820 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 156758 820 820 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 156758 820 . + 820 [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 157578 . 820 [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 157578 820 . [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] . 83 [x [PE1.2] dip] times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] 83 . [x [PE1.2] dip] times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] 83 [x [PE1.2] dip] . times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 82 [x [PE1.2] dip] times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 82 [x [PE1.2] dip] times popop + 157578 820 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 82 [x [PE1.2] dip] times popop + 157578 820 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 157578 820 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 157578 822 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 157578 822 822 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 157578 822 822 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 157578 822 . + 822 [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 158400 . 822 [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 158400 822 . [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] . 82 [x [PE1.2] dip] times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] 82 . [x [PE1.2] dip] times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] 82 [x [PE1.2] dip] . times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 81 [x [PE1.2] dip] times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 81 [x [PE1.2] dip] times popop + 158400 822 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 81 [x [PE1.2] dip] times popop + 158400 822 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 158400 822 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 158400 825 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 158400 825 825 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 158400 825 825 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 158400 825 . + 825 [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 159225 . 825 [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 159225 825 . [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] . 81 [x [PE1.2] dip] times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] 81 . [x [PE1.2] dip] times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] 81 [x [PE1.2] dip] . times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 80 [x [PE1.2] dip] times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 80 [x [PE1.2] dip] times popop + 159225 825 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 80 [x [PE1.2] dip] times popop + 159225 825 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 159225 825 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 159225 828 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 159225 828 828 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 159225 828 828 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 159225 828 . + 828 [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 160053 . 828 [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 160053 828 . [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] . 80 [x [PE1.2] dip] times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] 80 . [x [PE1.2] dip] times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] 80 [x [PE1.2] dip] . times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 79 [x [PE1.2] dip] times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 79 [x [PE1.2] dip] times popop +160053 828 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 79 [x [PE1.2] dip] times popop +160053 828 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 79 [x [PE1.2] dip] times popop + 160053 828 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 79 [x [PE1.2] dip] times popop + 160053 828 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160053 828 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160053 830 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160053 830 830 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160053 830 830 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160053 830 . + 830 [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160883 . 830 [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160883 830 . [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] . 79 [x [PE1.2] dip] times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] 79 . [x [PE1.2] dip] times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] 79 [x [PE1.2] dip] . times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 78 [x [PE1.2] dip] times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 78 [x [PE1.2] dip] times popop + 160883 830 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 78 [x [PE1.2] dip] times popop + 160883 830 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 160883 830 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 160883 831 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 160883 831 831 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 160883 831 831 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 160883 831 . + 831 [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 161714 . 831 [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 161714 831 . [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] . 78 [x [PE1.2] dip] times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] 78 . [x [PE1.2] dip] times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] 78 [x [PE1.2] dip] . times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 77 [x [PE1.2] dip] times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 77 [x [PE1.2] dip] times popop + 161714 831 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 77 [x [PE1.2] dip] times popop + 161714 831 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 161714 831 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 161714 834 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 161714 834 834 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 161714 834 834 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 161714 834 . + 834 [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 162548 . 834 [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 162548 834 . [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] . 77 [x [PE1.2] dip] times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] 77 . [x [PE1.2] dip] times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] 77 [x [PE1.2] dip] . times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 76 [x [PE1.2] dip] times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 76 [x [PE1.2] dip] times popop + 162548 834 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 76 [x [PE1.2] dip] times popop + 162548 834 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 162548 834 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 162548 835 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 162548 835 835 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 162548 835 835 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 162548 835 . + 835 [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 163383 . 835 [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 163383 835 . [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] . 76 [x [PE1.2] dip] times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] 76 . [x [PE1.2] dip] times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] 76 [x [PE1.2] dip] . times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 75 [x [PE1.2] dip] times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 75 [x [PE1.2] dip] times popop + 163383 835 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 75 [x [PE1.2] dip] times popop + 163383 835 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 163383 835 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 163383 837 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 163383 837 837 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 163383 837 837 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 163383 837 . + 837 [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 164220 . 837 [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 164220 837 . [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] . 75 [x [PE1.2] dip] times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] 75 . [x [PE1.2] dip] times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] 75 [x [PE1.2] dip] . times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 74 [x [PE1.2] dip] times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 74 [x [PE1.2] dip] times popop + 164220 837 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 74 [x [PE1.2] dip] times popop + 164220 837 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 164220 837 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 164220 840 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 164220 840 840 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 164220 840 840 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 164220 840 . + 840 [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 165060 . 840 [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 165060 840 . [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] . 74 [x [PE1.2] dip] times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] 74 . [x [PE1.2] dip] times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] 74 [x [PE1.2] dip] . times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 73 [x [PE1.2] dip] times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 73 [x [PE1.2] dip] times popop + 165060 840 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 73 [x [PE1.2] dip] times popop + 165060 840 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165060 840 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165060 843 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165060 843 843 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165060 843 843 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165060 843 . + 843 [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165903 . 843 [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165903 843 . [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] . 73 [x [PE1.2] dip] times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] 73 . [x [PE1.2] dip] times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] 73 [x [PE1.2] dip] . times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 72 [x [PE1.2] dip] times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 72 [x [PE1.2] dip] times popop +165903 843 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 72 [x [PE1.2] dip] times popop +165903 843 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 72 [x [PE1.2] dip] times popop + 165903 843 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 72 [x [PE1.2] dip] times popop + 165903 843 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 165903 843 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 165903 845 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 165903 845 845 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 165903 845 845 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 165903 845 . + 845 [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 166748 . 845 [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 166748 845 . [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] . 72 [x [PE1.2] dip] times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] 72 . [x [PE1.2] dip] times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] 72 [x [PE1.2] dip] . times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 71 [x [PE1.2] dip] times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 71 [x [PE1.2] dip] times popop + 166748 845 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 71 [x [PE1.2] dip] times popop + 166748 845 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 166748 845 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 166748 846 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 166748 846 846 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 166748 846 846 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 166748 846 . + 846 [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 167594 . 846 [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 167594 846 . [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] . 71 [x [PE1.2] dip] times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] 71 . [x [PE1.2] dip] times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] 71 [x [PE1.2] dip] . times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 70 [x [PE1.2] dip] times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 70 [x [PE1.2] dip] times popop + 167594 846 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 70 [x [PE1.2] dip] times popop + 167594 846 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 167594 846 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 167594 849 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 167594 849 849 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 167594 849 849 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 167594 849 . + 849 [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 168443 . 849 [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 168443 849 . [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] . 70 [x [PE1.2] dip] times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] 70 . [x [PE1.2] dip] times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] 70 [x [PE1.2] dip] . times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 69 [x [PE1.2] dip] times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 69 [x [PE1.2] dip] times popop + 168443 849 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 69 [x [PE1.2] dip] times popop + 168443 849 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 168443 849 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 168443 850 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 168443 850 850 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 168443 850 850 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 168443 850 . + 850 [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 169293 . 850 [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 169293 850 . [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] . 69 [x [PE1.2] dip] times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] 69 . [x [PE1.2] dip] times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] 69 [x [PE1.2] dip] . times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 68 [x [PE1.2] dip] times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 68 [x [PE1.2] dip] times popop + 169293 850 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 68 [x [PE1.2] dip] times popop + 169293 850 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 169293 850 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 169293 852 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 169293 852 852 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 169293 852 852 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 169293 852 . + 852 [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 170145 . 852 [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 170145 852 . [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] . 68 [x [PE1.2] dip] times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] 68 . [x [PE1.2] dip] times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] 68 [x [PE1.2] dip] . times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 67 [x [PE1.2] dip] times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 67 [x [PE1.2] dip] times popop + 170145 852 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 67 [x [PE1.2] dip] times popop + 170145 852 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 170145 852 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 170145 855 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 170145 855 855 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 170145 855 855 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 170145 855 . + 855 [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 171000 . 855 [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 171000 855 . [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] . 67 [x [PE1.2] dip] times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] 67 . [x [PE1.2] dip] times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] 67 [x [PE1.2] dip] . times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 66 [x [PE1.2] dip] times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 66 [x [PE1.2] dip] times popop + 171000 855 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 66 [x [PE1.2] dip] times popop + 171000 855 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171000 855 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171000 858 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171000 858 858 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171000 858 858 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171000 858 . + 858 [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171858 . 858 [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171858 858 . [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] . 66 [x [PE1.2] dip] times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] 66 . [x [PE1.2] dip] times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] 66 [x [PE1.2] dip] . times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 65 [x [PE1.2] dip] times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 65 [x [PE1.2] dip] times popop +171858 858 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 65 [x [PE1.2] dip] times popop +171858 858 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 65 [x [PE1.2] dip] times popop + 171858 858 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 65 [x [PE1.2] dip] times popop + 171858 858 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 171858 858 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 171858 860 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 171858 860 860 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 171858 860 860 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 171858 860 . + 860 [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 172718 . 860 [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 172718 860 . [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] . 65 [x [PE1.2] dip] times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] 65 . [x [PE1.2] dip] times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] 65 [x [PE1.2] dip] . times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 64 [x [PE1.2] dip] times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 64 [x [PE1.2] dip] times popop + 172718 860 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 64 [x [PE1.2] dip] times popop + 172718 860 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 172718 860 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 172718 861 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 172718 861 861 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 172718 861 861 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 172718 861 . + 861 [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 173579 . 861 [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 173579 861 . [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] . 64 [x [PE1.2] dip] times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] 64 . [x [PE1.2] dip] times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] 64 [x [PE1.2] dip] . times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 63 [x [PE1.2] dip] times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 63 [x [PE1.2] dip] times popop + 173579 861 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 63 [x [PE1.2] dip] times popop + 173579 861 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 173579 861 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 173579 864 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 173579 864 864 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 173579 864 864 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 173579 864 . + 864 [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 174443 . 864 [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 174443 864 . [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] . 63 [x [PE1.2] dip] times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] 63 . [x [PE1.2] dip] times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] 63 [x [PE1.2] dip] . times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 62 [x [PE1.2] dip] times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 62 [x [PE1.2] dip] times popop + 174443 864 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 62 [x [PE1.2] dip] times popop + 174443 864 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 174443 864 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 174443 865 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 174443 865 865 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 174443 865 865 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 174443 865 . + 865 [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 175308 . 865 [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 175308 865 . [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] . 62 [x [PE1.2] dip] times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] 62 . [x [PE1.2] dip] times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] 62 [x [PE1.2] dip] . times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 61 [x [PE1.2] dip] times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 61 [x [PE1.2] dip] times popop + 175308 865 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 61 [x [PE1.2] dip] times popop + 175308 865 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 175308 865 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 175308 867 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 175308 867 867 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 175308 867 867 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 175308 867 . + 867 [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 176175 . 867 [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 176175 867 . [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] . 61 [x [PE1.2] dip] times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] 61 . [x [PE1.2] dip] times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] 61 [x [PE1.2] dip] . times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 60 [x [PE1.2] dip] times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 60 [x [PE1.2] dip] times popop + 176175 867 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 60 [x [PE1.2] dip] times popop + 176175 867 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 176175 867 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 176175 870 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 176175 870 870 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 176175 870 870 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 176175 870 . + 870 [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 177045 . 870 [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 177045 870 . [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] . 60 [x [PE1.2] dip] times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] 60 . [x [PE1.2] dip] times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] 60 [x [PE1.2] dip] . times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 59 [x [PE1.2] dip] times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 59 [x [PE1.2] dip] times popop + 177045 870 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 59 [x [PE1.2] dip] times popop + 177045 870 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177045 870 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177045 873 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177045 873 873 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177045 873 873 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177045 873 . + 873 [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177918 . 873 [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177918 873 . [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] . 59 [x [PE1.2] dip] times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] 59 . [x [PE1.2] dip] times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] 59 [x [PE1.2] dip] . times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 58 [x [PE1.2] dip] times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 58 [x [PE1.2] dip] times popop +177918 873 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 58 [x [PE1.2] dip] times popop +177918 873 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 58 [x [PE1.2] dip] times popop + 177918 873 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 58 [x [PE1.2] dip] times popop + 177918 873 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 177918 873 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 177918 875 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 177918 875 875 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 177918 875 875 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 177918 875 . + 875 [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 178793 . 875 [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 178793 875 . [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] . 58 [x [PE1.2] dip] times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] 58 . [x [PE1.2] dip] times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] 58 [x [PE1.2] dip] . times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 57 [x [PE1.2] dip] times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 57 [x [PE1.2] dip] times popop + 178793 875 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 57 [x [PE1.2] dip] times popop + 178793 875 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 178793 875 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 178793 876 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 178793 876 876 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 178793 876 876 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 178793 876 . + 876 [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 179669 . 876 [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 179669 876 . [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] . 57 [x [PE1.2] dip] times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] 57 . [x [PE1.2] dip] times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] 57 [x [PE1.2] dip] . times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 56 [x [PE1.2] dip] times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 56 [x [PE1.2] dip] times popop + 179669 876 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 56 [x [PE1.2] dip] times popop + 179669 876 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 179669 876 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 179669 879 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 179669 879 879 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 179669 879 879 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 179669 879 . + 879 [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 180548 . 879 [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 180548 879 . [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] . 56 [x [PE1.2] dip] times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] 56 . [x [PE1.2] dip] times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] 56 [x [PE1.2] dip] . times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 55 [x [PE1.2] dip] times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 55 [x [PE1.2] dip] times popop + 180548 879 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 55 [x [PE1.2] dip] times popop + 180548 879 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 180548 879 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 180548 880 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 180548 880 880 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 180548 880 880 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 180548 880 . + 880 [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 181428 . 880 [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 181428 880 . [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] . 55 [x [PE1.2] dip] times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] 55 . [x [PE1.2] dip] times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] 55 [x [PE1.2] dip] . times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 54 [x [PE1.2] dip] times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 54 [x [PE1.2] dip] times popop + 181428 880 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 54 [x [PE1.2] dip] times popop + 181428 880 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 181428 880 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 181428 882 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 181428 882 882 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 181428 882 882 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 181428 882 . + 882 [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 182310 . 882 [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 182310 882 . [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] . 54 [x [PE1.2] dip] times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] 54 . [x [PE1.2] dip] times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] 54 [x [PE1.2] dip] . times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 53 [x [PE1.2] dip] times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 53 [x [PE1.2] dip] times popop + 182310 882 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 53 [x [PE1.2] dip] times popop + 182310 882 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 182310 882 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 182310 885 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 182310 885 885 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 182310 885 885 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 182310 885 . + 885 [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 183195 . 885 [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 183195 885 . [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] . 53 [x [PE1.2] dip] times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] 53 . [x [PE1.2] dip] times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] 53 [x [PE1.2] dip] . times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 52 [x [PE1.2] dip] times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 52 [x [PE1.2] dip] times popop + 183195 885 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 52 [x [PE1.2] dip] times popop + 183195 885 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 183195 885 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 183195 888 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 183195 888 888 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 183195 888 888 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 183195 888 . + 888 [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 184083 . 888 [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 184083 888 . [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] . 52 [x [PE1.2] dip] times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] 52 . [x [PE1.2] dip] times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] 52 [x [PE1.2] dip] . times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 51 [x [PE1.2] dip] times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 51 [x [PE1.2] dip] times popop +184083 888 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 51 [x [PE1.2] dip] times popop +184083 888 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 51 [x [PE1.2] dip] times popop + 184083 888 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 51 [x [PE1.2] dip] times popop + 184083 888 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184083 888 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184083 890 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184083 890 890 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184083 890 890 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184083 890 . + 890 [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184973 . 890 [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184973 890 . [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] . 51 [x [PE1.2] dip] times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] 51 . [x [PE1.2] dip] times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] 51 [x [PE1.2] dip] . times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 50 [x [PE1.2] dip] times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 50 [x [PE1.2] dip] times popop + 184973 890 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 50 [x [PE1.2] dip] times popop + 184973 890 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 184973 890 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 184973 891 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 184973 891 891 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 184973 891 891 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 184973 891 . + 891 [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 185864 . 891 [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 185864 891 . [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] . 50 [x [PE1.2] dip] times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] 50 . [x [PE1.2] dip] times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] 50 [x [PE1.2] dip] . times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 49 [x [PE1.2] dip] times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 49 [x [PE1.2] dip] times popop + 185864 891 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 49 [x [PE1.2] dip] times popop + 185864 891 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 185864 891 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 185864 894 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 185864 894 894 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 185864 894 894 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 185864 894 . + 894 [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 186758 . 894 [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 186758 894 . [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] . 49 [x [PE1.2] dip] times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] 49 . [x [PE1.2] dip] times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] 49 [x [PE1.2] dip] . times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 48 [x [PE1.2] dip] times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 48 [x [PE1.2] dip] times popop + 186758 894 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 48 [x [PE1.2] dip] times popop + 186758 894 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 186758 894 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 186758 895 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 186758 895 895 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 186758 895 895 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 186758 895 . + 895 [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 187653 . 895 [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 187653 895 . [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] . 48 [x [PE1.2] dip] times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] 48 . [x [PE1.2] dip] times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] 48 [x [PE1.2] dip] . times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 47 [x [PE1.2] dip] times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 47 [x [PE1.2] dip] times popop + 187653 895 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 47 [x [PE1.2] dip] times popop + 187653 895 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 187653 895 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 187653 897 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 187653 897 897 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 187653 897 897 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 187653 897 . + 897 [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 188550 . 897 [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 188550 897 . [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] . 47 [x [PE1.2] dip] times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] 47 . [x [PE1.2] dip] times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] 47 [x [PE1.2] dip] . times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 46 [x [PE1.2] dip] times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 46 [x [PE1.2] dip] times popop + 188550 897 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 46 [x [PE1.2] dip] times popop + 188550 897 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 188550 897 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 188550 900 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 188550 900 900 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 188550 900 900 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 188550 900 . + 900 [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 189450 . 900 [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 189450 900 . [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] . 46 [x [PE1.2] dip] times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] 46 . [x [PE1.2] dip] times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] 46 [x [PE1.2] dip] . times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 45 [x [PE1.2] dip] times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 45 [x [PE1.2] dip] times popop + 189450 900 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 45 [x [PE1.2] dip] times popop + 189450 900 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 189450 900 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 189450 903 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 189450 903 903 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 189450 903 903 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 189450 903 . + 903 [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 190353 . 903 [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 190353 903 . [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] . 45 [x [PE1.2] dip] times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] 45 . [x [PE1.2] dip] times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] 45 [x [PE1.2] dip] . times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 44 [x [PE1.2] dip] times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 44 [x [PE1.2] dip] times popop +190353 903 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 44 [x [PE1.2] dip] times popop +190353 903 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 44 [x [PE1.2] dip] times popop + 190353 903 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 44 [x [PE1.2] dip] times popop + 190353 903 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 190353 903 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 190353 905 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 190353 905 905 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 190353 905 905 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 190353 905 . + 905 [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 191258 . 905 [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 191258 905 . [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] . 44 [x [PE1.2] dip] times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] 44 . [x [PE1.2] dip] times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] 44 [x [PE1.2] dip] . times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 43 [x [PE1.2] dip] times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 43 [x [PE1.2] dip] times popop + 191258 905 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 43 [x [PE1.2] dip] times popop + 191258 905 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 191258 905 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 191258 906 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 191258 906 906 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 191258 906 906 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 191258 906 . + 906 [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 192164 . 906 [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 192164 906 . [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] . 43 [x [PE1.2] dip] times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] 43 . [x [PE1.2] dip] times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] 43 [x [PE1.2] dip] . times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 42 [x [PE1.2] dip] times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 42 [x [PE1.2] dip] times popop + 192164 906 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 42 [x [PE1.2] dip] times popop + 192164 906 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 192164 906 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 192164 909 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 192164 909 909 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 192164 909 909 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 192164 909 . + 909 [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 193073 . 909 [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 193073 909 . [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] . 42 [x [PE1.2] dip] times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] 42 . [x [PE1.2] dip] times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] 42 [x [PE1.2] dip] . times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 41 [x [PE1.2] dip] times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 41 [x [PE1.2] dip] times popop + 193073 909 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 41 [x [PE1.2] dip] times popop + 193073 909 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193073 909 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193073 910 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193073 910 910 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193073 910 910 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193073 910 . + 910 [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193983 . 910 [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193983 910 . [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] . 41 [x [PE1.2] dip] times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] 41 . [x [PE1.2] dip] times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] 41 [x [PE1.2] dip] . times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 40 [x [PE1.2] dip] times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 40 [x [PE1.2] dip] times popop + 193983 910 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 40 [x [PE1.2] dip] times popop + 193983 910 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 193983 910 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 193983 912 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 193983 912 912 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 193983 912 912 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 193983 912 . + 912 [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 194895 . 912 [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 194895 912 . [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] . 40 [x [PE1.2] dip] times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] 40 . [x [PE1.2] dip] times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] 40 [x [PE1.2] dip] . times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 39 [x [PE1.2] dip] times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 39 [x [PE1.2] dip] times popop + 194895 912 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 39 [x [PE1.2] dip] times popop + 194895 912 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 194895 912 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 194895 915 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 194895 915 915 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 194895 915 915 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 194895 915 . + 915 [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 195810 . 915 [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 195810 915 . [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] . 39 [x [PE1.2] dip] times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] 39 . [x [PE1.2] dip] times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] 39 [x [PE1.2] dip] . times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 38 [x [PE1.2] dip] times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 38 [x [PE1.2] dip] times popop + 195810 915 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 38 [x [PE1.2] dip] times popop + 195810 915 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 195810 915 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 195810 918 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 195810 918 918 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 195810 918 918 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 195810 918 . + 918 [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 196728 . 918 [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 196728 918 . [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] . 38 [x [PE1.2] dip] times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] 38 . [x [PE1.2] dip] times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] 38 [x [PE1.2] dip] . times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 37 [x [PE1.2] dip] times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 37 [x [PE1.2] dip] times popop +196728 918 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 37 [x [PE1.2] dip] times popop +196728 918 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 37 [x [PE1.2] dip] times popop + 196728 918 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 37 [x [PE1.2] dip] times popop + 196728 918 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 196728 918 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 196728 920 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 196728 920 920 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 196728 920 920 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 196728 920 . + 920 [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 197648 . 920 [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 197648 920 . [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] . 37 [x [PE1.2] dip] times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] 37 . [x [PE1.2] dip] times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] 37 [x [PE1.2] dip] . times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 36 [x [PE1.2] dip] times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 36 [x [PE1.2] dip] times popop + 197648 920 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 36 [x [PE1.2] dip] times popop + 197648 920 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 197648 920 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 197648 921 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 197648 921 921 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 197648 921 921 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 197648 921 . + 921 [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 198569 . 921 [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 198569 921 . [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] . 36 [x [PE1.2] dip] times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] 36 . [x [PE1.2] dip] times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] 36 [x [PE1.2] dip] . times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 35 [x [PE1.2] dip] times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 35 [x [PE1.2] dip] times popop + 198569 921 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 35 [x [PE1.2] dip] times popop + 198569 921 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 198569 921 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 198569 924 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 198569 924 924 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 198569 924 924 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 198569 924 . + 924 [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 199493 . 924 [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 199493 924 . [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] . 35 [x [PE1.2] dip] times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] 35 . [x [PE1.2] dip] times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] 35 [x [PE1.2] dip] . times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 34 [x [PE1.2] dip] times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 34 [x [PE1.2] dip] times popop + 199493 924 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 34 [x [PE1.2] dip] times popop + 199493 924 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 199493 924 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 199493 925 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 199493 925 925 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 199493 925 925 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 199493 925 . + 925 [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 200418 . 925 [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 200418 925 . [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] . 34 [x [PE1.2] dip] times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] 34 . [x [PE1.2] dip] times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] 34 [x [PE1.2] dip] . times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 33 [x [PE1.2] dip] times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 33 [x [PE1.2] dip] times popop + 200418 925 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 33 [x [PE1.2] dip] times popop + 200418 925 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 200418 925 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 200418 927 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 200418 927 927 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 200418 927 927 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 200418 927 . + 927 [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 201345 . 927 [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 201345 927 . [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] . 33 [x [PE1.2] dip] times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] 33 . [x [PE1.2] dip] times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] 33 [x [PE1.2] dip] . times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 32 [x [PE1.2] dip] times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 32 [x [PE1.2] dip] times popop + 201345 927 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 32 [x [PE1.2] dip] times popop + 201345 927 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 201345 927 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 201345 930 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 201345 930 930 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 201345 930 930 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 201345 930 . + 930 [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 202275 . 930 [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 202275 930 . [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] . 32 [x [PE1.2] dip] times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] 32 . [x [PE1.2] dip] times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] 32 [x [PE1.2] dip] . times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 31 [x [PE1.2] dip] times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 31 [x [PE1.2] dip] times popop + 202275 930 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 31 [x [PE1.2] dip] times popop + 202275 930 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 202275 930 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 202275 933 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 202275 933 933 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 202275 933 933 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 202275 933 . + 933 [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 203208 . 933 [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 203208 933 . [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] . 31 [x [PE1.2] dip] times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] 31 . [x [PE1.2] dip] times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] 31 [x [PE1.2] dip] . times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 30 [x [PE1.2] dip] times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 30 [x [PE1.2] dip] times popop +203208 933 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 30 [x [PE1.2] dip] times popop +203208 933 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 30 [x [PE1.2] dip] times popop + 203208 933 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 30 [x [PE1.2] dip] times popop + 203208 933 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 203208 933 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 203208 935 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 203208 935 935 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 203208 935 935 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 203208 935 . + 935 [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 204143 . 935 [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 204143 935 . [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] . 30 [x [PE1.2] dip] times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] 30 . [x [PE1.2] dip] times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] 30 [x [PE1.2] dip] . times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 29 [x [PE1.2] dip] times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 29 [x [PE1.2] dip] times popop + 204143 935 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 29 [x [PE1.2] dip] times popop + 204143 935 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 204143 935 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 204143 936 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 204143 936 936 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 204143 936 936 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 204143 936 . + 936 [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 205079 . 936 [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 205079 936 . [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] . 29 [x [PE1.2] dip] times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] 29 . [x [PE1.2] dip] times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] 29 [x [PE1.2] dip] . times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 28 [x [PE1.2] dip] times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 28 [x [PE1.2] dip] times popop + 205079 936 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 28 [x [PE1.2] dip] times popop + 205079 936 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 205079 936 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 205079 939 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 205079 939 939 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 205079 939 939 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 205079 939 . + 939 [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 206018 . 939 [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 206018 939 . [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] . 28 [x [PE1.2] dip] times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] 28 . [x [PE1.2] dip] times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] 28 [x [PE1.2] dip] . times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 27 [x [PE1.2] dip] times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 27 [x [PE1.2] dip] times popop + 206018 939 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 27 [x [PE1.2] dip] times popop + 206018 939 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206018 939 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206018 940 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206018 940 940 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206018 940 940 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206018 940 . + 940 [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206958 . 940 [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206958 940 . [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] . 27 [x [PE1.2] dip] times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] 27 . [x [PE1.2] dip] times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] 27 [x [PE1.2] dip] . times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 26 [x [PE1.2] dip] times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 26 [x [PE1.2] dip] times popop + 206958 940 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 26 [x [PE1.2] dip] times popop + 206958 940 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 206958 940 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 206958 942 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 206958 942 942 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 206958 942 942 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 206958 942 . + 942 [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 207900 . 942 [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 207900 942 . [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] . 26 [x [PE1.2] dip] times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] 26 . [x [PE1.2] dip] times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] 26 [x [PE1.2] dip] . times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 25 [x [PE1.2] dip] times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 25 [x [PE1.2] dip] times popop + 207900 942 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 25 [x [PE1.2] dip] times popop + 207900 942 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 207900 942 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 207900 945 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 207900 945 945 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 207900 945 945 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 207900 945 . + 945 [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 208845 . 945 [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 208845 945 . [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] . 25 [x [PE1.2] dip] times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] 25 . [x [PE1.2] dip] times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] 25 [x [PE1.2] dip] . times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 24 [x [PE1.2] dip] times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 24 [x [PE1.2] dip] times popop + 208845 945 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 24 [x [PE1.2] dip] times popop + 208845 945 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 208845 945 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 208845 948 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 208845 948 948 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 208845 948 948 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 208845 948 . + 948 [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 209793 . 948 [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 209793 948 . [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] . 24 [x [PE1.2] dip] times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] 24 . [x [PE1.2] dip] times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] 24 [x [PE1.2] dip] . times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 23 [x [PE1.2] dip] times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 23 [x [PE1.2] dip] times popop +209793 948 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 23 [x [PE1.2] dip] times popop +209793 948 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 23 [x [PE1.2] dip] times popop + 209793 948 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 23 [x [PE1.2] dip] times popop + 209793 948 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 209793 948 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 209793 950 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 209793 950 950 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 209793 950 950 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 209793 950 . + 950 [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 210743 . 950 [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 210743 950 . [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] . 23 [x [PE1.2] dip] times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] 23 . [x [PE1.2] dip] times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] 23 [x [PE1.2] dip] . times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 22 [x [PE1.2] dip] times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 22 [x [PE1.2] dip] times popop + 210743 950 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 22 [x [PE1.2] dip] times popop + 210743 950 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 210743 950 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 210743 951 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 210743 951 951 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 210743 951 951 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 210743 951 . + 951 [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 211694 . 951 [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 211694 951 . [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] . 22 [x [PE1.2] dip] times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] 22 . [x [PE1.2] dip] times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] 22 [x [PE1.2] dip] . times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 21 [x [PE1.2] dip] times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 21 [x [PE1.2] dip] times popop + 211694 951 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 21 [x [PE1.2] dip] times popop + 211694 951 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 211694 951 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 211694 954 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 211694 954 954 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 211694 954 954 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 211694 954 . + 954 [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 212648 . 954 [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 212648 954 . [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] . 21 [x [PE1.2] dip] times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] 21 . [x [PE1.2] dip] times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] 21 [x [PE1.2] dip] . times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 20 [x [PE1.2] dip] times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 20 [x [PE1.2] dip] times popop + 212648 954 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 20 [x [PE1.2] dip] times popop + 212648 954 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 212648 954 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 212648 955 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 212648 955 955 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 212648 955 955 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 212648 955 . + 955 [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 213603 . 955 [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 213603 955 . [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] . 20 [x [PE1.2] dip] times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] 20 . [x [PE1.2] dip] times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] 20 [x [PE1.2] dip] . times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 19 [x [PE1.2] dip] times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 19 [x [PE1.2] dip] times popop + 213603 955 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 19 [x [PE1.2] dip] times popop + 213603 955 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 213603 955 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 213603 957 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 213603 957 957 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 213603 957 957 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 213603 957 . + 957 [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 214560 . 957 [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 214560 957 . [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] . 19 [x [PE1.2] dip] times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] 19 . [x [PE1.2] dip] times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] 19 [x [PE1.2] dip] . times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 18 [x [PE1.2] dip] times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 18 [x [PE1.2] dip] times popop + 214560 957 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 18 [x [PE1.2] dip] times popop + 214560 957 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 214560 957 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 214560 960 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 214560 960 960 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 214560 960 960 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 214560 960 . + 960 [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 215520 . 960 [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 215520 960 . [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] . 18 [x [PE1.2] dip] times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] 18 . [x [PE1.2] dip] times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] 18 [x [PE1.2] dip] . times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 17 [x [PE1.2] dip] times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 17 [x [PE1.2] dip] times popop + 215520 960 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 17 [x [PE1.2] dip] times popop + 215520 960 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 215520 960 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 215520 963 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 215520 963 963 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 215520 963 963 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 215520 963 . + 963 [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 216483 . 963 [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 216483 963 . [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] . 17 [x [PE1.2] dip] times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] 17 . [x [PE1.2] dip] times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] 17 [x [PE1.2] dip] . times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 16 [x [PE1.2] dip] times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 16 [x [PE1.2] dip] times popop +216483 963 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 16 [x [PE1.2] dip] times popop +216483 963 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 16 [x [PE1.2] dip] times popop + 216483 963 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 16 [x [PE1.2] dip] times popop + 216483 963 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 216483 963 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 216483 965 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 216483 965 965 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 216483 965 965 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 216483 965 . + 965 [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 217448 . 965 [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 217448 965 . [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] . 16 [x [PE1.2] dip] times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] 16 . [x [PE1.2] dip] times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] 16 [x [PE1.2] dip] . times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 15 [x [PE1.2] dip] times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 15 [x [PE1.2] dip] times popop + 217448 965 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 15 [x [PE1.2] dip] times popop + 217448 965 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 217448 965 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 217448 966 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 217448 966 966 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 217448 966 966 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 217448 966 . + 966 [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 218414 . 966 [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 218414 966 . [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] . 15 [x [PE1.2] dip] times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] 15 . [x [PE1.2] dip] times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] 15 [x [PE1.2] dip] . times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 14 [x [PE1.2] dip] times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 14 [x [PE1.2] dip] times popop + 218414 966 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 14 [x [PE1.2] dip] times popop + 218414 966 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 218414 966 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 218414 969 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 218414 969 969 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 218414 969 969 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 218414 969 . + 969 [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 219383 . 969 [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 219383 969 . [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] . 14 [x [PE1.2] dip] times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] 14 . [x [PE1.2] dip] times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] 14 [x [PE1.2] dip] . times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 13 [x [PE1.2] dip] times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 13 [x [PE1.2] dip] times popop + 219383 969 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 13 [x [PE1.2] dip] times popop + 219383 969 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 219383 969 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 219383 970 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 219383 970 970 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 219383 970 970 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 219383 970 . + 970 [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 220353 . 970 [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 220353 970 . [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] . 13 [x [PE1.2] dip] times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] 13 . [x [PE1.2] dip] times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] 13 [x [PE1.2] dip] . times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 12 [x [PE1.2] dip] times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 12 [x [PE1.2] dip] times popop + 220353 970 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 12 [x [PE1.2] dip] times popop + 220353 970 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 220353 970 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 220353 972 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 220353 972 972 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 220353 972 972 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 220353 972 . + 972 [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 221325 . 972 [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 221325 972 . [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] . 12 [x [PE1.2] dip] times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] 12 . [x [PE1.2] dip] times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] 12 [x [PE1.2] dip] . times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 11 [x [PE1.2] dip] times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 11 [x [PE1.2] dip] times popop + 221325 972 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 11 [x [PE1.2] dip] times popop + 221325 972 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 221325 972 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 221325 975 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 221325 975 975 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 221325 975 975 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 221325 975 . + 975 [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 222300 . 975 [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 222300 975 . [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] . 11 [x [PE1.2] dip] times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] 11 . [x [PE1.2] dip] times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] 11 [x [PE1.2] dip] . times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 10 [x [PE1.2] dip] times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 10 [x [PE1.2] dip] times popop + 222300 975 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 10 [x [PE1.2] dip] times popop + 222300 975 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 222300 975 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 222300 978 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 222300 978 978 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 222300 978 978 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 222300 978 . + 978 [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 223278 . 978 [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 223278 978 . [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] . 10 [x [PE1.2] dip] times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] 10 . [x [PE1.2] dip] times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] 10 [x [PE1.2] dip] . times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 9 [x [PE1.2] dip] times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 9 [x [PE1.2] dip] times popop +223278 978 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 9 [x [PE1.2] dip] times popop +223278 978 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 9 [x [PE1.2] dip] times popop + 223278 978 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 9 [x [PE1.2] dip] times popop + 223278 978 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 223278 978 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 223278 980 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 223278 980 980 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 223278 980 980 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 223278 980 . + 980 [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 224258 . 980 [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 224258 980 . [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] . 9 [x [PE1.2] dip] times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] 9 . [x [PE1.2] dip] times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] 9 [x [PE1.2] dip] . times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 8 [x [PE1.2] dip] times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 8 [x [PE1.2] dip] times popop + 224258 980 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 8 [x [PE1.2] dip] times popop + 224258 980 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 224258 980 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 224258 981 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 224258 981 981 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 224258 981 981 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 224258 981 . + 981 [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 225239 . 981 [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 225239 981 . [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] . 8 [x [PE1.2] dip] times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] 8 . [x [PE1.2] dip] times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] 8 [x [PE1.2] dip] . times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 7 [x [PE1.2] dip] times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 7 [x [PE1.2] dip] times popop + 225239 981 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 7 [x [PE1.2] dip] times popop + 225239 981 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 225239 981 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 225239 984 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 225239 984 984 . [+] dip [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 225239 984 984 [+] . dip [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 225239 984 . + 984 [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 226223 . 984 [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 226223 984 . [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] . 7 [x [PE1.2] dip] times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] 7 . [x [PE1.2] dip] times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] 7 [x [PE1.2] dip] . times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 6 [x [PE1.2] dip] times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] . 57 swap [PE1.1.check PE1.1] direco [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 [57 swap [PE1.1.check PE1.1] direco] 57 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 [57 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 [57 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 . PE1.1.check PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 . dup [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 57 . [pop 14811] [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 57 [pop 14811] . [] branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 57 [pop 14811] [] . branch PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 57 [pop 14811] [] . roll< choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 [pop 14811] [] 57 . choice i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 [] . i PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 . PE1.1 [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 . dup [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 57 . [3 &] dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 57 [3 &] . dip 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 . 3 & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 57 3 . & 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 . 57 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 57 . 2 >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 57 2 . >> [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 14 . [57 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 14 [57 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 14 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 [14 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 6 [x [PE1.2] dip] times popop + 226223 984 1 [14 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 6 [x [PE1.2] dip] times popop + 226223 984 1 . PE1.2 [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 226223 984 1 . + dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 226223 985 . dup [+] dip [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 226223 985 985 . [+] dip [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 226223 985 985 [+] . dip [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 226223 985 . + 985 [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 227208 . 985 [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 227208 985 . [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] . 6 [x [PE1.2] dip] times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] 6 . [x [PE1.2] dip] times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] 6 [x [PE1.2] dip] . times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 5 [x [PE1.2] dip] times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] . 14 swap [PE1.1.check PE1.1] direco [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 [14 swap [PE1.1.check PE1.1] direco] 14 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 [14 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 [14 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 . PE1.1.check PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 . dup [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 14 . [pop 14811] [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 14 [pop 14811] . [] branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 14 [pop 14811] [] . branch PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 14 [pop 14811] [] . roll< choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 [pop 14811] [] 14 . choice i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 [] . i PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 . PE1.1 [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 . dup [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 14 . [3 &] dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 14 [3 &] . dip 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 . 3 & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 14 3 . & 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 . 14 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 14 . 2 >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 14 2 . >> [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 3 . [14 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 3 [14 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 3 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 [3 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 5 [x [PE1.2] dip] times popop + 227208 985 2 [3 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 5 [x [PE1.2] dip] times popop + 227208 985 2 . PE1.2 [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 227208 985 2 . + dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 227208 987 . dup [+] dip [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 227208 987 987 . [+] dip [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 227208 987 987 [+] . dip [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 227208 987 . + 987 [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 228195 . 987 [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 228195 987 . [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] . 5 [x [PE1.2] dip] times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] 5 . [x [PE1.2] dip] times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] 5 [x [PE1.2] dip] . times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 4 [x [PE1.2] dip] times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] . 3 swap [PE1.1.check PE1.1] direco [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 [3 swap [PE1.1.check PE1.1] direco] 3 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [3 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [3 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . PE1.1.check PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . dup [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 . [pop 14811] [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 [pop 14811] . [] branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 [pop 14811] [] . branch PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 [pop 14811] [] . roll< choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [pop 14811] [] 3 . choice i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [] . i PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . PE1.1 [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . dup [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 . [3 &] dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 [3 &] . dip 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . 3 & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 . & 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . 3 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 . 2 >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 3 2 . >> [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 0 . [3 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 0 [3 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 0 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [0 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 4 [x [PE1.2] dip] times popop + 228195 987 3 [0 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 4 [x [PE1.2] dip] times popop + 228195 987 3 . PE1.2 [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 228195 987 3 . + dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 228195 990 . dup [+] dip [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 228195 990 990 . [+] dip [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 228195 990 990 [+] . dip [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 228195 990 . + 990 [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 229185 . 990 [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 229185 990 . [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] . 4 [x [PE1.2] dip] times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] 4 . [x [PE1.2] dip] times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] 4 [x [PE1.2] dip] . times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 3 [x [PE1.2] dip] times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] . 0 swap [PE1.1.check PE1.1] direco [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 [0 swap [PE1.1.check PE1.1] direco] 0 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 [0 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 [0 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 . PE1.1.check PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 . dup [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 0 . [pop 14811] [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 0 [pop 14811] . [] branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 0 [pop 14811] [] . branch PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 0 [pop 14811] [] . roll< choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 [pop 14811] [] 0 . choice i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 [pop 14811] . i PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 0 . pop 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 . 14811 PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 14811 . PE1.1 [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 14811 . dup [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 14811 14811 . [3 &] dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 14811 14811 [3 &] . dip 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 14811 . 3 & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 14811 3 . & 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 . 14811 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 14811 . 2 >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 14811 2 . >> [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 3702 . [0 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 3702 [0 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 3702 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 3 [x [PE1.2] dip] times popop + 229185 990 3 [3702 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 3 [x [PE1.2] dip] times popop + 229185 990 3 . PE1.2 [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 229185 990 3 . + dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 229185 993 . dup [+] dip [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 229185 993 993 . [+] dip [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 229185 993 993 [+] . dip [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 229185 993 . + 993 [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 230178 . 993 [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 230178 993 . [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] . 3 [x [PE1.2] dip] times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] 3 . [x [PE1.2] dip] times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] 3 [x [PE1.2] dip] . times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 2 [x [PE1.2] dip] times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] . 3702 swap [PE1.1.check PE1.1] direco [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 [3702 swap [PE1.1.check PE1.1] direco] 3702 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 [3702 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 2 [x [PE1.2] dip] times popop +230178 993 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 2 [x [PE1.2] dip] times popop +230178 993 3702 [3702 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 . PE1.1.check PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 . dup [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3702 . [pop 14811] [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3702 [pop 14811] . [] branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3702 [pop 14811] [] . branch PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3702 [pop 14811] [] . roll< choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 [pop 14811] [] 3702 . choice i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 [] . i PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 . PE1.1 [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 . dup [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3702 . [3 &] dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3702 [3 &] . dip 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 . 3 & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 3702 3 . & 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 . 3702 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 3702 . 2 >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 3702 2 . >> [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 925 . [3702 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 925 [3702 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 925 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 [925 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 2 [x [PE1.2] dip] times popop + 230178 993 2 [925 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 2 [x [PE1.2] dip] times popop + 230178 993 2 . PE1.2 [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 230178 993 2 . + dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 230178 995 . dup [+] dip [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 230178 995 995 . [+] dip [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 230178 995 995 [+] . dip [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 230178 995 . + 995 [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 231173 . 995 [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 231173 995 . [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] . 2 [x [PE1.2] dip] times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] 2 . [x [PE1.2] dip] times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] 2 [x [PE1.2] dip] . times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i 1 [x [PE1.2] dip] times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] . 925 swap [PE1.1.check PE1.1] direco [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 [925 swap [PE1.1.check PE1.1] direco] 925 . swap [PE1.1.check PE1.1] direco [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 [925 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 [925 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 . PE1.1.check PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 . dup [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 925 . [pop 14811] [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 925 [pop 14811] . [] branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 925 [pop 14811] [] . branch PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 925 [pop 14811] [] . roll< choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 [pop 14811] [] 925 . choice i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 [] . i PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 . PE1.1 [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 . dup [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 925 . [3 &] dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 925 [3 &] . dip 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 . 3 & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 925 3 . & 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 . 925 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 925 . 2 >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 925 2 . >> [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 231 . [925 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 231 [925 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 231 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 [231 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip 1 [x [PE1.2] dip] times popop + 231173 995 1 [231 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip 1 [x [PE1.2] dip] times popop + 231173 995 1 . PE1.2 [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 231173 995 1 . + dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 231173 996 . dup [+] dip [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 231173 996 996 . [+] dip [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 231173 996 996 [+] . dip [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 231173 996 . + 996 [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 232169 . 996 [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 232169 996 . [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] times popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] . 1 [x [PE1.2] dip] times popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] 1 . [x [PE1.2] dip] times popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] 1 [x [PE1.2] dip] . times popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] [x [PE1.2] dip] . i popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] . x [PE1.2] dip popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] . 231 swap [PE1.1.check PE1.1] direco [PE1.2] dip popop + 232169 996 [231 swap [PE1.1.check PE1.1] direco] 231 . swap [PE1.1.check PE1.1] direco [PE1.2] dip popop + 232169 996 231 [231 swap [PE1.1.check PE1.1] direco] . [PE1.1.check PE1.1] direco [PE1.2] dip popop + 232169 996 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . direco [PE1.2] dip popop + 232169 996 231 [231 swap [PE1.1.check PE1.1] direco] [PE1.1.check PE1.1] . dip rest cons [PE1.2] dip popop + 232169 996 231 . PE1.1.check PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 . dup [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 231 . [pop 14811] [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 231 [pop 14811] . [] branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 231 [pop 14811] [] . branch PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 231 [pop 14811] [] . roll< choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 [pop 14811] [] 231 . choice i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 [] . i PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 . PE1.1 [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 . dup [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 231 . [3 &] dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 231 [3 &] . dip 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 . 3 & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 231 3 . & 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 3 . 231 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 3 231 . 2 >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 3 231 2 . >> [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 3 57 . [231 swap [PE1.1.check PE1.1] direco] rest cons [PE1.2] dip popop + 232169 996 3 57 [231 swap [PE1.1.check PE1.1] direco] . rest cons [PE1.2] dip popop + 232169 996 3 57 [swap [PE1.1.check PE1.1] direco] . cons [PE1.2] dip popop + 232169 996 3 [57 swap [PE1.1.check PE1.1] direco] . [PE1.2] dip popop + 232169 996 3 [57 swap [PE1.1.check PE1.1] direco] [PE1.2] . dip popop + 232169 996 3 . PE1.2 [57 swap [PE1.1.check PE1.1] direco] popop + 232169 996 3 . + dup [+] dip [57 swap [PE1.1.check PE1.1] direco] popop + 232169 999 . dup [+] dip [57 swap [PE1.1.check PE1.1] direco] popop + 232169 999 999 . [+] dip [57 swap [PE1.1.check PE1.1] direco] popop + 232169 999 999 [+] . dip [57 swap [PE1.1.check PE1.1] direco] popop + 232169 999 . + 999 [57 swap [PE1.1.check PE1.1] direco] popop + 233168 . 999 [57 swap [PE1.1.check PE1.1] direco] popop + 233168 999 . [57 swap [PE1.1.check PE1.1] direco] popop + 233168 999 [57 swap [PE1.1.check PE1.1] direco] . popop + 233168 . diff --git a/docs/repl.py b/docs/repl.py new file mode 100755 index 0000000..4cb300e --- /dev/null +++ b/docs/repl.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +from joy.library import initialize +from joy.joy import repl +from joy.library import DefinitionWrapper + + +D = initialize() + + +from joy.library import SimpleFunctionWrapper +from joy.utils.stack import list_to_stack + + +@SimpleFunctionWrapper +def incr_at(stack): + '''Given a index and a sequence of integers, increment the integer at the index. + + E.g.: + + 3 [0 1 2 3 4 5] incr_at + ----------------------------- + [0 1 2 4 4 5] + + ''' + sequence, (i, stack) = stack + mem = [] + while i >= 0: + term, sequence = sequence + mem.append(term) + i -= 1 + mem[-1] += 1 + return list_to_stack(mem, sequence), stack + + +D['incr_at'] = incr_at + + + +DefinitionWrapper.add_definitions(''' + + + + + + + TS0 == [not] swap unit [pop] swoncat + TS1 == [dip] cons [uncons] swoncat +treestep == swap [map] swoncat [TS1 [TS0] dip] dip genrec + +Q == [tuck / + 2 /] unary +eps == [sqr - abs] nullary +K == [<] [popop swap pop] [popd [Q eps] dip] primrec + + + +get_value == [roll< at] nullary +incr_value == [[popd incr_at] unary] dip +add_value == [+] cons dipd +incr_step_count == [++] dip + +F == [popop 5 >=] [roll< popop] [get_value incr_value add_value incr_step_count] primrec + +G == [first % not] [first /] [rest [not] [popop 0]] [ifte] genrec + +''', D) + + +print '''\ +Joypy - Copyright © 2017 Simon Forman +This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty". +This is free software, and you are welcome to redistribute it +under certain conditions; type "sharing" for details. +Type "words" to see a list of all words, and "[] help" to print the +docs for a word. +''' +stack = repl(dictionary=D) + diff --git a/joy/__init__.py b/joy/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/joy/__main__.py b/joy/__main__.py new file mode 100644 index 0000000..1b436bc --- /dev/null +++ b/joy/__main__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +from .library import initialize +from .joy import repl + +print '''\ +Joypy - Copyright © 2017 Simon Forman +This program comes with ABSOLUTELY NO WARRANTY; for details type "warranty". +This is free software, and you are welcome to redistribute it +under certain conditions; type "sharing" for details. +Type "words" to see a list of all words, and "[] help" to print the +docs for a word. +''' +stack = repl(dictionary=initialize()) diff --git a/joy/joy.py b/joy/joy.py new file mode 100644 index 0000000..7cdc076 --- /dev/null +++ b/joy/joy.py @@ -0,0 +1,121 @@ +# -*- coding: utf-8 -*- +''' + + +A dialect of Joy in Python. + + +Joy is a programming language created by Manfred von Thun that is easy to +use and understand and has many other nice properties. This Python script +is an interpreter for a dialect of Joy that attempts to stay very close +to the spirit of Joy but does not precisely match the behaviour of the +original version(s) written in C. A Tkinter GUI is provided as well. + + + Copyright © 2014, 2016, 2017 Simon Forman + + This file is part of Joypy. + + Joypy is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Joypy 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 Joypy. If not see . + + +§ joy() + +The basic joy() function is quite straightforward. It iterates through a +sequence of terms which are either literals (strings, numbers, sequences) +or functions. Literals are put onto the stack and functions are +executed. + +Every Joy function is an unary mapping from stacks to stacks. Even +literals are considered to be functions that accept a stack and return a +new stack with the literal value on top. + +Exports: + + joy(stack, expression, dictionary, viewer=None) + + run(text, stack, dictionary, viewer=None) + + repl(stack=(), dictionary=()) + +''' +from __future__ import print_function +try: + input = raw_input +except NameError: + pass +from traceback import print_exc, format_exc +from .parser import text_to_expression, ParseError, Symbol +from .utils.stack import stack_to_string +from .utils.pretty_print import TracePrinter + + +def joy(stack, expression, dictionary, viewer=None): + ''' + Evaluate the Joy expression on the stack. + ''' + while expression: + + if viewer: viewer(stack, expression) + + term, expression = expression + if isinstance(term, Symbol): + term = dictionary[term] + stack, expression, dictionary = term(stack, expression, dictionary) + else: + stack = term, stack + + if viewer: viewer(stack, expression) + return stack, expression, dictionary + + +def run(text, stack, dictionary, viewer=None): + ''' + Return the stack resulting from running the Joy code text on the stack. + ''' + expression = text_to_expression(text) + return joy(stack, expression, dictionary, viewer) + + +def repl(stack=(), dictionary=None): + ''' + Read-Evaluate-Print Loop + + Accept input and run it on the stack, loop. + ''' + if dictionary is None: + dictionary = {} + try: + while True: + print() + print(stack_to_string(stack), '<-top') + print() + try: + text = input('joy? ') + except (EOFError, KeyboardInterrupt): + break + viewer = TracePrinter() + try: + stack, _, dictionary = run(text, stack, dictionary, viewer.viewer) + except: + exc = format_exc() # Capture the exception. + viewer.print_() # Print the Joy trace. + print('-' * 73) + print(exc) # Print the original exception. + else: + viewer.print_() + except: + print_exc() + print() + return stack diff --git a/joy/library.py b/joy/library.py new file mode 100644 index 0000000..416a3e3 --- /dev/null +++ b/joy/library.py @@ -0,0 +1,1295 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +from inspect import getdoc +import operator, math + +from .parser import text_to_expression, Symbol +from .utils.stack import list_to_stack, iter_stack, pick, pushback + + +ALIASES = ( + ('add', ['+']), + ('and', ['&']), + ('mul', ['*']), + ('truediv', ['/']), + ('mod', ['%', 'rem', 'remainder', 'modulus']), + ('eq', ['=']), + ('ge', ['>=']), + ('getitem', ['pick', 'at']), + ('gt', ['>']), + ('le', ['<=']), + ('lshift', ['<<']), + ('lt', ['<']), + ('ne', ['<>', '!=']), + ('rshift', ['>>']), + ('sub', ['-']), + ('xor', ['^']), + ('succ', ['++']), + ('pred', ['--']), + ('rolldown', ['roll<']), + ('rollup', ['roll>']), + ('id', ['•']), + ) + + +def add_aliases(D, A=ALIASES): + ''' + Given a dict and a iterable of (name, [alias, ...]) pairs, create + additional entries in the dict mapping each alias to the named function + if it's in the dict. Aliases for functions not in the dict are ignored. + ''' + for name, aliases in A: + try: + F = D[name] + except KeyError: + continue + for alias in aliases: + D[alias] = F + + +definitions = ('''\ +second == rest first +third == rest rest first +of == swap at +product == 1 swap [*] step +swons == swap cons +swoncat == swap concat +flatten == [] swap [concat] step +unit == [] cons +quoted == [unit] dip +unquoted == [i] dip +enstacken == stack [clear] dip +disenstacken == ? [uncons ?] loop pop +? == dup truthy +dinfrirst == dip infra first +nullary == [stack] dinfrirst +unary == [stack [pop] dip] dinfrirst +binary == [stack [popop] dip] dinfrirst +ternary == [stack [popop pop] dip] dinfrirst +pam == [i] map +run == [] swap infra +sqr == dup mul +size == 0 swap [pop ++] step +cleave == [i] app2 [popd] dip +average == [sum 1.0 *] [size] cleave / +gcd == 1 [tuck modulus dup 0 >] loop pop +least_fraction == dup [gcd] infra [div] concat map +*fraction == [uncons] dip uncons [swap] dip concat [*] infra [*] dip cons +*fraction0 == concat [[swap] dip * [*] dip] infra +down_to_zero == [0 >] [dup --] while +range_to_zero == unit [down_to_zero] infra +anamorphism == [pop []] swap [dip swons] genrec +range == [0 <=] [1 - dup] anamorphism +while == swap [nullary] cons dup dipd concat loop +dudipd == dup dipd +primrec == [i] genrec +step_zero == 0 roll> step +''' + +##Zipper +##z-down == [] swap uncons swap +##z-up == swons swap shunt +##z-right == [swons] cons dip uncons swap +##z-left == swons [uncons swap] dip swap + +##Quadratic Formula +##divisor == popop 2 * +##minusb == pop neg +##radical == swap dup * rollup * 4 * - sqrt +##root1 == + swap / +##root2 == - swap / +##q0 == [[divisor] [minusb] [radical]] pam +##q1 == [[root1] [root2]] pam +##quadratic == [q0] ternary i [q1] ternary + +# Project Euler +##'''\ +##PE1.1 == + dup [+] dip +##PE1.2 == dup [3 & PE1.1] dip 2 >> +##PE1.3 == 14811 swap [PE1.2] times pop +##PE1 == 0 0 66 [7 PE1.3] times 4 PE1.3 pop +##''' +#PE1.2 == [PE1.1] step +#PE1 == 0 0 66 [[3 2 1 3 1 2 3] PE1.2] times [3 2 1 3] PE1.2 pop +) + + +class FunctionWrapper(object): + ''' + Allow functions to have a nice repr(). + + At some point it's likely this class and its subclasses would gain + machinery to support type checking and inference. + ''' + + def __init__(self, f): + self.f = f + self.name = f.__name__.rstrip('_') # Don't shadow builtins. + self.__doc__ = f.__doc__ or str(f) + + def __call__(self, stack, expression, dictionary): + ''' + Functions in general receive and return all three. + ''' + return self.f(stack, expression, dictionary) + + def __repr__(self): + return self.name + + +class SimpleFunctionWrapper(FunctionWrapper): + ''' + Wrap functions that take and return just a stack. + ''' + + def __call__(self, stack, expression, dictionary): + return self.f(stack), expression, dictionary + + +class BinaryBuiltinWrapper(FunctionWrapper): + ''' + Wrap functions that take two arguments and return a single result. + ''' + + def __call__(self, stack, expression, dictionary): + (a, (b, stack)) = stack + result = self.f(b, a) + return (result, stack), expression, dictionary + + +class UnaryBuiltinWrapper(FunctionWrapper): + ''' + Wrap functions that take one argument and return a single result. + ''' + + def __call__(self, stack, expression, dictionary): + (a, stack) = stack + result = self.f(a) + return (result, stack), expression, dictionary + + +class DefinitionWrapper(FunctionWrapper): + ''' + Provide implementation of defined functions, and some helper methods. + ''' + + def __init__(self, name, body_text, doc=None): + self.name = self.__name__ = name + self.body = text_to_expression(body_text) + self._body = tuple(iter_stack(self.body)) + self.__doc__ = doc or body_text + + def __call__(self, stack, expression, dictionary): + expression = list_to_stack(self._body, expression) + return stack, expression, dictionary + + @classmethod + def parse_definition(class_, defi): + ''' + Given some text describing a Joy function definition parse it and + return a DefinitionWrapper. + ''' + name, proper, body_text = (n.strip() for n in defi.partition('==')) + if not proper: + raise ValueError('Definition %r failed' % (defi,)) + return class_(name, body_text) + + @classmethod + def add_definitions(class_, defs, dictionary): + for definition in _text_to_defs(defs): + class_.add_def(definition, dictionary) + + @classmethod + def add_def(class_, definition, dictionary): + F = class_.parse_definition(definition) + dictionary[F.name] = F + + +def _text_to_defs(text): + return filter(None, (line.strip() for line in text.splitlines())) + + +# +# Functions +# + + +def parse((text, stack)): + '''Parse the string on the stack to a Joy expression.''' + expression = text_to_expression(text) + return expression, stack + + +def first(((head, tail), stack)): + '''first == uncons pop''' + return head, stack + + +def rest(((head, tail), stack)): + '''rest == uncons popd''' + return tail, stack + + +def truthy(stack): + '''Coerce the item on the top of the stack to its Boolean value.''' + n, stack = stack + return bool(n), stack + + +def getitem(stack): + ''' + getitem == drop first + + Expects an integer and a quote on the stack and returns the item at the + nth position in the quote counting from 0. + + [a b c d] 0 getitem + ------------------------- + a + + ''' + n, (Q, stack) = stack + return pick(Q, n), stack + + +def drop(stack): + ''' + drop == [rest] times + + Expects an integer and a quote on the stack and returns the quote with + n items removed off the top. + + [a b c d] 2 drop + ---------------------- + [c d] + + ''' + n, (Q, stack) = stack + while n > 0: + try: + _, Q = Q + except ValueError: + raise IndexError + n -= 1 + return Q, stack + + +def take(stack): + ''' + Expects an integer and a quote on the stack and returns the quote with + just the top n items in reverse order (because that's easier and you can + use reverse if needed.) + + [a b c d] 2 take + ---------------------- + [b a] + + ''' + n, (Q, stack) = stack + x = () + while n > 0: + try: + item, Q = Q + except ValueError: + raise IndexError + x = item, x + n -= 1 + return x, stack + + +def choice(stack): + ''' + Use a Boolean value to select one of two items. + + A B False choice + ---------------------- + A + + + A B True choice + --------------------- + B + + Currently Python semantics are used to evaluate the "truthiness" of the + Boolean value (so empty string, zero, etc. are counted as false, etc.) + ''' + (if_, (then, (else_, stack))) = stack + return then if if_ else else_, stack + + +def select(stack): + ''' + Use a Boolean value to select one of two items from a sequence. + + [A B] False select + ------------------------ + A + + + [A B] True select + ----------------------- + B + + The sequence can contain more than two items but not fewer. + Currently Python semantics are used to evaluate the "truthiness" of the + Boolean value (so empty string, zero, etc. are counted as false, etc.) + ''' + (flag, (choices, stack)) = stack + (else_, (then, _)) = choices + return then if flag else else_, stack + + +def max_(S): + '''Given a list find the maximum.''' + tos, stack = S + return max(iter_stack(tos)), stack + + +def min_(S): + '''Given a list find the minimum.''' + tos, stack = S + return min(iter_stack(tos)), stack + + +def sum_(S): + '''Given a quoted sequence of numbers return the sum. + + sum == 0 swap [+] step + ''' + tos, stack = S + return sum(iter_stack(tos)), stack + + +def remove(S): + ''' + Expects an item on the stack and a quote under it and removes that item + from the the quote. The item is only removed once. + + [1 2 3 1] 1 remove + ------------------------ + [2 3 1] + + ''' + (tos, (second, stack)) = S + l = list(iter_stack(second)) + l.remove(tos) + return list_to_stack(l), stack + + +def unique(S): + '''Given a list remove duplicate items.''' + tos, stack = S + I = list(iter_stack(tos)) + list_to_stack(sorted(set(I), key=I.index)) + return list_to_stack(sorted(set(I), key=I.index)), stack + + +def sort_(S): + '''Given a list return it sorted.''' + tos, stack = S + return list_to_stack(sorted(iter_stack(tos))), stack + + +def cons(S): + ''' + The cons operator expects a list on top of the stack and the potential + member below. The effect is to add the potential member into the + aggregate. + ''' + (tos, (second, stack)) = S + return (second, tos), stack + + +def uncons(S): + ''' + Inverse of cons, removes an item from the top of the list on the stack + and places it under the remaining list. + ''' + (tos, stack) = S + item, tos = tos + return tos, (item, stack) + + +def clear(stack): + '''Clear everything from the stack. + + ... clear + --------------- + + ''' + return () + + +def dup(S): + '''Duplicate the top item on the stack.''' + (tos, stack) = S + return tos, (tos, stack) + + +def over(S): + ''' + Copy the second item down on the stack to the top of the stack. + + a b over + -------------- + a b a + + ''' + second = S[1][0] + return second, S + + +def tuck(S): + ''' + Copy the item at TOS under the second item of the stack. + + a b tuck + -------------- + b a b + + ''' + (tos, (second, stack)) = S + return tos, (second, (tos, stack)) + + +def swap(S): + '''Swap the top two items on stack.''' + (tos, (second, stack)) = S + return second, (tos, stack) + + +def swaack(stack): + '''swap stack''' + old_stack, stack = stack + return stack, old_stack + + +def stack_(stack): + ''' + The stack operator pushes onto the stack a list containing all the + elements of the stack. + ''' + return stack, stack + + +def unstack(S): + ''' + The unstack operator expects a list on top of the stack and makes that + the stack discarding the rest of the stack. + ''' + (tos, stack) = S + return tos + + +def pop(S): + '''Pop and discard the top item from the stack.''' + (tos, stack) = S + return stack + + +def popd(S): + '''Pop and discard the second item from the stack.''' + (tos, (second, stack)) = S + return tos, stack + + +def popdd(S): + '''Pop and discard the third item from the stack.''' + (tos, (second, (third, stack))) = S + return tos, (second, stack) + + +def popop(S): + '''Pop and discard the first and second items from the stack.''' + (tos, (second, stack)) = S + return stack + + +def dupd(S): + '''Duplicate the second item on the stack.''' + (tos, (second, stack)) = S + return tos, (second, (second, stack)) + + +def reverse(S): + '''Reverse the list on the top of the stack. + + reverse == [] swap shunt + ''' + (tos, stack) = S + res = () + for term in iter_stack(tos): + res = term, res + return res, stack + + +def concat(S): + '''Concatinate the two lists on the top of the stack.''' + (tos, (second, stack)) = S + for term in reversed(list(iter_stack(second))): + tos = term, tos + return tos, stack + + +def shunt((tos, (second, stack))): + ''' + shunt == [swons] step + + Like concat but reverses the top list into the second. + ''' + while tos: + term, tos = tos + second = term, second + return second, stack + + +def zip_(S): + ''' + Replace the two lists on the top of the stack with a list of the pairs + from each list. The smallest list sets the length of the result list. + ''' + (tos, (second, stack)) = S + accumulator = [ + (a, (b, ())) + for a, b in zip(iter_stack(tos), iter_stack(second)) + ] + return list_to_stack(accumulator), stack + + +def succ(S): + '''Increment TOS.''' + (tos, stack) = S + return tos + 1, stack + + +def pred(S): + '''Decrement TOS.''' + (tos, stack) = S + return tos - 1, stack + + +def pm(stack): + ''' + Plus or minus + + a b pm + ------------- + a+b a-b + + ''' + a, (b, stack) = stack + p, m, = b + a, b - a + return m, (p, stack) + + +def floor(n): + return int(math.floor(n)) + +floor.__doc__ = math.floor.__doc__ + + +def divmod_(S): + a, (b, stack) = S + d, m = divmod(a, b) + return d, (m, stack) + +divmod_.__doc__ = divmod.__doc__ + + +def sqrt(a): + ''' + Return the square root of the number a. + Negative numbers return complex roots. + ''' + try: + r = math.sqrt(a) + except ValueError: + assert a < 0, repr(a) + r = math.sqrt(-a) * 1j + return r + + +def rollup(S): + '''a b c -> b c a''' + (a, (b, (c, stack))) = S + return b, (c, (a, stack)) + + +def rolldown(S): + '''a b c -> c a b''' + (a, (b, (c, stack))) = S + return c, (a, (b, stack)) + + +#def execute(S): +# (text, stack) = S +# if isinstance(text, str): +# return run(text, stack) +# return stack + + +def id_(stack): + return stack + + +def void(stack): + form, stack = stack + return _void(form), stack + + +def _void(form): + return any(not _void(i) for i in iter_stack(form)) + + + +## transpose +## sign +## take + + +def words(stack, expression, dictionary): + '''Print all the words in alphabetical order.''' + print(' '.join(sorted(dictionary))) + return stack, expression, dictionary + + +def sharing(stack, expression, dictionary): + '''Print redistribution information.''' + print("You may convey verbatim copies of the Program's source code as" + ' you receive it, in any medium, provided that you conspicuously' + ' and appropriately publish on each copy an appropriate copyright' + ' notice; keep intact all notices stating that this License and' + ' any non-permissive terms added in accord with section 7 apply' + ' to the code; keep intact all notices of the absence of any' + ' warranty; and give all recipients a copy of this License along' + ' with the Program.' + ' You should have received a copy of the GNU General Public License' + ' along with Joypy. If not see .') + return stack, expression, dictionary + + +def warranty(stack, expression, dictionary): + '''Print warranty information.''' + print('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.') + return stack, expression, dictionary + + +# def simple_manual(stack): +# ''' +# Print words and help for each word. +# ''' +# for name, f in sorted(FUNCTIONS.items()): +# d = getdoc(f) +# boxline = '+%s+' % ('-' * (len(name) + 2)) +# print('\n'.join(( +# boxline, +# '| %s |' % (name,), +# boxline, +# d if d else ' ...', +# '', +# '--' * 40, +# '', +# ))) +# return stack + + +def help_(S, expression, dictionary): + '''Accepts a quoted symbol on the top of the stack and prints its docs.''' + ((symbol, _), stack) = S + word = dictionary[symbol] + print(getdoc(word)) + return stack, expression, dictionary + + +# +# § Combinators +# + + +# Several combinators depend on other words in their definitions, +# we use symbols to prevent hard-coding these, so in theory, you +# could change the word in the dictionary to use different semantics. +S_choice = Symbol('choice') +S_first = Symbol('first') +S_getitem = Symbol('getitem') +S_genrec = Symbol('genrec') +S_loop = Symbol('loop') +S_i = Symbol('i') +S_ifte = Symbol('ifte') +S_infra = Symbol('infra') +S_step = Symbol('step') +S_times = Symbol('times') +S_swaack = Symbol('swaack') +S_truthy = Symbol('truthy') + + +def i(stack, expression, dictionary): + ''' + The i combinator expects a quoted program on the stack and unpacks it + onto the pending expression for evaluation. + + [Q] i + ----------- + Q + + ''' + quote, stack = stack + return stack, pushback(quote, expression), dictionary + + +def x(stack, expression, dictionary): + ''' + x == dup i + + ... [Q] x = ... [Q] dup i + ... [Q] x = ... [Q] [Q] i + ... [Q] x = ... [Q] Q + + ''' + quote, _ = stack + return stack, pushback(quote, expression), dictionary + + +def b(stack, expression, dictionary): + ''' + b == [i] dip i + + ... [P] [Q] b == ... [P] i [Q] i + ... [P] [Q] b == ... P Q + + ''' + q, (p, (stack)) = stack + return stack, pushback(p, pushback(q, expression)), dictionary + + +def dupdip(stack, expression, dictionary): + ''' + [F] dupdip == dup [F] dip + + ... a [F] dupdip + ... a dup [F] dip + ... a a [F] dip + ... a F a + + ''' + F, stack = stack + a = stack[0] + return stack, pushback(F, (a, expression)), dictionary + + +def infra(stack, expression, dictionary): + ''' + Accept a quoted program and a list on the stack and run the program + with the list as its stack. + + ... [a b c] [Q] . infra + ----------------------------- + c b a . Q [...] swaack + + ''' + (quote, (aggregate, stack)) = stack + return aggregate, pushback(quote, (stack, (S_swaack, expression))), dictionary + + +def genrec(stack, expression, dictionary): + ''' + General Recursion Combinator. + + [if] [then] [rec1] [rec2] genrec + --------------------------------------------------------------------- + [if] [then] [rec1 [[if] [then] [rec1] [rec2] genrec] rec2] ifte + + From "Recursion Theory and Joy" (j05cmp.html) by Manfred von Thun: + "The genrec combinator takes four program parameters in addition to + whatever data parameters it needs. Fourth from the top is an if-part, + followed by a then-part. If the if-part yields true, then the then-part + is executed and the combinator terminates. The other two parameters are + the rec1-part and the rec2-part. If the if-part yields false, the + rec1-part is executed. Following that the four program parameters and + the combinator are again pushed onto the stack bundled up in a quoted + form. Then the rec2-part is executed, where it will find the bundled + form. Typically it will then execute the bundled form, either with i or + with app2, or some other combinator." + + The way to design one of these is to fix your base case [then] and the + test [if], and then treat rec1 and rec2 as an else-part "sandwiching" + a quotation of the whole function. + + For example, given a (general recursive) function 'F': + + F == [I] [T] [R1] [R2] genrec + + If the [I] if-part fails you must derive R1 and R2 from: + + ... R1 [F] R2 + + Just set the stack arguments in front, and figure out what R1 and R2 + have to do to apply the quoted [F] in the proper way. In effect, the + genrec combinator turns into an ifte combinator with a quoted copy of + the original definition in the else-part: + + F == [I] [T] [R1] [R2] genrec + == [I] [T] [R1 [F] R2] ifte + + (Primitive recursive functions are those where R2 == i. + + P == [I] [T] [R] primrec + == [I] [T] [R [P] i] ifte + == [I] [T] [R P] ifte + ) + ''' + (rec2, (rec1, stack)) = stack + (then, (if_, _)) = stack + F = (if_, (then, (rec1, (rec2, (S_genrec, ()))))) + else_ = pushback(rec1, (F, rec2)) + return (else_, stack), (S_ifte, expression), dictionary + + +def map_(S, expression, dictionary): + ''' + Run the quoted program on TOS on the items in the list under it, push a + new list with the results (in place of the program and original list. + ''' +# (quote, (aggregate, stack)) = S +# results = list_to_stack([ +# joy((term, stack), quote, dictionary)[0][0] +# for term in iter_stack(aggregate) +# ]) +# return (results, stack), expression, dictionary + (quote, (aggregate, stack)) = S + if not aggregate: + return (aggregate, stack), expression, dictionary + batch = () + for term in iter_stack(aggregate): + s = term, stack + batch = (s, (quote, (S_infra, (S_first, batch)))) + stack = (batch, ((), stack)) + return stack, (S_infra, expression), dictionary + + +#def cleave(S, expression, dictionary): +# ''' +# The cleave combinator expects two quotations, and below that an item X. +# It first executes [P], with X on top, and saves the top result element. +# Then it executes [Q], again with X, and saves the top result. +# Finally it restores the stack to what it was below X and pushes the two +# results P(X) and Q(X). +# ''' +# (Q, (P, (x, stack))) = S +# p = joy((x, stack), P, dictionary)[0][0] +# q = joy((x, stack), Q, dictionary)[0][0] +# return (q, (p, stack)), expression, dictionary + + +def branch(stack, expression, dictionary): + ''' + Use a Boolean value to select one of two quoted programs to run. + + branch == roll< choice i + + + False [F] [T] branch + -------------------------- + F + + True [F] [T] branch + ------------------------- + T + + ''' + (then, (else_, (flag, stack))) = stack + return stack, pushback(then if flag else else_, expression), dictionary + + +def ifte(stack, expression, dictionary): + ''' + If-Then-Else Combinator + + ... [if] [then] [else] ifte + --------------------------------------------------- + ... [[else] [then]] [...] [if] infra select i + + + + + ... [if] [then] [else] ifte + ------------------------------------------------------- + ... [else] [then] [...] [if] infra first choice i + + + Has the effect of grabbing a copy of the stack on which to run the + if-part using infra. + ''' + (else_, (then, (if_, stack))) = stack + expression = (S_infra, (S_first, (S_choice, (S_i, expression)))) + stack = (if_, (stack, (then, (else_, stack)))) + return stack, expression, dictionary + + +def dip(stack, expression, dictionary): + ''' + The dip combinator expects a quoted program on the stack and below it + some item, it hoists the item into the expression and runs the program + on the rest of the stack. + + ... x [Q] dip + ------------------- + ... Q x + + ''' + (quote, (x, stack)) = stack + expression = (x, expression) + return stack, pushback(quote, expression), dictionary + + +def dipd(S, expression, dictionary): + ''' + Like dip but expects two items. + + ... y x [Q] dip + --------------------- + ... Q y x + + ''' + (quote, (x, (y, stack))) = S + expression = (y, (x, expression)) + return stack, pushback(quote, expression), dictionary + + +def dipdd(S, expression, dictionary): + ''' + Like dip but expects three items. + + ... z y x [Q] dip + ----------------------- + ... Q z y x + + ''' + (quote, (x, (y, (z, stack)))) = S + expression = (z, (y, (x, expression))) + return stack, pushback(quote, expression), dictionary + + +def app1(S, expression, dictionary): + ''' + Given a quoted program on TOS and anything as the second stack item run + the program and replace the two args with the first result of the + program. + + ... x [Q] . app1 + ----------------------------------- + ... [x ...] [Q] . infra first + ''' + (quote, (x, stack)) = S + stack = (quote, ((x, stack), stack)) + expression = (S_infra, (S_first, expression)) + return stack, expression, dictionary + + +def app2(S, expression, dictionary): + '''Like app1 with two items. + + ... y x [Q] . app2 + ----------------------------------- + ... [y ...] [Q] . infra first + [x ...] [Q] infra first + + ''' + (quote, (x, (y, stack))) = S + expression = (S_infra, (S_first, + ((x, stack), (quote, (S_infra, (S_first, + expression)))))) + stack = (quote, ((y, stack), stack)) + return stack, expression, dictionary + + +def app3(S, expression, dictionary): + '''Like app1 with three items. + + ... z y x [Q] . app3 + ----------------------------------- + ... [z ...] [Q] . infra first + [y ...] [Q] infra first + [x ...] [Q] infra first + + ''' + (quote, (x, (y, (z, stack)))) = S + expression = (S_infra, (S_first, + ((y, stack), (quote, (S_infra, (S_first, + ((x, stack), (quote, (S_infra, (S_first, + expression)))))))))) + stack = (quote, ((z, stack), stack)) + return stack, expression, dictionary + + +def step(S, expression, dictionary): + ''' + Run a quoted program on each item in a sequence. + + ... [] [Q] . step + ----------------------- + ... . + + + ... [a] [Q] . step + ------------------------ + ... a . Q + + + ... [a b c] [Q] . step + ---------------------------------------- + ... a . Q [b c] [Q] step + + The step combinator executes the quotation on each member of the list + on top of the stack. + ''' + (quote, (aggregate, stack)) = S + if not aggregate: + return stack, expression, dictionary + head, tail = aggregate + stack = quote, (head, stack) + if tail: + expression = tail, (quote, (S_step, expression)) + expression = S_i, expression + return stack, expression, dictionary + + +def times(stack, expression, dictionary): + ''' + times == [-- dip] cons [swap] infra [0 >] swap while pop + + ... n [Q] . times + --------------------- w/ n <= 0 + ... . + + + ... 1 [Q] . times + --------------------------------- + ... . Q + + + ... n [Q] . times + --------------------------------- w/ n > 1 + ... . Q (n - 1) [Q] times + + ''' + # times == [-- dip] cons [swap] infra [0 >] swap while pop + (quote, (n, stack)) = stack + if n <= 0: + return stack, expression, dictionary + n -= 1 + if n: + expression = n, (quote, (S_times, expression)) + expression = pushback(quote, expression) + return stack, expression, dictionary + + +# The current definition above works like this: + +# [P] [Q] while +# -------------------------------------- +# [P] nullary [Q [P] nullary] loop + +# while == [pop i not] [popop] [dudipd] primrec + +#def while_(S, expression, dictionary): +# '''[if] [body] while''' +# (body, (if_, stack)) = S +# while joy(stack, if_, dictionary)[0][0]: +# stack = joy(stack, body, dictionary)[0] +# return stack, expression, dictionary + + +def loop(stack, expression, dictionary): + ''' + Basic loop combinator. + + ... True [Q] loop + ----------------------- + ... Q [Q] loop + + ... False [Q] loop + ------------------------ + ... + + ''' + quote, (flag, stack) = stack + if flag: + expression = pushback(quote, (quote, (S_loop, expression))) + return stack, expression, dictionary + + +#def nullary(S, expression, dictionary): +# ''' +# Run the program on TOS and return its first result without consuming +# any of the stack (except the program on TOS.) +# ''' +# (quote, stack) = S +# result = joy(stack, quote, dictionary) +# return (result[0][0], stack), expression, dictionary +# +# +#def unary(S, expression, dictionary): +# (quote, stack) = S +# _, return_stack = stack +# result = joy(stack, quote, dictionary)[0] +# return (result[0], return_stack), expression, dictionary +# +# +#def binary(S, expression, dictionary): +# (quote, stack) = S +# _, (_, return_stack) = stack +# result = joy(stack, quote, dictionary)[0] +# return (result[0], return_stack), expression, dictionary +# +# +#def ternary(S, expression, dictionary): +# (quote, stack) = S +# _, (_, (_, return_stack)) = stack +# result = joy(stack, quote, dictionary)[0] +# return (result[0], return_stack), expression, dictionary + + +builtins = ( + BinaryBuiltinWrapper(operator.add), + BinaryBuiltinWrapper(operator.and_), + BinaryBuiltinWrapper(operator.div), + BinaryBuiltinWrapper(operator.eq), + BinaryBuiltinWrapper(operator.floordiv), + BinaryBuiltinWrapper(operator.ge), + BinaryBuiltinWrapper(operator.gt), + BinaryBuiltinWrapper(operator.le), + BinaryBuiltinWrapper(operator.lshift), + BinaryBuiltinWrapper(operator.lt), + BinaryBuiltinWrapper(operator.mod), + BinaryBuiltinWrapper(operator.mul), + BinaryBuiltinWrapper(operator.ne), + BinaryBuiltinWrapper(operator.or_), + BinaryBuiltinWrapper(operator.pow), + BinaryBuiltinWrapper(operator.rshift), + BinaryBuiltinWrapper(operator.sub), + BinaryBuiltinWrapper(operator.truediv), + BinaryBuiltinWrapper(operator.xor), + + UnaryBuiltinWrapper(abs), + UnaryBuiltinWrapper(floor), + UnaryBuiltinWrapper(operator.neg), + UnaryBuiltinWrapper(operator.not_), + UnaryBuiltinWrapper(sqrt), + ) + + +combinators = ( + FunctionWrapper(app1), + FunctionWrapper(app2), + FunctionWrapper(app3), + FunctionWrapper(b), + FunctionWrapper(branch), +# FunctionWrapper(binary), +# FunctionWrapper(cleave), + FunctionWrapper(dip), + FunctionWrapper(dipd), + FunctionWrapper(dipdd), + FunctionWrapper(dupdip), + FunctionWrapper(genrec), + FunctionWrapper(help_), + FunctionWrapper(i), + FunctionWrapper(ifte), + FunctionWrapper(infra), + FunctionWrapper(loop), + FunctionWrapper(map_), +# FunctionWrapper(nullary), + FunctionWrapper(step), + FunctionWrapper(times), +# FunctionWrapper(ternary), +# FunctionWrapper(unary), +# FunctionWrapper(while_), + FunctionWrapper(words), + FunctionWrapper(x), + ) + + +primitives = ( + SimpleFunctionWrapper(choice), + SimpleFunctionWrapper(clear), + SimpleFunctionWrapper(concat), + SimpleFunctionWrapper(cons), + SimpleFunctionWrapper(divmod_), + SimpleFunctionWrapper(drop), + SimpleFunctionWrapper(dup), + SimpleFunctionWrapper(dupd), + SimpleFunctionWrapper(first), + SimpleFunctionWrapper(getitem), + SimpleFunctionWrapper(id_), + SimpleFunctionWrapper(max_), + SimpleFunctionWrapper(min_), + SimpleFunctionWrapper(over), + SimpleFunctionWrapper(parse), + SimpleFunctionWrapper(pm), + SimpleFunctionWrapper(pop), + SimpleFunctionWrapper(popd), + SimpleFunctionWrapper(popdd), + SimpleFunctionWrapper(popop), + SimpleFunctionWrapper(pred), + SimpleFunctionWrapper(remove), + SimpleFunctionWrapper(rest), + SimpleFunctionWrapper(reverse), + SimpleFunctionWrapper(rolldown), + SimpleFunctionWrapper(rollup), + SimpleFunctionWrapper(select), + SimpleFunctionWrapper(shunt), + SimpleFunctionWrapper(sort_), + SimpleFunctionWrapper(stack_), + SimpleFunctionWrapper(succ), + SimpleFunctionWrapper(sum_), + SimpleFunctionWrapper(swaack), + SimpleFunctionWrapper(swap), + SimpleFunctionWrapper(take), + SimpleFunctionWrapper(truthy), + SimpleFunctionWrapper(tuck), + SimpleFunctionWrapper(uncons), + SimpleFunctionWrapper(unique), + SimpleFunctionWrapper(unstack), + SimpleFunctionWrapper(unstack), + SimpleFunctionWrapper(void), + SimpleFunctionWrapper(zip_), + + FunctionWrapper(sharing), + FunctionWrapper(warranty), + ) + + +def initialize(dictionary=None): + if dictionary is None: + dictionary = {} + dictionary.update((F.name, F) for F in builtins) + dictionary.update((F.name, F) for F in combinators) + dictionary.update((F.name, F) for F in primitives) + add_aliases(dictionary) + DefinitionWrapper.add_definitions(definitions, dictionary) + return dictionary diff --git a/joy/parser.py b/joy/parser.py new file mode 100644 index 0000000..dc6411f --- /dev/null +++ b/joy/parser.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2016, 2017 Simon Forman +# +# This file is part of Joypy. +# +# Joypy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Joypy 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 Joypy. If not see . +# +''' + + +§ Converting text to a joy expression. + +This module exports a single function: + + text_to_expression(text) + +As well as a single Symbol class and a single Exception type: + + ParseError + +When supplied with a string this function returns a Python datastructure +that represents the Joy datastructure described by the text expression. +Any unbalanced square brackets will raise a ParseError. +''' +from re import Scanner +from .utils.stack import list_to_stack + + +class Symbol(str): + __repr__ = str.__str__ + + +def text_to_expression(text): + ''' + Convert a text to a Joy expression. + ''' + return _parse(_tokenize(text)) + + +class ParseError(ValueError): pass + + +def _tokenize(text): + ''' + Convert a text into a stream of tokens, converting symbols using + symbol(token). Raise ValueError (with some of the failing text) + if the scan fails. + ''' + tokens, rest = _scanner.scan(text) + if rest: + raise ParseError( + 'Scan failed at position %i, %r' + % (len(text) - len(rest), rest[:10]) + ) + return tokens + + +def _parse(tokens): + ''' + Return a stack/list expression of the tokens. + ''' + frame = [] + stack = [] + for tok in tokens: + if tok == '[': + stack.append(frame) + frame = [] + stack[-1].append(frame) + elif tok == ']': + try: + frame = stack.pop() + except IndexError: + raise ParseError('One or more extra closing brackets.') + frame[-1] = list_to_stack(frame[-1]) + else: + frame.append(tok) + if stack: + raise ParseError('One or more unclosed brackets.') + return list_to_stack(frame) + + +def _scan_identifier(scanner, token): return Symbol(token) +def _scan_bracket(scanner, token): return token +def _scan_float(scanner, token): return float(token) +def _scan_int(scanner, token): return int(token) +def _scan_dstr(scanner, token): return token[1:-1].replace('\\"', '"') +def _scan_sstr(scanner, token): return token[1:-1].replace("\\'", "'") + + +_scanner = Scanner([ + (r'-?\d+\.\d*', _scan_float), + (r'-?\d+', _scan_int), + (r'[•\w!@$%^&*()_+<>?|\/;:`~,.=-]+', _scan_identifier), + (r'\[|\]', _scan_bracket), + (r'"(?:[^"\\]|\\.)*"', _scan_dstr), + (r"'(?:[^'\\]|\\.)*'", _scan_sstr), + (r'\s+', None), + ]) diff --git a/joy/utils/__init__.py b/joy/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/joy/utils/pretty_print.py b/joy/utils/pretty_print.py new file mode 100644 index 0000000..98b12e6 --- /dev/null +++ b/joy/utils/pretty_print.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2016 Simon Forman +# +# This file is part of Joypy. +# +# Joypy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Joypy 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 Joypy. If not see . +# +''' +Pretty printing support. + +This is what does the formatting, e.g.: + + . 23 18 mul 99 add + 23 . 18 mul 99 add + 23 18 . mul 99 add + 414 . 99 add + 414 99 . add + 513 . + +''' +# (Kinda clunky and hacky. This should be swapped out in favor of much +# smarter stuff.) +from __future__ import print_function +from traceback import print_exc +from .stack import expression_to_string, stack_to_string + + +class TracePrinter(object): + + def __init__(self): + self.history = [] + + def viewer(self, stack, expression): + '''Pass this method as the viewer to joy() function.''' + self.history.append((stack, expression)) + + def __str__(self): + return '\n'.join(self.go()) + + def go(self): + max_stack_length = 0 + lines = [] + for stack, expression in self.history: + stack = stack_to_string(stack) + expression = expression_to_string(expression) + n = len(stack) + if n > max_stack_length: + max_stack_length = n + lines.append((n, '%s . %s' % (stack, expression))) + return [ # Prefix spaces to line up '.'s. + (' ' * (max_stack_length - length) + line) + for length, line in lines + ] + + def print_(self): + try: + print(self) + except: + print_exc() + print('Exception while printing viewer.') diff --git a/joy/utils/stack.py b/joy/utils/stack.py new file mode 100644 index 0000000..e3f8dd9 --- /dev/null +++ b/joy/utils/stack.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +''' + + +§ Stack + + +When talking about Joy we use the terms "stack", "list", "sequence" and +"aggregate" to mean the same thing: a simple datatype that permits +certain operations such as iterating and pushing and popping values from +(at least) one end. + +We use the venerable two-tuple recursive form of sequences where the +empty tuple () is the empty stack and (head, rest) gives the recursive +form of a stack with one or more items on it. + + () + (1, ()) + (2, (1, ())) + (3, (2, (1, ()))) + ... + +And so on. + + +We have two very simple functions to build up a stack from a Python +iterable and also to iterate through a stack and yield its items +one-by-one in order, and two functions to generate string representations +of stacks: + + list_to_stack() + + iter_stack() + + expression_to_string() (prints left-to-right) + + stack_to_string() (prints right-to-left) + + +A word about the stack data structure. + +Python has very nice "tuple packing and unpacking" in its syntax which +means we can directly "unpack" the expected arguments to a Joy function. + +For example: + + def dup(stack): + head, tail = stack + return head, (head, tail) + +We replace the argument "stack" by the expected structure of the stack, +in this case "(head, tail)", and Python takes care of de-structuring the +incoming argument and assigning values to the names. Note that Python +syntax doesn't require parentheses around tuples used in expressions +where they would be redundant. +''' + + +def list_to_stack(el, stack=()): + '''Convert a list (or other sequence) to a stack. + + [1, 2, 3] -> (1, (2, (3, ()))) + + ''' + for item in reversed(el): + stack = item, stack + return stack + + +def iter_stack(stack): + '''Iterate through the items on the stack.''' + while stack: + item, stack = stack + yield item + + +def stack_to_string(stack): + ''' + Return a "pretty print" string for a stack. + + The items are written right-to-left: + + (top, (second, ...)) -> '... second top' + ''' + f = lambda stack: reversed(list(iter_stack(stack))) + return _to_string(stack, f) + + +def expression_to_string(expression): + ''' + Return a "pretty print" string for a expression. + + The items are written left-to-right: + + (top, (second, ...)) -> 'top second ...' + ''' + return _to_string(expression, iter_stack) + + +def _to_string(stack, f): + if isinstance(stack, long): return str(stack).rstrip('L') + if not isinstance(stack, tuple): return repr(stack) + if not stack: return '' # shortcut + return ' '.join(map(_s, f(stack))) + + +_s = lambda s: ( + '[%s]' % expression_to_string(s) if isinstance(s, tuple) + else str(s).rstrip('L') if isinstance(s, long) + else repr(s) + ) + + +def pushback(quote, expression): + '''Concatinate quote onto expression. + + In joy [1 2] [3 4] would become [1 2 3 4]. + ''' + return list_to_stack(list(iter_stack(quote)), expression) + + +def pick(s, n): + ''' + Find the nth item on the stack. (Pick with zero is the same as "dup".) + ''' + if n < 0: + raise ValueError + while True: + try: + item, s = s + except ValueError: + raise IndexError + n -= 1 + if n < 0: + break + return item diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..26e60f9 --- /dev/null +++ b/setup.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright © 2014, 2015, 2017 Simon Forman +# +# This file is part of joy.py +# +# joy.py is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# joy.py 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 joy.py. If not see . +# +from distutils.core import setup +from textwrap import dedent + + +setup( + name='Joypy', + version='0.1', + description='Python Implementation of Joy', + long_description=dedent('''\ + Joy is a programming language created by Manfred von Thun that is easy to + use and understand and has many other nice properties. This Python + package implements an interpreter for a dialect of Joy that attempts to + stay very close to the spirit of Joy but does not precisely match the + behaviour of the original version written in C.'''), + author='Simon Forman', + author_email='forman.simon@gmail.com', + url='https://github.com/calroc/joypy', + packages=['joy', 'joy.utils'], + classifiers=[ + 'Development Status :: 3 - Alpha', + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + 'Programming Language :: Python :: 2.7', + ], + )