diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6a33b2ac99412f909e735899cf6d4df4d860bee4 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +--- +tags: +- intermediate-representation +- retained-checkpoint +--- + +# codebase_ir: 384D retained assets + +This lane contains 2 distinct original checkpoint variants. Each checkpoint uses a content-addressed path and an asset manifest preserving its schema, decoder role, available format/profile binding, codec, source declarations, and companion corpus or embedding assets. Unknown bindings remain unknown. + +Registration and publication do not qualify numerical quality, source-only reconstruction, teacher use, proof authority, or serving. No retained checkpoint is activated for inference. The Legal 768D checkpoint is inherited initialization only; Codebase, Intent, and Security 768D lanes have no retained checkpoints. Codebase 384D envelopes retain their borrowed Security payload identity and are not promoted as complete native Codebase decoders. + +See [releases/20261004-retained-checkpoints-v1/lane-manifest.json](releases/20261004-retained-checkpoints-v1/lane-manifest.json) for exact checkpoint hashes and source mappings. Matching listed implementation sources are preserved, but a complete executable closure is not asserted. Existing assets and embeddings are copied without recomputation. + +Source code retains the repository AGPL-3.0 license; original weights/data licensing is preserved and no new blanket grant is made. diff --git a/releases/20261004-retained-checkpoints-v1/MODEL_CARD.md b/releases/20261004-retained-checkpoints-v1/MODEL_CARD.md new file mode 100644 index 0000000000000000000000000000000000000000..6a33b2ac99412f909e735899cf6d4df4d860bee4 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/MODEL_CARD.md @@ -0,0 +1,15 @@ +--- +tags: +- intermediate-representation +- retained-checkpoint +--- + +# codebase_ir: 384D retained assets + +This lane contains 2 distinct original checkpoint variants. Each checkpoint uses a content-addressed path and an asset manifest preserving its schema, decoder role, available format/profile binding, codec, source declarations, and companion corpus or embedding assets. Unknown bindings remain unknown. + +Registration and publication do not qualify numerical quality, source-only reconstruction, teacher use, proof authority, or serving. No retained checkpoint is activated for inference. The Legal 768D checkpoint is inherited initialization only; Codebase, Intent, and Security 768D lanes have no retained checkpoints. Codebase 384D envelopes retain their borrowed Security payload identity and are not promoted as complete native Codebase decoders. + +See [releases/20261004-retained-checkpoints-v1/lane-manifest.json](releases/20261004-retained-checkpoints-v1/lane-manifest.json) for exact checkpoint hashes and source mappings. Matching listed implementation sources are preserved, but a complete executable closure is not asserted. Existing assets and embeddings are copied without recomputation. + +Source code retains the repository AGPL-3.0 license; original weights/data licensing is preserved and no new blanket grant is made. diff --git a/releases/20261004-retained-checkpoints-v1/SOURCE-LICENSE-AGPL-3.0.txt b/releases/20261004-retained-checkpoints-v1/SOURCE-LICENSE-AGPL-3.0.txt new file mode 100644 index 0000000000000000000000000000000000000000..0ad25db4bd1d86c452db3f9602ccdbe172438f52 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/SOURCE-LICENSE-AGPL-3.0.txt @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 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 Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are 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. + + 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. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + 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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + 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 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 work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + 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 AGPL, see +. diff --git a/releases/20261004-retained-checkpoints-v1/lane-manifest.json b/releases/20261004-retained-checkpoints-v1/lane-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..4ce4d797e4b8664077ac90f240a8b2bf3fa1b006 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/lane-manifest.json @@ -0,0 +1,710 @@ +{ + "authority": "Original byte identities and recorded provenance only.", + "checkpoints": [ + { + "checkpoint": { + "bytes": 1009515, + "path_in_repo": "releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/checkpoint.json", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "codec": null, + "companion_assets": [], + "config": { + "embedding_provenance": { + "assets": [ + { + "bytes": 190, + "name": "1_Pooling/config.json", + "sha256": "4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23" + }, + { + "bytes": 583, + "name": "config.json", + "sha256": "00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59" + }, + { + "bytes": 66746168, + "name": "model.safetensors", + "sha256": "9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2" + }, + { + "bytes": 385, + "name": "modules.json", + "sha256": "73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e" + }, + { + "bytes": 57, + "name": "sentence_bert_config.json", + "sha256": "948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529" + }, + { + "bytes": 125, + "name": "special_tokens_map.json", + "sha256": "b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3" + }, + { + "bytes": 711661, + "name": "tokenizer.json", + "sha256": "da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0" + }, + { + "bytes": 394, + "name": "tokenizer_config.json", + "sha256": "e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7" + }, + { + "bytes": 231508, + "name": "vocab.txt", + "sha256": "07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3" + } + ], + "batch_size": 32, + "device": "cuda", + "dimension": 384, + "dtype": "float32", + "encode_rows_per_second": 2155.864994796075, + "encode_seconds": 0.890593800926581, + "load_seconds": 0.6136547059286386, + "max_tokens_observed": 34, + "model_id": "thenlper/gte-small", + "normalized": true, + "revision": "17e1f347d17fe144873b1201da91788898c639cd", + "rows": 1920, + "truncated": false + }, + "ridges": [ + 0.0001, + 0.001, + 0.01, + 0.1 + ] + }, + "contract": null, + "declaration": { + "decoder_kind": "frozen projection and fixed-tree ridge readout", + "dimension_role": "input_embedding", + "input_width": 384, + "native_codebase_decoder_complete": false, + "owning_ir_family": "codebase_ir", + "payload_ir_family": "security_ir", + "receipt": { + "bytes": 1009515, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/cc/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "role": "registered shared parent envelope" + }, + "full_runtime_closure_verified": false, + "identity": { + "checkpoint_schema": "codebase-source-384-generation@1", + "dimension": 384, + "dimension_role": "input_embedding", + "donor": null, + "donor_pins": null, + "embedded_decoder_schema": "structured-source-384-autoencoder/v1", + "format_id": null, + "initialization_only": false, + "ir_family_id": "codebase_ir", + "legacy_profile": "codebase_ir/source_conditioned_384_v1", + "native_codebase_decoder_complete": false, + "original_checkpoint_pin": { + "bytes": 1009515, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/cc/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "payload_ir_family": "security_ir", + "profile_id": null, + "proof_authority": false, + "record_id": "ir-model-asset-binding/v1:40237a9b6a4dd5723f36fcd80a37ba4d4cadb59067bc2de399c72ea9f96a99d2", + "retained_status": "borrowed_security_payload_unpromoted", + "role": "registered shared parent envelope", + "runtime_ready": false, + "schema_version": null, + "source_profile_id": null, + "task_id": null, + "teacher_qualified": false, + "trained": null + }, + "license_scope": { + "repository_source": "AGPL-3.0, see SOURCE-LICENSE", + "weights_and_companions": "Original provenance retained; this release supplies no new blanket license grant." + }, + "numerical_execution_performed": false, + "original_package": null, + "schema": "retained-ir-checkpoint-release/v1", + "source_binding_scope": "listed checkpoint implementation hashes only, not full import/native closure", + "source_map": [ + { + "declaration_pointer": "/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "original_pin": { + "bytes": 27328, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "sha256": "3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py" + }, + { + "declaration_pointer": "/shared_runtime/legal_codec_sha256", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/decoder.py", + "original_pin": { + "bytes": 24220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/decoder.py", + "sha256": "7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "original_pin": { + "bytes": 11527, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "sha256": "6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/schema.py", + "original_pin": { + "bytes": 27163, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/schema.py", + "sha256": "93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.security_ir.model", + "expected_relative_path": "ipfs_datasets_py/logic/security_ir/model.py", + "original_pin": { + "bytes": 37220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/security_ir/model.py", + "sha256": "abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.software_verification.program", + "expected_relative_path": "ipfs_datasets_py/logic/software_verification/program.py", + "original_pin": { + "bytes": 58065, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/software_verification/program.py", + "sha256": "f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "original_pin": { + "bytes": 8008, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "sha256": "d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57/ipfs_datasets_py/logic/ui_ux_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "original_pin": { + "bytes": 120714, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "sha256": "8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/native/runtime", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "original_pin": { + "bytes": 34679, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "sha256": "66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/canonical_contracts.py", + "expected_relative_path": "ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "original_pin": { + "bytes": 109257, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "sha256": "d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_formula_codec.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_ir_grammar_decoder.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "original_pin": { + "bytes": 146870, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "sha256": "0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/modal_latent_formula.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/tree_pin.py", + "expected_relative_path": "ipfs_datasets_py/logic/autoformal/tree_pin.py", + "original_pin": { + "bytes": 1948, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/autoformal/tree_pin.py", + "sha256": "587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py" + }, + { + "declaration_pointer": "/shared_runtime/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "original_pin": { + "bytes": 31851, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "sha256": "8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py" + } + ], + "unknown_schema_task_profile_policy": "Unknown fields remain null; no family-only alias or default serving route." + }, + { + "checkpoint": { + "bytes": 304490, + "path_in_repo": "releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/checkpoint.json", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "codec": null, + "companion_assets": [], + "config": { + "embedding_provenance": { + "assets": [ + { + "bytes": 190, + "name": "1_Pooling/config.json", + "sha256": "4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23" + }, + { + "bytes": 583, + "name": "config.json", + "sha256": "00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59" + }, + { + "bytes": 66746168, + "name": "model.safetensors", + "sha256": "9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2" + }, + { + "bytes": 385, + "name": "modules.json", + "sha256": "73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e" + }, + { + "bytes": 57, + "name": "sentence_bert_config.json", + "sha256": "948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529" + }, + { + "bytes": 125, + "name": "special_tokens_map.json", + "sha256": "b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3" + }, + { + "bytes": 711661, + "name": "tokenizer.json", + "sha256": "da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0" + }, + { + "bytes": 394, + "name": "tokenizer_config.json", + "sha256": "e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7" + }, + { + "bytes": 231508, + "name": "vocab.txt", + "sha256": "07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3" + } + ], + "batch_size": 32, + "device": "cuda", + "dimension": 384, + "dtype": "float32", + "encode_rows_per_second": 2155.864994796075, + "encode_seconds": 0.890593800926581, + "load_seconds": 0.6136547059286386, + "max_tokens_observed": 34, + "model_id": "thenlper/gte-small", + "normalized": true, + "revision": "17e1f347d17fe144873b1201da91788898c639cd", + "rows": 1920, + "truncated": false + }, + "ridges": [ + 0.0001, + 0.001, + 0.01, + 0.1 + ] + }, + "contract": null, + "declaration": { + "decoder_budget_unit": "fixed schema/scalar slots", + "development_child_exact": "0/9", + "development_parent_exact": "9/9", + "dimension_role": "input_embedding", + "input_width": 384, + "parent_pretraining_independence": "unknown", + "payload_ir_family": "security_ir", + "promoted": false, + "receipt": { + "bytes": 304490, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/06/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "role": "unpromoted repository child envelope" + }, + "full_runtime_closure_verified": false, + "identity": { + "checkpoint_schema": "codebase-source-384-generation@1", + "dimension": 384, + "dimension_role": "input_embedding", + "donor": null, + "donor_pins": null, + "embedded_decoder_schema": "structured-source-384-autoencoder/v1", + "format_id": null, + "initialization_only": false, + "ir_family_id": "codebase_ir", + "legacy_profile": "codebase_ir/source_conditioned_384_v1", + "native_codebase_decoder_complete": false, + "original_checkpoint_pin": { + "bytes": 304490, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/06/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "payload_ir_family": "security_ir", + "profile_id": null, + "proof_authority": false, + "record_id": "ir-model-asset-binding/v1:327b68fdd5889632e5752370a9c168a80ada5597436264fb1d6fb5fc483e778f", + "retained_status": "borrowed_security_payload_unpromoted", + "role": "unpromoted repository child envelope", + "runtime_ready": false, + "schema_version": null, + "source_profile_id": null, + "task_id": null, + "teacher_qualified": false, + "trained": null + }, + "license_scope": { + "repository_source": "AGPL-3.0, see SOURCE-LICENSE", + "weights_and_companions": "Original provenance retained; this release supplies no new blanket license grant." + }, + "numerical_execution_performed": false, + "original_package": null, + "schema": "retained-ir-checkpoint-release/v1", + "source_binding_scope": "listed checkpoint implementation hashes only, not full import/native closure", + "source_map": [ + { + "declaration_pointer": "/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "original_pin": { + "bytes": 27328, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "sha256": "3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py" + }, + { + "declaration_pointer": "/shared_runtime/legal_codec_sha256", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/decoder.py", + "original_pin": { + "bytes": 24220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/decoder.py", + "sha256": "7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "original_pin": { + "bytes": 11527, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "sha256": "6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/schema.py", + "original_pin": { + "bytes": 27163, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/schema.py", + "sha256": "93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.security_ir.model", + "expected_relative_path": "ipfs_datasets_py/logic/security_ir/model.py", + "original_pin": { + "bytes": 37220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/security_ir/model.py", + "sha256": "abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.software_verification.program", + "expected_relative_path": "ipfs_datasets_py/logic/software_verification/program.py", + "original_pin": { + "bytes": 58065, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/software_verification/program.py", + "sha256": "f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "original_pin": { + "bytes": 7300, + "path": "/home/barberb/lift_coding/artifacts/ir-original-corpus-replay-20261003/inputs/legal-original/ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "sha256": "21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3/ipfs_datasets_py/logic/ui_ux_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "original_pin": { + "bytes": 120714, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "sha256": "8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/native/runtime", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "original_pin": { + "bytes": 34679, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "sha256": "66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/canonical_contracts.py", + "expected_relative_path": "ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "original_pin": { + "bytes": 109257, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "sha256": "d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_formula_codec.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_ir_grammar_decoder.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "original_pin": { + "bytes": 146870, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "sha256": "0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/modal_latent_formula.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/tree_pin.py", + "expected_relative_path": "ipfs_datasets_py/logic/autoformal/tree_pin.py", + "original_pin": { + "bytes": 1948, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/autoformal/tree_pin.py", + "sha256": "587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py" + }, + { + "declaration_pointer": "/shared_runtime/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "original_pin": { + "bytes": 31851, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "sha256": "8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py" + } + ], + "unknown_schema_task_profile_policy": "Unknown fields remain null; no family-only alias or default serving route." + } + ], + "dimension": 384, + "empty_lane": false, + "input_audit_pins": [ + { + "bytes": 661812, + "path": "/home/barberb/lift_coding/artifacts/ir-model-manager-hf-sync-20261004/publication_inventory_audit.json", + "sha256": "8e857941cee73c75e8dc4ac7aa5df604e8953aa9dc87ec00bd2f83c0677e93ae" + }, + { + "bytes": 1033525, + "path": "/home/barberb/lift_coding/artifacts/ir-model-manager-hf-sync-20261004/publication_source_binding_audit.json", + "sha256": "1ae36985f031ac16fa989cb4ec27f1ec49fdebf2d769b771c7db491dec1f6d9a" + } + ], + "ir_family_id": "codebase_ir", + "original_lane_declaration": { + "cell_id": "codebase_ir_384d", + "checkpoint_count": 2, + "dimension": 384, + "dimension_profile": { + "dimension": 384, + "dimension_role_required": true, + "encoder_kind": "GTE-small source embedding for source-conditioned tasks", + "hard_encoder_token_limit": 512, + "model_id": "thenlper/gte-small", + "model_revision": "17e1f347d17fe144873b1201da91788898c639cd", + "normalization": "l2", + "pooling": "mean", + "qualified_source_token_limit": null, + "unknown_limit_policy": "freeze task/span-specific admitted budget within encoder ceiling; historical compiler profiles remain separate" + }, + "empty_model_lane": false, + "huggingface_plan": { + "existing_descriptor_source": null, + "existing_read_only_descriptors": [], + "load_requires": [ + "full immutable commit", + "manifest SHA256", + "matching family/dimension role/task/profile/codec", + "actual checkpoint SHA256" + ], + "namespace_write_access_verified": false, + "release_path_template": "releases////", + "repo_type": "model", + "repository_id_template": "/codebase-ir-autoencoder-384d", + "status": "proposed_not_created", + "suggested_namespace_from_existing_release_descriptors": "Publicus", + "suggested_repository_id": "Publicus/codebase-ir-autoencoder-384d", + "visibility": null, + "visibility_status": "explicit deployment configuration required; no visibility changes performed during planning" + }, + "inventory_receipt": { + "bytes": 8393, + "path": "/home/barberb/lift_coding/artifacts/codebase-ir-numerical-replay-20261003/inputs/inventories/codebase_ir/384d.json", + "sha256": "d01836c6d11996d6d4e88a7d2722fca63004ed4fea19e08f331db65903b4fdc4" + }, + "ir_family_id": "codebase_ir", + "reference_checks": [ + { + "kind": "checkpoint", + "receipt": { + "bytes": 1009515, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/cc/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "status": "verified" + }, + { + "kind": "checkpoint", + "receipt": { + "bytes": 304490, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/06/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "status": "verified" + } + ], + "task_profiles_to_inventory": [ + "source_to_native_ir", + "structural_reconstruction", + "native_ir_to_logic", + "native_ir_to_source", + "retained_source_byte_restoration" + ], + "unsupported_checkpoint_deserialization_for_runtime": false + }, + "qualified_runtime_count": 0, + "repository_id": "Publicus/codebase-ir-autoencoder-384d", + "schema": "retained-ir-lane-release/v1", + "teacher_qualified_count": 0, + "trained_768_model_count": 0 +} diff --git a/releases/20261004-retained-checkpoints-v1/original-lane-inventory.json b/releases/20261004-retained-checkpoints-v1/original-lane-inventory.json new file mode 100644 index 0000000000000000000000000000000000000000..7b26176306dc50c66a580c50924f33b3fb5901e1 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/original-lane-inventory.json @@ -0,0 +1,193 @@ +{ + "schema": "ir-family-dimension-inventory-plan/v1", + "status": "declarative_plan_not_runtime_inventory", + "cell_id": "codebase_ir_384d", + "ir_family_id": "codebase_ir", + "dimension": 384, + "store_id_proposed": "ir-cell:codebase_ir:384d", + "store_identity_dimensions": [ + "ir_family_id", + "dimension" + ], + "variant_identity_additions": [ + "dimension_role", + "task_id", + "input_representation_profile", + "encoder_tokenizer_revisions", + "decoder_architecture", + "target_ir_family", + "target_schema", + "target_codec", + "input_budget", + "output_budget", + "span_profile", + "objective_implementation" + ], + "native_semantics": [ + "observed code and source versions", + "typed ProgramIR/contracts", + "calls/effects/dependencies", + "native Codebase grammar and code inverse" + ], + "canonical_ir_identity_depends_on_model_dimension": false, + "storage": { + "status": "planned_not_created", + "root_template": "/codebase_ir/384d", + "inventory_export": "/codebase_ir/384d/inventory.json", + "registry_database": "/codebase_ir/384d/registry.duckdb", + "index_database": "/codebase_ir/384d/index.duckdb", + "ducklake_catalog_database": "/codebase_ir/384d/lake/catalog.duckdb", + "ducklake_data_prefix": "/codebase_ir/384d/lake/data/", + "mutable_artifact_root": "/codebase_ir/384d/artifacts/", + "run_namespace": "/codebase_ir/384d/runs////", + "database_writer_policy": "separate serialized owner per physical database; registry forbids foreign tables", + "canonical_repository_source_owner": "RepositoryCodebaseIndex captures repository code once; cell indexes reference exact admitted source/semantic heads when relevant", + "family_source_owner": "Canonical repository/source snapshot and source-correspondence owners", + "source_roots_required": [ + "family source/corpus version and complete span/context manifest", + "repository source/semantic roots when code-grounding applies", + "applicability source revisions and both typed join endpoint roots" + ], + "ducklake_layout_adapter_required": true, + "current_isolated_history_limits": { + "metadata_name": "history.ducklake", + "byte_cap": 268435456, + "production_supported": false + } + }, + "huggingface": { + "status": "proposed_not_created", + "repo_type": "model", + "repository_id_template": "/codebase-ir-autoencoder-384d", + "suggested_namespace_from_existing_release_descriptors": "Publicus", + "suggested_repository_id": "Publicus/codebase-ir-autoencoder-384d", + "namespace_write_access_verified": false, + "release_path_template": "releases////", + "load_requires": [ + "full immutable commit", + "manifest SHA256", + "matching family/dimension role/task/profile/codec", + "actual checkpoint SHA256" + ], + "existing_read_only_descriptors": [], + "existing_descriptor_source": null, + "visibility": null, + "visibility_status": "explicit deployment configuration required; no visibility changes performed during planning" + }, + "dimension_profile": { + "dimension": 384, + "encoder_kind": "GTE-small source embedding for source-conditioned tasks", + "model_id": "thenlper/gte-small", + "model_revision": "17e1f347d17fe144873b1201da91788898c639cd", + "hard_encoder_token_limit": 512, + "qualified_source_token_limit": null, + "pooling": "mean", + "normalization": "l2", + "unknown_limit_policy": "freeze task/span-specific admitted budget within encoder ceiling; historical compiler profiles remain separate", + "dimension_role_required": true + }, + "task_profiles_to_inventory": [ + "source_to_native_ir", + "structural_reconstruction", + "native_ir_to_logic", + "native_ir_to_source", + "retained_source_byte_restoration" + ], + "source_only_raw_text_decoder_admission": "not asserted by this plan; task/profile evidence and complete source access must be qualified independently", + "existing_checkpoint_evidence": [ + { + "role": "registered shared parent envelope", + "receipt": { + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/cc/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f", + "bytes": 1009515, + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "dimension_role": "input_embedding", + "input_width": 384, + "owning_ir_family": "codebase_ir", + "payload_ir_family": "security_ir", + "decoder_kind": "frozen projection and fixed-tree ridge readout", + "native_codebase_decoder_complete": false + }, + { + "role": "unpromoted repository child envelope", + "receipt": { + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/06/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930", + "bytes": 304490, + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "dimension_role": "input_embedding", + "input_width": 384, + "payload_ir_family": "security_ir", + "development_parent_exact": "9/9", + "development_child_exact": "0/9", + "parent_pretraining_independence": "unknown", + "decoder_budget_unit": "fixed schema/scalar slots", + "promoted": false + } + ], + "checkpoint_discovery_complete": false, + "existing_cached_vector_rows": [], + "cached_codebase_rows_in_previous2640_transfer_inventory": 0, + "old_asset_policy": "Adopt authenticated read-only references. No recomputation, relabeling, in-place training or physical migration during planning.", + "span_curriculum": [ + { + "stage_id": "S0", + "subject_scope": "same inherited expression cohort", + "qualified_input_budget": null, + "qualified_output_budget": null, + "budget_status": "freeze from pinned-tokenizer/codec measurements before fitting", + "requires_complete_span_accounting": true + }, + { + "stage_id": "S1", + "subject_scope": "complete supported expression/function", + "qualified_input_budget": null, + "qualified_output_budget": null, + "budget_status": "freeze from pinned-tokenizer/codec measurements before fitting", + "requires_complete_span_accounting": true + }, + { + "stage_id": "S2", + "subject_scope": "connected calls/import context", + "qualified_input_budget": null, + "qualified_output_budget": null, + "budget_status": "freeze from pinned-tokenizer/codec measurements before fitting", + "requires_complete_span_accounting": true + }, + { + "stage_id": "S3", + "subject_scope": "complete supported function/module unit", + "qualified_input_budget": null, + "qualified_output_budget": null, + "budget_status": "freeze from pinned-tokenizer/codec measurements before fitting", + "requires_complete_span_accounting": true + }, + { + "stage_id": "S4", + "subject_scope": "sealed module/dependency-slice aggregation", + "qualified_input_budget": null, + "qualified_output_budget": null, + "budget_status": "freeze from pinned-tokenizer/codec measurements before fitting", + "requires_complete_span_accounting": true + } + ], + "independent_heads": [ + "source_applicability", + "serving_model_by_task_profile", + "candidate_training", + "lake_history_delivery", + "hub_publication" + ], + "promotion_policy": "Independent family/task/profile gate; original parent and shorter-span replay retained; another cell cannot grant qualification.", + "notes": [ + "Existing wrapper retains SecurityIR numerical payload; native Codebase codec/head and source-successor coverage require separate qualification." + ], + "runtime_databases_created": false, + "remote_repository_created": false, + "model_or_embeddings_modified": false, + "continuation_and_transfer_policy": { + "same_variant_resume_parent_required": true, + "cross_cell_or_contract_transfer": "Use authenticated donor store/version/checkpoint refs and explicit transfer/KD edge, then initialize a new compatible variant; never fake same-variant parentage." + } +} diff --git a/releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py b/releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..446ea6eb734d8586a060f64fc56bf198e312aabe --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py @@ -0,0 +1,4138 @@ +"""Typed constrained decoding for LegalIR candidates. + +The learned LegalIR heads are allowed to rank candidate productions, but they +must not receive metric reward for output that a deterministic compiler could +never consume. This module validates decoded LegalIR payloads against compact +typed grammars before semantic metrics are scored. It is intentionally +dependency-free and JSON-shape based so it can guard adapter outputs, +autoencoder targets, and rollout artifacts uniformly. +""" + +from __future__ import annotations + +import hashlib +import json +import math +import re +from collections.abc import Callable, Mapping, Sequence +from dataclasses import dataclass, field +from typing import Any, Final, Optional + +from .legal_ir_family_evaluator import canonical_legal_ir_evaluation_family + + +LEGAL_IR_GRAMMAR_DECODER_SCHEMA_VERSION: Final = "legal-ir-typed-grammar-decoder-v1" +LEGAL_IR_CONSTRAINED_DECODER_SCHEMA: Final = "IRConstrainedDecoder@1" +LEGAL_IR_CONSTRAINED_DECODER_INTERFACE: Final = ( + "proof-grounded-ir-learning/constrained-decoder/v1" +) +LEGAL_IR_MAX_BEAM_WIDTH: Final = 16 +LEGAL_IR_MAX_DECODE_STEPS: Final = 64 +LEGAL_IR_CONSTRAINT_MASK_NAMES: Final[tuple[str, ...]] = ( + "valid_token", + "grammar", + "binder", + "type", + "family", +) +LEGAL_IR_DECODE_FALLBACKS: Final[tuple[str, ...]] = ( + "reject", + "eos", + "gold_if_admitted", +) +LEGAL_IR_FROZEN_TOKENIZER_SCHEMA_VERSION: Final = "legal-ir-frozen-tokenizer-v1" +LEGAL_IR_FROZEN_VOCABULARY_SCHEMA: Final = "IRFrozenTokenizerVocabulary@1" +LEGAL_IR_FROZEN_TOKENIZER_INTERFACE: Final = ( + "proof-grounded-ir-learning/canonical-frozen-tokenizer/v1" +) +LEGAL_IR_IDENTIFIER_BUCKET_COUNT: Final = 32 +LEGAL_IR_CANONICAL_VOCABULARY_SIZE: Final = 143 +LEGAL_IR_CANONICAL_VOCABULARY_CID: Final = ( + "sha256:8782ea363f422557c7a1f62442fe376fb6586f90a679bebb4ba60824de425c1b" +) +LEGAL_IR_TOKEN_CLASSES: Final[tuple[str, ...]] = ( + "padding", + "special", + "binder", + "operator", + "type", + "family", + "proof", + "tactic", + "source", + "identifier", + "production", + "source_surface", +) +LEGAL_IR_CLOSED_TOKEN_CLASSES: Final[frozenset[str]] = frozenset( + { + "padding", + "special", + "binder", + "operator", + "type", + "family", + "proof", + "tactic", + "source", + "production", + } +) +LEGAL_IR_GRAMMAR_FAMILIES: Final[tuple[str, ...]] = ( + "deontic", + "frame_logic", + "tdfol", + "knowledge_graphs", + "cec", + "external_provers", + "decompiler", + "temporal", + "provenance", +) + +_FAMILY_ALIASES: Final[Mapping[str, str]] = { + "deontic": "deontic", + "deontic_ir": "deontic", + "deontic.ir": "deontic", + "frame": "frame_logic", + "frame_logic": "frame_logic", + "flogic": "frame_logic", + "modal.frame_logic": "frame_logic", + "tdfol": "tdfol", + "tdfol.prover": "tdfol", + "kg": "knowledge_graphs", + "knowledge_graph": "knowledge_graphs", + "knowledge_graphs": "knowledge_graphs", + "knowledge_graphs.neo4j_compat": "knowledge_graphs", + "cec": "cec", + "cec.native": "cec", + "external_prover": "external_provers", + "external_provers": "external_provers", + "prover": "external_provers", + "decompiler": "decompiler", + "decompiler_plan": "decompiler", + "temporal": "temporal", + "temporal_logic": "temporal", + "provenance": "provenance", +} + +_PLACEHOLDER_RE: Final = re.compile( + r"(\{\{[^}]*\}\}|<[^>]*(?:source|placeholder|todo|copy)[^>]*>|" + r"\b(?:todo|tbd|placeholder|source_text|raw_source|copy_source|lorem ipsum)\b|" + r"__[^_]*(?:source|placeholder|todo)[^_]*__)", + re.IGNORECASE, +) +_SOURCE_TEXT_FIELD_RE: Final = re.compile( + r"^(?:raw_source|source_text|copied_text|verbatim_text|source_copy)$", + re.IGNORECASE, +) +_IDENT_RE: Final = re.compile(r"^[A-Za-z_][A-Za-z0-9_.:-]*$") + + +@dataclass(frozen=True, slots=True) +class LegalIRProductionSpec: + """One typed production admitted by a LegalIR family grammar.""" + + name: str + family: str + output_type: str + required_fields: tuple[str, ...] + optional_fields: tuple[str, ...] = () + description: str = "" + + def to_dict(self) -> dict[str, Any]: + return { + "description": self.description, + "family": self.family, + "name": self.name, + "optional_fields": list(self.optional_fields), + "output_type": self.output_type, + "required_fields": list(self.required_fields), + } + + +@dataclass(frozen=True, slots=True) +class LegalIRGrammarRejection: + """Structured reason for rejecting a candidate or production.""" + + reason: str + path: str = "$" + family: str = "unscoped" + production: str = "" + detail: str = "" + + def to_dict(self) -> dict[str, str]: + return { + "detail": self.detail, + "family": self.family, + "path": self.path, + "production": self.production, + "reason": self.reason, + } + + +@dataclass(frozen=True, slots=True) +class LegalIRGrammarValidation: + """Validation result for one candidate IR object.""" + + accepted: bool + family: str + candidate_ir: Any + rejection_reasons: tuple[LegalIRGrammarRejection, ...] = () + selected_productions: tuple[str, ...] = () + masked_productions: tuple[str, ...] = () + schema_version: str = LEGAL_IR_GRAMMAR_DECODER_SCHEMA_VERSION + + @property + def rejection_reason_names(self) -> tuple[str, ...]: + return tuple(reason.reason for reason in self.rejection_reasons) + + @property + def syntactic_validity_success_rate(self) -> float: + return 1.0 if self.accepted else 0.0 + + @property + def source_copy_placeholder_penalty(self) -> float: + return ( + 1.0 + if any( + reason.reason in {"source_copy_placeholder", "raw_source_copy_field"} + for reason in self.rejection_reasons + ) + else 0.0 + ) + + def metrics(self) -> dict[str, float]: + rejection_count = float(len(self.rejection_reasons)) + invalid = 0.0 if self.accepted else 1.0 + values: dict[str, float] = { + "legal_ir_grammar_accepted": 1.0 if self.accepted else 0.0, + "legal_ir_grammar_invalid_production_penalty": invalid, + "legal_ir_grammar_rejection_count": rejection_count, + "legal_ir_grammar_rejection_ratio": invalid, + "legal_ir_grammar_source_copy_placeholder_penalty": ( + self.source_copy_placeholder_penalty + ), + "legal_ir_grammar_syntactic_validity_success_rate": ( + self.syntactic_validity_success_rate + ), + } + for reason in self.rejection_reasons: + values[f"legal_ir_grammar_rejection_reason_{_metric_slug(reason.reason)}"] = 1.0 + return values + + def to_dict(self) -> dict[str, Any]: + return { + "accepted": self.accepted, + "candidate_digest": _stable_digest(self.candidate_ir), + "family": self.family, + "masked_productions": list(self.masked_productions), + "metrics": self.metrics(), + "rejection_reasons": [reason.to_dict() for reason in self.rejection_reasons], + "schema_version": self.schema_version, + "selected_productions": list(self.selected_productions), + } + + +@dataclass(frozen=True, slots=True) +class ConstrainedLegalIRDecode: + """Result of masking and selecting from scored LegalIR productions.""" + + accepted: bool + family: str + decoded_ir: Any + selected_production: str = "" + selected_score: float = 0.0 + valid_scores: Mapping[str, float] = field(default_factory=dict) + masked_scores: Mapping[str, float] = field(default_factory=dict) + validation: LegalIRGrammarValidation = field( + default_factory=lambda: LegalIRGrammarValidation( + accepted=False, + family="unscoped", + candidate_ir=None, + rejection_reasons=(LegalIRGrammarRejection(reason="no_candidate", family="unscoped"),), + ) + ) + schema_version: str = LEGAL_IR_GRAMMAR_DECODER_SCHEMA_VERSION + + @property + def rejection_reasons(self) -> tuple[LegalIRGrammarRejection, ...]: + return self.validation.rejection_reasons + + def to_dict(self) -> dict[str, Any]: + return { + "accepted": self.accepted, + "decoded_ir": self.decoded_ir if self.accepted else None, + "family": self.family, + "masked_scores": { + str(name): round(float(score), 12) + for name, score in sorted(self.masked_scores.items()) + }, + "rejection_reasons": [reason.to_dict() for reason in self.rejection_reasons], + "schema_version": self.schema_version, + "selected_production": self.selected_production, + "selected_score": round(float(self.selected_score), 12), + "valid_scores": { + str(name): round(float(score), 12) + for name, score in sorted(self.valid_scores.items()) + }, + "validation": self.validation.to_dict(), + } + + +class LegalIRGrammarDecoder: + """Validate and decode LegalIR candidates with family-specific grammars.""" + + def __init__( + self, + *, + production_specs: Optional[Sequence[LegalIRProductionSpec]] = None, + tokenizer: Optional["LegalIRFrozenTokenizer"] = None, + ) -> None: + specs = tuple(production_specs or default_legal_ir_production_specs()) + self.production_specs: dict[str, LegalIRProductionSpec] = { + spec.name: spec for spec in specs + } + self._frozen_tokenizer = tokenizer + self.productions_by_family: dict[str, tuple[str, ...]] = {} + for spec in specs: + family = canonical_legal_ir_grammar_family(spec.family) + self.productions_by_family.setdefault(family, ()) + self.productions_by_family[family] = ( + *self.productions_by_family[family], + spec.name, + ) + + def validate( + self, + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", + production: str = "", + ) -> LegalIRGrammarValidation: + family_name = infer_legal_ir_grammar_family(candidate_ir, family=family) + candidate = _mapping_or_sequence(candidate_ir) + rejections: list[LegalIRGrammarRejection] = [] + + if candidate is None: + rejections.append( + LegalIRGrammarRejection( + reason="candidate_not_structured", + family=family_name, + production=production, + detail=type(candidate_ir).__name__, + ) + ) + return _validation(candidate_ir, family_name, rejections, production) + + rejections.extend( + _source_copy_rejections( + candidate, + source_text=source_text, + family=family_name, + production=production, + ) + ) + family_validator = _FAMILY_VALIDATORS.get(family_name) + if family_validator is None: + rejections.append( + LegalIRGrammarRejection( + reason="unsupported_family", + family=family_name, + production=production, + ) + ) + else: + rejections.extend(family_validator(candidate, family_name, production)) + return _validation(candidate_ir, family_name, rejections, production) + + def mask_invalid_productions( + self, + scored_productions: Mapping[str, Any] | Sequence[Any], + *, + family: str = "", + source_text: str = "", + context: Optional[Mapping[str, Any]] = None, + ) -> ConstrainedLegalIRDecode: + """Remove invalid productions before downstream metrics see them.""" + + rows = _production_rows(scored_productions, context=context) + valid_scores: dict[str, float] = {} + masked_scores: dict[str, float] = {} + validations: dict[str, LegalIRGrammarValidation] = {} + for row in rows: + name = row["name"] + score = row["score"] + output = row.get("output") + row_family = row.get("family") or family + validation = self.validate( + output, + family=str(row_family or ""), + source_text=source_text, + production=name, + ) + validations[name] = validation + if validation.accepted: + valid_scores[name] = score + else: + masked_scores[name] = score + + if valid_scores: + selected = max(valid_scores, key=lambda item: (valid_scores[item], item)) + validation = validations[selected] + return ConstrainedLegalIRDecode( + accepted=True, + family=validation.family, + decoded_ir=validation.candidate_ir, + selected_production=selected, + selected_score=valid_scores[selected], + valid_scores=valid_scores, + masked_scores=masked_scores, + validation=validation, + ) + + reasons: list[LegalIRGrammarRejection] = [] + selected_family = canonical_legal_ir_grammar_family(family or "decompiler") + for validation in validations.values(): + selected_family = validation.family + reasons.extend(validation.rejection_reasons) + if not reasons: + reasons.append( + LegalIRGrammarRejection( + reason="no_productions", + family=selected_family, + ) + ) + validation = LegalIRGrammarValidation( + accepted=False, + family=selected_family, + candidate_ir=None, + rejection_reasons=tuple(_dedupe_rejections(reasons)), + masked_productions=tuple(sorted(masked_scores)), + ) + return ConstrainedLegalIRDecode( + accepted=False, + family=selected_family, + decoded_ir=None, + valid_scores={}, + masked_scores=masked_scores, + validation=validation, + ) + + def decode( + self, + scored_productions: Mapping[str, Any] | Sequence[Any], + *, + family: str = "", + source_text: str = "", + context: Optional[Mapping[str, Any]] = None, + ) -> ConstrainedLegalIRDecode: + return self.mask_invalid_productions( + scored_productions, + family=family, + source_text=source_text, + context=context, + ) + + def frozen_tokenizer(self) -> "LegalIRFrozenTokenizer": + """Return the decoder-bound frozen tokenizer without mutating vocabulary.""" + + if self._frozen_tokenizer is None: + self._frozen_tokenizer = LegalIRFrozenTokenizer.canonical() + return self._frozen_tokenizer + + def encode_structured_output( + self, + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", + ) -> "LegalIRTokenization": + """Validate then freeze-encode a structured LegalIR payload.""" + + validation = self.validate( + candidate_ir, + family=family, + source_text=source_text, + ) + return self.frozen_tokenizer().encode_canonical( + candidate_ir, + family=validation.family, + source_text=source_text, + accepted=validation.accepted, + ) + + def compatible_learned_architectures( + self, + *, + seed: int = 0, + ) -> dict[str, Any]: + """Build both experiment arms on this decoder's frozen tokenizer.""" + + return compatible_architecture_suite( + seed=seed, + tokenizer=self.frozen_tokenizer(), + ) + + def constraint_masks( + self, + prefix_ids: Sequence[int] = (), + *, + family: str = "", + proof_state: Optional[Mapping[str, Any]] = None, + config: Optional["LegalIRConstrainedDecodeConfig"] = None, + ) -> "LegalIRConstraintMasks": + """Return inspectable valid-token/grammar/binder/type/family masks.""" + + return legal_ir_constraint_masks( + prefix_ids, + family=family, + tokenizer=self.frozen_tokenizer(), + proof_state=proof_state, + config=config, + ) + + def decode_tokens( + self, + logits: Any = None, + *, + family: str = "", + source_text: str = "", + gold_token_ids: Optional[Sequence[int]] = None, + gold_ir: Any = None, + proof_state: Optional[Mapping[str, Any]] = None, + architecture: Any = None, + config: Optional["LegalIRConstrainedDecodeConfig"] = None, + ) -> "LegalIRConstrainedTokenDecode": + """Run bounded, mask-constrained token decoding.""" + + return constrained_legal_ir_token_decode( + logits, + family=family, + source_text=source_text, + gold_token_ids=gold_token_ids, + gold_ir=gold_ir, + proof_state=proof_state, + architecture=architecture, + tokenizer=self.frozen_tokenizer(), + config=config, + ) + + def admit_gold_path( + self, + gold_token_ids: Sequence[int] | None = None, + *, + gold_ir: Any = None, + family: str = "", + proof_state: Optional[Mapping[str, Any]] = None, + config: Optional["LegalIRConstrainedDecodeConfig"] = None, + ) -> "LegalIRGoldPathAdmission": + """Admit a gold encoding only when every prefix stays legal.""" + + return admit_legal_ir_gold_path( + gold_token_ids, + gold_ir=gold_ir, + family=family, + tokenizer=self.frozen_tokenizer(), + proof_state=proof_state, + config=config, + ) + + def gate_prover_call( + self, + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", + gold_token_ids: Optional[Sequence[int]] = None, + proof_state: Optional[Mapping[str, Any]] = None, + config: Optional["LegalIRConstrainedDecodeConfig"] = None, + prover: Optional[Callable[..., Any]] = None, + ) -> "LegalIRProverAdmission": + """Reject illegal candidates before they can spend proof budget.""" + + return gate_legal_ir_prover_call( + candidate_ir, + family=family, + source_text=source_text, + gold_token_ids=gold_token_ids, + tokenizer=self.frozen_tokenizer(), + proof_state=proof_state, + config=config, + prover=prover, + ) + + +def canonical_legal_ir_grammar_family(family: str) -> str: + """Normalize grammar families, including view-name aliases.""" + + normalized = str(family or "").strip().lower().replace("-", "_").replace("/", ".") + normalized = normalized.removeprefix("legal_ir_view.").removeprefix("legal-ir-view.") + canonical = _FAMILY_ALIASES.get(normalized) + if canonical: + return canonical + try: + return canonical_legal_ir_evaluation_family(normalized) + except ValueError: + return "unscoped" if not normalized else normalized + + +def infer_legal_ir_grammar_family(candidate_ir: Any, *, family: str = "") -> str: + explicit = canonical_legal_ir_grammar_family(family) + if explicit and explicit != "unscoped": + return explicit + source = _object_to_mapping(candidate_ir) + for key in ("family", "legal_ir_family", "view_family", "logic_family"): + if key in source: + resolved = canonical_legal_ir_grammar_family(str(source.get(key) or "")) + if resolved != "unscoped": + return resolved + for key in ("legal_ir_view", "target_view", "view", "contract_id"): + if key in source: + resolved = canonical_legal_ir_grammar_family(str(source.get(key) or "")) + if resolved != "unscoped": + return resolved + if any(key in source for key in ("obligations", "deontic_rules")): + return "deontic" + if any(key in source for key in ("triples", "frames", "frame_logic")): + return "frame_logic" + if any(key in source for key in ("formulas", "quantifiers", "predicates")): + return "tdfol" + if any(key in source for key in ("nodes", "edges", "graph")): + return "knowledge_graphs" + if any(key in source for key in ("counterexamples", "contexts", "events")): + return "cec" + if any(key in source for key in ("intervals", "temporal_windows", "relations")): + return "temporal" + if any(key in source for key in ("source_refs", "citations", "evidence")): + return "provenance" + if any(key in source for key in ("steps", "plan", "round_trip")): + return "decompiler" + return "unscoped" + + +def validate_legal_ir_candidate( + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", +) -> LegalIRGrammarValidation: + """Convenience API for validating one LegalIR payload.""" + + return LegalIRGrammarDecoder().validate( + candidate_ir, + family=family, + source_text=source_text, + ) + + +def constrained_legal_ir_decode( + scored_productions: Mapping[str, Any] | Sequence[Any], + *, + family: str = "", + source_text: str = "", + context: Optional[Mapping[str, Any]] = None, +) -> ConstrainedLegalIRDecode: + """Convenience API for masked production selection.""" + + return LegalIRGrammarDecoder().decode( + scored_productions, + family=family, + source_text=source_text, + context=context, + ) + + +_MASKED_LOGIT: Final = -1.0e9 +_CLOSED_PROOF_STATUSES: Final[frozenset[str]] = frozenset( + {"proved", "disproved", "counterexample"} +) +_OPERATOR_VALUE_FIELDS: Final[frozenset[str]] = frozenset( + { + "modality", + "operator", + "slot", + "label", + "connective", + "quantifier", + "op", + "operation", + "predicate", + "relation", + "backend", + "goal", + } +) +_FAMILY_VALUE_FIELDS: Final[frozenset[str]] = frozenset( + { + "family", + "legal_ir_family", + "target_view", + "view", + "legal_ir_view", + "contract_id", + } +) +_BINDER_VALUE_FIELDS: Final[frozenset[str]] = frozenset( + { + "quantifier", + "variables", + "bind", + "binder", + "lambda", + "let", + } +) +_CROSS_FAMILY_HOSTS: Final[frozenset[str]] = frozenset( + { + "decompiler", + "external_provers", + "provenance", + } +) +_SHARED_OPERATORS: Final[frozenset[str]] = frozenset( + {"and", "or", "not", "implies", "iff"} +) +_FAMILY_OWNED_OPERATORS: Final[Mapping[str, frozenset[str]]] = { + "deontic": frozenset( + { + "obligation", + "permission", + "prohibition", + "duty", + "right", + "must", + "may", + "shall", + "must_not", + } + ), + "tdfol": frozenset({"and", "or", "not", "implies", "iff"}), + "frame_logic": frozenset({"and", "or", "not", "implies"}), + "temporal": frozenset({"and", "or", "not", "implies"}), + "knowledge_graphs": frozenset({"and", "or", "not"}), + "cec": frozenset({"and", "or", "not"}), + "external_provers": frozenset({"and", "or", "not", "implies", "iff"}), + "decompiler": frozenset(), + "provenance": frozenset(), +} +_EXCLUSIVE_OPERATORS_BY_FAMILY: Final[Mapping[str, frozenset[str]]] = { + "deontic": frozenset( + { + "obligation", + "permission", + "prohibition", + "duty", + "right", + "must", + "may", + "shall", + "must_not", + } + ), +} + + +class UnboundedLegalIRBeamError(ValueError): + """Raised when a caller requests an unbounded or over-cap beam.""" + + +class LegalIRConstraintBypassError(ValueError): + """Raised when a caller tries to disable parser or type constraints.""" + + +@dataclass(frozen=True, slots=True) +class LegalIRConstrainedDecodeConfig: + """Hard-bounded constrained decoder contract. Parser/type cannot be bypassed.""" + + beam_width: int = 4 + max_steps: int = 32 + max_expansions: int = 256 + fallback: str = "reject" + proof_state_pruning: bool = False + parser_pruning: bool = True + type_checks: bool = True + family: str = "" + + def __post_init__(self) -> None: + width = int(self.beam_width) + steps = int(self.max_steps) + expansions = int(self.max_expansions) + fallback = str(self.fallback or "reject").strip().lower() + if width < 1 or width > LEGAL_IR_MAX_BEAM_WIDTH: + raise UnboundedLegalIRBeamError( + f"beam_width must be in 1..{LEGAL_IR_MAX_BEAM_WIDTH}, got {width}" + ) + if steps < 1 or steps > LEGAL_IR_MAX_DECODE_STEPS: + raise UnboundedLegalIRBeamError( + f"max_steps must be in 1..{LEGAL_IR_MAX_DECODE_STEPS}, got {steps}" + ) + if expansions < 1: + raise UnboundedLegalIRBeamError("max_expansions must be a positive bound") + if fallback not in LEGAL_IR_DECODE_FALLBACKS: + raise ValueError( + "fallback must be one of " + ", ".join(LEGAL_IR_DECODE_FALLBACKS) + ) + if not bool(self.parser_pruning): + raise LegalIRConstraintBypassError( + "parser pruning cannot be disabled; parser/type bypass is prohibited" + ) + if not bool(self.type_checks): + raise LegalIRConstraintBypassError( + "type checks cannot be disabled; parser/type bypass is prohibited" + ) + object.__setattr__(self, "beam_width", width) + object.__setattr__(self, "max_steps", steps) + object.__setattr__(self, "max_expansions", expansions) + object.__setattr__(self, "fallback", fallback) + object.__setattr__(self, "family", str(self.family or "")) + + def bounds(self) -> dict[str, Any]: + return { + "beam_width": int(self.beam_width), + "fallback": self.fallback, + "max_beam_width": LEGAL_IR_MAX_BEAM_WIDTH, + "max_expansions": int(self.max_expansions), + "max_steps": int(self.max_steps), + "parser_pruning": True, + "proof_state_pruning": bool(self.proof_state_pruning), + "type_checks": True, + } + + def to_dict(self) -> dict[str, Any]: + payload = self.bounds() + payload["family"] = self.family + payload["schema"] = LEGAL_IR_CONSTRAINED_DECODER_SCHEMA + return payload + + +@dataclass(frozen=True, slots=True) +class LegalIRConstraintMasks: + """Separately inspectable constraint masks over the frozen vocabulary.""" + + valid_token: tuple[bool, ...] + grammar: tuple[bool, ...] + binder: tuple[bool, ...] + type: tuple[bool, ...] + family: tuple[bool, ...] + family_name: str = "" + prefix_ids: tuple[int, ...] = () + schema: str = LEGAL_IR_CONSTRAINED_DECODER_SCHEMA + + def intersected(self) -> tuple[bool, ...]: + return tuple( + all(flags) + for flags in zip( + self.valid_token, + self.grammar, + self.binder, + self.type, + self.family, + strict=True, + ) + ) + + def allowed_token_ids(self) -> tuple[int, ...]: + return tuple( + index for index, allowed in enumerate(self.intersected()) if allowed + ) + + def allowed_count(self) -> int: + return sum(1 for allowed in self.intersected() if allowed) + + def layer(self, name: str) -> tuple[bool, ...]: + layers = { + "valid_token": self.valid_token, + "grammar": self.grammar, + "binder": self.binder, + "type": self.type, + "family": self.family, + } + if name not in layers: + raise KeyError(f"unknown constraint mask {name!r}") + return layers[name] + + def to_dict(self) -> dict[str, Any]: + return { + "allowed_count": self.allowed_count(), + "allowed_token_ids": list(self.allowed_token_ids()), + "family": self.family_name, + "layers": { + name: sum(1 for allowed in self.layer(name) if allowed) + for name in LEGAL_IR_CONSTRAINT_MASK_NAMES + }, + "prefix_ids": [int(token_id) for token_id in self.prefix_ids], + "schema": self.schema, + "vocabulary_size": len(self.valid_token), + } + + +@dataclass(frozen=True, slots=True) +class LegalIRConstraintRejectionTelemetry: + """Rejection telemetry for constrained decoding and prover admission.""" + + contract: str = LEGAL_IR_CONSTRAINED_DECODER_INTERFACE + schema: str = LEGAL_IR_CONSTRAINED_DECODER_SCHEMA + family: str = "" + rejection_reasons: tuple[str, ...] = () + masked_token_count: int = 0 + parser_pruned_count: int = 0 + proof_state_pruned_count: int = 0 + prover_calls: int = 0 + prover_calls_avoided: int = 0 + beam_width: int = 0 + max_beam_width: int = LEGAL_IR_MAX_BEAM_WIDTH + fallback: str = "reject" + fallback_used: str = "" + bounds: Mapping[str, Any] = field(default_factory=dict) + gold_path_preserved: bool = False + + def to_dict(self) -> dict[str, Any]: + return { + "beam_width": int(self.beam_width), + "bounds": dict(self.bounds), + "contract": self.contract, + "family": self.family, + "fallback": self.fallback, + "fallback_used": self.fallback_used, + "gold_path_preserved": bool(self.gold_path_preserved), + "masked_token_count": int(self.masked_token_count), + "max_beam_width": int(self.max_beam_width), + "parser_pruned_count": int(self.parser_pruned_count), + "proof_state_pruned_count": int(self.proof_state_pruned_count), + "prover_calls": int(self.prover_calls), + "prover_calls_avoided": int(self.prover_calls_avoided), + "rejection_reasons": list(self.rejection_reasons), + "schema": self.schema, + } + + +@dataclass(frozen=True, slots=True) +class LegalIRBeamHypothesis: + """One bounded beam hypothesis.""" + + token_ids: tuple[int, ...] + score: float + finished: bool = False + fallback_used: str = "" + + def to_dict(self) -> dict[str, Any]: + return { + "fallback_used": self.fallback_used, + "finished": self.finished, + "score": round(float(self.score), 12), + "token_ids": [int(token_id) for token_id in self.token_ids], + } + + +@dataclass(frozen=True, slots=True) +class LegalIRConstrainedTokenDecode: + """Result of bounded grammar/binder/type/family/proof-state decoding.""" + + accepted: bool + family: str + token_ids: tuple[int, ...] + tokens: tuple[str, ...] = () + score: float = 0.0 + beam_width: int = 0 + steps: int = 0 + expansions: int = 0 + fallback: str = "reject" + fallback_used: str = "" + gold_path_preserved: bool = False + parser_pruned: int = 0 + proof_state_pruned: int = 0 + hypotheses: tuple[LegalIRBeamHypothesis, ...] = () + telemetry: LegalIRConstraintRejectionTelemetry = field( + default_factory=LegalIRConstraintRejectionTelemetry + ) + schema: str = LEGAL_IR_CONSTRAINED_DECODER_SCHEMA + + def to_dict(self) -> dict[str, Any]: + return { + "accepted": self.accepted, + "beam_width": int(self.beam_width), + "expansions": int(self.expansions), + "fallback": self.fallback, + "fallback_used": self.fallback_used, + "family": self.family, + "gold_path_preserved": self.gold_path_preserved, + "hypotheses": [item.to_dict() for item in self.hypotheses], + "parser_pruned": int(self.parser_pruned), + "proof_state_pruned": int(self.proof_state_pruned), + "schema": self.schema, + "score": round(float(self.score), 12), + "steps": int(self.steps), + "telemetry": self.telemetry.to_dict(), + "token_ids": [int(token_id) for token_id in self.token_ids], + "tokens": list(self.tokens), + } + + +@dataclass(frozen=True, slots=True) +class LegalIRGoldPathAdmission: + """Whether every gold prefix remains inside the constraint masks.""" + + admitted: bool + family: str + token_ids: tuple[int, ...] + illegal_index: int = -1 + illegal_token_id: int = -1 + rejection_reasons: tuple[str, ...] = () + schema: str = LEGAL_IR_CONSTRAINED_DECODER_SCHEMA + + def to_dict(self) -> dict[str, Any]: + return { + "admitted": self.admitted, + "family": self.family, + "illegal_index": int(self.illegal_index), + "illegal_token_id": int(self.illegal_token_id), + "rejection_reasons": list(self.rejection_reasons), + "schema": self.schema, + "token_ids": [int(token_id) for token_id in self.token_ids], + } + + +@dataclass(frozen=True, slots=True) +class LegalIRProverAdmission: + """Fail-closed prover gate: illegal candidates never spend proof budget.""" + + admitted: bool + family: str + prover_calls: int + candidate_ir: Any + rejection_reasons: tuple[str, ...] = () + proof_result: Any = None + telemetry: LegalIRConstraintRejectionTelemetry = field( + default_factory=LegalIRConstraintRejectionTelemetry + ) + schema: str = LEGAL_IR_CONSTRAINED_DECODER_SCHEMA + + def to_dict(self) -> dict[str, Any]: + return { + "admitted": self.admitted, + "family": self.family, + "prover_calls": int(self.prover_calls), + "rejection_reasons": list(self.rejection_reasons), + "schema": self.schema, + "telemetry": self.telemetry.to_dict(), + } + + +def legal_ir_constrained_decode_config( + **kwargs: Any, +) -> LegalIRConstrainedDecodeConfig: + return LegalIRConstrainedDecodeConfig(**kwargs) + + +def legal_ir_constraint_masks( + prefix_ids: Sequence[int] = (), + *, + family: str = "", + tokenizer: Optional["LegalIRFrozenTokenizer"] = None, + proof_state: Optional[Mapping[str, Any]] = None, + config: Optional[LegalIRConstrainedDecodeConfig] = None, +) -> LegalIRConstraintMasks: + """Build valid-token, grammar, binder, type, and family masks for a prefix.""" + + frozen = tokenizer or LegalIRFrozenTokenizer.canonical() + settings = config or LegalIRConstrainedDecodeConfig(family=family) + family_name = canonical_legal_ir_grammar_family(family or settings.family) + prefix = tuple(int(token_id) for token_id in prefix_ids) + vocab_size = frozen.vocabulary_size + valid_token = [False] * vocab_size + grammar = [False] * vocab_size + binder = [False] * vocab_size + type_mask = [False] * vocab_size + family_mask = [False] * vocab_size + phase = _parser_phase(prefix, frozen, family=family_name) + last_piece, last_class = _prefix_tail(prefix, frozen) + proof = _normalize_proof_state(proof_state) + prune_tactics = bool(settings.proof_state_pruning) and _proof_state_closed(proof) + forbidden = set(proof.get("forbidden_token_ids") or ()) + forbidden.update( + _token_id_for_piece(frozen, piece) + for piece in proof.get("forbidden_tokens") or () + if _token_id_for_piece(frozen, piece) >= 0 + ) + + for entry in frozen._entries: # noqa: SLF001 - sealed vocab walk + token_id = int(entry.token_id) + piece = entry.piece + token_class = entry.token_class + if token_id in forbidden: + continue + if token_class == "padding" and phase != "complete": + continue + if token_class == "source_surface": + continue + valid_token[token_id] = True + + if token_class == "binder": + if _binder_allowed(phase, family_name, last_piece, last_class): + binder[token_id] = True + grammar[token_id] = True + type_mask[token_id] = True + family_mask[token_id] = True + continue + binder[token_id] = True + + if token_class == "type": + if _type_allowed(phase, family_name, piece): + type_mask[token_id] = True + grammar[token_id] = True + family_mask[token_id] = True + continue + type_mask[token_id] = True + + if token_class == "family" or _alias_family_piece(family_name, piece, token_class): + if _family_token_allowed(phase, family_name, piece, last_piece): + family_mask[token_id] = True + grammar[token_id] = True + continue + family_mask[token_id] = True + + if not _grammar_token_allowed( + phase, + family_name, + piece, + token_class, + last_piece=last_piece, + prune_tactics=prune_tactics, + eos_id=frozen.eos_id, + bos_id=frozen.bos_id, + pad_id=frozen.pad_id, + ): + continue + grammar[token_id] = True + + return LegalIRConstraintMasks( + valid_token=tuple(valid_token), + grammar=tuple(grammar), + binder=tuple(binder), + type=tuple(type_mask), + family=tuple(family_mask), + family_name=family_name, + prefix_ids=prefix, + ) + + +def apply_legal_ir_constraint_masks( + logits: Sequence[float], + masks: LegalIRConstraintMasks, +) -> list[float]: + """Intersect masks and zero out illegal logits without mutating inputs.""" + + allowed = masks.intersected() + if len(logits) != len(allowed): + raise ValueError( + f"logit width {len(logits)} does not match vocabulary {len(allowed)}" + ) + return [ + float(logit) if flag else _MASKED_LOGIT + for logit, flag in zip(logits, allowed, strict=True) + ] + + +def admit_legal_ir_gold_path( + gold_token_ids: Sequence[int] | None = None, + *, + gold_ir: Any = None, + family: str = "", + tokenizer: Optional["LegalIRFrozenTokenizer"] = None, + proof_state: Optional[Mapping[str, Any]] = None, + config: Optional[LegalIRConstrainedDecodeConfig] = None, +) -> LegalIRGoldPathAdmission: + """Every gold prefix must remain a legal continuation.""" + + frozen = tokenizer or LegalIRFrozenTokenizer.canonical() + family_name = canonical_legal_ir_grammar_family(family) + try: + token_ids = _resolve_gold_token_ids( + gold_token_ids, + gold_ir=gold_ir, + family=family_name, + tokenizer=frozen, + ) + except (UnknownFrozenTokenError, FrozenVocabularyMutationError, ValueError): + return LegalIRGoldPathAdmission( + admitted=False, + family=family_name, + token_ids=(), + rejection_reasons=("gold_unencodable",), + ) + for index, token_id in enumerate(token_ids): + masks = legal_ir_constraint_masks( + token_ids[:index], + family=family_name, + tokenizer=frozen, + proof_state=proof_state, + config=config, + ) + if int(token_id) not in set(masks.allowed_token_ids()): + reason = _gold_rejection_reason(frozen, int(token_id), index) + return LegalIRGoldPathAdmission( + admitted=False, + family=family_name, + token_ids=token_ids, + illegal_index=index, + illegal_token_id=int(token_id), + rejection_reasons=(reason,), + ) + return LegalIRGoldPathAdmission( + admitted=bool(token_ids), + family=family_name, + token_ids=token_ids, + rejection_reasons=() if token_ids else ("empty_gold_path",), + ) + + +def constrained_legal_ir_token_decode( + logits: Any = None, + *, + family: str = "", + source_text: str = "", + gold_token_ids: Optional[Sequence[int]] = None, + gold_ir: Any = None, + proof_state: Optional[Mapping[str, Any]] = None, + architecture: Any = None, + tokenizer: Optional["LegalIRFrozenTokenizer"] = None, + config: Optional[LegalIRConstrainedDecodeConfig] = None, +) -> LegalIRConstrainedTokenDecode: + """Bounded beam search under grammar/binder/type/family/proof-state masks.""" + + del source_text # source surface stays off the canonical decode path + frozen = tokenizer or LegalIRFrozenTokenizer.canonical() + settings = config or LegalIRConstrainedDecodeConfig(family=family) + family_name = canonical_legal_ir_grammar_family(family or settings.family) + gold_ids = _resolve_gold_token_ids( + gold_token_ids, + gold_ir=gold_ir, + family=family_name, + tokenizer=frozen, + ) + gold_admission = ( + admit_legal_ir_gold_path( + gold_ids, + family=family_name, + tokenizer=frozen, + proof_state=proof_state, + config=settings, + ) + if gold_ids + else None + ) + beams: list[LegalIRBeamHypothesis] = [ + LegalIRBeamHypothesis(token_ids=(), score=0.0, finished=False) + ] + parser_pruned = 0 + proof_pruned = 0 + expansions = 0 + steps = 0 + finished: list[LegalIRBeamHypothesis] = [] + + for step in range(settings.max_steps): + steps = step + 1 + live = [beam for beam in beams if not beam.finished] + if not live: + break + next_beams: list[LegalIRBeamHypothesis] = [] + for beam in live: + masks = legal_ir_constraint_masks( + beam.token_ids, + family=family_name, + tokenizer=frozen, + proof_state=proof_state, + config=settings, + ) + raw_logits = _logits_for_prefix( + logits, + prefix_ids=beam.token_ids, + step=step, + architecture=architecture, + tokenizer=frozen, + ) + masked = apply_legal_ir_constraint_masks(raw_logits, masks) + ranked = _rank_allowed_tokens(masked, limit=settings.beam_width) + if not ranked: + parser_pruned += 1 + continue + for token_id, token_score in ranked: + if expansions >= settings.max_expansions and finished: + break + expansions += 1 + entry = frozen.entry_for_id(token_id) + if ( + settings.proof_state_pruning + and entry.token_class == "tactic" + and _proof_state_closed(_normalize_proof_state(proof_state)) + ): + proof_pruned += 1 + continue + extended = (*beam.token_ids, int(token_id)) + done = int(token_id) == frozen.eos_id + hypothesis = LegalIRBeamHypothesis( + token_ids=extended, + score=float(beam.score) + float(token_score), + finished=done, + ) + if done: + finished.append(hypothesis) + else: + next_beams.append(hypothesis) + if expansions >= settings.max_expansions and finished: + break + next_beams.sort(key=lambda item: (-item.score, item.token_ids)) + beams = next_beams[: settings.beam_width] + if expansions >= settings.max_expansions and finished: + break + + selected, fallback_used, reasons = _select_decode_result( + finished=finished, + live=beams, + settings=settings, + gold_ids=gold_ids, + gold_admission=gold_admission, + tokenizer=frozen, + ) + tokens = ( + tuple(frozen.decode_ids(selected.token_ids)) if selected.token_ids else () + ) + gold_preserved = bool( + gold_admission + and gold_admission.admitted + and tuple(selected.token_ids) == gold_ids + ) + accepted = bool(selected.finished and selected.token_ids and not reasons) + telemetry = LegalIRConstraintRejectionTelemetry( + family=family_name, + rejection_reasons=reasons, + masked_token_count=max(0, frozen.vocabulary_size - settings.beam_width), + parser_pruned_count=parser_pruned, + proof_state_pruned_count=proof_pruned, + prover_calls=0, + prover_calls_avoided=0 if accepted else 1, + beam_width=settings.beam_width, + fallback=settings.fallback, + fallback_used=fallback_used, + bounds=settings.bounds(), + gold_path_preserved=gold_preserved, + ) + return LegalIRConstrainedTokenDecode( + accepted=accepted, + family=family_name, + token_ids=selected.token_ids, + tokens=tokens, + score=selected.score, + beam_width=settings.beam_width, + steps=steps, + expansions=expansions, + fallback=settings.fallback, + fallback_used=fallback_used, + gold_path_preserved=gold_preserved, + parser_pruned=parser_pruned, + proof_state_pruned=proof_pruned, + hypotheses=tuple((finished or beams)[: settings.beam_width]), + telemetry=telemetry, + ) + + +def gate_legal_ir_prover_call( + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", + gold_token_ids: Optional[Sequence[int]] = None, + tokenizer: Optional["LegalIRFrozenTokenizer"] = None, + proof_state: Optional[Mapping[str, Any]] = None, + config: Optional[LegalIRConstrainedDecodeConfig] = None, + prover: Optional[Callable[..., Any]] = None, +) -> LegalIRProverAdmission: + """Call the prover only after grammar, token, and optional gold checks pass.""" + + frozen = tokenizer or LegalIRFrozenTokenizer.canonical() + settings = config or LegalIRConstrainedDecodeConfig(family=family) + validation = validate_legal_ir_candidate( + candidate_ir, + family=family, + source_text=source_text, + ) + reasons = list(validation.rejection_reason_names) + family_name = validation.family or canonical_legal_ir_grammar_family(family) + if gold_token_ids is not None or _looks_like_token_ids(candidate_ir): + token_ids = ( + tuple(int(token_id) for token_id in gold_token_ids) + if gold_token_ids is not None + else tuple(int(token_id) for token_id in candidate_ir) + ) + admission = admit_legal_ir_gold_path( + token_ids, + family=family_name, + tokenizer=frozen, + proof_state=proof_state, + config=settings, + ) + if not admission.admitted: + reasons.extend(admission.rejection_reasons or ("illegal_token_path",)) + admitted = not reasons + proof_result = None + prover_calls = 0 + if admitted and prover is not None: + proof_result = prover(candidate_ir) + prover_calls = 1 + telemetry = LegalIRConstraintRejectionTelemetry( + family=family_name, + rejection_reasons=tuple(dict.fromkeys(reasons)), + prover_calls=prover_calls, + prover_calls_avoided=0 if admitted else 1, + beam_width=settings.beam_width, + fallback=settings.fallback, + fallback_used="" if admitted else "reject", + bounds=settings.bounds(), + gold_path_preserved=admitted, + ) + return LegalIRProverAdmission( + admitted=admitted, + family=family_name, + prover_calls=prover_calls, + candidate_ir=candidate_ir, + rejection_reasons=tuple(dict.fromkeys(reasons)), + proof_result=proof_result, + telemetry=telemetry, + ) + + +def compare_constrained_vs_unconstrained_proof_calls( + candidates: Sequence[Any], + *, + family: str = "", + source_text: str = "", + proof_state: Optional[Mapping[str, Any]] = None, + tokenizer: Optional["LegalIRFrozenTokenizer"] = None, + config: Optional[LegalIRConstrainedDecodeConfig] = None, + prover: Optional[Callable[..., Any]] = None, +) -> dict[str, Any]: + """Compare prover spend with and without the constrained admission gate.""" + + unconstrained_calls = 0 + constrained_calls = 0 + avoided = 0 + admissions: list[dict[str, Any]] = [] + active_prover = prover or (lambda payload: {"accepted": True, "payload": payload}) + for candidate in candidates: + unconstrained_calls += 1 + admission = gate_legal_ir_prover_call( + candidate, + family=family, + source_text=source_text, + tokenizer=tokenizer, + proof_state=proof_state, + config=config, + prover=active_prover, + ) + constrained_calls += admission.prover_calls + avoided += admission.telemetry.prover_calls_avoided + admissions.append(admission.to_dict()) + return { + "constrained_prover_calls": constrained_calls, + "contract": LEGAL_IR_CONSTRAINED_DECODER_INTERFACE, + "schema": LEGAL_IR_CONSTRAINED_DECODER_SCHEMA, + "unconstrained_prover_calls": unconstrained_calls, + "prover_calls_avoided": avoided, + "saved_proof_budget": max(0, unconstrained_calls - constrained_calls), + "admissions": admissions, + } + + +def _parser_phase( + prefix_ids: Sequence[int], + tokenizer: "LegalIRFrozenTokenizer", + *, + family: str = "", +) -> str: + if not prefix_ids: + return "expect_bos" + pieces = [] + classes = [] + for token_id in prefix_ids: + entry = tokenizer.entry_for_id(int(token_id)) + pieces.append(entry.piece) + classes.append(entry.token_class) + if pieces[0] != "": + return "invalid" + if any(piece == "" for piece in pieces): + return "complete" + if len(pieces) == 1: + return "expect_family" + if classes[1] != "family" and pieces[1] != family: + return "invalid" + if len(pieces) == 2: + return "expect_type" + if classes[2] != "type": + return "invalid" + return "body" + + +def _alias_family_piece(family: str, piece: str, token_class: str) -> bool: + return token_class == "identifier" and bool(family) and piece == family + + +def _prefix_tail( + prefix_ids: Sequence[int], + tokenizer: "LegalIRFrozenTokenizer", +) -> tuple[str, str]: + if not prefix_ids: + return "", "" + entry = tokenizer.entry_for_id(int(prefix_ids[-1])) + return entry.piece, entry.token_class + + +def _binder_allowed(phase: str, family: str, last_piece: str, last_class: str) -> bool: + if phase != "body": + return False + if last_piece in _BINDER_VALUE_FIELDS or last_class == "binder": + return True + return family in {"tdfol", "decompiler"} + + +def _type_allowed(phase: str, family: str, piece: str) -> bool: + if phase != "expect_type": + return False + expected = _family_output_type(family) + return bool(expected) and piece == expected + + +def _family_token_allowed(phase: str, family: str, piece: str, last_piece: str) -> bool: + if phase == "expect_family": + return (not family or family == "unscoped") or piece == family + if phase == "body" and last_piece in _FAMILY_VALUE_FIELDS: + if last_piece == "target_view": + return True + return (not family or family == "unscoped") or piece == family + return False + + +def _grammar_token_allowed( + phase: str, + family: str, + piece: str, + token_class: str, + *, + last_piece: str, + prune_tactics: bool, + eos_id: int, + bos_id: int, + pad_id: int, +) -> bool: + del eos_id, bos_id, pad_id + if phase == "expect_bos": + return piece == "" + if phase == "complete": + return token_class == "padding" + if phase in {"expect_family", "expect_type", "invalid"}: + return False + if piece == "": + return False + if piece == "": + return True + if token_class == "special": + return False + if token_class == "padding": + return False + if token_class == "tactic" and prune_tactics: + return False + if token_class == "operator": + return _operator_allowed(family, piece, last_piece) + if token_class == "production": + spec_family = next( + ( + spec.family + for spec in default_legal_ir_production_specs() + if spec.name == piece + ), + "", + ) + return (not family or family == "unscoped" or spec_family == family) or ( + family in _CROSS_FAMILY_HOSTS + ) + return token_class in { + "special", + "identifier", + "source", + "proof", + "tactic", + "production", + } + + +def _operator_allowed(family: str, piece: str, last_piece: str) -> bool: + if family in _CROSS_FAMILY_HOSTS or last_piece in _OPERATOR_VALUE_FIELDS: + return True + if piece in _SHARED_OPERATORS: + return True + owned = _FAMILY_OWNED_OPERATORS.get(family, frozenset()) + if piece in owned: + return True + for owner, exclusive in _EXCLUSIVE_OPERATORS_BY_FAMILY.items(): + if piece in exclusive and owner != family: + return False + return False + + +def _normalize_proof_state(proof_state: Optional[Mapping[str, Any]]) -> dict[str, Any]: + if not isinstance(proof_state, Mapping): + return {} + return dict(proof_state) + + +def _proof_state_closed(proof_state: Mapping[str, Any]) -> bool: + status = str( + proof_state.get("status") + or proof_state.get("state") + or proof_state.get("proof_status") + or "" + ).strip().lower() + open_goals = proof_state.get("open_goals", proof_state.get("open_goal_count", 1)) + try: + remaining = int(open_goals) + except (TypeError, ValueError): + remaining = 1 + if status in _CLOSED_PROOF_STATUSES and remaining <= 0: + return True + return bool(proof_state.get("closed")) or bool(proof_state.get("goal_closed")) + + +def _token_id_for_piece(tokenizer: "LegalIRFrozenTokenizer", piece: str) -> int: + entry = tokenizer.lookup(str(piece)) + return -1 if entry is None else int(entry.token_id) + + +def _resolve_gold_token_ids( + gold_token_ids: Sequence[int] | None, + *, + gold_ir: Any, + family: str, + tokenizer: "LegalIRFrozenTokenizer", +) -> tuple[int, ...]: + if gold_token_ids is not None: + return tuple(int(token_id) for token_id in gold_token_ids) + if gold_ir is None: + return () + encoding = tokenizer.encode_canonical(gold_ir, family=family) + return tuple(int(token_id) for token_id in encoding.token_ids) + + +def _looks_like_token_ids(value: Any) -> bool: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + return False + return bool(value) and all(isinstance(item, int) and not isinstance(item, bool) for item in value) + + +def _gold_rejection_reason( + tokenizer: "LegalIRFrozenTokenizer", + token_id: int, + index: int, +) -> str: + try: + entry = tokenizer.entry_for_id(token_id) + except UnknownFrozenTokenError: + return f"gold_token_outside_freeze:{index}" + return f"gold_prefix_illegal:{entry.token_class}:{entry.piece}" + + +def _logits_for_prefix( + logits: Any, + *, + prefix_ids: Sequence[int], + step: int, + architecture: Any, + tokenizer: "LegalIRFrozenTokenizer", +) -> list[float]: + vocab = tokenizer.vocabulary_size + if callable(logits): + values = logits(tuple(prefix_ids), step) + return _coerce_logits(values, vocab) + if isinstance(logits, Sequence) and logits and isinstance(logits[0], Sequence): + row = logits[min(step, len(logits) - 1)] + return _coerce_logits(row, vocab) + if isinstance(logits, Sequence) and logits and not isinstance(logits[0], Sequence): + return _coerce_logits(logits, vocab) + if architecture is not None and hasattr(architecture, "encode_ids"): + hidden = architecture.encode_ids(prefix_ids or (tokenizer.bos_id,)) + weight = architecture.parameters["reconstruction_weight"] + bias = architecture.parameters["reconstruction_bias"] + return _vec_add(_mat_vec(weight, hidden), bias) + return [0.0] * vocab + + +def _coerce_logits(values: Sequence[Any], vocab_size: int) -> list[float]: + coerced = [_finite_float(value, default=_MASKED_LOGIT) for value in values] + if len(coerced) < vocab_size: + coerced.extend([_MASKED_LOGIT] * (vocab_size - len(coerced))) + return coerced[:vocab_size] + + +def _rank_allowed_tokens( + masked_logits: Sequence[float], + *, + limit: int, +) -> tuple[tuple[int, float], ...]: + ranked = [ + (index, float(score)) + for index, score in enumerate(masked_logits) + if float(score) > _MASKED_LOGIT / 2.0 + ] + ranked.sort(key=lambda item: (-item[1], item[0])) + return tuple(ranked[: max(0, int(limit))]) + + +def _select_decode_result( + *, + finished: Sequence[LegalIRBeamHypothesis], + live: Sequence[LegalIRBeamHypothesis], + settings: LegalIRConstrainedDecodeConfig, + gold_ids: Sequence[int], + gold_admission: LegalIRGoldPathAdmission | None, + tokenizer: "LegalIRFrozenTokenizer", +) -> tuple[LegalIRBeamHypothesis, str, tuple[str, ...]]: + if finished: + if gold_ids: + matching = [item for item in finished if tuple(item.token_ids) == tuple(gold_ids)] + if matching: + selected = max( + matching, + key=lambda item: (item.score, -len(item.token_ids), item.token_ids), + ) + return selected, "", () + selected = max( + finished, + key=lambda item: (item.score, -len(item.token_ids), item.token_ids), + ) + return selected, "", () + if settings.fallback == "gold_if_admitted" and gold_admission and gold_admission.admitted: + return ( + LegalIRBeamHypothesis( + token_ids=tuple(gold_ids), + score=0.0, + finished=True, + fallback_used="gold_if_admitted", + ), + "gold_if_admitted", + (), + ) + if settings.fallback == "eos": + base = live[0].token_ids if live else (tokenizer.bos_id,) + if tokenizer.eos_id in set(base): + return ( + LegalIRBeamHypothesis(token_ids=tuple(base), score=0.0, finished=True), + "eos", + (), + ) + masks = legal_ir_constraint_masks( + base, + family=settings.family, + tokenizer=tokenizer, + config=settings, + ) + if tokenizer.eos_id in set(masks.allowed_token_ids()): + return ( + LegalIRBeamHypothesis( + token_ids=(*base, tokenizer.eos_id), + score=live[0].score if live else 0.0, + finished=True, + fallback_used="eos", + ), + "eos", + (), + ) + empty = LegalIRBeamHypothesis(token_ids=(), score=0.0, finished=False) + return empty, "reject", ("no_finished_hypothesis",) + + +def default_legal_ir_production_specs() -> tuple[LegalIRProductionSpec, ...]: + return ( + LegalIRProductionSpec( + name="emit_deontic_rule", + family="deontic", + output_type="DeonticRule", + required_fields=("modality", "subject", "action"), + optional_fields=("condition", "exception", "object", "provenance"), + description="obligation, permission, or prohibition over an actor/action", + ), + LegalIRProductionSpec( + name="emit_frame_logic_triples", + family="frame_logic", + output_type="FrameLogicTriples", + required_fields=("subject", "relation", "object"), + optional_fields=("frame", "qualifiers", "provenance"), + ), + LegalIRProductionSpec( + name="emit_tdfol_formula", + family="tdfol", + output_type="TDFOLFormula", + required_fields=("predicate", "arguments"), + optional_fields=("quantifier", "variables", "connective"), + ), + LegalIRProductionSpec( + name="emit_knowledge_graph", + family="knowledge_graphs", + output_type="KnowledgeGraph", + required_fields=("nodes", "edges"), + optional_fields=("labels", "properties"), + ), + LegalIRProductionSpec( + name="emit_cec_counterexample", + family="cec", + output_type="CounterexampleContext", + required_fields=("events", "counterexamples"), + optional_fields=("constraints", "contexts"), + ), + LegalIRProductionSpec( + name="emit_external_prover_plan", + family="external_provers", + output_type="ExternalProverPlan", + required_fields=("backend", "obligations"), + optional_fields=("theory", "timeout", "route"), + ), + LegalIRProductionSpec( + name="emit_temporal_window", + family="temporal", + output_type="TemporalWindow", + required_fields=("intervals", "relations"), + optional_fields=("bounds", "calendar", "timezone"), + ), + LegalIRProductionSpec( + name="emit_provenance_receipt", + family="provenance", + output_type="ProvenanceReceipt", + required_fields=("source_refs", "evidence"), + optional_fields=("citations", "span_hashes", "receipts"), + ), + LegalIRProductionSpec( + name="emit_decompiler_plan", + family="decompiler", + output_type="DecompilerPlan", + required_fields=("steps", "target_view"), + optional_fields=("round_trip", "source_copy_policy", "surface_template"), + ), + ) + + +def grammar_metrics_from_validation( + validation: LegalIRGrammarValidation, +) -> dict[str, float]: + return validation.metrics() + + +def grammar_rejection_reason_names( + validation: LegalIRGrammarValidation | ConstrainedLegalIRDecode, +) -> tuple[str, ...]: + if isinstance(validation, ConstrainedLegalIRDecode): + validation = validation.validation + return validation.rejection_reason_names + + +def _validation( + candidate_ir: Any, + family: str, + rejections: Sequence[LegalIRGrammarRejection], + production: str, +) -> LegalIRGrammarValidation: + deduped = tuple(_dedupe_rejections(rejections)) + return LegalIRGrammarValidation( + accepted=not deduped, + family=family, + candidate_ir=candidate_ir, + rejection_reasons=deduped, + selected_productions=(production,) if production and not deduped else (), + masked_productions=(production,) if production and deduped else (), + ) + + +def _dedupe_rejections( + rejections: Sequence[LegalIRGrammarRejection], +) -> tuple[LegalIRGrammarRejection, ...]: + seen: set[tuple[str, str, str, str]] = set() + deduped: list[LegalIRGrammarRejection] = [] + for rejection in rejections: + key = ( + rejection.reason, + rejection.path, + rejection.family, + rejection.production, + ) + if key in seen: + continue + seen.add(key) + deduped.append(rejection) + return tuple(deduped) + + +def _family_rejection( + reason: str, + *, + family: str, + path: str = "$", + production: str = "", + detail: str = "", +) -> LegalIRGrammarRejection: + return LegalIRGrammarRejection( + reason=reason, + path=path, + family=family, + production=production, + detail=detail, + ) + + +def _validate_deontic( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + rules = _items_from(source, "obligations", "deontic_rules", "rules", "clauses") + if not rules: + return (_family_rejection("missing_deontic_rule", family=family, production=production),) + rejections: list[LegalIRGrammarRejection] = [] + allowed_modalities = {"obligation", "permission", "prohibition", "duty", "right"} + for index, rule in enumerate(rules): + entry = _object_to_mapping(rule) + modality = str(entry.get("modality") or entry.get("operator") or "").lower() + if modality not in allowed_modalities: + rejections.append( + _family_rejection( + "invalid_deontic_modality", + family=family, + path=f"$.rules[{index}].modality", + production=production, + detail=modality, + ) + ) + for key in ("subject", "action"): + if not _nonempty_text(entry.get(key)): + rejections.append( + _family_rejection( + f"missing_deontic_{key}", + family=family, + path=f"$.rules[{index}].{key}", + production=production, + ) + ) + return tuple(rejections) + + +def _validate_frame_logic( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + triples = _items_from(source, "triples", "frame_logic", "relations") + if not triples and isinstance(source.get("frames"), Sequence): + triples = [ + relation + for frame in _sequence(source.get("frames")) + for relation in _items_from(_object_to_mapping(frame), "triples", "relations") + ] + if not triples: + return ( + _family_rejection("missing_frame_logic_triple", family=family, production=production), + ) + return tuple( + rejection + for index, triple in enumerate(triples) + for rejection in _required_mapping_fields( + triple, + ("subject", "relation", "object"), + family=family, + path=f"$.triples[{index}]", + production=production, + reason_prefix="missing_frame_logic", + ) + ) + + +def _validate_tdfol( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + formulas = _items_from(source, "formulas", "rules", "clauses") + if not formulas and ("predicate" in source or "formula" in source): + formulas = [source] + if not formulas: + return (_family_rejection("missing_tdfol_formula", family=family, production=production),) + rejections: list[LegalIRGrammarRejection] = [] + for index, formula in enumerate(formulas): + entry = _object_to_mapping(formula) + predicate = str(entry.get("predicate") or entry.get("name") or "").strip() + if not _IDENT_RE.match(predicate): + rejections.append( + _family_rejection( + "invalid_tdfol_predicate", + family=family, + path=f"$.formulas[{index}].predicate", + production=production, + detail=predicate, + ) + ) + arguments = entry.get("arguments", entry.get("args")) + if not _sequence(arguments): + rejections.append( + _family_rejection( + "missing_tdfol_arguments", + family=family, + path=f"$.formulas[{index}].arguments", + production=production, + ) + ) + quantifier = str(entry.get("quantifier") or "").strip().lower() + if quantifier and quantifier not in {"forall", "exists", "none"}: + rejections.append( + _family_rejection( + "invalid_tdfol_quantifier", + family=family, + path=f"$.formulas[{index}].quantifier", + production=production, + detail=quantifier, + ) + ) + return tuple(rejections) + + +def _validate_kg( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + graph = _object_to_mapping(source.get("graph")) if "graph" in source else source + nodes = _sequence(graph.get("nodes")) + edges = _sequence(graph.get("edges")) + rejections: list[LegalIRGrammarRejection] = [] + if not nodes: + rejections.append( + _family_rejection("missing_kg_nodes", family=family, production=production) + ) + if not edges: + rejections.append( + _family_rejection("missing_kg_edges", family=family, production=production) + ) + node_ids = { + str(_object_to_mapping(node).get("id") or "").strip() + for node in nodes + if str(_object_to_mapping(node).get("id") or "").strip() + } + for index, node in enumerate(nodes): + rejections.extend( + _required_mapping_fields( + node, + ("id", "label"), + family=family, + path=f"$.nodes[{index}]", + production=production, + reason_prefix="missing_kg_node", + ) + ) + for index, edge in enumerate(edges): + entry = _object_to_mapping(edge) + rejections.extend( + _required_mapping_fields( + entry, + ("source", "target", "label"), + family=family, + path=f"$.edges[{index}]", + production=production, + reason_prefix="missing_kg_edge", + ) + ) + for endpoint in ("source", "target"): + value = str(entry.get(endpoint) or "").strip() + if value and node_ids and value not in node_ids: + rejections.append( + _family_rejection( + "kg_edge_endpoint_unbound", + family=family, + path=f"$.edges[{index}].{endpoint}", + production=production, + detail=value, + ) + ) + return tuple(rejections) + + +def _validate_cec( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + events = _items_from(source, "events", "event_trace") + counterexamples = _items_from(source, "counterexamples", "counterexample") + rejections: list[LegalIRGrammarRejection] = [] + if not events: + rejections.append( + _family_rejection("missing_cec_events", family=family, production=production) + ) + if not counterexamples: + rejections.append( + _family_rejection("missing_cec_counterexample", family=family, production=production) + ) + for index, event in enumerate(events): + rejections.extend( + _required_mapping_fields( + event, + ("id", "type"), + family=family, + path=f"$.events[{index}]", + production=production, + reason_prefix="missing_cec_event", + ) + ) + return tuple(rejections) + + +def _validate_external_provers( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + backend = str(source.get("backend") or source.get("prover") or "").strip() + obligations = _items_from(source, "obligations", "proof_obligations", "goals") + rejections: list[LegalIRGrammarRejection] = [] + if not backend: + rejections.append( + _family_rejection( + "missing_external_prover_backend", family=family, production=production + ) + ) + if not obligations: + rejections.append( + _family_rejection( + "missing_external_prover_obligation", family=family, production=production + ) + ) + return tuple(rejections) + + +def _validate_temporal( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + intervals = _items_from(source, "intervals", "temporal_windows", "windows") + relations = _items_from(source, "relations", "temporal_relations") + rejections: list[LegalIRGrammarRejection] = [] + if not intervals: + rejections.append( + _family_rejection("missing_temporal_interval", family=family, production=production) + ) + if not relations: + rejections.append( + _family_rejection("missing_temporal_relation", family=family, production=production) + ) + for index, interval in enumerate(intervals): + entry = _object_to_mapping(interval) + if not any( + _nonempty_text(entry.get(key)) + for key in ("start", "end", "duration", "date", "deadline") + ): + rejections.append( + _family_rejection( + "missing_temporal_bound", + family=family, + path=f"$.intervals[{index}]", + production=production, + ) + ) + return tuple(rejections) + + +def _validate_provenance( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + refs = _items_from(source, "source_refs", "citations", "references") + evidence = _items_from(source, "evidence", "receipts", "proof_evidence") + rejections: list[LegalIRGrammarRejection] = [] + if not refs: + rejections.append( + _family_rejection("missing_provenance_source_ref", family=family, production=production) + ) + if not evidence: + rejections.append( + _family_rejection("missing_provenance_evidence", family=family, production=production) + ) + for index, ref in enumerate(refs): + entry = _object_to_mapping(ref) + if not any( + _nonempty_text(entry.get(key)) + for key in ("citation", "document_id", "span_hash", "source_hash") + ): + rejections.append( + _family_rejection( + "missing_provenance_reference_identifier", + family=family, + path=f"$.source_refs[{index}]", + production=production, + ) + ) + return tuple(rejections) + + +def _validate_decompiler( + candidate: Any, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(candidate) + plan = ( + _object_to_mapping(source.get("plan")) + if isinstance(source.get("plan"), Mapping) + else source + ) + steps = _items_from(plan, "steps", "operations") + target_view = str(plan.get("target_view") or plan.get("legal_ir_view") or "").strip() + rejections: list[LegalIRGrammarRejection] = [] + if not steps: + rejections.append( + _family_rejection("missing_decompiler_steps", family=family, production=production) + ) + if not target_view: + rejections.append( + _family_rejection( + "missing_decompiler_target_view", family=family, production=production + ) + ) + policy = str(plan.get("source_copy_policy") or "").strip().lower() + if policy and policy not in {"hash_only", "span_hash_only", "citation_only", "no_source_text"}: + rejections.append( + _family_rejection( + "unsafe_decompiler_source_copy_policy", + family=family, + path="$.source_copy_policy", + production=production, + detail=policy, + ) + ) + for index, step in enumerate(steps): + entry = _object_to_mapping(step) + if not _nonempty_text(entry.get("op", entry.get("operation"))): + rejections.append( + _family_rejection( + "missing_decompiler_step_operation", + family=family, + path=f"$.steps[{index}].op", + production=production, + ) + ) + return tuple(rejections) + + +_FAMILY_VALIDATORS = { + "deontic": _validate_deontic, + "frame_logic": _validate_frame_logic, + "tdfol": _validate_tdfol, + "knowledge_graphs": _validate_kg, + "cec": _validate_cec, + "external_provers": _validate_external_provers, + "temporal": _validate_temporal, + "provenance": _validate_provenance, + "decompiler": _validate_decompiler, +} + + +def _required_mapping_fields( + value: Any, + fields: Sequence[str], + *, + family: str, + path: str, + production: str, + reason_prefix: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source = _object_to_mapping(value) + return tuple( + _family_rejection( + f"{reason_prefix}_{field}", + family=family, + path=f"{path}.{field}", + production=production, + ) + for field in fields + if not _nonempty_text(source.get(field)) + ) + + +def _source_copy_rejections( + candidate: Any, + *, + source_text: str, + family: str, + production: str, +) -> tuple[LegalIRGrammarRejection, ...]: + source_norm = _normalize_text(source_text) + rejections: list[LegalIRGrammarRejection] = [] + + def visit(value: Any, path: str) -> None: + if isinstance(value, Mapping): + for key, child in value.items(): + key_text = str(key) + child_path = f"{path}.{key_text}" if path else key_text + if _SOURCE_TEXT_FIELD_RE.search(key_text): + rejections.append( + _family_rejection( + "raw_source_copy_field", + family=family, + path=child_path, + production=production, + detail=key_text, + ) + ) + visit(child, child_path) + return + if isinstance(value, Sequence) and not isinstance(value, (str, bytes, bytearray)): + for index, child in enumerate(value): + visit(child, f"{path}[{index}]") + return + if not isinstance(value, str): + return + text = value.strip() + if not text: + return + if _PLACEHOLDER_RE.search(text): + rejections.append( + _family_rejection( + "source_copy_placeholder", + family=family, + path=path or "$", + production=production, + detail=text[:80], + ) + ) + return + if source_norm and len(_normalize_text(text)) >= 48: + text_norm = _normalize_text(text) + if text_norm == source_norm or text_norm in source_norm: + rejections.append( + _family_rejection( + "source_copy_placeholder", + family=family, + path=path or "$", + production=production, + detail="candidate copies source text", + ) + ) + + visit(candidate, "$") + return tuple(rejections) + + +def _production_rows( + scored_productions: Mapping[str, Any] | Sequence[Any], + *, + context: Optional[Mapping[str, Any]], +) -> tuple[dict[str, Any], ...]: + payloads = {} + if isinstance(context, Mapping): + raw_payloads = context.get("productions") or context.get("outputs") or {} + if isinstance(raw_payloads, Mapping): + payloads = dict(raw_payloads) + rows: list[dict[str, Any]] = [] + if isinstance(scored_productions, Mapping): + for name, value in scored_productions.items(): + row = _row_from_value(str(name), value, payloads.get(name)) + rows.append(row) + else: + for index, value in enumerate(_sequence(scored_productions)): + rows.append(_row_from_value(f"production_{index}", value, None)) + return tuple(rows) + + +def _row_from_value(name: str, value: Any, context_output: Any) -> dict[str, Any]: + source = _object_to_mapping(value) + if source: + row_name = str(source.get("name") or source.get("production") or name) + score = _finite_float(source.get("score", source.get("logit", 0.0))) + output = ( + source.get("output") + if "output" in source + else source.get("candidate_ir") + if "candidate_ir" in source + else source.get("decoded_ir") + if "decoded_ir" in source + else context_output + ) + return { + "family": source.get("family") or source.get("legal_ir_family") or "", + "name": row_name, + "output": output, + "score": score, + } + return { + "family": "", + "name": name, + "output": context_output, + "score": _finite_float(value), + } + + +def _mapping_or_sequence(value: Any) -> Any: + if isinstance(value, Mapping): + return value + if isinstance(value, Sequence) and not isinstance(value, (str, bytes, bytearray)): + return value + source = _object_to_mapping(value) + return source or None + + +def _object_to_mapping(value: Any) -> dict[str, Any]: + if isinstance(value, Mapping): + return dict(value) + if value is None or isinstance(value, (str, bytes, bytearray, int, float, bool)): + return {} + to_dict = getattr(value, "to_dict", None) + if callable(to_dict): + try: + mapped = to_dict() + except TypeError: + mapped = None + if isinstance(mapped, Mapping): + return dict(mapped) + slots = getattr(value, "__slots__", ()) + if isinstance(slots, str): + slots = (slots,) + names = set(getattr(value, "__dict__", {}) or {}) + names.update(str(name) for name in slots if str(name) != "__weakref__") + return { + name: getattr(value, name) + for name in sorted(names) + if hasattr(value, name) and not name.startswith("_") + } + + +def _items_from(source: Mapping[str, Any], *keys: str) -> tuple[Any, ...]: + for key in keys: + if key not in source: + continue + value = source.get(key) + if isinstance(value, Mapping): + return (value,) + items = _sequence(value) + if items: + return items + return () + + +def _sequence(value: Any) -> tuple[Any, ...]: + if isinstance(value, Sequence) and not isinstance(value, (str, bytes, bytearray)): + return tuple(value) + if value is None: + return () + return () + + +def _nonempty_text(value: Any) -> bool: + if isinstance(value, str): + return bool(value.strip()) and not _PLACEHOLDER_RE.search(value) + if isinstance(value, (int, float)) and not isinstance(value, bool): + return math.isfinite(float(value)) + return value is not None + + +def _finite_float(value: Any, default: float = 0.0) -> float: + try: + number = float(value) + except (TypeError, ValueError): + return default + return number if math.isfinite(number) else default + + +def _metric_slug(value: str) -> str: + return re.sub(r"[^a-z0-9]+", "_", str(value).lower()).strip("_") or "unknown" + + +def _normalize_text(value: Any) -> str: + return re.sub(r"\s+", " ", str(value or "").strip().lower()) + + +def _stable_digest(value: Any) -> str: + return hashlib.sha256(repr(value).encode("utf-8", "replace")).hexdigest() + + +def _canonical_json_bytes(value: Any) -> bytes: + return json.dumps( + value, + allow_nan=False, + ensure_ascii=True, + separators=(",", ":"), + sort_keys=True, + ).encode("utf-8") + + +def _content_sha256(value: Any) -> str: + return hashlib.sha256(_canonical_json_bytes(value)).hexdigest() + + +def _content_cid(value: Any) -> str: + return f"sha256:{_content_sha256(value)}" + + +class FrozenVocabularyMutationError(ValueError): + """Raised when a caller attempts to mutate a frozen tokenizer vocabulary.""" + + +class UnknownFrozenTokenError(ValueError): + """Raised when a closed-class token is absent from the frozen vocabulary.""" + + +@dataclass(frozen=True, slots=True) +class LegalIRVocabEntry: + """One frozen vocabulary row with an immutable token class.""" + + token_id: int + piece: str + token_class: str + + def to_dict(self) -> dict[str, Any]: + return { + "piece": self.piece, + "token_class": self.token_class, + "token_id": int(self.token_id), + } + + +@dataclass(frozen=True, slots=True) +class LegalIRToken: + """One encoded token, including class and surface/canonical origin.""" + + token_id: int + piece: str + token_class: str + surface: str = "canonical" + source_hash: str = "" + + def to_dict(self) -> dict[str, Any]: + return { + "piece": self.piece, + "source_hash": self.source_hash, + "surface": self.surface, + "token_class": self.token_class, + "token_id": int(self.token_id), + } + + +@dataclass(frozen=True, slots=True) +class LegalIRTokenization: + """Deterministic encoding of one structured or source-surface payload.""" + + token_ids: tuple[int, ...] + tokens: tuple[LegalIRToken, ...] + token_class_counts: Mapping[str, int] + vocabulary_cid: str + vocabulary_sha256: str + source_surface_separated: bool + source_surface_token_count: int + canonical_token_count: int + accepted: bool = True + family: str = "" + schema_version: str = LEGAL_IR_FROZEN_TOKENIZER_SCHEMA_VERSION + + def token_class_histogram(self) -> dict[str, int]: + return { + name: int(self.token_class_counts.get(name, 0)) for name in LEGAL_IR_TOKEN_CLASSES + } + + def to_dict(self) -> dict[str, Any]: + return { + "accepted": self.accepted, + "canonical_token_count": int(self.canonical_token_count), + "family": self.family, + "schema_version": self.schema_version, + "source_surface_separated": self.source_surface_separated, + "source_surface_token_count": int(self.source_surface_token_count), + "token_class_counts": self.token_class_histogram(), + "token_ids": [int(token_id) for token_id in self.token_ids], + "tokens": [token.to_dict() for token in self.tokens], + "vocabulary_cid": self.vocabulary_cid, + "vocabulary_sha256": self.vocabulary_sha256, + } + + +class LegalIRFrozenTokenizer: + """Canonical, fail-closed tokenizer with a frozen structured vocabulary. + + Source-surface text is encoded on a separate path and never mutates the + canonical vocabulary. Closed-class unknowns fail closed. Open identifiers + hash into a fixed bucket table that is part of the freeze. + """ + + def __init__( + self, + *, + entries: Optional[Sequence[LegalIRVocabEntry]] = None, + frozen: bool = True, + ) -> None: + using_canonical_default = entries is None + resolved = tuple(entries or default_legal_ir_frozen_vocabulary()) + self._entries = resolved + self._piece_to_entry = {entry.piece: entry for entry in resolved} + self._id_to_entry = {entry.token_id: entry for entry in resolved} + if len(self._piece_to_entry) != len(resolved): + raise ValueError("frozen vocabulary pieces must be unique") + if list(entry.token_id for entry in resolved) != list(range(len(resolved))): + raise ValueError("frozen vocabulary token ids must be contiguous from 0") + self._frozen = bool(frozen) + vocabulary_payload = self.vocabulary_manifest() + self._vocabulary_sha256 = _content_sha256(vocabulary_payload) + self._vocabulary_cid = _content_cid(vocabulary_payload) + if using_canonical_default: + if self._vocabulary_cid != LEGAL_IR_CANONICAL_VOCABULARY_CID: + raise ValueError( + "canonical frozen vocabulary CID drifted from the sealed digest" + ) + if len(resolved) != LEGAL_IR_CANONICAL_VOCABULARY_SIZE: + raise ValueError( + "canonical frozen vocabulary size drifted from the sealed size" + ) + + @classmethod + def canonical(cls) -> "LegalIRFrozenTokenizer": + return cls() + + @property + def frozen(self) -> bool: + return self._frozen + + @property + def vocabulary_size(self) -> int: + return len(self._entries) + + @property + def vocabulary_cid(self) -> str: + return self._vocabulary_cid + + @property + def vocabulary_sha256(self) -> str: + return f"sha256:{self._vocabulary_sha256}" + + @property + def pad_id(self) -> int: + return self._piece_to_entry[""].token_id + + @property + def bos_id(self) -> int: + return self._piece_to_entry[""].token_id + + @property + def eos_id(self) -> int: + return self._piece_to_entry[""].token_id + + @property + def unk_id(self) -> int: + return self._piece_to_entry[""].token_id + + @property + def source_ref_id(self) -> int: + return self._piece_to_entry[""].token_id + + def freeze(self) -> "LegalIRFrozenTokenizer": + if self._frozen: + return self + return LegalIRFrozenTokenizer(entries=self._entries, frozen=True) + + def lookup(self, piece: str) -> Optional[LegalIRVocabEntry]: + return self._piece_to_entry.get(str(piece)) + + def entry_for_id(self, token_id: int) -> LegalIRVocabEntry: + try: + return self._id_to_entry[int(token_id)] + except KeyError as exc: + raise UnknownFrozenTokenError(f"token id {token_id} is outside the freeze") from exc + + def require(self, piece: str, *, token_class: str = "") -> LegalIRVocabEntry: + entry = self.lookup(piece) + if entry is None: + raise UnknownFrozenTokenError( + f"closed-class token {piece!r} is absent from the frozen vocabulary" + ) + if token_class and entry.token_class != token_class: + raise UnknownFrozenTokenError( + f"token {piece!r} has class {entry.token_class!r}, expected {token_class!r}" + ) + return entry + + def add_token(self, piece: str, token_class: str) -> None: + raise FrozenVocabularyMutationError( + "frozen tokenizer vocabulary cannot be mutated; supersede with a new CID" + ) + + def encode_canonical( + self, + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", + accepted: bool = True, + max_length: int = 64, + ) -> LegalIRTokenization: + if not self._frozen: + raise FrozenVocabularyMutationError("canonical encoding requires a frozen vocabulary") + family_name = infer_legal_ir_grammar_family(candidate_ir, family=family) + tokens: list[LegalIRToken] = [self._special_token("")] + if family_name and family_name != "unscoped": + tokens.append(self._closed_token(family_name, token_class="family")) + type_piece = _family_output_type(family_name) + if type_piece: + tokens.append(self._closed_token(type_piece, token_class="type")) + tokens.extend(self._walk_structured(candidate_ir, family=family_name)) + tokens.append(self._special_token("")) + if len(tokens) > max_length: + tokens = [*tokens[: max_length - 1], self._special_token("")] + return self._finalize_tokenization( + tokens, + family=family_name, + accepted=accepted, + source_text=source_text, + ) + + def encode_source_surface( + self, + source_text: str, + *, + family: str = "", + max_length: int = 32, + ) -> LegalIRTokenization: + """Encode raw source without touching the canonical vocabulary.""" + + normalized = _normalize_text(source_text) + tokens: list[LegalIRToken] = [self._special_token("")] + tokens.append(self._special_token("")) + if normalized: + digest = hashlib.sha256(normalized.encode("utf-8")).hexdigest() + for index, chunk in enumerate(_chunks(digest, 8)[: max(0, max_length - 3)]): + tokens.append( + LegalIRToken( + token_id=self.source_ref_id, + piece="", + token_class="source_surface", + surface="source", + source_hash=f"{index:02d}:{chunk}", + ) + ) + tokens.append(self._special_token("")) + return self._finalize_tokenization( + tokens, + family=canonical_legal_ir_grammar_family(family), + accepted=True, + source_text=source_text, + source_surface_only=True, + ) + + def encode_pair( + self, + candidate_ir: Any, + *, + family: str = "", + source_text: str = "", + ) -> dict[str, LegalIRTokenization]: + """Return separately addressed canonical and source-surface encodings.""" + + return { + "canonical": self.encode_canonical( + candidate_ir, + family=family, + source_text=source_text, + ), + "source_surface": self.encode_source_surface( + source_text, + family=family, + ), + } + + def pad_ids(self, token_ids: Sequence[int], *, max_length: int) -> list[int]: + bounded = [int(token_id) for token_id in token_ids[: max(0, int(max_length))]] + if len(bounded) < max_length: + bounded.extend([self.pad_id] * (int(max_length) - len(bounded))) + return bounded + + def decode_ids(self, token_ids: Sequence[int]) -> tuple[str, ...]: + return tuple(self.entry_for_id(token_id).piece for token_id in token_ids) + + def token_class_for_id(self, token_id: int) -> str: + return self.entry_for_id(token_id).token_class + + def vocabulary_manifest(self) -> dict[str, Any]: + return { + "identifier_bucket_count": LEGAL_IR_IDENTIFIER_BUCKET_COUNT, + "interface": LEGAL_IR_FROZEN_TOKENIZER_INTERFACE, + "mutation_policy": "supersede_never_overwrite", + "schema": LEGAL_IR_FROZEN_VOCABULARY_SCHEMA, + "schema_version": LEGAL_IR_FROZEN_TOKENIZER_SCHEMA_VERSION, + "token_classes": list(LEGAL_IR_TOKEN_CLASSES), + "tokens": [entry.to_dict() for entry in self._entries], + "unknown_token_behavior": "fail_closed", + "vocabulary_size": len(self._entries), + } + + def to_dict(self) -> dict[str, Any]: + manifest = self.vocabulary_manifest() + manifest["frozen"] = self._frozen + manifest["vocabulary_cid"] = self.vocabulary_cid + manifest["vocabulary_sha256"] = self.vocabulary_sha256 + return manifest + + @classmethod + def from_dict(cls, payload: Mapping[str, Any]) -> "LegalIRFrozenTokenizer": + tokens = payload.get("tokens") + if not isinstance(tokens, Sequence): + raise ValueError("tokenizer payload is missing tokens") + entries = [] + for index, row in enumerate(tokens): + if not isinstance(row, Mapping): + raise ValueError("tokenizer token row must be a mapping") + entries.append( + LegalIRVocabEntry( + token_id=int(row.get("token_id", index)), + piece=str(row.get("piece") or ""), + token_class=str(row.get("token_class") or ""), + ) + ) + tokenizer = cls(entries=entries, frozen=bool(payload.get("frozen", True))) + expected_cid = str(payload.get("vocabulary_cid") or "") + if expected_cid and expected_cid != tokenizer.vocabulary_cid: + raise ValueError("tokenizer vocabulary CID does not match payload") + return tokenizer + + def _special_token(self, piece: str) -> LegalIRToken: + entry = self.require(piece) + return LegalIRToken( + token_id=entry.token_id, + piece=entry.piece, + token_class=entry.token_class, + ) + + def _closed_token(self, piece: str, *, token_class: str) -> LegalIRToken: + entry = self.require(piece, token_class=token_class) + return LegalIRToken( + token_id=entry.token_id, + piece=entry.piece, + token_class=entry.token_class, + ) + + def _identifier_or_source_token(self, value: str, *, field_name: str) -> LegalIRToken: + text = str(value or "").strip() + if not text: + raise UnknownFrozenTokenError(f"empty identifier at {field_name}") + if _SOURCE_TEXT_FIELD_RE.match(field_name) or _PLACEHOLDER_RE.search(text): + digest = hashlib.sha256(text.encode("utf-8")).hexdigest() + return LegalIRToken( + token_id=self.source_ref_id, + piece="", + token_class="source", + surface="source", + source_hash=digest, + ) + existing = self.lookup(text) + if existing is not None: + return LegalIRToken( + token_id=existing.token_id, + piece=existing.piece, + token_class=existing.token_class, + ) + if " " in text or len(text) > 32: + digest = hashlib.sha256(text.encode("utf-8")).hexdigest() + return LegalIRToken( + token_id=self.source_ref_id, + piece="", + token_class="source", + surface="source", + source_hash=digest, + ) + bucket = int(hashlib.sha256(text.encode("utf-8")).hexdigest(), 16) % ( + LEGAL_IR_IDENTIFIER_BUCKET_COUNT + ) + piece = f"" + entry = self.require(piece, token_class="identifier") + return LegalIRToken( + token_id=entry.token_id, + piece=entry.piece, + token_class=entry.token_class, + source_hash=hashlib.sha256(text.encode("utf-8")).hexdigest(), + ) + + def _walk_structured( + self, + value: Any, + *, + family: str, + path: str = "$", + ) -> list[LegalIRToken]: + tokens: list[LegalIRToken] = [] + if isinstance(value, Mapping): + for key in sorted(str(item) for item in value.keys()): + field_entry = self.lookup(key) + if field_entry is not None and field_entry.token_class in { + "identifier", + "operator", + "production", + "type", + "family", + }: + tokens.append( + LegalIRToken( + token_id=field_entry.token_id, + piece=field_entry.piece, + token_class=field_entry.token_class, + ) + ) + tokens.extend( + self._walk_structured( + value.get(key), + family=family, + path=f"{path}.{key}", + ) + ) + return tokens + if isinstance(value, Sequence) and not isinstance(value, (str, bytes, bytearray)): + for index, item in enumerate(value): + tokens.extend( + self._walk_structured( + item, + family=family, + path=f"{path}[{index}]", + ) + ) + return tokens + if isinstance(value, bool) or value is None: + return tokens + if isinstance(value, (int, float)): + return tokens + text = str(value).strip() + if not text: + return tokens + existing = self.lookup(text) + if existing is not None: + if existing.token_class in LEGAL_IR_CLOSED_TOKEN_CLASSES or existing.token_class in { + "identifier", + "source", + }: + tokens.append( + LegalIRToken( + token_id=existing.token_id, + piece=existing.piece, + token_class=existing.token_class, + ) + ) + return tokens + field_name = path.rsplit(".", 1)[-1] + if field_name in _CLOSED_VALUE_FIELDS and existing is None: + raise UnknownFrozenTokenError( + f"closed-class value {text!r} at {path} is absent from the freeze" + ) + tokens.append(self._identifier_or_source_token(text, field_name=field_name)) + return tokens + + def _finalize_tokenization( + self, + tokens: Sequence[LegalIRToken], + *, + family: str, + accepted: bool, + source_text: str, + source_surface_only: bool = False, + ) -> LegalIRTokenization: + counts = {name: 0 for name in LEGAL_IR_TOKEN_CLASSES} + source_surface_count = 0 + canonical_count = 0 + for token in tokens: + counts[token.token_class] = counts.get(token.token_class, 0) + 1 + if token.surface == "source" or token.token_class == "source_surface": + if not source_surface_only: + raise UnknownFrozenTokenError( + "source-surface tokens are rejected on the canonical IR path" + ) + source_surface_count += 1 + else: + canonical_count += 1 + return LegalIRTokenization( + token_ids=tuple(token.token_id for token in tokens), + tokens=tuple(tokens), + token_class_counts=counts, + vocabulary_cid=self.vocabulary_cid, + vocabulary_sha256=self.vocabulary_sha256, + source_surface_separated=True, + source_surface_token_count=source_surface_count, + canonical_token_count=canonical_count, + accepted=accepted, + family=family, + ) + + +def default_legal_ir_frozen_vocabulary() -> tuple[LegalIRVocabEntry, ...]: + """Return the sealed canonical vocabulary used by both experiment arms.""" + + pieces: list[tuple[str, str]] = [ + ("", "padding"), + ("", "special"), + ("", "special"), + ("", "special"), + ("", "special"), + ("", "special"), + ("", "source"), + ("forall", "binder"), + ("exists", "binder"), + ("lambda", "binder"), + ("let", "binder"), + ("bind", "binder"), + ("obligation", "operator"), + ("permission", "operator"), + ("prohibition", "operator"), + ("duty", "operator"), + ("right", "operator"), + ("and", "operator"), + ("or", "operator"), + ("not", "operator"), + ("implies", "operator"), + ("iff", "operator"), + ("must", "operator"), + ("may", "operator"), + ("shall", "operator"), + ("must_not", "operator"), + ("DeonticRule", "type"), + ("FrameLogicTriples", "type"), + ("TDFOLFormula", "type"), + ("KnowledgeGraph", "type"), + ("CounterexampleContext", "type"), + ("ExternalProverPlan", "type"), + ("TemporalWindow", "type"), + ("ProvenanceReceipt", "type"), + ("DecompilerPlan", "type"), + ("proved", "proof"), + ("disproved", "proof"), + ("timeout", "proof"), + ("unknown", "proof"), + ("counterexample", "proof"), + ("unchecked", "proof"), + ("intro", "tactic"), + ("apply", "tactic"), + ("simp", "tactic"), + ("cases", "tactic"), + ("rewrite", "tactic"), + ("hammer", "tactic"), + ("modality", "identifier"), + ("subject", "identifier"), + ("action", "identifier"), + ("condition", "identifier"), + ("exception", "identifier"), + ("object", "identifier"), + ("provenance", "identifier"), + ("relation", "identifier"), + ("frame", "identifier"), + ("qualifiers", "identifier"), + ("predicate", "identifier"), + ("arguments", "identifier"), + ("quantifier", "identifier"), + ("variables", "identifier"), + ("connective", "identifier"), + ("nodes", "identifier"), + ("edges", "identifier"), + ("labels", "identifier"), + ("properties", "identifier"), + ("events", "identifier"), + ("counterexamples", "identifier"), + ("constraints", "identifier"), + ("contexts", "identifier"), + ("backend", "identifier"), + ("obligations", "identifier"), + ("theory", "identifier"), + ("timeout", "identifier"), + ("route", "identifier"), + ("intervals", "identifier"), + ("relations", "identifier"), + ("bounds", "identifier"), + ("calendar", "identifier"), + ("timezone", "identifier"), + ("source_refs", "identifier"), + ("evidence", "identifier"), + ("citations", "identifier"), + ("span_hashes", "identifier"), + ("receipts", "identifier"), + ("steps", "identifier"), + ("target_view", "identifier"), + ("round_trip", "identifier"), + ("source_copy_policy", "identifier"), + ("surface_template", "identifier"), + ("family", "identifier"), + ("rules", "identifier"), + ("triples", "identifier"), + ("formulas", "identifier"), + ("hash_only", "identifier"), + ] + for family in LEGAL_IR_GRAMMAR_FAMILIES: + pieces.append((family, "family")) + for spec in default_legal_ir_production_specs(): + pieces.append((spec.name, "production")) + for index in range(LEGAL_IR_IDENTIFIER_BUCKET_COUNT): + pieces.append((f"", "identifier")) + + seen: set[str] = set() + entries: list[LegalIRVocabEntry] = [] + for piece, token_class in pieces: + if piece in seen: + continue + if token_class not in LEGAL_IR_TOKEN_CLASSES: + raise ValueError(f"unknown token class {token_class!r}") + seen.add(piece) + entries.append( + LegalIRVocabEntry( + token_id=len(entries), + piece=piece, + token_class=token_class, + ) + ) + return tuple(entries) + + +def canonical_legal_ir_frozen_tokenizer() -> LegalIRFrozenTokenizer: + """Return the process-local canonical freeze. Vocabulary is immutable.""" + + return LegalIRFrozenTokenizer.canonical() + + +def _family_output_type(family: str) -> str: + mapping = { + spec.family: spec.output_type for spec in default_legal_ir_production_specs() + } + return mapping.get(family, "") + + +def _chunks(value: str, size: int) -> tuple[str, ...]: + return tuple(value[index : index + size] for index in range(0, len(value), size)) + + +_CLOSED_VALUE_FIELDS: Final[frozenset[str]] = frozenset( + { + "family", + "modality", + "operator", + "quantifier", + "connective", + "backend", + } +) + + +SHARED_LATENT_ARCHITECTURE_ARM = "shared_latent" +SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM = "shared_encoder_typed_head" +COMPATIBLE_ARCHITECTURE_ARMS = ( + SHARED_LATENT_ARCHITECTURE_ARM, + SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM, +) +COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION = "legal-ir-compatible-architecture-v1" +COMPATIBLE_ARCHITECTURE_INIT_CHECKPOINT_SCHEMA = "IRCompatibleArchitectureInitCheckpoint@1" +SHARED_LATENT_ARCHITECTURE_VERSION = "shared_latent_v1" +SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_VERSION = "shared_encoder_typed_head_v1" +COMPATIBLE_ARCHITECTURE_DEFAULT_LATENT_DIM = 16 +COMPATIBLE_ARCHITECTURE_DEFAULT_HIDDEN_DIM = 16 +COMPATIBLE_ARCHITECTURE_DEFAULT_MAX_SEQ_LEN = 32 +COMPATIBLE_ARCHITECTURE_OUTPUT_HEADS = ( + "family", + "view", + "reconstruction", + "uncertainty", +) +MODEL_LEGACY_1_IDENTITY = "MODEL-LEGACY-1" +COMPATIBLE_LEGACY_ARCHITECTURE_VERSIONS = frozenset( + { + "legacy_dense_v1", + "proof_aware_auxiliary_heads_v2", + SHARED_LATENT_ARCHITECTURE_VERSION, + SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_VERSION, + } +) + + +class IncompatibleLegacyWarmStartError(ValueError): + """Raised when MODEL-LEGACY-1 fails compatibility or quarantine.""" + + +def evaluate_legacy_warm_start( + *, + compatibility_passed: bool, + quarantine_passed: bool, + architecture_version: str = "", + legacy_identity: str = MODEL_LEGACY_1_IDENTITY, +) -> dict[str, Any]: + """Admit MODEL-LEGACY-1 only as a non-authoritative warm start.""" + + compatible = bool(compatibility_passed) + quarantined = bool(quarantine_passed) + allowed = compatible and quarantined + if architecture_version and architecture_version not in COMPATIBLE_LEGACY_ARCHITECTURE_VERSIONS: + allowed = False + reason = "architecture version is not in the compatible set" + elif not compatible: + reason = "legacy compatibility gate failed" + elif not quarantined: + reason = "legacy quarantine gate failed" + else: + reason = "warm-start admitted without promotion or semantic authority" + return { + "allowed": allowed, + "architecture_version": architecture_version, + "authority": False, + "identity": legacy_identity, + "promoted": False, + "reason": reason, + } + + +def require_legacy_warm_start(**kwargs: Any) -> dict[str, Any]: + report = evaluate_legacy_warm_start(**kwargs) + if not report["allowed"]: + raise IncompatibleLegacyWarmStartError(str(report["reason"])) + return report + + +def _compatible_architecture_arm_name(value: Optional[str]) -> str: + arm = str(value or SHARED_LATENT_ARCHITECTURE_ARM).strip() + if arm not in COMPATIBLE_ARCHITECTURE_ARMS: + raise ValueError( + "architecture arm must be one of " + ", ".join(COMPATIBLE_ARCHITECTURE_ARMS) + ) + return arm + + +def _architecture_version_for_arm(arm: str) -> str: + if arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + return SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_VERSION + return SHARED_LATENT_ARCHITECTURE_VERSION + + +def _zeros(size: int) -> list[float]: + return [0.0] * int(size) + + +def _seeded_vector(size: int, *, seed: int, salt: str) -> list[float]: + digest = hashlib.sha256(f"{int(seed)}:{salt}".encode("utf-8")).digest() + values: list[float] = [] + block = digest + while len(values) < size: + for index in range(0, len(block), 4): + chunk = block[index : index + 4] + if len(chunk) < 4 or len(values) >= size: + break + raw = int.from_bytes(chunk, "big") / 4294967295.0 + values.append((raw * 2.0 - 1.0) * 0.05) + block = hashlib.sha256(block).digest() + return values + + +def _seeded_matrix(rows: int, cols: int, *, seed: int, salt: str) -> list[list[float]]: + return [ + _seeded_vector(cols, seed=seed, salt=f"{salt}:{row}") + for row in range(int(rows)) + ] + + +def _vec_add(left: Sequence[float], right: Sequence[float]) -> list[float]: + return [float(a) + float(b) for a, b in zip(left, right)] + + +def _vec_sub(left: Sequence[float], right: Sequence[float]) -> list[float]: + return [float(a) - float(b) for a, b in zip(left, right)] + + +def _vec_scale(values: Sequence[float], scale: float) -> list[float]: + return [float(value) * float(scale) for value in values] + + +def _dot(left: Sequence[float], right: Sequence[float]) -> float: + return sum(float(a) * float(b) for a, b in zip(left, right)) + + +def _mat_vec(matrix: Sequence[Sequence[float]], vector: Sequence[float]) -> list[float]: + return [_dot(row, vector) for row in matrix] + + +def _transpose_mat_vec( + matrix: Sequence[Sequence[float]], + vector: Sequence[float], +) -> list[float]: + if not matrix: + return [] + width = len(matrix[0]) + result = [0.0] * width + for row_index, row in enumerate(matrix): + scale = float(vector[row_index]) + for col_index, value in enumerate(row): + result[col_index] += float(value) * scale + return result + + +def _outer(left: Sequence[float], right: Sequence[float]) -> list[list[float]]: + return [[float(a) * float(b) for b in right] for a in left] + + +def _matrix_add( + left: Sequence[Sequence[float]], + right: Sequence[Sequence[float]], +) -> list[list[float]]: + return [_vec_add(a, b) for a, b in zip(left, right)] + + +def _matrix_scale(matrix: Sequence[Sequence[float]], scale: float) -> list[list[float]]: + return [_vec_scale(row, scale) for row in matrix] + + +def _softmax_vector(logits: Sequence[float]) -> list[float]: + if not logits: + return [] + peak = max(float(value) for value in logits) + exps = [math.exp(float(value) - peak) for value in logits] + total = sum(exps) or 1.0 + return [value / total for value in exps] + + +def _sigmoid_scalar(value: float) -> float: + clipped = max(-30.0, min(30.0, float(value))) + return 1.0 / (1.0 + math.exp(-clipped)) + + +def _entropy(probabilities: Sequence[float]) -> float: + total = 0.0 + for probability in probabilities: + if probability > 0.0: + total -= float(probability) * math.log(float(probability)) + return total + + +def _l2_norm(values: Sequence[float]) -> float: + return math.sqrt(sum(float(value) * float(value) for value in values)) + + +def _matrix_l2_norm(matrix: Sequence[Sequence[float]]) -> float: + return math.sqrt( + sum(float(value) * float(value) for row in matrix for value in row) + ) + + +def _copy_matrix(matrix: Sequence[Sequence[float]]) -> list[list[float]]: + return [list(row) for row in matrix] + + +def _copy_vector(values: Sequence[float]) -> list[float]: + return [float(value) for value in values] + + +@dataclass +class CompatibleArchitectureConfig: + """Smallest compatible experiment-arm configuration.""" + + arm: str = SHARED_LATENT_ARCHITECTURE_ARM + latent_dim: int = COMPATIBLE_ARCHITECTURE_DEFAULT_LATENT_DIM + hidden_dim: int = COMPATIBLE_ARCHITECTURE_DEFAULT_HIDDEN_DIM + max_seq_len: int = COMPATIBLE_ARCHITECTURE_DEFAULT_MAX_SEQ_LEN + seed: int = 0 + families: tuple[str, ...] = LEGAL_IR_GRAMMAR_FAMILIES + views: tuple[str, ...] = ( + "deontic.ir", + "modal.frame_logic", + "TDFOL.prover", + "knowledge_graphs.neo4j_compat", + "CEC.native", + "external_provers.router", + "temporal.ir", + "provenance.ir", + "decompiler.plan", + ) + + def __post_init__(self) -> None: + self.arm = _compatible_architecture_arm_name(self.arm) + self.latent_dim = max(2, int(self.latent_dim)) + self.hidden_dim = max(2, int(self.hidden_dim)) + self.max_seq_len = max(4, int(self.max_seq_len)) + self.seed = int(self.seed) + self.families = tuple(str(item) for item in self.families) + self.views = tuple(str(item) for item in self.views) + + @property + def representation_dim(self) -> int: + if self.arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + return int(self.hidden_dim) + return int(self.latent_dim) + + @property + def architecture_version(self) -> str: + return _architecture_version_for_arm(self.arm) + + def to_dict(self) -> dict[str, Any]: + return { + "architecture_version": self.architecture_version, + "arm": self.arm, + "families": list(self.families), + "hidden_dim": int(self.hidden_dim), + "latent_dim": int(self.latent_dim), + "max_seq_len": int(self.max_seq_len), + "seed": int(self.seed), + "views": list(self.views), + } + + +class CompatibleLearnedArchitecture: + """Runnable shared-latent or shared-encoder/typed-head experiment arm. + + Neither arm is a promotion winner. Proof labels stay nondifferentiable. + The frozen tokenizer is the only vocabulary authority. + """ + + def __init__( + self, + *, + config: Optional[CompatibleArchitectureConfig] = None, + tokenizer: Optional[LegalIRFrozenTokenizer] = None, + parameters: Optional[Mapping[str, Any]] = None, + ) -> None: + self.config = config or CompatibleArchitectureConfig() + self.tokenizer = tokenizer or LegalIRFrozenTokenizer.canonical() + if not self.tokenizer.frozen: + raise FrozenVocabularyMutationError( + "compatible architectures require a frozen tokenizer" + ) + self.families = tuple(self.config.families) + self.views = tuple(self.config.views) + self.vocab_size = int(self.tokenizer.vocabulary_size) + self.dim = int(self.config.representation_dim) + self.parameters = self._initialize_parameters(parameters) + + def _initialize_parameters( + self, + parameters: Optional[Mapping[str, Any]], + ) -> dict[str, Any]: + if parameters: + return self._hydrate_parameters(parameters) + seed = self.config.seed + arm = self.config.arm + typed_heads: dict[str, dict[str, Any]] = {} + if self.config.arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + for family in self.families: + typed_heads[family] = { + "bias": _seeded_vector( + len(self.families), + seed=seed, + salt=f"{arm}:typed:{family}:bias", + ), + "uncertainty_bias": _seeded_vector( + 1, + seed=seed, + salt=f"{arm}:typed:{family}:uncertainty_bias", + )[0], + "uncertainty_weight": _seeded_vector( + self.dim, + seed=seed, + salt=f"{arm}:typed:{family}:uncertainty_weight", + ), + "weight": _seeded_matrix( + len(self.families), + self.dim, + seed=seed, + salt=f"{arm}:typed:{family}:weight", + ), + } + return { + "embedding": _seeded_matrix( + self.vocab_size, self.dim, seed=seed, salt=f"{arm}:embedding" + ), + "encoder_bias": _seeded_vector(self.dim, seed=seed, salt=f"{arm}:encoder_bias"), + "family_bias": _seeded_vector( + len(self.families), seed=seed, salt=f"{arm}:family_bias" + ), + "family_weight": _seeded_matrix( + len(self.families), self.dim, seed=seed, salt=f"{arm}:family_weight" + ), + "reconstruction_bias": _seeded_vector( + self.vocab_size, seed=seed, salt=f"{arm}:reconstruction_bias" + ), + "reconstruction_weight": _seeded_matrix( + self.vocab_size, + self.dim, + seed=seed, + salt=f"{arm}:reconstruction_weight", + ), + "typed_heads": typed_heads, + "uncertainty_bias": _seeded_vector( + 1, seed=seed, salt=f"{arm}:uncertainty_bias" + )[0], + "uncertainty_weight": _seeded_vector( + self.dim, seed=seed, salt=f"{arm}:uncertainty_weight" + ), + "view_bias": _seeded_vector(len(self.views), seed=seed, salt=f"{arm}:view_bias"), + "view_weight": _seeded_matrix( + len(self.views), self.dim, seed=seed, salt=f"{arm}:view_weight" + ), + } + + def _hydrate_parameters(self, parameters: Mapping[str, Any]) -> dict[str, Any]: + typed_heads = {} + raw_heads = dict(parameters.get("typed_heads") or {}) + for family, payload in raw_heads.items(): + typed_heads[str(family)] = { + "bias": [float(value) for value in payload["bias"]], + "uncertainty_bias": float(payload["uncertainty_bias"]), + "uncertainty_weight": [ + float(value) for value in payload["uncertainty_weight"] + ], + "weight": [[float(value) for value in row] for row in payload["weight"]], + } + return { + "embedding": [[float(value) for value in row] for row in parameters["embedding"]], + "encoder_bias": [float(value) for value in parameters["encoder_bias"]], + "family_bias": [float(value) for value in parameters["family_bias"]], + "family_weight": [ + [float(value) for value in row] for row in parameters["family_weight"] + ], + "reconstruction_bias": [ + float(value) for value in parameters["reconstruction_bias"] + ], + "reconstruction_weight": [ + [float(value) for value in row] + for row in parameters["reconstruction_weight"] + ], + "typed_heads": typed_heads, + "uncertainty_bias": float(parameters["uncertainty_bias"]), + "uncertainty_weight": [ + float(value) for value in parameters["uncertainty_weight"] + ], + "view_bias": [float(value) for value in parameters["view_bias"]], + "view_weight": [ + [float(value) for value in row] for row in parameters["view_weight"] + ], + } + + def tokenize( + self, + structured_ir: Any, + *, + family: str = "", + source_text: str = "", + ) -> LegalIRTokenization: + return self.tokenizer.encode_canonical( + structured_ir, + family=family, + source_text=source_text, + max_length=self.config.max_seq_len, + ) + + def encode_ids(self, token_ids: Sequence[int]) -> list[float]: + if not token_ids: + return list(self.parameters["encoder_bias"]) + pooled = _zeros(self.dim) + count = 0 + for token_id in token_ids: + if int(token_id) == self.tokenizer.pad_id: + continue + pooled = _vec_add(pooled, self.parameters["embedding"][int(token_id)]) + count += 1 + if count: + pooled = _vec_scale(pooled, 1.0 / float(count)) + return _vec_add(pooled, self.parameters["encoder_bias"]) + + def _family_index(self, family: str) -> int: + resolved = str(family or self.families[0]) + if resolved in self.families: + return self.families.index(resolved) + return 0 + + def _view_index(self, view: str) -> int: + resolved = str(view or self.views[0]) + if resolved in self.views: + return self.views.index(resolved) + return 0 + + def _conditioning_vector( + self, + *, + family: str, + view: str, + source_text: str, + ) -> list[float]: + values = _zeros(self.dim) + values[self._family_index(family) % self.dim] += 1.0 + values[self._view_index(view) % self.dim] += 0.5 + if source_text: + digest = hashlib.sha256( + " ".join(str(source_text).split()).encode("utf-8") + ).digest() + for offset in range(min(8, self.dim)): + values[offset] += ((digest[offset] / 255.0) * 2.0 - 1.0) * 0.05 + return values + + def _select_family_head(self, family: str) -> tuple[list[list[float]], list[float]]: + if self.config.arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + head = self.parameters["typed_heads"][self.families[self._family_index(family)]] + return head["weight"], head["bias"] + return self.parameters["family_weight"], self.parameters["family_bias"] + + def _select_uncertainty_head(self, family: str) -> tuple[list[float], float]: + if self.config.arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + head = self.parameters["typed_heads"][self.families[self._family_index(family)]] + return head["uncertainty_weight"], float(head["uncertainty_bias"]) + return ( + self.parameters["uncertainty_weight"], + float(self.parameters["uncertainty_bias"]), + ) + + def forward( + self, + structured_ir: Any, + *, + family: str = "", + source_text: str = "", + view: str = "", + target_family: str = "", + proof_label: str = "", + ) -> dict[str, Any]: + tokenization = self.tokenize( + structured_ir, + family=family, + source_text=source_text, + ) + token_ids = self.tokenizer.pad_ids( + tokenization.token_ids, + max_length=self.config.max_seq_len, + ) + hidden = self.encode_ids(token_ids) + conditioning = self._conditioning_vector( + family=tokenization.family or family, + view=view or f"{tokenization.family or family}.ir", + source_text=source_text, + ) + latent = _vec_add(hidden, conditioning) + latent_norm = _l2_norm(latent) or 1.0 + latent = _vec_scale(latent, 1.0 / latent_norm) + family_weight, family_bias = self._select_family_head(tokenization.family or family) + family_logits = _vec_add(_mat_vec(family_weight, latent), family_bias) + family_probabilities = _softmax_vector(family_logits) + view_logits = _vec_add( + _mat_vec(self.parameters["view_weight"], latent), + self.parameters["view_bias"], + ) + view_probabilities = _softmax_vector(view_logits) + reconstruction_logits = _vec_add( + _mat_vec(self.parameters["reconstruction_weight"], latent), + self.parameters["reconstruction_bias"], + ) + uncertainty_weight, uncertainty_bias = self._select_uncertainty_head( + tokenization.family or family + ) + aleatoric = _sigmoid_scalar(_dot(uncertainty_weight, latent) + uncertainty_bias) + epistemic = _entropy(family_probabilities) + confidence = max(family_probabilities) if family_probabilities else 0.0 + predicted_family = ( + self.families[family_probabilities.index(confidence)] + if family_probabilities + else "" + ) + target = str(target_family or tokenization.family or family or self.families[0]) + target_index = self._family_index(target) + target_one_hot = [0.0] * len(self.families) + target_one_hot[target_index] = 1.0 + loss = -math.log(max(family_probabilities[target_index], 1.0e-12)) + return { + "accepted": tokenization.accepted, + "aleatoric_uncertainty": round(float(aleatoric), 12), + "architecture_version": self.config.architecture_version, + "arm": self.config.arm, + "canonical_token_count": tokenization.canonical_token_count, + "conditioning": { + "family": tokenization.family or family, + "proof_label": str(proof_label or ""), + "proof_label_differentiable": False, + "source_surface_separated": True, + "view": view or f"{tokenization.family or family}.ir", + }, + "confidence": round(float(confidence), 12), + "epistemic_uncertainty": round(float(epistemic), 12), + "family_logits": [round(float(value), 12) for value in family_logits], + "family_probabilities": [ + round(float(value), 12) for value in family_probabilities + ], + "heads": { + "family": { + "kind": "categorical", + "output_size": len(self.families), + "shared": self.config.arm == SHARED_LATENT_ARCHITECTURE_ARM, + }, + "reconstruction": { + "kind": "token_softmax", + "output_size": self.vocab_size, + "shared": True, + }, + "uncertainty": { + "kind": "aleatoric_epistemic", + "output_size": 2, + "shared": self.config.arm == SHARED_LATENT_ARCHITECTURE_ARM, + }, + "view": { + "kind": "categorical", + "output_size": len(self.views), + "shared": True, + }, + }, + "hidden": [round(float(value), 12) for value in hidden], + "latent": [round(float(value), 12) for value in latent], + "latent_normalized": True, + "loss": round(float(loss), 12), + "predicted_family": predicted_family, + "reconstruction_logits": [ + round(float(value), 12) for value in reconstruction_logits + ], + "schema_version": COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION, + "shapes": { + "family_logits": [len(self.families)], + "latent": [self.dim], + "reconstruction_logits": [self.vocab_size], + "token_ids": [self.config.max_seq_len], + "view_logits": [len(self.views)], + }, + "source_surface_token_count": tokenization.source_surface_token_count, + "target_family": target, + "target_one_hot": target_one_hot, + "token_class_counts": tokenization.token_class_histogram(), + "token_ids": token_ids, + "tokenization": tokenization.to_dict(), + "tokenizer_vocabulary_cid": self.tokenizer.vocabulary_cid, + "view_logits": [round(float(value), 12) for value in view_logits], + "view_probabilities": [ + round(float(value), 12) for value in view_probabilities + ], + "winner": False, + } + + def backward(self, forward_result: Mapping[str, Any]) -> dict[str, Any]: + latent = [float(value) for value in forward_result["latent"]] + probabilities = [float(value) for value in forward_result["family_probabilities"]] + target = [float(value) for value in forward_result["target_one_hot"]] + family = str(forward_result.get("conditioning", {}).get("family") or "") + family_weight, _family_bias = self._select_family_head(family) + d_logits = _vec_sub(probabilities, target) + d_weight = _outer(d_logits, latent) + d_bias = list(d_logits) + d_latent = _transpose_mat_vec(family_weight, d_logits) + token_ids = [int(value) for value in forward_result["token_ids"]] + active = [token_id for token_id in token_ids if token_id != self.tokenizer.pad_id] + scale = 1.0 / float(len(active) or 1) + d_embedding = [_zeros(self.dim) for _ in range(self.vocab_size)] + for token_id in active: + d_embedding[token_id] = _vec_add( + d_embedding[token_id], + _vec_scale(d_latent, scale), + ) + return { + "d_embedding_norm": round(_matrix_l2_norm(d_embedding), 12), + "d_family_bias": [round(float(value), 12) for value in d_bias], + "d_family_weight": [ + [round(float(value), 12) for value in row] for row in d_weight + ], + "d_latent": [round(float(value), 12) for value in d_latent], + "gradient_norm": round( + math.sqrt( + _matrix_l2_norm(d_weight) ** 2 + + _l2_norm(d_bias) ** 2 + + _l2_norm(d_latent) ** 2 + ), + 12, + ), + "proof_in_gradient_path": False, + } + + def step( + self, + structured_ir: Any, + *, + family: str = "", + source_text: str = "", + target_family: str = "", + learning_rate: float = 0.05, + ) -> dict[str, Any]: + forward_result = self.forward( + structured_ir, + family=family, + source_text=source_text, + target_family=target_family, + ) + gradients = self.backward(forward_result) + family_name = str(forward_result["conditioning"]["family"] or family) + family_weight, family_bias = self._select_family_head(family_name) + updated_weight = _matrix_add( + family_weight, + _matrix_scale(gradients["d_family_weight"], -float(learning_rate)), + ) + updated_bias = _vec_add( + family_bias, + _vec_scale(gradients["d_family_bias"], -float(learning_rate)), + ) + if self.config.arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + head = self.parameters["typed_heads"][ + self.families[self._family_index(family_name)] + ] + head["weight"] = updated_weight + head["bias"] = updated_bias + else: + self.parameters["family_weight"] = updated_weight + self.parameters["family_bias"] = updated_bias + updated = self.forward( + structured_ir, + family=family, + source_text=source_text, + target_family=target_family, + ) + return { + "after": updated, + "before": forward_result, + "gradients": gradients, + "loss_delta": round(float(updated["loss"]) - float(forward_result["loss"]), 12), + } + + def parameter_count(self) -> int: + count = 0 + count += self.vocab_size * self.dim + count += self.dim + count += len(self.families) * self.dim + len(self.families) + count += len(self.views) * self.dim + len(self.views) + count += self.vocab_size * self.dim + self.vocab_size + count += self.dim + 1 + if self.config.arm == SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM: + count += len(self.families) * ( + len(self.families) * self.dim + len(self.families) + self.dim + 1 + ) + return int(count) + + def parameter_resource_estimate(self) -> dict[str, Any]: + parameter_count = self.parameter_count() + return { + "arm": self.config.arm, + "bytes_fp32": int(parameter_count * 4), + "device": "cpu", + "estimated_forward_flops": int( + self.config.max_seq_len * self.dim + + self.dim * (len(self.families) + len(self.views) + self.vocab_size) + ), + "gpu_required": False, + "hidden_dim": self.config.hidden_dim, + "latent_dim": self.config.latent_dim, + "max_seq_len": self.config.max_seq_len, + "parameter_count": parameter_count, + "tokenizer_vocabulary_size": self.vocab_size, + } + + def architecture_manifest(self) -> dict[str, Any]: + return { + "architecture_version": self.config.architecture_version, + "arm": self.config.arm, + "compatible_with_advisor": True, + "config": self.config.to_dict(), + "heads": list(COMPATIBLE_ARCHITECTURE_OUTPUT_HEADS), + "legacy_promoted": False, + "output_heads": { + "conditioning": ["family", "view", "source_span_hash"], + "family": list(self.families), + "uncertainty": ["aleatoric", "epistemic"], + "view": list(self.views), + }, + "parameter_resource_estimate": self.parameter_resource_estimate(), + "schema_version": COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION, + "tokenizer_schema_version": LEGAL_IR_FROZEN_TOKENIZER_SCHEMA_VERSION, + "tokenizer_vocabulary_cid": self.tokenizer.vocabulary_cid, + "tokenizer_vocabulary_sha256": self.tokenizer.vocabulary_sha256, + "winner": False, + } + + def initialization_checkpoint(self) -> dict[str, Any]: + return { + "architecture_manifest": self.architecture_manifest(), + "architecture_version": self.config.architecture_version, + "arm": self.config.arm, + "legacy_promoted": False, + "parameters": self.parameters_to_dict(), + "schema": COMPATIBLE_ARCHITECTURE_INIT_CHECKPOINT_SCHEMA, + "schema_version": COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION, + "seed": self.config.seed, + "tokenizer_vocabulary_cid": self.tokenizer.vocabulary_cid, + "winner": False, + } + + def parameters_to_dict(self) -> dict[str, Any]: + typed_heads = { + family: { + "bias": _copy_vector(payload["bias"]), + "uncertainty_bias": float(payload["uncertainty_bias"]), + "uncertainty_weight": _copy_vector(payload["uncertainty_weight"]), + "weight": _copy_matrix(payload["weight"]), + } + for family, payload in self.parameters["typed_heads"].items() + } + return { + "embedding": _copy_matrix(self.parameters["embedding"]), + "encoder_bias": _copy_vector(self.parameters["encoder_bias"]), + "family_bias": _copy_vector(self.parameters["family_bias"]), + "family_weight": _copy_matrix(self.parameters["family_weight"]), + "reconstruction_bias": _copy_vector(self.parameters["reconstruction_bias"]), + "reconstruction_weight": _copy_matrix(self.parameters["reconstruction_weight"]), + "typed_heads": typed_heads, + "uncertainty_bias": float(self.parameters["uncertainty_bias"]), + "uncertainty_weight": _copy_vector(self.parameters["uncertainty_weight"]), + "view_bias": _copy_vector(self.parameters["view_bias"]), + "view_weight": _copy_matrix(self.parameters["view_weight"]), + } + + def to_dict(self) -> dict[str, Any]: + return { + "config": self.config.to_dict(), + "parameters": self.parameters_to_dict(), + "schema_version": COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION, + "tokenizer": self.tokenizer.to_dict(), + } + + @classmethod + def from_dict(cls, payload: Mapping[str, Any]) -> "CompatibleLearnedArchitecture": + config_payload = dict(payload.get("config") or {}) + default_views = CompatibleArchitectureConfig().views + config = CompatibleArchitectureConfig( + arm=str(config_payload.get("arm") or SHARED_LATENT_ARCHITECTURE_ARM), + latent_dim=int( + config_payload.get("latent_dim") + or COMPATIBLE_ARCHITECTURE_DEFAULT_LATENT_DIM + ), + hidden_dim=int( + config_payload.get("hidden_dim") + or COMPATIBLE_ARCHITECTURE_DEFAULT_HIDDEN_DIM + ), + max_seq_len=int( + config_payload.get("max_seq_len") + or COMPATIBLE_ARCHITECTURE_DEFAULT_MAX_SEQ_LEN + ), + seed=int(config_payload.get("seed") or 0), + families=tuple(config_payload.get("families") or LEGAL_IR_GRAMMAR_FAMILIES), + views=tuple(config_payload.get("views") or default_views), + ) + tokenizer_payload = payload.get("tokenizer") + tokenizer = ( + LegalIRFrozenTokenizer.from_dict(tokenizer_payload) + if isinstance(tokenizer_payload, Mapping) + else LegalIRFrozenTokenizer.canonical() + ) + return cls( + config=config, + tokenizer=tokenizer, + parameters=payload.get("parameters"), + ) + + +def build_compatible_learned_architecture( + arm: str = SHARED_LATENT_ARCHITECTURE_ARM, + *, + tokenizer: Optional[LegalIRFrozenTokenizer] = None, + seed: int = 0, + latent_dim: int = COMPATIBLE_ARCHITECTURE_DEFAULT_LATENT_DIM, + hidden_dim: int = COMPATIBLE_ARCHITECTURE_DEFAULT_HIDDEN_DIM, + max_seq_len: int = COMPATIBLE_ARCHITECTURE_DEFAULT_MAX_SEQ_LEN, +) -> CompatibleLearnedArchitecture: + return CompatibleLearnedArchitecture( + config=CompatibleArchitectureConfig( + arm=arm, + latent_dim=latent_dim, + hidden_dim=hidden_dim, + max_seq_len=max_seq_len, + seed=seed, + ), + tokenizer=tokenizer or LegalIRFrozenTokenizer.canonical(), + ) + + +def compatible_architecture_suite( + *, + seed: int = 0, + tokenizer: Optional[LegalIRFrozenTokenizer] = None, +) -> dict[str, Any]: + """Expose both runnable arms without choosing a winner or writing files.""" + + frozen = tokenizer or LegalIRFrozenTokenizer.canonical() + arms = { + name: build_compatible_learned_architecture(name, tokenizer=frozen, seed=seed) + for name in COMPATIBLE_ARCHITECTURE_ARMS + } + return { + "arms": { + name: architecture.architecture_manifest() for name, architecture in arms.items() + }, + "initialization_roots": { + name: architecture.initialization_checkpoint() + for name, architecture in arms.items() + }, + "instances": arms, + "legacy_promoted": False, + "legacy_warm_start": evaluate_legacy_warm_start( + compatibility_passed=False, + quarantine_passed=False, + ), + "parameter_resource_estimates": { + name: architecture.parameter_resource_estimate() + for name, architecture in arms.items() + }, + "schema_version": COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION, + "tokenizer_vocabulary_cid": frozen.vocabulary_cid, + "winner": False, + } + + +def compatible_architecture_manifests( + *, + seed: int = 0, + tokenizer: Optional[LegalIRFrozenTokenizer] = None, +) -> dict[str, Any]: + """Return serializable manifests, init roots, and resource estimates.""" + + suite = compatible_architecture_suite(seed=seed, tokenizer=tokenizer) + return { + "arms": suite["arms"], + "initialization_roots": suite["initialization_roots"], + "legacy_promoted": False, + "parameter_resource_estimates": suite["parameter_resource_estimates"], + "schema_version": suite["schema_version"], + "tokenizer_vocabulary_cid": suite["tokenizer_vocabulary_cid"], + "winner": False, + } + + +def advisor_architecture_version(autoencoder: Any) -> str: + """Read the existing advisor architecture version without mutating it.""" + + if autoencoder is None: + return "" + state = getattr(autoencoder, "state", None) + version = getattr(state, "architecture_version", "") or getattr( + autoencoder, "architecture_version", "" + ) + return str(version or "").strip() + + +def extend_existing_advisor_architectures( + autoencoder: Any = None, + *, + seed: int = 0, + tokenizer: Optional[LegalIRFrozenTokenizer] = None, +) -> dict[str, Any]: + """Extend the existing modal-autoencoder advisor into both experiment arms. + + The advisor is not mutated, MODEL-LEGACY-1 is not promoted, and neither + arm is recorded as a winner. + """ + + frozen = tokenizer or LegalIRFrozenTokenizer.canonical() + suite = compatible_architecture_suite(seed=seed, tokenizer=frozen) + advisor_version = advisor_architecture_version(autoencoder) + compatible_with_advisor = (not advisor_version) or ( + advisor_version in COMPATIBLE_LEGACY_ARCHITECTURE_VERSIONS + ) + return { + "advisor_architecture_version": advisor_version or None, + "advisor_extended": autoencoder is not None, + "advisor_mutated": False, + "arms": suite["arms"], + "compatible_with_advisor": compatible_with_advisor, + "initialization_roots": suite["initialization_roots"], + "instances": suite["instances"], + "legacy_promoted": False, + "legacy_warm_start": evaluate_legacy_warm_start( + compatibility_passed=False, + quarantine_passed=False, + ), + "parameter_resource_estimates": suite["parameter_resource_estimates"], + "schema_version": suite["schema_version"], + "tokenizer_vocabulary_cid": frozen.vocabulary_cid, + "winner": False, + } + + +__all__ = [ + "COMPATIBLE_ARCHITECTURE_ARMS", + "COMPATIBLE_ARCHITECTURE_INIT_CHECKPOINT_SCHEMA", + "COMPATIBLE_ARCHITECTURE_SCHEMA_VERSION", + "COMPATIBLE_LEGACY_ARCHITECTURE_VERSIONS", + "CompatibleArchitectureConfig", + "CompatibleLearnedArchitecture", + "ConstrainedLegalIRDecode", + "FrozenVocabularyMutationError", + "IncompatibleLegacyWarmStartError", + "LEGAL_IR_CANONICAL_VOCABULARY_CID", + "LEGAL_IR_CANONICAL_VOCABULARY_SIZE", + "LEGAL_IR_CLOSED_TOKEN_CLASSES", + "LEGAL_IR_CONSTRAINED_DECODER_INTERFACE", + "LEGAL_IR_CONSTRAINED_DECODER_SCHEMA", + "LEGAL_IR_CONSTRAINT_MASK_NAMES", + "LEGAL_IR_DECODE_FALLBACKS", + "LEGAL_IR_FROZEN_TOKENIZER_INTERFACE", + "LEGAL_IR_FROZEN_TOKENIZER_SCHEMA_VERSION", + "LEGAL_IR_FROZEN_VOCABULARY_SCHEMA", + "LEGAL_IR_GRAMMAR_DECODER_SCHEMA_VERSION", + "LEGAL_IR_GRAMMAR_FAMILIES", + "LEGAL_IR_IDENTIFIER_BUCKET_COUNT", + "LEGAL_IR_MAX_BEAM_WIDTH", + "LEGAL_IR_MAX_DECODE_STEPS", + "LEGAL_IR_TOKEN_CLASSES", + "LegalIRBeamHypothesis", + "LegalIRConstrainedDecodeConfig", + "LegalIRConstrainedTokenDecode", + "LegalIRConstraintBypassError", + "LegalIRConstraintMasks", + "LegalIRConstraintRejectionTelemetry", + "LegalIRFrozenTokenizer", + "LegalIRGoldPathAdmission", + "LegalIRGrammarDecoder", + "LegalIRGrammarRejection", + "LegalIRGrammarValidation", + "LegalIRProductionSpec", + "LegalIRProverAdmission", + "LegalIRToken", + "LegalIRTokenization", + "LegalIRVocabEntry", + "MODEL_LEGACY_1_IDENTITY", + "SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_ARM", + "SHARED_ENCODER_TYPED_HEAD_ARCHITECTURE_VERSION", + "SHARED_LATENT_ARCHITECTURE_ARM", + "SHARED_LATENT_ARCHITECTURE_VERSION", + "UnboundedLegalIRBeamError", + "UnknownFrozenTokenError", + "admit_legal_ir_gold_path", + "advisor_architecture_version", + "apply_legal_ir_constraint_masks", + "build_compatible_learned_architecture", + "canonical_legal_ir_frozen_tokenizer", + "canonical_legal_ir_grammar_family", + "compare_constrained_vs_unconstrained_proof_calls", + "compatible_architecture_manifests", + "compatible_architecture_suite", + "constrained_legal_ir_decode", + "constrained_legal_ir_token_decode", + "default_legal_ir_frozen_vocabulary", + "default_legal_ir_production_specs", + "evaluate_legacy_warm_start", + "extend_existing_advisor_architectures", + "gate_legal_ir_prover_call", + "grammar_metrics_from_validation", + "grammar_rejection_reason_names", + "infer_legal_ir_grammar_family", + "legal_ir_constrained_decode_config", + "legal_ir_constraint_masks", + "require_legacy_warm_start", + "validate_legal_ir_candidate", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3/ipfs_datasets_py/logic/ui_ux_ir/decoder.py b/releases/20261004-retained-checkpoints-v1/source/21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3/ipfs_datasets_py/logic/ui_ux_ir/decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..77950b04c9e103410b66a4147981146ab7bebd70 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3/ipfs_datasets_py/logic/ui_ux_ir/decoder.py @@ -0,0 +1,157 @@ +"""Exact-version decoding of every declared UI/UX IR wire field. + +All nested records are constructed from the local schema's closed dataclasses. +No field is silently dropped, no scalar is stringified/coerced, and ordered +collections retain order. Schema validation remains the cross-reference owner. +This wire codec does not claim neural decoding or source semantic fidelity. +""" +from __future__ import annotations + +from collections.abc import Mapping +from dataclasses import MISSING, fields, is_dataclass +from enum import Enum +from functools import lru_cache +import json +import math +from types import UnionType +from typing import Any, get_args, get_origin, get_type_hints + +from . import schema +from .schema import UIIRDocument, UIIRValidationError + +MAX_WIRE_BYTES = 16 * 1024 * 1024 +MAX_WIRE_NODES = 200000 +MAX_WIRE_DEPTH = 64 +_WIRE_CLASSES = frozenset(value for value in vars(schema).values() + if isinstance(value, type) and is_dataclass(value) and value.__module__ == schema.__name__) + + +class UIIRDecodeError(UIIRValidationError): + """An untrusted payload cannot be decoded without loss or coercion.""" + + +def _require(condition, message): + if not condition: + raise UIIRDecodeError(message) + + +def _unique_object(pairs): + result = {} + for key, value in pairs: + _require(key not in result, "duplicate UI/UX IR JSON field: " + key) + result[key] = value + return result + + +def _snapshot(value, budget, depth=0): + budget[0] -= 1 + _require(budget[0] >= 0 and depth <= MAX_WIRE_DEPTH, "UI/UX IR wire resource bound exceeded") + if isinstance(value, Mapping): + _require(all(type(key) is str for key in value), "UI/UX IR object keys must be strings") + return {key: _snapshot(item, budget, depth + 1) for key, item in value.items()} + if type(value) in (list, tuple): + return [_snapshot(item, budget, depth + 1) for item in value] + _require(value is None or type(value) in (str, bool, int, float), "UI/UX IR requires JSON values") + _require(type(value) is not float or math.isfinite(value), "UI/UX IR contains nonfinite number") + return value + + +@lru_cache(maxsize=len(_WIRE_CLASSES)) +def _field_types(record_type): + _require(record_type in _WIRE_CLASSES, "unsupported UI/UX IR record type") + return get_type_hints(record_type) + + +def _decode_value(value, expected, path): + origin, arguments = get_origin(expected), get_args(expected) + if origin is UnionType: + nonnull = tuple(item for item in arguments if item is not type(None)) + _require(len(nonnull) == 1 and type(None) in arguments, "unsupported UI/UX IR union type") + return None if value is None else _decode_value(value, nonnull[0], path) + if origin is tuple: + _require(len(arguments) == 2 and arguments[1] is Ellipsis and type(value) is list, + path + " must be an array") + return tuple(_decode_value(item, arguments[0], path + "[" + str(index) + "]") + for index, item in enumerate(value)) + if origin is Mapping: + _require(arguments == (str, Any) and type(value) is dict, path + " must be a JSON object") + # The complete JSON snapshot was bounded above. The existing schema + # owner freezes these extension/settings payloads and rejects code. + return value + if expected in _WIRE_CLASSES: + return _decode_record(value, expected, path) + if isinstance(expected, type) and issubclass(expected, Enum): + _require(expected.__module__ == schema.__name__ and type(value) is str, + path + " must be a declared enum string") + try: + return expected(value) + except ValueError as exc: + raise UIIRDecodeError(path + " has an unknown enum value") from exc + _require(expected in (str, bool, int) and type(value) is expected, + path + " has the wrong scalar type") + return value + + +def _decode_record(payload, record_type, path): + _require(type(payload) is dict, path + " must be an object") + declared = {field.name: field for field in fields(record_type)} + unknown = sorted(set(payload) - set(declared)) + _require(not unknown, path + " has unknown fields: " + ", ".join(unknown)) + missing = [name for name, field in declared.items() if name not in payload + and field.default is MISSING and field.default_factory is MISSING] + _require(not missing, path + " is missing required fields: " + ", ".join(missing)) + hints = _field_types(record_type) + return record_type(**{key: _decode_value(value, hints[key], path + "." + key) + for key, value in payload.items()}) + + +# Retain the original private helper names for local consumers, with exact +# nested schemas and types instead of lossy str()/int() conversions. +def _decode_source(payload): + return _decode_record(_snapshot(payload, [MAX_WIRE_NODES]), schema.UISourceRef, "UISourceRef") + + +def _decode_component(payload): + return _decode_record(_snapshot(payload, [MAX_WIRE_NODES]), schema.UIComponent, "UIComponent") + + +def _decode_terminal(payload): + return _decode_record(_snapshot(payload, [MAX_WIRE_NODES]), schema.UITerminalOutcome, "UITerminalOutcome") + + +def _decode_locale(payload): + return _decode_record(_snapshot(payload, [MAX_WIRE_NODES]), schema.UILocaleDefaults, "UILocaleDefaults") + + +def decode_ui_ir(payload: Mapping[str, Any] | str | bytes) -> UIIRDocument: + """Decode every schema field and validate the complete reference closure. + + Omitted optional fields receive only schema-declared defaults. Present null, + false, zero or empty values never substitute for a missing field. Legacy + versions still require the explicit migration owner. + """ + try: + if isinstance(payload, (str, bytes, bytearray)): + raw = payload.encode("utf-8") if isinstance(payload, str) else bytes(payload) + _require(len(raw) <= MAX_WIRE_BYTES, "UI/UX IR wire exceeds byte bound") + payload = json.loads(raw.decode("utf-8"), object_pairs_hook=_unique_object) + payload = _snapshot(payload, [MAX_WIRE_NODES]) + _require(type(payload) is dict, "UI/UX IR payload must decode to an object") + raw = json.dumps(payload, ensure_ascii=False, separators=(",", ":"), allow_nan=False).encode() + _require(len(raw) <= MAX_WIRE_BYTES, "UI/UX IR wire exceeds byte bound") + version = payload.get("schema_version") + _require(type(version) is str and bool(version), "UI/UX IR payload missing schema_version") + if version == schema.LEGACY_UI_UX_IR_SCHEMA_VERSION: + raise UIIRDecodeError(f"Legacy schema_version {version!r} requires explicit migration before decode") + _require(version == schema.UI_UX_IR_SCHEMA_VERSION, + f"Unsupported schema_version {version!r}; expected {schema.UI_UX_IR_SCHEMA_VERSION!r}") + schema.reject_unknown_document_fields(payload) + document = _decode_record(payload, UIIRDocument, "UIIRDocument") + return schema.validate_ui_ir(document) + except UIIRDecodeError: + raise + except (UIIRValidationError, UnicodeError, ValueError, TypeError, KeyError, RecursionError) as exc: + raise UIIRDecodeError(f"Failed to decode UI/UX IR document: {exc}") from exc + + +__all__ = ["UIIRDecodeError", "decode_ui_ir"] diff --git a/releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py b/releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py new file mode 100644 index 0000000000000000000000000000000000000000..fc60e3f43e9fe0bddcbea1f258a2e876284aee33 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py @@ -0,0 +1,434 @@ +"""Experimental fixed-schema typed IR decoder over a trained Legal 384D encoder. + +A frozen inherited residual projection feeds parallel learned scalar classifiers. +Training consensus supplies constants and the exact typed JSON tree. Inference +combines independently predicted scalar classes, never retrieves whole targets. +This intentionally rejects variable schemas, array lengths, and unseen classes. +Native validation and held-out accuracy do not grant semantic or proof authority. +""" +from __future__ import annotations + +from contextlib import contextmanager +from copy import deepcopy +import hashlib +import math +from pathlib import Path +import time + +from . import source_training_v2 as shared +from ....optimizers.logic_theorem_optimizer import domain_384_autoencoder as native +from ....optimizers.logic_theorem_optimizer import modal_latent_formula as legal + +SCHEMA = "structured-source-384-autoencoder/v1" +DOMAINS, DIMENSION, FALSE = shared.DOMAINS, 384, native.FALSE +MAX_BYTES = native.MAX_BYTES +RIDGES = (.0001, .001, .01, .1) +PROJECTION_KEYS = ("projection_down.weight", "projection_down.bias", "projection_up.weight", "projection_up.bias") +_require, _raw, digest = native._require, native._raw, native.digest + + +@contextmanager +def _numeric(): + import numpy as np + # Explicitly bound BLAS work without permanently changing caller settings. + try: + from threadpoolctl import threadpool_limits + except ImportError: + yield np + else: + with threadpool_limits(limits=1, user_api="blas"): + yield np + + +def _implementation(): + return {"runtime_sha256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + "shared_runtime": shared._implementation()} + + +def _shape(value): + if type(value) is dict: + return {"kind": "object", "fields": [[key, _shape(value[key])] for key in sorted(value)]} + if type(value) is list: + return {"kind": "array", "items": [_shape(item) for item in value]} + names = {str: "string", bool: "boolean", int: "integer", float: "float", type(None): "null"} + _require(type(value) in names, "non-JSON target scalar") + return {"kind": names[type(value)]} + + +def _scalar_leaves(value, path=()): + if type(value) is dict: + return {key: leaf for field in sorted(value) for key, leaf in _scalar_leaves(value[field], (*path, field)).items()} + if type(value) is list: + return {key: leaf for index, item in enumerate(value) for key, leaf in _scalar_leaves(item, (*path, index)).items()} + return {path: value} + + +def _replace(document, path, value): + _require(path, "root scalar IR is unsupported") + target = document + for part in path[:-1]: + target = target[part] + target[path[-1]] = deepcopy(value) + + +def _fit_schema(rows): + shape = _shape(rows[0]["target"]) + _require(all(_shape(row["target"]) == shape for row in rows), + "fixed typed JSON tree required; array lengths, keys, and scalar types may not vary") + leaves = [_scalar_leaves(row["target"]) for row in rows] + template, slots = deepcopy(rows[0]["target"]), [] + for path in sorted(leaves[0], key=lambda item: _raw(list(item))): + classes = {_raw(row[path]): row[path] for row in leaves} + if len(classes) > 1: + _require(len(classes) <= 512, "too many training classes for one scalar") + slots.append({"path": list(path), "classes": [deepcopy(classes[key]) for key in sorted(classes)]}) + _replace(template, path, None) + _require(1 <= len(slots) <= 256, "one to 256 varying training scalar slots required") + return {"schema": "fixed-typed-json-consensus/v1", "shape": shape, "template": template, + "slots": slots, "origin": "training_only", "whole_target_memory": False} + + +def _targets(np, rows, schema): + target_ids, width = [], sum(len(slot["classes"]) for slot in schema["slots"]) + _require(width <= 4096, "total training class vocabulary exceeds bound") + one_hot = np.zeros((len(rows), width), dtype=np.float64) + for row_index, row in enumerate(rows): + _require(_shape(row["target"]) == schema["shape"], "target fixed typed JSON tree differs") + leaves, ids, offset = _scalar_leaves(row["target"]), [], 0 + masked = deepcopy(row["target"]) + for slot in schema["slots"]: + path = tuple(slot["path"]) + classes = [_raw(value) for value in slot["classes"]] + value = _raw(leaves[path]) + _require(value in classes, "target scalar outside training vocabulary") + index = classes.index(value) + ids.append(index) + one_hot[row_index, offset+index] = 1. + offset += len(classes) + _replace(masked, slot["path"], None) + _require(_raw(masked) == _raw(schema["template"]), "target differs from training consensus constants") + target_ids.append(ids) + return one_hot, target_ids + + +def _project(np, rows, projection, *, zero_residual=False): + values = np.asarray([row["embedding"] for row in rows], dtype=np.float64) + if zero_residual: + return values + down = np.asarray(projection["projection_down.weight"], dtype=np.float64) + down_bias = np.asarray(projection["projection_down.bias"], dtype=np.float64) + up = np.asarray(projection["projection_up.weight"], dtype=np.float64) + up_bias = np.asarray(projection["projection_up.bias"], dtype=np.float64) + projected = values + np.tanh(values @ down.T + down_bias) @ up.T + up_bias + _require(bool(np.isfinite(projected).all()), "nonfinite projected embedding") + return projected + + +def _projection(parent): + state = {key: deepcopy(parent["model_state"][key]) for key in PROJECTION_KEYS} + _validate_projection(state, parent["config"]["projection_width"]) + return state + + +def _validate_projection(state, width): + import numpy as np + _require(type(width) is int and 1 <= width <= 64, "invalid inherited projection width") + _require(type(state) is dict and set(state) == set(PROJECTION_KEYS), "closed inherited projection required") + expected = dict(zip(PROJECTION_KEYS, ((width, DIMENSION), (width,), (DIMENSION, width), (DIMENSION,)))) + for name, shape in expected.items(): + try: + value = np.asarray(state[name], dtype=np.float64) + except (ValueError, TypeError) as exc: + raise ValueError("invalid projection tensor") from exc + _require(value.shape == shape and bool(np.isfinite(value).all()), "projection tensor shape or finiteness differs") + + +def _normalize(np, projected, transform=None): + if transform is None: + mean = projected.mean(0) + scale = max(float(np.sqrt(np.mean(np.sum((projected-mean)**2, axis=1)))), .01) + transform = {"mean": mean.tolist(), "scale": scale, "origin": "training_projected_embeddings_only"} + return (projected-np.asarray(transform["mean"])) / transform["scale"], transform + + +def _assemble(domain, scores, schema): + reports = [] + for score in scores: + target, predicted, offset = deepcopy(schema["template"]), [], 0 + for slot in schema["slots"]: + width = len(slot["classes"]) + index = int(score[offset:offset+width].argmax()) + predicted.append(index) + _replace(target, slot["path"], slot["classes"][index]) + offset += width + candidate, reason = None, None + try: + candidate = shared.validate_target(domain, target)["canonical_ir"] + except (ValueError, TypeError, KeyError, RecursionError) as exc: + reason = str(exc)[:512] + reports.append({"candidate_ir": candidate, "predicted_classes": predicted, "reason": reason}) + return reports + + +def _score(domain, scores, rows, target_ids, schema): + generated = _assemble(domain, scores, schema) + slot_correct = sum(sum(actual == expected for actual, expected in zip(row["predicted_classes"], gold)) + for row, gold in zip(generated, target_ids)) + correct = sum(sum(actual == expected for actual, expected in zip(row["predicted_classes"], gold)) + for row, gold in zip(generated, target_ids) if row["candidate_ir"] is not None) + count = len(rows)*len(schema["slots"]) + return {"exact_targets": sum(row["candidate_ir"] is not None and _raw(row["candidate_ir"]) == _raw(gold["target"]) + for row, gold in zip(generated, rows)), + "valid_candidates": sum(row["candidate_ir"] is not None for row in generated), "count": len(rows), + "semantic_leaf_correct": correct, "semantic_leaf_count": count, + "semantic_leaf_accuracy": correct/max(count, 1), + "classifier_slot_correct": slot_correct, "classifier_slot_accuracy": slot_correct/max(count, 1), + "semantic_metric_scope": "correct_variable_leaves_only_for_native_valid_candidates", "teacher_forcing": False} + + +def _manifest(rows): + return [{"id": row["id"], "source_sha256": hashlib.sha256(row["source_text"].encode()).hexdigest(), + "normalized_source_sha256": hashlib.sha256(" ".join(row["source_text"].casefold().split()).encode()).hexdigest(), + "embedding_sha256": digest(row["embedding"]), "target_sha256": digest(row["target"])} for row in rows] + + +def train(domain, training_rows, validation_rows, *, parent_projection, config=None): + """Fit parallel classifiers on training data; tuning selects a fixed ridge grid.""" + started = time.monotonic() + options = {"ridges": list(RIDGES), "embedding_provenance": {"model_id": "caller_supplied", "verified_by_runtime": False}} + _require(config is None or type(config) is dict and set(config) <= set(options), "unknown structured training option") + options.update(config or {}) + _require(type(options["ridges"]) is list and 1 <= len(options["ridges"]) <= 16 + and all(type(value) in (int, float) and math.isfinite(value) and 0 < value <= 100 for value in options["ridges"]) + and options["ridges"] == sorted(set(options["ridges"])), "finite increasing positive ridge grid required") + _require(type(options["embedding_provenance"]) is dict and len(_raw(options["embedding_provenance"])) <= 16384, + "bounded embedding provenance required") + training = shared._rows(domain, training_rows, training=True) + validation = shared._rows(domain, validation_rows, training=True) + _require(len(training) <= 2048, "dual ridge training is bounded to 2048 rows") + for key in (lambda row: row["id"], lambda row: " ".join(row["source_text"].casefold().split()), lambda row: digest(row["embedding"])): + _require(not {key(row) for row in training} & {key(row) for row in validation}, + "training/validation identity, source, or embedding overlap") + parent, parent_sha, parent_file = shared._parent(parent_projection) + with native._cpu(): + legal.validate_checkpoint(parent) + _require(parent["binding"]["dimension"] == DIMENSION and parent["progress"]["optimizer_steps"] > 0, + "trained 384D Legal parent required") + projection = _projection(parent) + schema = _fit_schema(training) + with _numeric() as np: + train_targets, _ = _targets(np, training, schema) + _, validation_ids = _targets(np, validation, schema) + train_x, transform = _normalize(np, _project(np, training, projection)) + validation_x, _ = _normalize(np, _project(np, validation, projection), transform) + bias = train_targets.mean(0) + centered_targets = train_targets-bias + gram = train_x @ train_x.T + initial = _score(domain, np.zeros((len(validation), train_targets.shape[1])), validation, validation_ids, schema) + selected, best_rank, best_weights, history = None, None, None, [] + fit_started = time.monotonic() + factorization_seconds = validation_seconds = 0. + for ridge in options["ridges"]: + tick = time.monotonic() + # One solve handles every class of every semantic slot. There is + # no independent factorization per classifier or target document. + dual = np.linalg.solve(gram + float(ridge)*np.eye(len(training)), centered_targets) + weights = train_x.T @ dual + factorization_seconds += time.monotonic()-tick + _require(bool(np.isfinite(weights).all()), "nonfinite learned decoder weights") + tick = time.monotonic() + observed = _score(domain, validation_x @ weights + bias, validation, validation_ids, schema) + validation_seconds += time.monotonic()-tick + rank = (observed["exact_targets"], observed["semantic_leaf_correct"]) + chosen = best_rank is None or rank > best_rank + history.append({"ridge": ridge, **observed, "selected_at_step": chosen}) + if chosen: + selected, best_rank, best_weights, best = ridge, rank, weights.copy(), observed + elapsed = time.monotonic()-fit_started + state = {"weights": best_weights.tolist(), "bias": bias.tolist()} + metrics = {"selected_ridge": selected, "selected_validation": best, "initial_zero_head_validation": initial, + "history": history, "factorizations": len(options["ridges"]), "factorization_seconds": factorization_seconds, + "validation_seconds": validation_seconds, "fit_seconds": elapsed, + "unique_training_examples": len(training), "fit_unique_examples_per_second": len(training)/max(elapsed, 1e-9), + "pre_checkpoint_seconds": time.monotonic()-started, "test_used_for_selection": False, + "selection": "free_running_exact_then_variable_leaf_accuracy_first_ridge_on_ties", + "optimizer_steps": 0, "gradient_training_used": False} + checkpoint = {"schema": SCHEMA, "domain_id": domain, "dimension": DIMENSION, + "implementation": _implementation(), "config": options, "parent_sha256": parent_sha, + "parent_binding": deepcopy(parent["binding"]), "projection_width": parent["config"]["projection_width"], + "projection_state": projection, "projection_sha256": digest(projection), "input_transform": transform, + "target_schema": schema, "head_state": state, "head_sha256": digest(state), + "training_manifest": _manifest(training), "validation_manifest": _manifest(validation), "training": metrics, + "lineage": {"parent_encoder_frozen": True, "projection_tensors_inherited_exactly": list(PROJECTION_KEYS), + "parent_modified": False, "random_parameters_used": False}, **FALSE} + _require(len(_raw(checkpoint)) <= MAX_BYTES, "checkpoint exceeds bound") + if parent_file: + _require(parent_file[0].read_bytes() == parent_file[1], "parent changed during training") + Runtime(checkpoint) + return {"checkpoint": checkpoint, "metrics": deepcopy(metrics)} + + +class Runtime: + """Independent learned scalar predictions assembled through a fixed schema.""" + def __init__(self, checkpoint): + fields = {"schema", "domain_id", "dimension", "implementation", "config", "parent_sha256", "parent_binding", + "projection_width", "projection_state", "projection_sha256", "input_transform", "target_schema", + "head_state", "head_sha256", "training_manifest", "validation_manifest", "training", "lineage", *FALSE} + _require(type(checkpoint) is dict and set(checkpoint) == fields and checkpoint["schema"] == SCHEMA, + "closed structured source checkpoint required") + _require(len(_raw(checkpoint)) <= MAX_BYTES, "checkpoint exceeds bound") + _require(checkpoint["domain_id"] in DOMAINS and type(checkpoint["dimension"]) is int and checkpoint["dimension"] == DIMENSION, + "checkpoint requires genuine 384D domain") + _require(all(checkpoint[key] is False for key in FALSE), "checkpoint cannot grant authority") + _require(checkpoint["implementation"] == _implementation(), "implementation pins differ") + _require(type(checkpoint["parent_sha256"]) is str and native._SHA.fullmatch(checkpoint["parent_sha256"]) + and type(checkpoint["parent_binding"]) is dict and checkpoint["parent_binding"].get("dimension") == DIMENSION, + "invalid parent binding") + _require(digest(checkpoint["projection_state"]) == checkpoint["projection_sha256"], "projection digest differs") + _validate_projection(checkpoint["projection_state"], checkpoint["projection_width"]) + transform = checkpoint["input_transform"] + _require(type(transform) is dict and set(transform) == {"mean", "scale", "origin"} + and transform["origin"] == "training_projected_embeddings_only", "invalid input transform") + native._vector(transform["mean"]) + _require(type(transform["scale"]) in (int, float) and math.isfinite(transform["scale"]) and .01 <= transform["scale"] <= 1e8, + "invalid input scale") + schema = checkpoint["target_schema"] + _require(type(schema) is dict and set(schema) == {"schema", "shape", "template", "slots", "origin", "whole_target_memory"} + and schema["schema"] == "fixed-typed-json-consensus/v1" and schema["origin"] == "training_only" + and schema["whole_target_memory"] is False and type(schema["template"]) is dict, "invalid fixed target schema") + slots = schema["slots"] + _require(type(slots) is list and 1 <= len(slots) <= 256, "invalid varying scalar slots") + candidate, seen = deepcopy(schema["template"]), set() + canonical_paths = set(_scalar_leaves(schema["template"])) + for slot in slots: + _require(type(slot) is dict and set(slot) == {"path", "classes"} and type(slot["path"]) is list + and 1 <= len(slot["path"]) <= 128 and all(type(part) in (int, str) for part in slot["path"]), "invalid scalar path") + _require(tuple(slot["path"]) in canonical_paths, "noncanonical scalar path") + path = _raw(slot["path"]) + _require(path not in seen, "duplicate scalar path") + seen.add(path) + classes = slot["classes"] + _require(type(classes) is list and 2 <= len(classes) <= 512 + and all(type(value) in (str, int, float, bool, type(None)) for value in classes) + and all(type(value) is type(classes[0]) for value in classes) + and [_raw(value) for value in classes] == sorted(set(_raw(value) for value in classes)), "invalid scalar classes") + try: + existing = schema["template"] + for part in slot["path"]: + existing = existing[part] + _require(existing is None, "varying scalar must use an empty template slot") + _replace(candidate, slot["path"], classes[0]) + except (TypeError, KeyError, IndexError) as exc: + raise ValueError("scalar path outside schema") from exc + _require(_shape(candidate) == schema["shape"], "stored typed target shape differs") + width = sum(len(slot["classes"]) for slot in slots) + _require(width <= 4096, "total class vocabulary exceeds bound") + state = checkpoint["head_state"] + _require(type(state) is dict and set(state) == {"weights", "bias"} and digest(state) == checkpoint["head_sha256"], "head digest differs") + with _numeric() as np: + weights, bias = np.asarray(state["weights"], dtype=np.float64), np.asarray(state["bias"], dtype=np.float64) + _require(weights.shape == (DIMENSION, width) and bias.shape == (width,) + and bool(np.isfinite(weights).all()) and bool(np.isfinite(bias).all()), "invalid head tensor shape or finiteness") + for name in ("training_manifest", "validation_manifest"): + rows = checkpoint[name] + _require(type(rows) is list and 1 <= len(rows) <= 4096, "invalid split manifest") + _require(all(type(row) is dict and set(row) == {"id", "source_sha256", "normalized_source_sha256", "embedding_sha256", "target_sha256"} + and type(row["id"]) is str and 0 < len(row["id"]) <= 256 + and all(type(row[key]) is str and native._SHA.fullmatch(row[key]) for key in row if key != "id") for row in rows), "invalid split row") + _require(len({row["id"] for row in rows}) == len(rows), "duplicate split ID") + for key in ("id", "source_sha256", "normalized_source_sha256", "embedding_sha256"): + _require(not {row[key] for row in checkpoint["training_manifest"]} & {row[key] for row in checkpoint["validation_manifest"]}, "checkpoint split overlap") + options = checkpoint["config"] + _require(type(options) is dict and set(options) == {"ridges", "embedding_provenance"} + and type(options["ridges"]) is list and 1 <= len(options["ridges"]) <= 16 + and all(type(value) in (int, float) and math.isfinite(value) and 0 < value <= 100 for value in options["ridges"]) + and options["ridges"] == sorted(set(options["ridges"])) and type(options["embedding_provenance"]) is dict, + "invalid structured config") + training = checkpoint["training"] + _require(type(training) is dict and training.get("selected_ridge") in options["ridges"] + and training.get("test_used_for_selection") is False and training.get("gradient_training_used") is False, + "invalid training provenance") + lineage = checkpoint["lineage"] + _require(lineage == {"parent_encoder_frozen": True, "projection_tensors_inherited_exactly": list(PROJECTION_KEYS), + "parent_modified": False, "random_parameters_used": False}, "invalid transfer lineage") + self.checkpoint = deepcopy(checkpoint) + self.weights, self.bias = weights, bias + + def describe(self): + return {"schema": SCHEMA, "domain_id": self.checkpoint["domain_id"], "dimension": DIMENSION, + "input_representation": "source_embedding_384", "source_text_is_neural_input": False, + "output_scope": "fixed_typed_json_schema_and_training_scalar_vocabulary", + "generation": "independent_learned_scalar_classes_assembled_through_training_consensus_schema", + "sample_memory_used": False, "whole_target_retrieval": False, + "head_sha256": self.checkpoint["head_sha256"], "projection_sha256": self.checkpoint["projection_sha256"], + "zero_projection_ablation": "zero_residual_branch_identity_embedding_retained", + "shuffle_embeddings_ablation": "cyclic_rotation_of_supplied_embedding_batch", + "independent_source_fidelity_check_required": True, **FALSE} + + def infer(self, rows, *, weight_ablation=None): + rows = shared._rows(self.checkpoint["domain_id"], rows, training=False) + _require(weight_ablation in (None, "zero_head", "zero_projection", "shuffle_embeddings"), "unknown weight ablation") + if weight_ablation == "shuffle_embeddings": + _require(len(rows) > 1, "embedding shuffle requires at least two rows") + original = [row["embedding"] for row in rows] + for index, row in enumerate(rows): + row["embedding"] = original[(index+1) % len(rows)] + with _numeric() as np: + projected = _project(np, rows, self.checkpoint["projection_state"], zero_residual=weight_ablation == "zero_projection") + data, _ = _normalize(np, projected, self.checkpoint["input_transform"]) + scores = (np.zeros((len(rows), len(self.bias))) if weight_ablation == "zero_head" else data @ self.weights + self.bias) + _require(bool(np.isfinite(scores).all()), "nonfinite classifier scores") + generated = _assemble(self.checkpoint["domain_id"], scores, self.checkpoint["target_schema"]) + reports = [] + for row, prediction, embedding in zip(rows, generated, projected): + reports.append({"id": row["id"], "source_sha256": hashlib.sha256(row["source_text"].encode()).hexdigest(), + **prediction, "status": "unqualified_candidate" if prediction["candidate_ir"] is not None else "fail_open_invalid_output", + "projected_embedding": embedding.tolist(), "weight_ablation": weight_ablation, + "head_sha256": self.checkpoint["head_sha256"], "projection_sha256": self.checkpoint["projection_sha256"], + "target_access": False, "teacher_forcing": False, "continue_planning": True, **FALSE}) + return {"schema": SCHEMA, "domain_id": self.checkpoint["domain_id"], "dimension": DIMENSION, "rows": reports, **FALSE} + + +def evaluate(checkpoint, rows, *, weight_ablation=None): + """Count every gold row, including targets outside the fitted decoder scope.""" + gold = shared._rows(checkpoint["domain_id"], rows, training=True) + coverage = [] + with _numeric() as np: + for row in gold: + try: + _targets(np, [row], checkpoint["target_schema"]) + coverage.append((True, None)) + except ValueError as exc: + coverage.append((False, str(exc))) + report = Runtime(checkpoint).infer([{key: row[key] for key in ("id", "source_text", "embedding")} for row in gold], weight_ablation=weight_ablation) + correct = slot_correct = 0 + for actual, expected, (supported, reason) in zip(report["rows"], gold, coverage): + actual["exact_target"] = actual["candidate_ir"] is not None and _raw(actual["candidate_ir"]) == _raw(expected["target"]) + actual["within_training_coverage"], actual["target_coverage_reason"] = supported, reason + leaves = _scalar_leaves(expected["target"]) + for slot, predicted in zip(checkpoint["target_schema"]["slots"], actual["predicted_classes"]): + path = tuple(slot["path"]) + matches = path in leaves and _raw(slot["classes"][predicted]) == _raw(leaves[path]) + slot_correct += matches + correct += matches and actual["candidate_ir"] is not None + count = len(gold)*len(checkpoint["target_schema"]["slots"]) + return {**report, "count": len(gold), "exact_targets": sum(row["exact_target"] for row in report["rows"]), + "valid_candidates": sum(row["candidate_ir"] is not None for row in report["rows"]), + "within_training_coverage": sum(supported for supported, _ in coverage), + "outside_training_coverage": sum(not supported for supported, _ in coverage), + "semantic_leaf_correct": correct, "semantic_leaf_count": count, "semantic_leaf_accuracy": correct/max(count, 1), + "classifier_slot_correct": slot_correct, "classifier_slot_accuracy": slot_correct/max(count, 1), + "semantic_metric_scope": "correct_variable_leaves_only_for_native_valid_candidates"} + + +def load_checkpoint(path, *, expected_sha256, expected_domain): + path = Path(path) + _require(path.is_file() and not path.is_symlink() and 0 < path.stat().st_size <= MAX_BYTES, "bounded regular checkpoint required") + raw = path.read_bytes() + _require(hashlib.sha256(raw).hexdigest() == expected_sha256, "checkpoint bytes differ") + checkpoint = native._parse(raw) + _require(type(checkpoint) is dict and checkpoint.get("domain_id") == expected_domain, "checkpoint belongs to another domain") + return Runtime(checkpoint) + + +__all__ = ["SCHEMA", "DOMAINS", "DIMENSION", "RIDGES", "train", "Runtime", "evaluate", "load_checkpoint"] diff --git a/releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py b/releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py new file mode 100644 index 0000000000000000000000000000000000000000..3faf283b3affc5eb38e716e8287502d4c90e088c --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py @@ -0,0 +1,55 @@ +"""Fail closed when the legal compiler resolves outside this checkout. + +The check does not rewrite ``sys.path`` and does not retarget an editable +install. Callers that need this tree put it on the path themselves. +""" + +from __future__ import annotations + +import importlib +from pathlib import Path + + +class LogicTreePinError(RuntimeError): + """The compiler, decompiler, or parser loaded from a different checkout.""" + + +def workspace_root() -> Path: + """Return ``external/ipfs_datasets`` for this file's checkout.""" + + return Path(__file__).resolve().parents[3] + + +_MODULES = ( + ("compiler", "ipfs_datasets_py.logic.legal_ir.canonical_compiler"), + ("decompiler", "ipfs_datasets_py.logic.legal_ir.canonical_decompiler"), + ("parser", "ipfs_datasets_py.logic.deontic.utils.deontic_parser"), +) + + +def require_workspace_logic_tree() -> dict[str, str]: + """Import the compiler, decompiler, and parser and require this checkout. + + Prints one resolved-path line. Raises ``LogicTreePinError`` when any + module file sits outside ``workspace_root()``. + """ + + root = workspace_root() + resolved: dict[str, str] = {} + outside: list[str] = [] + for label, name in _MODULES: + module = importlib.import_module(name) + raw = getattr(module, "__file__", "") or "" + path = Path(raw).resolve() if raw else Path() + resolved[label] = str(path) + if not path.is_file() or root not in path.parents: + outside.append(f"{label}={path}") + if outside: + raise LogicTreePinError( + "Legal compiler, decompiler, and parser must load from " + f"{root}. Resolved outside that tree: {', '.join(outside)}. " + "Put that tree first on PYTHONPATH, or point the editable install " + "at it. This check does not rewrite the install." + ) + print("logic tree pin " + " ".join(f"{label}={path}" for label, path in resolved.items())) + return resolved diff --git a/releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py b/releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py new file mode 100644 index 0000000000000000000000000000000000000000..2b0939ac4cbf8d0c588760869708193d27285464 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py @@ -0,0 +1,919 @@ +"""Experimental source-embedding conditioned native IR decoding at 384 dimensions. + +Reuses modal_latent_formula's residual projection, conditioning layer and GRU. +A trained Legal checkpoint supplies every recurrent/projection tensor. New +target-token rows receive trained parent lexical means, never random weights. + +Generated documents and fragments remain unqualified candidates. Native shape +validation establishes neither source fidelity nor proof correctness. +""" +from __future__ import annotations + +from contextlib import contextmanager +from copy import deepcopy +from dataclasses import fields +import hashlib +import json +import math +from pathlib import Path +import re +import threading +import time + +SCHEMA = "domain-384-typed-autoencoder/v1" +DIMENSION = 384 +DOMAINS = ("intent_ir", "security_ir", "ui_ux_ir") +MAX_BYTES = 48 * 1024 * 1024 +SPECIAL = ("", "", "") +FALSE = { + "qualified": False, + "admitted": False, + "proof_authority": False, + "source_semantics_verified": False, + "publication_performed": False, +} +_TOKEN = re.compile( + r'"(?:[^"\\\x00-\x1f]|\\(?:["\\/bfnrt]|u[0-9a-fA-F]{4}))*"' + r'|-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?' + r'|true|false|null|[{}\[\],:]' +) +_SHA = re.compile(r"[0-9a-f]{64}\Z") +_CPU_LOCK = threading.RLock() + + +def _require(condition, message): + if not condition: + raise ValueError(message) + + +def _raw(value): + return json.dumps( + value, sort_keys=True, separators=(",", ":"), + ensure_ascii=True, allow_nan=False, + ).encode() + + +def digest(value): + return hashlib.sha256(_raw(value)).hexdigest() + + +def _parse(raw): + def unique(pairs): + result = {} + for key, value in pairs: + _require(key not in result, "duplicate JSON key") + result[key] = value + return result + + def invalid(_): + raise ValueError("nonfinite JSON value") + + return json.loads(raw, object_pairs_hook=unique, parse_constant=invalid) + + +def _preserved(original, native): + """Reject fields silently dropped or coerced by permissive native loaders.""" + if type(original) is dict: + return ( + type(native) is dict + and all(k in native and _preserved(v, native[k]) + for k, v in original.items()) + ) + if type(original) is list: + return ( + type(native) is list + and len(original) == len(native) + and all(_preserved(a, b) for a, b in zip(original, native)) + ) + return type(original) is type(native) and original == native + + +def validate_target(domain, target): + """Validate a compact native document or explicitly named native fragment. + + Supported fragment wrappers are ``{kind, document}`` with kinds + ``intent_rich_ast``, ``program_expression`` or ``ui_component``. + + ProgramExpression validation is local: references still require a complete + ProgramIR to establish referential and type correctness. Missing defaults + may be omitted; supplied fields must survive the native loader exactly. + """ + _require( + domain in DOMAINS and type(target) is dict, + "supported domain and typed target required", + ) + _require(len(_raw(target)) <= 128 * 1024, "target exceeds bound") + kind, document = "document", target + if set(target) == {"kind", "document"}: + kind, document = target["kind"], target["document"] + _require(type(document) is dict, "fragment document must be an object") + + if domain == "intent_ir": + if kind == "intent_rich_ast": + from ...logic.intent_ir.formalize.rich_grammar import validate_ast + native = deepcopy(validate_ast(document)) + else: + _require(kind == "document", "unsupported Intent fragment") + from ...logic.intent_ir.decoder import decode_intent_ir + native = decode_intent_ir(document).to_dict() + elif domain == "security_ir": + if kind == "program_expression": + from ...logic.software_verification.program import ProgramExpression + native = ProgramExpression.from_dict(document).to_dict() + else: + _require(kind == "document", "unsupported Security fragment") + from ...logic.security_ir.model import SecurityIR + native = SecurityIR.from_dict(document).to_dict() + else: + if kind == "ui_component": + from ...logic.ui_ux_ir.schema import UIComponent + _require( + set(document) <= {field.name for field in fields(UIComponent)}, + "unknown UI component field", + ) + values = deepcopy(document) + for key, value in tuple(values.items()): + if key.endswith("_ids"): + _require(type(value) is list, "UI ID arrays must be lists") + values[key] = tuple(value) + component = UIComponent(**values) + component.validate() + native = component.to_dict() + else: + _require(kind == "document", "unsupported UI fragment") + from ...logic.ui_ux_ir.decoder import decode_ui_ir + native = decode_ui_ir(document).to_dict() + + _require( + _preserved(document, native), + "native decoder dropped, reordered, or coerced target fields", + ) + return { + "valid": True, + "domain_id": domain, + "kind": kind, + "canonical_ir": _parse(_raw(target)), + "native_ir": native, + "scope": ( + "native_document" if kind == "document" + else "locally_validated_native_fragment" + ), + **FALSE, + } + + +def _implementation(): + from . import modal_latent_formula + from ...logic.intent_ir import decoder as intent_decoder, schema as intent_schema + from ...logic.intent_ir.formalize import rich_grammar + from ...logic.security_ir import model as security_model + from ...logic.software_verification import program + from ...logic.ui_ux_ir import decoder as ui_decoder, schema as ui_schema + + modules = ( + modal_latent_formula, intent_decoder, intent_schema, rich_grammar, + security_model, program, ui_decoder, ui_schema, + ) + return { + "runtime": hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + "dependencies": { + module.__name__: hashlib.sha256(Path(module.__file__).read_bytes()).hexdigest() + for module in modules + }, + "scope": "listed_numerical_and_native_validator_modules_only", + } + + +@contextmanager +def _cpu(): + """Serialize this runtime's thread-count changes and restore caller state.""" + import torch + with _CPU_LOCK: + previous = torch.get_num_threads() + torch.set_num_threads(1) + try: + yield torch + finally: + torch.set_num_threads(previous) + + +def _vector(value): + _require( + type(value) is list + and len(value) == DIMENSION + and all( + type(number) in (int, float) + and math.isfinite(number) + and abs(number) <= 1e6 + for number in value + ), + "embedding must contain exactly 384 bounded finite numbers", + ) + + +def _rows(domain, rows, *, training): + _require( + type(rows) is list and 1 <= len(rows) <= 4096, + "bounded nonempty rows required", + ) + expected = {"id", "source_text", "embedding"} | ( + {"target"} if training else set() + ) + seen = set() + for row in rows: + _require( + type(row) is dict and set(row) == expected, + "closed domain row schema required", + ) + _require( + type(row["id"]) is str + and 0 < len(row["id"]) <= 256 + and row["id"] not in seen, + "unique bounded row ID required", + ) + _require( + type(row["source_text"]) is str + and 0 < len(row["source_text"]) <= 16384 + and row["source_text"].strip(), + "bounded nonempty source provenance required", + ) + _vector(row["embedding"]) + if training: + validate_target(domain, row["target"]) + seen.add(row["id"]) + return deepcopy(rows) + + +def _tokens(target): + raw = _raw(target).decode() + pieces = _TOKEN.findall(raw) + _require( + "".join(pieces) == raw and len(pieces) <= 1022, + "bounded JSON lexical target required", + ) + return pieces + + +def _config(options, parent_config): + defaults = { + "epochs": 80, + "max_seconds": 180.0, + "learning_rate": .003, + "batch_size": 8, + "seed": 1729, + "patience": 12, + "reconstruction_weight": .1, + "max_target_tokens": 512, + "embedding_provenance": { + "model_id": "caller_supplied", + "verified_by_runtime": False, + }, + } + _require( + options is None + or type(options) is dict and set(options) <= set(defaults), + "unknown training option", + ) + defaults.update(options or {}) + for name, high in ( + ("epochs", 1000), ("batch_size", 64), ("seed", 2**31 - 1), + ("patience", 1000), ("max_target_tokens", 1024), + ): + value = defaults[name] + _require( + type(value) is int + and (0 if name == "seed" else 1) <= value <= high, + "invalid " + name, + ) + for name, high in ( + ("max_seconds", 3600), + ("learning_rate", .1), + ("reconstruction_weight", 100), + ): + value = defaults[name] + _require( + type(value) in (int, float) + and math.isfinite(value) + and 0 < value <= high, + "invalid " + name, + ) + _require( + type(defaults["embedding_provenance"]) is dict + and len(_raw(defaults["embedding_provenance"])) <= 16384, + "bounded embedding provenance required", + ) + return { + **defaults, + **{ + name: parent_config[name] + for name in ("hidden_size", "token_embedding_dim", "projection_width") + }, + } + + +def _transfer(parent, codec, config): + from . import modal_latent_formula as numerical + import torch + + model = numerical._model({"dimension": DIMENSION}, codec, config) + prior = parent["model_state"] + old_vocab = parent["codec"]["target_vocabulary"] + positions = {token: index for index, token in enumerate(old_vocab)} + lexical = {"target_embedding.weight", "output.weight", "output.bias"} + transferred, inherited, mapped = {}, [], [] + for name, template in model.state_dict().items(): + _require(name in prior, "parent is missing numerical tensor " + name) + value = torch.tensor(prior[name], dtype=torch.float32) + _require(bool(torch.isfinite(value).all()), "nonfinite parent tensor") + if name in lexical: + _require( + value.shape[0] == len(old_vocab) + and value.shape[1:] == template.shape[1:], + "parent lexical shape differs", + ) + mean = value.mean(0) + value = torch.stack([ + value[positions[token]] if token in positions else mean + for token in codec["target_vocabulary"] + ]) + mapped.append(name) + else: + _require(value.shape == template.shape, "parent architecture differs") + inherited.append(name) + transferred[name] = value + model.load_state_dict(transferred, strict=True) + return model, { + "exact_inherited_tensors": sorted(inherited), + "lexical_mapped_tensors": sorted(mapped), + "new_token_initialization": "trained_parent_lexical_row_mean", + "random_parameters_used": False, + "parent_modified": False, + "initial_state_sha256": digest({ + name: tensor.tolist() for name, tensor in transferred.items() + }), + } + + +def _batch(torch, rows, vocabulary, max_tokens): + positions = {token: index for index, token in enumerate(vocabulary)} + encoded = [] + for row in rows: + tokens = _tokens(row["target"]) + _require( + len(tokens) + 2 <= max_tokens, + "target exceeds configured token limit", + ) + missing = sorted(set(tokens) - set(positions)) + _require( + not missing, + "target token outside training vocabulary: " + str(missing[:3]), + ) + encoded.append([1] + [positions[token] for token in tokens] + [2]) + width = max(map(len, encoded)) + return ( + torch.tensor([row["embedding"] for row in rows], dtype=torch.float32), + torch.tensor([ + row + [0] * (width - len(row)) for row in encoded + ], dtype=torch.long), + ) + + +def _loss(torch, model, data, targets, config): + projected, logits = model(data, targets[:, :-1]) + ce = torch.nn.functional.cross_entropy( + logits.reshape(-1, logits.shape[-1]), + targets[:, 1:].reshape(-1), + ignore_index=0, + ) + mse = torch.nn.functional.mse_loss(projected, data) + return ce + config["reconstruction_weight"] * mse, ce, mse + + +def _metrics(torch, model, batch, config): + with torch.inference_mode(): + loss, ce, mse = _loss(torch, model, *batch, config) + _require( + all(bool(torch.isfinite(value)) for value in (loss, ce, mse)), + "nonfinite evaluation", + ) + return { + "objective": float(loss), + "token_cross_entropy": float(ce), + "embedding_mse": float(mse), + } + + +def train(domain, training_rows, validation_rows, *, parent_projection, config=None): + """Fork a trained Legal 384D projection into a distinct domain checkpoint. + + parent_projection is a complete modal-latent-formula checkpoint or its + {path, sha256} descriptor. Only embeddings condition the neural decoder. + Validation selects weights; test examples never enter this API. + """ + from . import modal_latent_formula as numerical + + original_parent = None + if type(parent_projection) is dict and set(parent_projection) == {"path", "sha256"}: + parent_path = Path(parent_projection["path"]) + _require( + parent_path.is_file() and parent_path.stat().st_size <= MAX_BYTES, + "bounded parent file required", + ) + original_parent = parent_path.read_bytes() + _require( + hashlib.sha256(original_parent).hexdigest() == parent_projection["sha256"], + "parent hash differs", + ) + parent = _parse(original_parent) + parent_sha = parent_projection["sha256"] + else: + parent = deepcopy(parent_projection) + parent_sha = digest(parent) + + with _cpu() as torch: + numerical.validate_checkpoint(parent) + _require( + parent["binding"]["dimension"] == DIMENSION + and parent["progress"]["optimizer_steps"] > 0, + "trained 384D Legal parent required", + ) + train_rows = _rows(domain, training_rows, training=True) + validation = _rows(domain, validation_rows, training=True) + keys = ( + lambda row: row["id"], + lambda row: " ".join(row["source_text"].casefold().split()), + lambda row: digest(row["embedding"]), + ) + for key in keys: + _require( + not {key(row) for row in train_rows} + & {key(row) for row in validation}, + "training/validation identity, source, or embedding overlap", + ) + + options = _config(config, parent["config"]) + vocabulary = [ + *SPECIAL, + *sorted({ + token + for row in train_rows + for token in _tokens(row["target"]) + }), + ] + _require(len(vocabulary) <= 4096, "training vocabulary exceeds bound") + codec = { + "schema": "typed-json-lexical/v1", + "target_vocabulary": vocabulary, + } + data, labels = _batch( + torch, train_rows, vocabulary, options["max_target_tokens"] + ) + validation_batch = _batch( + torch, validation, vocabulary, options["max_target_tokens"] + ) + model, lineage = _transfer(parent, codec, options) + optimizer = torch.optim.Adam( + model.parameters(), lr=options["learning_rate"] + ) + before = _metrics(torch, model, validation_batch, options) + best, best_state, selected_epoch = before, deepcopy(model.state_dict()), 0 + generator = torch.Generator().manual_seed(options["seed"]) + started = time.monotonic() + steps = seen_tokens = examples_seen = stale = 0 + optimizer_seconds = validation_seconds = 0.0 + history, stop = [], "epoch_budget" + + for epoch in range(options["epochs"]): + model.train() + order = torch.randperm(len(train_rows), generator=generator) + complete = True + for offset in range(0, len(train_rows), options["batch_size"]): + if time.monotonic() - started >= options["max_seconds"]: + complete, stop = False, "deadline" + break + step_started = time.monotonic() + index = order[offset:offset + options["batch_size"]] + batch_target = labels[index] + width = int((batch_target != 0).sum(1).max()) + batch_target = batch_target[:, :width] + optimizer.zero_grad(set_to_none=True) + loss, _, _ = _loss( + torch, model, data[index], batch_target, options + ) + _require(bool(torch.isfinite(loss)), "nonfinite training loss") + loss.backward() + norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 5.0) + _require(bool(torch.isfinite(norm)), "nonfinite gradient") + optimizer.step() + optimizer_seconds += time.monotonic() - step_started + steps += 1 + examples_seen += len(index) + seen_tokens += int((batch_target[:, 1:] != 0).sum()) + if not complete: + break + + validation_started = time.monotonic() + observed = _metrics(torch, model, validation_batch, options) + validation_seconds += time.monotonic() - validation_started + # A deadline-truncated epoch cannot become the selected checkpoint. + selected = ( + time.monotonic() - started < options["max_seconds"] + and observed["objective"] < best["objective"] + ) + if selected: + best = observed + best_state = deepcopy(model.state_dict()) + selected_epoch, stale = epoch + 1, 0 + else: + stale += 1 + history.append({ + "epoch": epoch + 1, **observed, "selected": selected, + }) + if stale >= options["patience"]: + stop = "validation_patience" + break + if time.monotonic() - started >= options["max_seconds"]: + stop = "deadline" + break + + elapsed = time.monotonic() - started + _require(steps > 0, "no training steps completed") + model.load_state_dict(best_state) + weights = { + name: tensor.detach().tolist() + for name, tensor in model.state_dict().items() + } + + def manifest(rows): + return [{ + "id": row["id"], + "source_sha256": hashlib.sha256(row["source_text"].encode()).hexdigest(), + "embedding_sha256": digest(row["embedding"]), + "target_sha256": digest(row["target"]), + } for row in rows] + + metrics = { + "before_validation": before, + "selected_validation": best, + "selected_epoch": selected_epoch, + "optimizer_steps": steps, + "training_tokens": seen_tokens, + "examples_seen": examples_seen, + "optimizer_seconds": optimizer_seconds, + "validation_seconds": validation_seconds, + "fit_seconds": elapsed, + "optimizer_tokens_per_second": seen_tokens / max(optimizer_seconds, 1e-9), + "optimizer_examples_per_second": examples_seen / max(optimizer_seconds, 1e-9), + "fit_tokens_per_second": seen_tokens / max(elapsed, 1e-9), + "stopped_reason": stop, + "history": history, + "test_used_for_selection": False, + "training": _metrics(torch, model, (data, labels), options), + } + checkpoint = { + "schema": SCHEMA, + "domain_id": domain, + "dimension": DIMENSION, + "architecture": numerical.ARCHITECTURE, + "codec": codec, + "config": options, + "implementation": _implementation(), + "parent_sha256": parent_sha, + "parent_binding": deepcopy(parent["binding"]), + "lineage": lineage, + "model_state": weights, + "weights_sha256": digest(weights), + "training_manifest": manifest(train_rows), + "validation_manifest": manifest(validation), + "training": metrics, + **FALSE, + } + _require(len(_raw(checkpoint)) <= MAX_BYTES, "checkpoint exceeds bound") + if original_parent is not None: + _require( + parent_path.read_bytes() == original_parent, + "parent changed during training", + ) + Runtime(checkpoint) + return {"checkpoint": checkpoint, "metrics": deepcopy(metrics)} + + +class Runtime: + """Inference consumes source embeddings; gold targets are never accepted.""" + + def __init__(self, checkpoint): + from . import modal_latent_formula as numerical + + required = { + "schema", "domain_id", "dimension", "architecture", "codec", "config", + "implementation", "parent_sha256", "parent_binding", "lineage", + "model_state", "weights_sha256", "training_manifest", + "validation_manifest", "training", *FALSE, + } + _require( + type(checkpoint) is dict + and set(checkpoint) == required + and checkpoint["schema"] == SCHEMA, + "closed domain checkpoint required", + ) + _require(len(_raw(checkpoint)) <= MAX_BYTES, "checkpoint exceeds bound") + _require( + checkpoint["domain_id"] in DOMAINS + and type(checkpoint["dimension"]) is int + and checkpoint["dimension"] == DIMENSION, + "checkpoint requires genuine 384D domain binding", + ) + _require( + all(checkpoint[key] is False for key in FALSE), + "checkpoint cannot grant authority", + ) + _require( + checkpoint["implementation"] == _implementation(), + "domain implementation pins differ", + ) + _require( + checkpoint["architecture"] == numerical.ARCHITECTURE, + "numerical architecture differs", + ) + _require( + type(checkpoint["parent_binding"]) is dict + and checkpoint["parent_binding"].get("dimension") == DIMENSION + and type(checkpoint["parent_sha256"]) is str + and _SHA.fullmatch(checkpoint["parent_sha256"]), + "invalid parent binding", + ) + codec = checkpoint["codec"] + _require( + type(codec) is dict + and set(codec) == {"schema", "target_vocabulary"} + and codec["schema"] == "typed-json-lexical/v1", + "invalid target codec", + ) + vocabulary = codec["target_vocabulary"] + _require( + type(vocabulary) is list + and 4 <= len(vocabulary) <= 4096 + and vocabulary[:3] == list(SPECIAL) + and all(type(token) is str and 0 < len(token) <= 16384 for token in vocabulary) + and vocabulary[3:] == sorted(set(vocabulary[3:])) + and not set(vocabulary[3:]) & set(SPECIAL), + "invalid training vocabulary", + ) + _require( + all(_TOKEN.fullmatch(token) is not None for token in vocabulary[3:]), + "invalid JSON vocabulary token", + ) + config = checkpoint["config"] + config_fields = { + "epochs", "max_seconds", "learning_rate", "batch_size", "seed", + "patience", "reconstruction_weight", "max_target_tokens", + "embedding_provenance", "hidden_size", "token_embedding_dim", + "projection_width", + } + _require( + type(config) is dict and set(config) == config_fields, + "closed model configuration required", + ) + for key, low, high in ( + ("hidden_size", 8, 128), + ("token_embedding_dim", 8, 64), + ("projection_width", 1, 64), + ): + _require( + type(config[key]) is int and low <= config[key] <= high, + "invalid model shape", + ) + options = { + key: value for key, value in config.items() + if key not in {"hidden_size", "token_embedding_dim", "projection_width"} + } + _require(_config(options, config) == config, "configuration differs") + _require( + digest(checkpoint["model_state"]) == checkpoint["weights_sha256"], + "weight digest differs", + ) + training = checkpoint["training"] + _require( + type(training) is dict + and type(training.get("optimizer_steps")) is int + and training["optimizer_steps"] > 0 + and type(training.get("selected_epoch")) is int + and 0 <= training["selected_epoch"] <= config["epochs"] + and training.get("test_used_for_selection") is False, + "invalid training provenance", + ) + for name in ("training_manifest", "validation_manifest"): + rows = checkpoint[name] + _require( + type(rows) is list and 1 <= len(rows) <= 4096, + "invalid split manifest", + ) + seen = set() + for row in rows: + _require( + type(row) is dict + and set(row) == { + "id", "source_sha256", "embedding_sha256", "target_sha256" + } + and type(row["id"]) is str + and 0 < len(row["id"]) <= 256 + and row["id"] not in seen, + "invalid split row", + ) + _require( + all( + type(row[key]) is str and _SHA.fullmatch(row[key]) + for key in ("source_sha256", "embedding_sha256", "target_sha256") + ), + "invalid split digest", + ) + seen.add(row["id"]) + for key in ("id", "source_sha256", "embedding_sha256"): + _require( + not {row[key] for row in checkpoint["training_manifest"]} + & {row[key] for row in checkpoint["validation_manifest"]}, + "checkpoint split overlap", + ) + + with _cpu(): + model = numerical._model({"dimension": DIMENSION}, codec, config) + state = checkpoint["model_state"] + _require( + type(state) is dict and set(state) == set(model.state_dict()), + "model tensor names differ", + ) + model.load_state_dict({ + name: numerical._tensor(state[name], template, name) + for name, template in model.state_dict().items() + }, strict=True) + self.checkpoint = deepcopy(checkpoint) + self.model = model.eval() + + def describe(self): + checkpoint = self.checkpoint + return { + "schema": SCHEMA, + "domain_id": checkpoint["domain_id"], + "dimension": DIMENSION, + "input_representation": "explicit_source_embedding_384", + "architecture": checkpoint["architecture"], + "weights_sha256": checkpoint["weights_sha256"], + "parent_sha256": checkpoint["parent_sha256"], + "embedding_provenance": deepcopy( + checkpoint["config"]["embedding_provenance"] + ), + "embedding_provenance_verified_by_runtime": False, + "trained_optimizer_steps": checkpoint["training"]["optimizer_steps"], + "selected_epoch": checkpoint["training"]["selected_epoch"], + "output_scope": ( + "native_documents_or_explicit_local_fragments" + "_in_training_target_vocabulary" + ), + "source_text_is_neural_input": False, + "sample_memory_used": False, + "independent_source_fidelity_check_required": True, + **FALSE, + } + + def infer(self, rows, *, weight_ablation=None): + rows = _rows(self.checkpoint["domain_id"], rows, training=False) + _require( + weight_ablation in ( + None, "zero_projection", "zero_condition", "zero_decoder" + ), + "unknown weight ablation", + ) + model = self.model if weight_ablation is None else deepcopy(self.model) + vocabulary = self.checkpoint["codec"]["target_vocabulary"] + config = self.checkpoint["config"] + reports = [] + with _cpu() as torch, torch.inference_mode(): + if weight_ablation: + for name, parameter in model.named_parameters(): + selected = ( + weight_ablation == "zero_projection" + and name.startswith("projection_") + ) or ( + weight_ablation == "zero_condition" + and name.startswith("condition.") + ) or ( + weight_ablation == "zero_decoder" + and name.startswith(("decoder.", "output.")) + ) + if selected: + parameter.zero_() + for row in rows: + embedded = torch.tensor( + [row["embedding"]], dtype=torch.float32 + ) + projected = model.project(embedded) + _require( + bool(torch.isfinite(projected).all()), + "nonfinite reconstructed embedding", + ) + hidden = model.start(projected) + current = torch.tensor([[1]], dtype=torch.long) + generated, ended = [], False + for _ in range(config["max_target_tokens"] - 1): + logits, hidden = model.next_logits(current, hidden) + _require( + bool(torch.isfinite(logits).all()) + and bool(torch.isfinite(hidden).all()), + "nonfinite generated logits or hidden state", + ) + index = int(logits[0, -1].argmax()) + if index == 2: + ended = True + break + if index in (0, 1): + break + generated.append(vocabulary[index]) + current = torch.tensor([[index]], dtype=torch.long) + candidate = None + status, reason = "fail_open_invalid_output", None + if ended: + try: + value = _parse("".join(generated)) + candidate = validate_target( + self.checkpoint["domain_id"], value + )["canonical_ir"] + status = "unqualified_candidate" + except ( + ValueError, TypeError, KeyError, RecursionError + ) as exc: + reason = str(exc)[:512] + reports.append({ + "id": row["id"], + "source_sha256": hashlib.sha256( + row["source_text"].encode() + ).hexdigest(), + "status": status, + "reason": reason, + "candidate_ir": candidate, + "generated_tokens": generated, + "ended": ended, + "reconstructed_embedding": projected[0].tolist(), + "weight_ablation": weight_ablation, + "weights_sha256": self.checkpoint["weights_sha256"], + "target_access": False, + "teacher_forcing": False, + "continue_planning": True, + **FALSE, + }) + return { + "schema": SCHEMA, + "domain_id": self.checkpoint["domain_id"], + "dimension": DIMENSION, + "rows": reports, + **FALSE, + } + + +def evaluate(checkpoint, rows): + """Post-selection evaluation; gold targets never enter numerical inference.""" + runtime = Runtime(checkpoint) + prepared = _rows(checkpoint["domain_id"], rows, training=True) + report = runtime.infer([ + {key: row[key] for key in ("id", "source_text", "embedding")} + for row in prepared + ]) + for actual, gold in zip(report["rows"], prepared): + actual["exact_target"] = actual["candidate_ir"] == gold["target"] + report["exact_targets"] = sum( + row["exact_target"] for row in report["rows"] + ) + report["valid_candidates"] = sum( + row["candidate_ir"] is not None for row in report["rows"] + ) + report["count"] = len(prepared) + return report + + +def load_checkpoint(path, *, expected_sha256, expected_domain): + """Load bounded inert JSON with an explicit digest and expected domain.""" + path = Path(path) + _require( + path.is_file() + and not path.is_symlink() + and 0 < path.stat().st_size <= MAX_BYTES, + "bounded regular checkpoint required", + ) + raw = path.read_bytes() + _require( + len(raw) <= MAX_BYTES + and hashlib.sha256(raw).hexdigest() == expected_sha256, + "checkpoint bytes differ", + ) + checkpoint = _parse(raw) + _require( + type(checkpoint) is dict + and checkpoint.get("domain_id") == expected_domain, + "checkpoint belongs to another domain", + ) + return Runtime(checkpoint) + + +__all__ = [ + "SCHEMA", "DIMENSION", "DOMAINS", "Runtime", "train", "evaluate", + "validate_target", "load_checkpoint", "digest", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py b/releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py new file mode 100644 index 0000000000000000000000000000000000000000..18b61e862ca56d5dc162aa90486eda3f5bf13de9 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py @@ -0,0 +1,209 @@ +"""Versioned bounded Intent syntax; training labels and post-inference checks. + +This parser is never a replacement for learned predictions. Its explicit +source grammar supplies weak training supervision and checks complete model +outputs after inference. No parser slots are passed to the neural encoder. +""" +from __future__ import annotations + +import re + +SCHEMA = "intent-rich-grammar/v1" +MODALS = {"intended":"intends to", "required":"must", "prohibited":"must not", + "permitted":"may", "recommended":"should"} +SURFACES = {"intends to":"intended", "must":"required", "shall":"required", + "must not":"prohibited", "shall not":"prohibited", "do not":"prohibited", "never":"prohibited", + "may":"permitted", "should":"recommended", "is required to":"required", + "is forbidden to":"prohibited", "is allowed to":"permitted"} +_ATOM = r"[A-Za-z][A-Za-z0-9_-]*" +_WORD = re.compile(_ATOM + r"\Z") +_SLOT = re.compile(r"[A-Za-z0-9_./:`-]+(?: [A-Za-z0-9_./:`-]+)*\Z") +_UNSUPPORTED = frozenset("unless until before after while once whenever wherever assuming provided given because whether whereas since notwithstanding except without otherwise meanwhile subsequently finally each every all any either neither both none no some a an only always eventually exactly least most whose which whom".split()) +_REFERENCES = frozenset("i me my mine myself you your yours yourself yourselves we us our ours ourselves he him his himself she her hers herself it its itself they them their theirs themselves this that these those former latter above below previous same such here there".split()) +_GRAMMAR_WORDS = frozenset("and or then if must shall may should not never intends is are was were be been being has have had does did can could would will to".split()) + + +def _slot(value, maximum=160, words=16): + if (type(value) is not str or not 0 < len(value) <= maximum or len(value.split()) > words + or not _SLOT.fullmatch(value) or " " in value or value.count('`') % 2): + raise ValueError("bounded case-preserving lexical slot required") + return value + + +def validate_ast(ast): + if type(ast) is not dict: + raise ValueError("closed rich Intent AST required") + kind = ast.get("kind") + if type(kind) is not str: + raise ValueError("declared rich constructor required") + if kind == "atom" and set(ast) == {"kind","actor","action","object","modality"}: + _slot(ast["actor"], words=4); _slot(ast["object"]) + if (type(ast['action']) is not str or not _WORD.fullmatch(ast["action"]) + or ast["action"] != ast["action"].lower() or type(ast['modality']) is not str or ast["modality"] not in MODALS): + raise ValueError("stable action and declared modality required") + elif kind in {"and","or","then"} and set(ast) == {"kind","left","right"}: + for key in ("left","right"): + if type(ast[key]) is not dict or ast[key].get("kind") != "atom": + raise ValueError("first rich grammar permits only two atomic branches") + validate_ast(ast[key]) + elif kind == "if" and set(ast) == {"kind","guard","body"}: + guard = ast["guard"] + if (type(guard) is not dict or set(guard) != {"subject","property","negated"} + or type(guard["negated"]) is not bool): + raise ValueError("closed atomic condition required") + _slot(guard["subject"], words=4) + if (type(guard["property"]) is not str or not _WORD.fullmatch(guard["property"]) + or guard['property'].lower() in _GRAMMAR_WORDS | _UNSUPPORTED | _REFERENCES): + raise ValueError("atomic guard property required") + if type(ast['body']) is not dict or ast["body"].get("kind") != "atom": + raise ValueError("one guarded atomic norm required") + validate_ast(ast["body"]) + else: + raise ValueError("unsupported rich Intent constructor or fields") + return ast + + +def ast_to_sequence(ast): + validate_ast(ast) + kind = ast["kind"] + if kind == "atom": + return " ".join(f"<{key}> {ast[key]}" for key in ("actor","action","object","modality")) + if kind in {"and","or","then"}: + return f"<{kind}> {ast_to_sequence(ast['left'])} {ast_to_sequence(ast['right'])}" + guard = ast["guard"] + return (f" {guard['subject']} {guard['property']} " + f" {'negative' if guard['negated'] else 'positive'} {ast_to_sequence(ast['body'])}") + + +def _unspace(value): + value = " ".join(value.split()) + value = re.sub(r"\s*([./:_-])\s*",r"\1",value) + return re.sub(r"`\s*([^`]+?)\s*`", lambda m:'`'+m[1]+'`',value) + + +def sequence_to_ast(text): + if type(text) is not str or not 0 < len(text) <= 4096: + raise ValueError("bounded predicted rich sequence required") + text = text.strip() + binary = re.fullmatch(r"<(and|or|then)>\s+(.+?)\s+\s+(.+)",text) + guard = re.fullmatch(r"\s+([^<>]+?)\s+\s+([^<>]+?)\s+\s+(positive|negative)\s+\s+(.+)",text) + if binary: + value = {"kind":binary[1],"left":sequence_to_ast(binary[2]),"right":sequence_to_ast(binary[3])} + elif guard: + value = {"kind":"if","guard":{"subject":_unspace(guard[1]),"property":_unspace(guard[2]), + "negated":guard[3]=="negative"},"body":sequence_to_ast(guard[4])} + else: + match = re.fullmatch(r"\s+([^<>]+?)\s+\s+([^<>]+?)\s+\s+([^<>]+?)\s+\s+([^<>]+?)",text) + if not match: + raise ValueError("invalid rich decoder production sequence") + value = {"kind":"atom",**{key:_unspace(item) for key,item in zip(("actor","action","object","modality"),match.groups())}} + return validate_ast(value) + + +def ast_to_text(ast): + validate_ast(ast) + kind = ast["kind"] + if kind == "atom": + return f"{ast['actor']} {MODALS[ast['modality']]} {ast['action']} {ast['object']}." + if kind in {"and","or","then"}: + return ast_to_text(ast['left'])[:-1]+" "+kind+" "+ast_to_text(ast['right']) + g = ast['guard'] + return f"if {g['subject']} is {'not ' if g['negated'] else ''}{g['property']}, {ast_to_text(ast['body'])}" + + +def _without_article(value): + return value[4:] if value.startswith("the ") else value + + +def _leaf(text, *, normalized_inverse=False): + from .instruction_scope import _BARE_ACTIONS + actor, modality, body = "unspecified", "intended", text + modal_alts = "|".join(re.escape(x) for x in sorted(SURFACES,key=len,reverse=True)) + explicit = re.fullmatch(r"(.+?) ("+modal_alts+r") (.+)",text) + if explicit: + actor, modal, body = explicit.groups() + actor = _without_article(actor) + modality = SURFACES[modal] + _slot(actor, words=4) + if set(actor.lower().split()) & (_UNSUPPORTED | _REFERENCES | _GRAMMAR_WORDS): + raise ValueError("unresolved actor scope") + else: + if normalized_inverse: + raise ValueError("inverse must state actor and modality") + if text.startswith("please "): + body = text[7:] + for modal in sorted(SURFACES,key=len,reverse=True): + if body.startswith(modal+" "): + modality, body = SURFACES[modal], body[len(modal)+1:] + break + parts = body.split(" ",1) + if len(parts)!=2: + raise ValueError("complete action and object required") + action, obj = parts[0].lower(), _without_article(parts[1]) + reserved_actions = _UNSUPPORTED | _REFERENCES | _GRAMMAR_WORDS + if (not _WORD.fullmatch(action) or action in reserved_actions + or (action not in _BARE_ACTIONS and explicit is None)): + raise ValueError("unclassified action") + words = set(obj.lower().replace('`','').split()) + if words & (_UNSUPPORTED | _REFERENCES | {"and","or","then","if","must","shall","may","should","not","to","is","are","was","were","be","been","being","has","have","had","come","analyzed"}): + raise ValueError("object contains unsupported scope or predication") + # These are noun fragments in the source corpus; requesting that they be + # forced through the decoder would create spurious imperative intent. + if action == "benchmark" and obj.lower().startswith("suite for "): + raise ValueError("ambiguous descriptive noun phrase") + return validate_ast({"kind":"atom","actor":actor,"action":action,"object":obj,"modality":modality}) + + +def parse_instruction(instruction, *, normalized_inverse=False): + """Whole-input bounded grammar, for weak labels and independent agreement.""" + if (type(instruction) is not str or not instruction.strip() or len(instruction)>4096 + or not instruction.isascii() or any(c in instruction for c in "\n\r<>?!;()[]{}")): + raise ValueError("source outside bounded rich grammar") + text = " ".join(instruction.strip().split()).removesuffix(".") + if re.search(r"\.\s+",text): + raise ValueError("multiple sentences require document routing") + # Only initial grammatical capitalization is normalized. Slot case survives. + for lead in ("The ","If ","Please ","Do not ","Never ","Must ","Should ","May "): + if text.startswith(lead): + text = lead[0].lower()+text[1:] + break + conditional = re.fullmatch(r"if (.+?) is (not )?("+_ATOM+r"), (.+)",text) + if conditional: + subject, negative, prop, body = conditional.groups() + subject = _without_article(subject) + if set(subject.lower().split()) & (_UNSUPPORTED | _REFERENCES | _GRAMMAR_WORDS): + raise ValueError("unresolved guard subject") + return validate_ast({"kind":"if","guard":{"subject":subject,"property":prop,"negated":bool(negative)}, + "body":_leaf(body,normalized_inverse=normalized_inverse)}) + if text.startswith('if ') or ',' in text: + raise ValueError("unsupported conditional or list scope") + for surface, kind in ((" and then ","then"),(" then ","then"),(" and ","and"),(" or ","or")): + if surface in text: + left, right = text.split(surface,1) + a, b = _leaf(left,normalized_inverse=normalized_inverse), _leaf(right,normalized_inverse=normalized_inverse) + if a['actor']!='unspecified' and b['actor']=='unspecified': + raise ValueError("implicit shared actor or modal scope requires explicit branches") + if (a['modality']!='intended' and b['actor']=='unspecified' + and not any(right.startswith(m+' ') for m in SURFACES)): + raise ValueError("shared leading modality requires explicit branch scope") + return validate_ast({"kind":kind,"left":a,"right":b}) + return _leaf(text,normalized_inverse=normalized_inverse) + + +def model_input(instruction): + """Normalize initial grammar capitalization while retaining every slot byte. + + Predicate/identifier case is untouched. This transform exports no semantic + slots and is applied equally to training and numerical source inference. + """ + from .instruction_scope import _BARE_ACTIONS + text=' '.join(instruction.split()) + first,separator,rest=text.partition(' ') + cues={'the','if','please','do','never','must','shall','should','may'} + explicit_actor=any(' '+surface+' ' in text for surface in SURFACES) + if first.lower() in cues or (first.lower() in _BARE_ACTIONS and not explicit_actor): + first=first.lower() + return first+separator+rest + + +__all__ = ["SCHEMA","MODALS","validate_ast","ast_to_sequence","sequence_to_ast","ast_to_text","parse_instruction"] diff --git a/releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py b/releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..8b217953c0a6b9f8411df52f6d70953d7ce4246e --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py @@ -0,0 +1,721 @@ +"""Fail-closed decoding and explicit v0.1-to-v1 migration for Intent IR.""" + +from __future__ import annotations + +import json +import math +from dataclasses import dataclass +from enum import Enum +from typing import Any, Mapping, TypeVar + +from ..ir_core.schema_registry import ( + IRSchemaRegistry, + MigrationLoss, + MigrationOutcome, + MigrationReceipt, + MigrationSpec, + SchemaSpec, +) +from .schema import ( + INTENT_IR_SCHEMA_VERSION, + LEGACY_INTENT_IR_SCHEMA_VERSION, + ControlEdgeKind, + IntentAction, + IntentControlEdge, + IntentIRDocument, + IntentIRValidationError, + IntentKind, + IntentModality, + IntentStatement, + NodeGrounding, + ReviewStatus, + SourceRef, + SourceSpan, + StatementKind, + validate_intent_ir, +) + +INTENT_IR_V0_1_TO_V1_MIGRATION_ID = "intent-ir-v0.1-to-v1" + + +class IntentIRDecodeError(IntentIRValidationError): + """Raised when an untrusted wire document cannot be decoded exactly.""" + + +class MigrationSeverity(str, Enum): + """Machine-readable importance of a migration diagnostic.""" + + INFO = "info" + WARNING = "warning" + + +@dataclass(frozen=True, slots=True) +class MigrationDiagnostic: + """One explicit transformation performed while migrating a document.""" + + code: str + path: str + message: str + severity: MigrationSeverity = MigrationSeverity.INFO + lossy: bool = False + + def to_dict(self) -> dict[str, Any]: + return { + "code": self.code, + "lossy": self.lossy, + "message": self.message, + "path": self.path, + "severity": self.severity.value, + } + + +@dataclass(frozen=True, slots=True) +class IntentIRMigrationResult: + """A decoded v1 document plus an immutable migration audit trail.""" + + document: IntentIRDocument + source_version: str + target_version: str + diagnostics: tuple[MigrationDiagnostic, ...] = () + receipt: MigrationReceipt | None = None + + @property + def loss_diagnostics(self) -> tuple[MigrationDiagnostic, ...]: + return tuple(item for item in self.diagnostics if item.lossy) + + @property + def is_lossless(self) -> bool: + return not self.loss_diagnostics + + +_DOCUMENT_FIELDS = { + "schema_version", + "document_id", + "title", + "intent_kind", + "sources", + "statements", + "actions", + "control_edges", + "entry_action_ids", + "terminal_action_ids", + "tags", +} +_SOURCE_FIELDS = { + "ref_id", + "source_uri", + "source_id", + "source_revision", + "content_sha256", + "container_uri", + "container_sha256", + "content_cid", + "license_expression", + "review_status", + "span", +} +_STATEMENT_FIELDS = { + "statement_id", + "kind", + "modality", + "normalized_text", + "source_ref_ids", + "predicate", + "arguments", + "confidence", + "review_status", + "grounding", +} +_ACTION_FIELDS = { + "action_id", + "actor", + "verb", + "object_refs", + "source_ref_ids", + "tool_refs", + "input_refs", + "output_refs", + "precondition_ids", + "effect_ids", + "verification_ids", + "grounding", +} +_EDGE_FIELDS = { + "edge_id", + "source_action_id", + "target_action_id", + "kind", + "guard_statement_id", + "source_ref_ids", + "grounding", +} +_SPAN_FIELDS = {"start_char", "end_char"} + +_DOCUMENT_REQUIRED = { + "schema_version", + "document_id", + "title", + "intent_kind", + "sources", + "statements", +} +_SOURCE_REQUIRED = { + "ref_id", + "source_uri", + "source_id", + "source_revision", + "content_sha256", +} +_STATEMENT_REQUIRED = { + "statement_id", + "kind", + "modality", + "normalized_text", + "source_ref_ids", + "grounding", +} +_ACTION_REQUIRED = { + "action_id", + "actor", + "verb", + "object_refs", + "source_ref_ids", + "grounding", +} +_EDGE_REQUIRED = { + "edge_id", + "source_action_id", + "target_action_id", + "grounding", +} + +_LEGACY_STATEMENT_FIELDS = _STATEMENT_FIELDS - {"grounding"} +_LEGACY_ACTION_FIELDS = _ACTION_FIELDS - {"grounding"} +_LEGACY_EDGE_FIELDS = _EDGE_FIELDS - {"grounding"} + +_E = TypeVar("_E", bound=Enum) + + +def decode_intent_ir( + payload: Mapping[str, Any] | str | bytes | bytearray, +) -> IntentIRDocument: + """Decode one exact v1 wire document into immutable typed records. + + The decoder rejects missing or unknown versions, unknown object fields, + duplicate JSON keys, non-JSON values, untyped enum values, duplicate + members of set-like collections, and every dangling internal reference. + It never retains mutable collections from the caller. + """ + + raw = _load_payload(payload) + version = raw.get("schema_version") + if version != INTENT_IR_SCHEMA_VERSION: + raise IntentIRDecodeError( + f"Unsupported Intent IR schema_version: {version!r}; " + f"expected {INTENT_IR_SCHEMA_VERSION!r}" + ) + return _decode_v1(raw) + + +def migrate_intent_ir( + payload: Mapping[str, Any] | str | bytes | bytearray, + *, + allow_lossy: bool = True, +) -> IntentIRMigrationResult: + """Decode v1 or migrate the sole supported legacy version, v0.1. + + Because v0.1 did not record node grounding, every legacy migration reports + that unrecoverable distinction as a loss. Duplicate members in legacy + set-like arrays are also removed and reported. Set ``allow_lossy=False`` to + fail closed instead. No unknown version, field, or internal reference is + accepted. + """ + + raw = _load_payload(payload) + version = raw.get("schema_version") + if version == INTENT_IR_SCHEMA_VERSION: + return IntentIRMigrationResult( + document=_decode_v1(raw), + source_version=INTENT_IR_SCHEMA_VERSION, + target_version=INTENT_IR_SCHEMA_VERSION, + ) + if version != LEGACY_INTENT_IR_SCHEMA_VERSION: + raise IntentIRDecodeError( + f"Unsupported Intent IR schema_version: {version!r}; supported " + f"versions are {LEGACY_INTENT_IR_SCHEMA_VERSION!r} and " + f"{INTENT_IR_SCHEMA_VERSION!r}" + ) + + pre_migrated, diagnostics = _migrate_v0_1(raw) + _decode_v1(pre_migrated) + losses = tuple(item for item in diagnostics if item.lossy) + if losses and not allow_lossy: + paths = ", ".join(item.path for item in losses) + raise IntentIRDecodeError(f"Intent IR migration would be lossy at: {paths}") + registry_result = INTENT_IR_SCHEMA_REGISTRY.migrate( + raw, + source_schema_id=LEGACY_INTENT_IR_SCHEMA_VERSION, + destination_schema_id=INTENT_IR_SCHEMA_VERSION, + ) + migrated = _thaw_registry_json(registry_result.payload) + if not isinstance(migrated, dict): # Registry payloads are always objects. + raise IntentIRDecodeError("Intent IR migration returned a non-object") + return IntentIRMigrationResult( + document=_decode_v1(migrated), + source_version=LEGACY_INTENT_IR_SCHEMA_VERSION, + target_version=INTENT_IR_SCHEMA_VERSION, + diagnostics=tuple(diagnostics), + receipt=registry_result.receipt, + ) + + +def decode_intent_ir_with_migration( + payload: Mapping[str, Any] | str | bytes | bytearray, + *, + allow_lossy: bool = True, +) -> IntentIRMigrationResult: + """Named alias for callers that want migration diagnostics at decode time.""" + + return migrate_intent_ir(payload, allow_lossy=allow_lossy) + + +def _decode_v1(raw: Mapping[str, Any]) -> IntentIRDocument: + _check_fields(raw, _DOCUMENT_FIELDS, _DOCUMENT_REQUIRED, "$") + document = IntentIRDocument( + schema_version=_string(raw["schema_version"], "$.schema_version"), + document_id=_string(raw["document_id"], "$.document_id"), + title=_string(raw["title"], "$.title"), + intent_kind=_enum(IntentKind, raw["intent_kind"], "$.intent_kind"), + sources=tuple( + _decode_source(item, f"$.sources[{index}]") + for index, item in enumerate(_array(raw["sources"], "$.sources")) + ), + statements=tuple( + _decode_statement(item, f"$.statements[{index}]") + for index, item in enumerate(_array(raw["statements"], "$.statements")) + ), + actions=tuple( + _decode_action(item, f"$.actions[{index}]") + for index, item in enumerate(_array(raw.get("actions", []), "$.actions")) + ), + control_edges=tuple( + _decode_edge(item, f"$.control_edges[{index}]") + for index, item in enumerate(_array(raw.get("control_edges", []), "$.control_edges")) + ), + entry_action_ids=_string_tuple(raw.get("entry_action_ids", []), "$.entry_action_ids"), + terminal_action_ids=_string_tuple( + raw.get("terminal_action_ids", []), "$.terminal_action_ids" + ), + tags=_string_tuple(raw.get("tags", []), "$.tags"), + ) + try: + return validate_intent_ir(document) + except IntentIRDecodeError: + raise + except IntentIRValidationError as exc: + raise IntentIRDecodeError(str(exc)) from exc + + +def _decode_source(value: Any, path: str) -> SourceRef: + raw = _object(value, path) + _check_fields(raw, _SOURCE_FIELDS, _SOURCE_REQUIRED, path) + span_value = raw.get("span") + span = None + if span_value is not None: + span_raw = _object(span_value, f"{path}.span") + _check_fields(span_raw, _SPAN_FIELDS, _SPAN_FIELDS, f"{path}.span") + span = SourceSpan( + start_char=_integer(span_raw["start_char"], f"{path}.span.start_char"), + end_char=_integer(span_raw["end_char"], f"{path}.span.end_char"), + ) + return SourceRef( + ref_id=_string(raw["ref_id"], f"{path}.ref_id"), + source_uri=_string(raw["source_uri"], f"{path}.source_uri"), + source_id=_string(raw["source_id"], f"{path}.source_id"), + source_revision=_string(raw["source_revision"], f"{path}.source_revision"), + content_sha256=_string(raw["content_sha256"], f"{path}.content_sha256"), + container_uri=_string(raw.get("container_uri", ""), f"{path}.container_uri"), + container_sha256=_string(raw.get("container_sha256", ""), f"{path}.container_sha256"), + content_cid=_string(raw.get("content_cid", ""), f"{path}.content_cid"), + license_expression=_string(raw.get("license_expression", ""), f"{path}.license_expression"), + review_status=_enum( + ReviewStatus, + raw.get("review_status", ReviewStatus.UNREVIEWED.value), + f"{path}.review_status", + ), + span=span, + ) + + +def _decode_statement(value: Any, path: str) -> IntentStatement: + raw = _object(value, path) + _check_fields(raw, _STATEMENT_FIELDS, _STATEMENT_REQUIRED, path) + return IntentStatement( + statement_id=_string(raw["statement_id"], f"{path}.statement_id"), + kind=_enum(StatementKind, raw["kind"], f"{path}.kind"), + modality=_enum(IntentModality, raw["modality"], f"{path}.modality"), + normalized_text=_string(raw["normalized_text"], f"{path}.normalized_text"), + source_ref_ids=_string_tuple(raw["source_ref_ids"], f"{path}.source_ref_ids"), + predicate=_string(raw.get("predicate", ""), f"{path}.predicate"), + arguments=_string_tuple(raw.get("arguments", []), f"{path}.arguments"), + confidence=_number(raw.get("confidence", 1.0), f"{path}.confidence"), + review_status=_enum( + ReviewStatus, + raw.get("review_status", ReviewStatus.MACHINE_EXTRACTED.value), + f"{path}.review_status", + ), + grounding=_enum(NodeGrounding, raw["grounding"], f"{path}.grounding"), + ) + + +def _decode_action(value: Any, path: str) -> IntentAction: + raw = _object(value, path) + _check_fields(raw, _ACTION_FIELDS, _ACTION_REQUIRED, path) + return IntentAction( + action_id=_string(raw["action_id"], f"{path}.action_id"), + actor=_string(raw["actor"], f"{path}.actor"), + verb=_string(raw["verb"], f"{path}.verb"), + object_refs=_string_tuple(raw["object_refs"], f"{path}.object_refs"), + source_ref_ids=_string_tuple(raw["source_ref_ids"], f"{path}.source_ref_ids"), + tool_refs=_string_tuple(raw.get("tool_refs", []), f"{path}.tool_refs"), + input_refs=_string_tuple(raw.get("input_refs", []), f"{path}.input_refs"), + output_refs=_string_tuple(raw.get("output_refs", []), f"{path}.output_refs"), + precondition_ids=_string_tuple(raw.get("precondition_ids", []), f"{path}.precondition_ids"), + effect_ids=_string_tuple(raw.get("effect_ids", []), f"{path}.effect_ids"), + verification_ids=_string_tuple(raw.get("verification_ids", []), f"{path}.verification_ids"), + grounding=_enum(NodeGrounding, raw["grounding"], f"{path}.grounding"), + ) + + +def _decode_edge(value: Any, path: str) -> IntentControlEdge: + raw = _object(value, path) + _check_fields(raw, _EDGE_FIELDS, _EDGE_REQUIRED, path) + return IntentControlEdge( + edge_id=_string(raw["edge_id"], f"{path}.edge_id"), + source_action_id=_string(raw["source_action_id"], f"{path}.source_action_id"), + target_action_id=_string(raw["target_action_id"], f"{path}.target_action_id"), + kind=_enum( + ControlEdgeKind, + raw.get("kind", ControlEdgeKind.NEXT.value), + f"{path}.kind", + ), + guard_statement_id=_string(raw.get("guard_statement_id", ""), f"{path}.guard_statement_id"), + source_ref_ids=_string_tuple(raw.get("source_ref_ids", []), f"{path}.source_ref_ids"), + grounding=_enum(NodeGrounding, raw["grounding"], f"{path}.grounding"), + ) + + +def _migrate_v0_1( + raw: Mapping[str, Any], +) -> tuple[dict[str, Any], list[MigrationDiagnostic]]: + _check_fields(raw, _DOCUMENT_FIELDS, _DOCUMENT_REQUIRED, "$") + migrated = _plain_object(raw, "$") + diagnostics: list[MigrationDiagnostic] = [] + + for collection_name, allowed, required in ( + ("sources", _SOURCE_FIELDS, _SOURCE_REQUIRED), + ( + "statements", + _LEGACY_STATEMENT_FIELDS, + _STATEMENT_REQUIRED - {"grounding"}, + ), + ( + "actions", + _LEGACY_ACTION_FIELDS, + _ACTION_REQUIRED - {"grounding"}, + ), + ( + "control_edges", + _LEGACY_EDGE_FIELDS, + _EDGE_REQUIRED - {"grounding"}, + ), + ): + for index, item in enumerate( + _array(migrated.get(collection_name, []), f"$.{collection_name}") + ): + item_path = f"$.{collection_name}[{index}]" + _check_fields(_object(item, item_path), allowed, required, item_path) + + set_paths: list[tuple[dict[str, Any], str, str]] = [ + (migrated, "entry_action_ids", "$.entry_action_ids"), + (migrated, "terminal_action_ids", "$.terminal_action_ids"), + (migrated, "tags", "$.tags"), + ] + for index, item in enumerate(migrated.get("statements", [])): + set_paths.append((item, "source_ref_ids", f"$.statements[{index}].source_ref_ids")) + for index, item in enumerate(migrated.get("actions", [])): + for name in ( + "object_refs", + "source_ref_ids", + "tool_refs", + "input_refs", + "output_refs", + "precondition_ids", + "effect_ids", + "verification_ids", + ): + set_paths.append((item, name, f"$.actions[{index}].{name}")) + for index, item in enumerate(migrated.get("control_edges", [])): + set_paths.append((item, "source_ref_ids", f"$.control_edges[{index}].source_ref_ids")) + + for owner, name, path in set_paths: + if name not in owner: + continue + original = _array(owner[name], path) + unique: list[Any] = [] + for value in original: + if value not in unique: + unique.append(value) + if len(unique) != len(original): + owner[name] = unique + diagnostics.append( + MigrationDiagnostic( + code="duplicate_set_members_removed", + path=path, + message=( + f"Removed {len(original) - len(unique)} duplicate " + "member(s) from a set-like collection" + ), + severity=MigrationSeverity.WARNING, + lossy=True, + ) + ) + + for collection_name in ("statements", "actions", "control_edges"): + for index, item in enumerate(migrated.get(collection_name, [])): + path = f"$.{collection_name}[{index}].grounding" + if collection_name == "control_edges" and not item.get("source_ref_ids", []): + grounding = NodeGrounding.INFERRED.value + message = "Classified a legacy edge without source references as inferred" + else: + grounding = NodeGrounding.GROUNDED.value + message = "Classified a legacy source-referenced node as grounded" + item["grounding"] = grounding + diagnostics.append( + MigrationDiagnostic( + code="node_grounding_classified", + path=path, + message=message, + ) + ) + + diagnostics.append( + MigrationDiagnostic( + code="legacy_grounding_ambiguity", + path="$.statements|actions|control_edges", + message=( + "v0.1 did not encode grounded-versus-inferred status; v1 " + "classification is deterministic but cannot recover that " + "missing authorial distinction" + ), + severity=MigrationSeverity.WARNING, + lossy=True, + ) + ) + migrated["schema_version"] = INTENT_IR_SCHEMA_VERSION + diagnostics.append( + MigrationDiagnostic( + code="schema_version_upgraded", + path="$.schema_version", + message=(f"Upgraded {LEGACY_INTENT_IR_SCHEMA_VERSION} to {INTENT_IR_SCHEMA_VERSION}"), + ) + ) + return migrated, diagnostics + + +def _registry_migrate_v0_1( + payload: Mapping[str, Any], +) -> MigrationOutcome: + """Shared-registry transform with content-bound loss evidence.""" + + thawed = _thaw_registry_json(payload) + if not isinstance(thawed, dict): + raise IntentIRDecodeError("Legacy Intent IR payload must be an object") + migrated, diagnostics = _migrate_v0_1(thawed) + canonical = _decode_v1(migrated).to_dict() + losses = tuple( + MigrationLoss( + code=item.code.replace("_", "-"), + field_path=item.path, + message=item.message, + ) + for item in diagnostics + if item.lossy + ) + return MigrationOutcome(canonical, losses) + + +def _load_payload( + payload: Mapping[str, Any] | str | bytes | bytearray, +) -> dict[str, Any]: + if isinstance(payload, (bytes, bytearray)): + try: + payload = bytes(payload).decode("utf-8") + except UnicodeDecodeError as exc: + raise IntentIRDecodeError("Intent IR bytes must be UTF-8") from exc + if isinstance(payload, str): + try: + value = json.loads( + payload, + object_pairs_hook=_reject_duplicate_json_keys, + parse_constant=_reject_non_finite_json_number, + ) + except (json.JSONDecodeError, IntentIRDecodeError) as exc: + if isinstance(exc, IntentIRDecodeError): + raise + raise IntentIRDecodeError(f"Invalid Intent IR JSON: {exc.msg}") from exc + else: + value = payload + return _plain_object(_object(value, "$"), "$") + + +def _reject_duplicate_json_keys(pairs: list[tuple[str, Any]]) -> dict[str, Any]: + result: dict[str, Any] = {} + for key, value in pairs: + if key in result: + raise IntentIRDecodeError(f"Duplicate JSON object key: {key!r}") + result[key] = value + return result + + +def _reject_non_finite_json_number(value: str) -> None: + raise IntentIRDecodeError(f"Non-finite JSON number is not allowed: {value}") + + +def _plain_object(value: Mapping[str, Any], path: str) -> dict[str, Any]: + return { + key: _plain_json(item, f"{path}.{key}") + for key, item in value.items() + if _validate_key(key, path) + } + + +def _plain_json(value: Any, path: str) -> Any: + if isinstance(value, Mapping): + return _plain_object(value, path) + if isinstance(value, list): + return [_plain_json(item, f"{path}[{index}]") for index, item in enumerate(value)] + if value is None or isinstance(value, (str, bool, int)): + return value + if isinstance(value, float) and math.isfinite(value): + return value + raise IntentIRDecodeError(f"{path} contains a non-JSON value") + + +def _thaw_registry_json(value: Any) -> Any: + if isinstance(value, Mapping): + return {str(key): _thaw_registry_json(item) for key, item in value.items()} + if isinstance(value, (list, tuple)): + return [_thaw_registry_json(item) for item in value] + return value + + +def _validate_key(key: Any, path: str) -> bool: + if not isinstance(key, str): + raise IntentIRDecodeError(f"{path} contains a non-string object key") + return True + + +def _object(value: Any, path: str) -> Mapping[str, Any]: + if not isinstance(value, Mapping): + raise IntentIRDecodeError(f"{path} must be an object") + return value + + +def _array(value: Any, path: str) -> list[Any]: + if not isinstance(value, list): + raise IntentIRDecodeError(f"{path} must be an array") + return value + + +def _string(value: Any, path: str) -> str: + if not isinstance(value, str): + raise IntentIRDecodeError(f"{path} must be a string") + return value + + +def _integer(value: Any, path: str) -> int: + if isinstance(value, bool) or not isinstance(value, int): + raise IntentIRDecodeError(f"{path} must be an integer") + return value + + +def _number(value: Any, path: str) -> float: + if ( + isinstance(value, bool) + or not isinstance(value, (int, float)) + or not math.isfinite(float(value)) + ): + raise IntentIRDecodeError(f"{path} must be a finite number") + return float(value) + + +def _string_tuple(value: Any, path: str) -> tuple[str, ...]: + return tuple( + _string(item, f"{path}[{index}]") for index, item in enumerate(_array(value, path)) + ) + + +def _enum(enum_type: type[_E], value: Any, path: str) -> _E: + value = _string(value, path) + try: + return enum_type(value) + except ValueError as exc: + allowed = ", ".join(repr(item.value) for item in enum_type) + raise IntentIRDecodeError( + f"{path} has unknown value {value!r}; expected one of {allowed}" + ) from exc + + +def _check_fields( + value: Mapping[str, Any], + allowed: set[str], + required: set[str], + path: str, +) -> None: + unknown = sorted(set(value) - allowed) + if unknown: + raise IntentIRDecodeError(f"{path} contains unknown fields: {', '.join(unknown)}") + missing = sorted(required - set(value)) + if missing: + raise IntentIRDecodeError(f"{path} is missing required fields: {', '.join(missing)}") + + +INTENT_IR_SCHEMA_REGISTRY = IRSchemaRegistry( + schemas=( + SchemaSpec( + LEGACY_INTENT_IR_SCHEMA_VERSION, + "Legacy Intent IR scaffold without explicit node grounding", + ), + SchemaSpec( + INTENT_IR_SCHEMA_VERSION, + "Closed Intent IR v1 wire contract", + ), + ), + migrations=( + MigrationSpec( + migration_id=INTENT_IR_V0_1_TO_V1_MIGRATION_ID, + source_schema_id=LEGACY_INTENT_IR_SCHEMA_VERSION, + destination_schema_id=INTENT_IR_SCHEMA_VERSION, + transform=_registry_migrate_v0_1, + lossy=True, + description=( + "Classify legacy node grounding and canonicalize declared " + "set-like collections with explicit losses" + ), + ), + ), +) + + +__all__ = [ + "INTENT_IR_SCHEMA_REGISTRY", + "INTENT_IR_V0_1_TO_V1_MIGRATION_ID", + "IntentIRDecodeError", + "IntentIRMigrationResult", + "MigrationDiagnostic", + "MigrationSeverity", + "decode_intent_ir", + "decode_intent_ir_with_migration", + "migrate_intent_ir", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py b/releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py new file mode 100644 index 0000000000000000000000000000000000000000..9621440ba04ed8dd787fc74603410300e2f738c4 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py @@ -0,0 +1,3174 @@ +"""Closed UI/UX IR v1 envelope schema. + +The wire identifier is ``ui-ux-ir/v1``. This module defines the immutable +top-level document, declared collection semantics, exact reference namespaces, +and closed validation. Detailed component/layout/behavior/modality leaves are +owned by later model modules; the envelope records here establish stable IDs, +cross-reference closure, entry/terminal semantics, and namespaced extensions. + +Executable callbacks, free-form code, and mutation after construction are +forbidden. Unknown versions and undeclared top-level fields fail closed. +""" + +from __future__ import annotations + +import re +from dataclasses import dataclass, fields, replace +from enum import Enum +from pathlib import Path +from types import MappingProxyType +from typing import Any, Final, Iterable, Mapping, Sequence + +from ..ir_core.canonical import CollectionSchema, CollectionSemantics + +UI_UX_IR_SCHEMA_VERSION: Final = "ui-ux-ir/v1" +LEGACY_UI_UX_IR_SCHEMA_VERSION: Final = "ui-ux-ir/v0.1" +UI_UX_IR_SCHEMA_JSON_PATH: Final = Path(__file__).with_name("ui_ux_ir.schema.json") +UI_UX_IR_INTERFACE: Final = "UIUXIR@1" + +_IDENTIFIER_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$") +_SHA256_RE = re.compile(r"^[0-9a-f]{64}$") +_NAMESPACE_RE = re.compile( + r"^[A-Za-z][A-Za-z0-9_-]{0,63}(\.[A-Za-z][A-Za-z0-9_-]{0,63}){0,7}$" +) +_VERSION_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$") + +# Keys that never appear in a declaration. Callbacks and free-form executable +# content are unsupported semantics for ui-ux-ir/v1. +_FORBIDDEN_EXECUTABLE_KEYS: Final = frozenset( + { + "callback", + "callbacks", + "code", + "eval", + "exec", + "executable", + "fn", + "function", + "handler", + "handlers", + "javascript", + "jsx", + "lambda", + "listener", + "listeners", + "on_blur", + "on_change", + "on_click", + "on_focus", + "on_input", + "on_submit", + "onchange", + "onclick", + "onsubmit", + "script", + "scripts", + "tsx", + } +) + +_FORBIDDEN_EXECUTABLE_KEY_PREFIXES: Final = ("on_", "handle_") + + +class UIIRValidationError(ValueError): + """Raised when a UI/UX IR document violates its closed envelope contract.""" + + +class ReviewStatus(str, Enum): + """Human/machine review state for source and declaration trust.""" + + UNREVIEWED = "unreviewed" + MACHINE_EXTRACTED = "machine_extracted" + HUMAN_REVIEWED = "human_reviewed" + TRUSTED_FIXTURE = "trusted_fixture" + QUARANTINED = "quarantined" + + +class CompositionEdgeKind(str, Enum): + """Structural relationship between semantic components.""" + + PARENT = "parent" + CHILD = "child" + SLOT = "slot" + LABEL = "label" + DESCRIBED_BY = "described_by" + OWNS = "owns" + FLOW = "flow" + + +class LayoutRegionKind(str, Enum): + """Abstract layout region kinds.""" + + FLOW = "flow" + GRID = "grid" + STACK = "stack" + OVERLAY = "overlay" + SPATIAL_ANCHOR = "spatial_anchor" + AUDIO_SEQUENCE = "audio_sequence" + + +class AdaptationPolicy(str, Enum): + """How a required semantic may adapt under projection loss.""" + + PRESERVE = "preserve" + ADAPT = "adapt" + SUMMARIZE = "summarize" + FALLBACK = "fallback" + OMIT = "omit" + + +class ProgramBindingTargetKind(str, Enum): + """Exactly one semantic target family per program binding.""" + + MCP_IDL = "mcp_idl_interface_method_schema" + INTENT_IR = "intent_ir_document_action" + INVOCATION_TEMPLATE = "invocation_intent_template" + LOCAL_STATE = "local_state_only_transition" + COMPOSITE_WORKFLOW = "versioned_composite_workflow" + + +class TerminalOutcomeKind(str, Enum): + """Declared terminal UX outcomes.""" + + SUCCESS = "success" + FAILURE = "failure" + PARTIAL = "partial" + UNAVAILABLE = "unavailable" + DEGRADED = "degraded" + + +class EventKind(str, Enum): + """Bounded behavior event families.""" + + INPUT = "input" + DOMAIN = "domain" + LIFECYCLE = "lifecycle" + TIMER = "timer" + PROGRAM_RESULT = "program_result" + + +class AuthorityKind(str, Enum): + """Result-authority classes; non-substitutable.""" + + DECLARATION = "declaration" + INTERFACE = "interface" + LEGACY_ALIAS = "legacy_alias" + PROJECTION = "projection" + OBSERVATION = "observation" + MEDIATION = "mediation" + INVOCATION = "invocation" + SATISFIABILITY = "satisfiability" + MONITOR = "monitor" + PROOF = "proof" + ACCESSIBILITY = "accessibility" + POLICY = "policy" + SYNTHESIS_CANDIDATE = "synthesis_candidate" + CONFORMANCE = "conformance" + + +# Every collection in the v1 wire contract has declared semantics. +UI_UX_IR_COLLECTION_SEMANTICS: Mapping[str, CollectionSemantics] = MappingProxyType( + { + "UIIRDocument.sources": CollectionSemantics.SET_LIKE, + "UIIRDocument.trust_bindings": CollectionSemantics.SET_LIKE, + "UIIRDocument.components": CollectionSemantics.SET_LIKE, + "UIIRDocument.composition_edges": CollectionSemantics.SET_LIKE, + "UIIRDocument.layout_regions": CollectionSemantics.SET_LIKE, + "UIIRDocument.layout_constraints": CollectionSemantics.SET_LIKE, + "UIIRDocument.design_token_refs": CollectionSemantics.SET_LIKE, + "UIIRDocument.state_variables": CollectionSemantics.SET_LIKE, + "UIIRDocument.states": CollectionSemantics.SET_LIKE, + "UIIRDocument.events": CollectionSemantics.SET_LIKE, + "UIIRDocument.transitions": CollectionSemantics.SET_LIKE, + "UIIRDocument.guards": CollectionSemantics.SET_LIKE, + "UIIRDocument.effects": CollectionSemantics.SET_LIKE, + "UIIRDocument.ux_tasks": CollectionSemantics.SET_LIKE, + "UIIRDocument.journeys": CollectionSemantics.SET_LIKE, + "UIIRDocument.success_failure_recovery": CollectionSemantics.SET_LIKE, + "UIIRDocument.feedback_contracts": CollectionSemantics.SET_LIKE, + "UIIRDocument.accessibility": CollectionSemantics.SET_LIKE, + "UIIRDocument.localization": CollectionSemantics.SET_LIKE, + "UIIRDocument.input_modality_requirements": CollectionSemantics.SET_LIKE, + "UIIRDocument.output_modality_requirements": CollectionSemantics.SET_LIKE, + "UIIRDocument.modality_alternatives": CollectionSemantics.SET_LIKE, + "UIIRDocument.device_capability_requirements": CollectionSemantics.SET_LIKE, + "UIIRDocument.adaptive_variants": CollectionSemantics.SET_LIKE, + "UIIRDocument.data_bindings": CollectionSemantics.SET_LIKE, + "UIIRDocument.content_references": CollectionSemantics.SET_LIKE, + "UIIRDocument.program_bindings": CollectionSemantics.SET_LIKE, + "UIIRDocument.intent_ir_bindings": CollectionSemantics.SET_LIKE, + "UIIRDocument.invocation_bindings": CollectionSemantics.SET_LIKE, + "UIIRDocument.mcp_idl_bindings": CollectionSemantics.SET_LIKE, + "UIIRDocument.formal_constraint_refs": CollectionSemantics.SET_LIKE, + "UIIRDocument.proof_obligation_refs": CollectionSemantics.SET_LIKE, + "UIIRDocument.entry_components": CollectionSemantics.SET_LIKE, + "UIIRDocument.initial_states": CollectionSemantics.SET_LIKE, + "UIIRDocument.terminal_outcomes": CollectionSemantics.SET_LIKE, + "UIIRDocument.tags": CollectionSemantics.SET_LIKE, + "UIIRDocument.extensions": CollectionSemantics.SET_LIKE, + "UIIRDocument.locale_defaults.fallback_locales": CollectionSemantics.ORDERED, + "UISourceRef.span": CollectionSemantics.ORDERED, + "UIComponent.child_ids": CollectionSemantics.ORDERED, + "UIComponent.modality_binding_ids": CollectionSemantics.SET_LIKE, + "UIComponent.data_binding_ids": CollectionSemantics.SET_LIKE, + "UIComponent.program_binding_ids": CollectionSemantics.SET_LIKE, + "UIComponent.feedback_ids": CollectionSemantics.SET_LIKE, + "UIComponent.source_ref_ids": CollectionSemantics.SET_LIKE, + "UICompositionEdge.source_ref_ids": CollectionSemantics.SET_LIKE, + "UILayoutRegion.component_ids": CollectionSemantics.ORDERED, + "UILayoutRegion.source_ref_ids": CollectionSemantics.SET_LIKE, + "UILayoutConstraint.region_ids": CollectionSemantics.SET_LIKE, + "UILayoutConstraint.component_ids": CollectionSemantics.SET_LIKE, + "UILayoutConstraint.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIStateVariable.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIState.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIEvent.source_ref_ids": CollectionSemantics.SET_LIKE, + "UITransition.effect_ids": CollectionSemantics.ORDERED, + "UITransition.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIGuard.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIEffect.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIUXTask.step_component_ids": CollectionSemantics.ORDERED, + "UIUXTask.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIJourney.task_ids": CollectionSemantics.ORDERED, + "UIJourney.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIRecoveryPath.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIFeedbackContract.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIAccessibilityBinding.relationship_ids": CollectionSemantics.SET_LIKE, + "UIAccessibilityBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UILocalizationBinding.variable_ids": CollectionSemantics.SET_LIKE, + "UILocalizationBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIModalityRequirement.capability_ids": CollectionSemantics.SET_LIKE, + "UIModalityRequirement.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIModalityAlternative.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIDeviceCapabilityRequirement.capability_ids": CollectionSemantics.SET_LIKE, + "UIDeviceCapabilityRequirement.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIAdaptiveVariant.capability_predicate_ids": CollectionSemantics.SET_LIKE, + "UIAdaptiveVariant.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIDataBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIContentReference.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIProgramBinding.precondition_ids": CollectionSemantics.SET_LIKE, + "UIProgramBinding.effect_ids": CollectionSemantics.SET_LIKE, + "UIProgramBinding.verification_ids": CollectionSemantics.SET_LIKE, + "UIProgramBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIIntentIRBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIInvocationBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIMCPIDLBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIFormalConstraintRef.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIProofObligationRef.source_ref_ids": CollectionSemantics.SET_LIKE, + "UITerminalOutcome.source_ref_ids": CollectionSemantics.SET_LIKE, + "UINamespacedExtension.source_ref_ids": CollectionSemantics.SET_LIKE, + "UIDesignTokenRef.source_ref_ids": CollectionSemantics.SET_LIKE, + "UITrustBinding.source_ref_ids": CollectionSemantics.SET_LIKE, + } +) + +UI_UX_IR_COLLECTION_SCHEMA = CollectionSchema( + { + "/sources": CollectionSemantics.SET_LIKE, + "/trust_bindings": CollectionSemantics.SET_LIKE, + "/trust_bindings/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/components": CollectionSemantics.SET_LIKE, + "/components/*/child_ids": CollectionSemantics.ORDERED, + "/components/*/modality_binding_ids": CollectionSemantics.SET_LIKE, + "/components/*/data_binding_ids": CollectionSemantics.SET_LIKE, + "/components/*/program_binding_ids": CollectionSemantics.SET_LIKE, + "/components/*/feedback_ids": CollectionSemantics.SET_LIKE, + "/components/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/composition_edges": CollectionSemantics.SET_LIKE, + "/composition_edges/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/layout_regions": CollectionSemantics.SET_LIKE, + "/layout_regions/*/component_ids": CollectionSemantics.ORDERED, + "/layout_regions/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/layout_constraints": CollectionSemantics.SET_LIKE, + "/layout_constraints/*/region_ids": CollectionSemantics.SET_LIKE, + "/layout_constraints/*/component_ids": CollectionSemantics.SET_LIKE, + "/layout_constraints/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/design_token_refs": CollectionSemantics.SET_LIKE, + "/design_token_refs/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/state_variables": CollectionSemantics.SET_LIKE, + "/state_variables/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/states": CollectionSemantics.SET_LIKE, + "/states/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/events": CollectionSemantics.SET_LIKE, + "/events/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/transitions": CollectionSemantics.SET_LIKE, + "/transitions/*/effect_ids": CollectionSemantics.ORDERED, + "/transitions/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/guards": CollectionSemantics.SET_LIKE, + "/guards/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/effects": CollectionSemantics.SET_LIKE, + "/effects/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/ux_tasks": CollectionSemantics.SET_LIKE, + "/ux_tasks/*/step_component_ids": CollectionSemantics.ORDERED, + "/ux_tasks/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/journeys": CollectionSemantics.SET_LIKE, + "/journeys/*/task_ids": CollectionSemantics.ORDERED, + "/journeys/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/success_failure_recovery": CollectionSemantics.SET_LIKE, + "/success_failure_recovery/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/feedback_contracts": CollectionSemantics.SET_LIKE, + "/feedback_contracts/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/accessibility": CollectionSemantics.SET_LIKE, + "/accessibility/*/relationship_ids": CollectionSemantics.SET_LIKE, + "/accessibility/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/localization": CollectionSemantics.SET_LIKE, + "/localization/*/variable_ids": CollectionSemantics.SET_LIKE, + "/localization/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/input_modality_requirements": CollectionSemantics.SET_LIKE, + "/input_modality_requirements/*/capability_ids": CollectionSemantics.SET_LIKE, + "/input_modality_requirements/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/output_modality_requirements": CollectionSemantics.SET_LIKE, + "/output_modality_requirements/*/capability_ids": CollectionSemantics.SET_LIKE, + "/output_modality_requirements/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/modality_alternatives": CollectionSemantics.SET_LIKE, + "/modality_alternatives/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/device_capability_requirements": CollectionSemantics.SET_LIKE, + "/device_capability_requirements/*/capability_ids": CollectionSemantics.SET_LIKE, + "/device_capability_requirements/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/adaptive_variants": CollectionSemantics.SET_LIKE, + "/adaptive_variants/*/capability_predicate_ids": CollectionSemantics.SET_LIKE, + "/adaptive_variants/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/data_bindings": CollectionSemantics.SET_LIKE, + "/data_bindings/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/content_references": CollectionSemantics.SET_LIKE, + "/content_references/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/program_bindings": CollectionSemantics.SET_LIKE, + "/program_bindings/*/precondition_ids": CollectionSemantics.SET_LIKE, + "/program_bindings/*/effect_ids": CollectionSemantics.SET_LIKE, + "/program_bindings/*/verification_ids": CollectionSemantics.SET_LIKE, + "/program_bindings/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/intent_ir_bindings": CollectionSemantics.SET_LIKE, + "/intent_ir_bindings/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/invocation_bindings": CollectionSemantics.SET_LIKE, + "/invocation_bindings/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/mcp_idl_bindings": CollectionSemantics.SET_LIKE, + "/mcp_idl_bindings/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/formal_constraint_refs": CollectionSemantics.SET_LIKE, + "/formal_constraint_refs/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/proof_obligation_refs": CollectionSemantics.SET_LIKE, + "/proof_obligation_refs/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/entry_components": CollectionSemantics.SET_LIKE, + "/initial_states": CollectionSemantics.SET_LIKE, + "/terminal_outcomes": CollectionSemantics.SET_LIKE, + "/terminal_outcomes/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/tags": CollectionSemantics.SET_LIKE, + "/extensions": CollectionSemantics.SET_LIKE, + "/extensions/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/locale_defaults/fallback_locales": CollectionSemantics.ORDERED, + }, + require_declared=True, +) + +# Closed top-level wire keys for ui-ux-ir/v1. +UIIR_DOCUMENT_FIELDS: Final = frozenset( + { + "schema_version", + "document_id", + "title", + "locale_defaults", + "tags", + "sources", + "producer", + "configuration", + "review", + "trust_bindings", + "components", + "composition_edges", + "layout_regions", + "layout_constraints", + "design_token_refs", + "state_variables", + "states", + "events", + "transitions", + "guards", + "effects", + "ux_tasks", + "journeys", + "success_failure_recovery", + "feedback_contracts", + "accessibility", + "localization", + "input_modality_requirements", + "output_modality_requirements", + "modality_alternatives", + "device_capability_requirements", + "adaptive_variants", + "data_bindings", + "content_references", + "program_bindings", + "intent_ir_bindings", + "invocation_bindings", + "mcp_idl_bindings", + "formal_constraint_refs", + "proof_obligation_refs", + "entry_components", + "initial_states", + "terminal_outcomes", + "extensions", + } +) + +UIIR_REQUIRED_PATHS: Final = frozenset( + { + "schema_version", + "document_id", + "title", + "sources", + "components", + "entry_components", + "terminal_outcomes", + } +) + + +@dataclass(frozen=True, slots=True) +class SourceSpan: + """Character span in a separately stored source artifact.""" + + start_char: int + end_char: int + + def validate(self) -> None: + if isinstance(self.start_char, bool) or not isinstance(self.start_char, int): + raise UIIRValidationError("SourceSpan.start_char must be an integer") + if isinstance(self.end_char, bool) or not isinstance(self.end_char, int): + raise UIIRValidationError("SourceSpan.end_char must be an integer") + if self.start_char < 0 or self.end_char < self.start_char: + raise UIIRValidationError( + "SourceSpan must satisfy 0 <= start_char <= end_char" + ) + + def to_dict(self) -> dict[str, int]: + return {"end_char": self.end_char, "start_char": self.start_char} + + +@dataclass(frozen=True, slots=True) +class UISourceRef: + """Immutable reference to evidence used by one UI/UX IR document.""" + + ref_id: str + source_uri: str + source_id: str + source_revision: str + content_sha256: str + container_uri: str = "" + container_sha256: str = "" + content_cid: str = "" + license_expression: str = "" + review_status: ReviewStatus = ReviewStatus.UNREVIEWED + span: SourceSpan | None = None + + def validate(self) -> None: + _validate_identifier("UISourceRef.ref_id", self.ref_id) + _validate_enum("UISourceRef.review_status", self.review_status, ReviewStatus) + for name in ("source_uri", "source_id", "source_revision"): + _validate_non_empty_string(f"UISourceRef.{name}", getattr(self, name)) + for name in ("container_uri", "content_cid", "license_expression"): + _validate_string(f"UISourceRef.{name}", getattr(self, name)) + _validate_sha256("UISourceRef.content_sha256", self.content_sha256) + _validate_string("UISourceRef.container_sha256", self.container_sha256) + if self.container_sha256: + _validate_sha256("UISourceRef.container_sha256", self.container_sha256) + if self.span is not None: + if not isinstance(self.span, SourceSpan): + raise UIIRValidationError( + "UISourceRef.span must be a SourceSpan or None" + ) + self.span.validate() + _reject_executable_payload(self.to_dict(), "UISourceRef") + + def to_dict(self) -> dict[str, Any]: + return { + "container_sha256": self.container_sha256, + "container_uri": self.container_uri, + "content_cid": self.content_cid, + "content_sha256": self.content_sha256, + "license_expression": self.license_expression, + "ref_id": self.ref_id, + "review_status": self.review_status.value, + "source_id": self.source_id, + "source_revision": self.source_revision, + "source_uri": self.source_uri, + "span": self.span.to_dict() if self.span else None, + } + + +@dataclass(frozen=True, slots=True) +class UILocaleDefaults: + """Default locale and ordered fallback chain.""" + + default_locale: str = "en" + fallback_locales: tuple[str, ...] = () + text_direction: str = "ltr" + + def validate(self) -> None: + _validate_non_empty_string( + "UILocaleDefaults.default_locale", self.default_locale + ) + _require_tuple( + "UIIRDocument.locale_defaults.fallback_locales", self.fallback_locales + ) + _validate_string_items( + "UILocaleDefaults.fallback_locales", self.fallback_locales + ) + _validate_non_empty_string( + "UILocaleDefaults.text_direction", self.text_direction + ) + if self.text_direction not in {"ltr", "rtl", "auto"}: + raise UIIRValidationError( + "UILocaleDefaults.text_direction must be ltr, rtl, or auto" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "default_locale": self.default_locale, + "fallback_locales": list(self.fallback_locales), + "text_direction": self.text_direction, + } + + +@dataclass(frozen=True, slots=True) +class UIProducer: + """Producer of the declaration (tooling, adapter, or authoring system).""" + + producer_id: str + name: str + version: str = "" + + def validate(self) -> None: + _validate_identifier("UIProducer.producer_id", self.producer_id) + _validate_non_empty_string("UIProducer.name", self.name) + _validate_string("UIProducer.version", self.version) + + def to_dict(self) -> dict[str, str]: + return { + "name": self.name, + "producer_id": self.producer_id, + "version": self.version, + } + + +@dataclass(frozen=True, slots=True) +class UIConfiguration: + """Immutable configuration binding for the declaration.""" + + configuration_id: str + profile: str = "default" + settings: Mapping[str, Any] = MappingProxyType({}) + + def __post_init__(self) -> None: + if not isinstance(self.settings, Mapping): + raise UIIRValidationError("UIConfiguration.settings must be a mapping") + object.__setattr__( + self, + "settings", + _deep_freeze_mapping(self.settings, "UIConfiguration.settings"), + ) + + def validate(self) -> None: + _validate_identifier("UIConfiguration.configuration_id", self.configuration_id) + _validate_non_empty_string("UIConfiguration.profile", self.profile) + if not isinstance(self.settings, Mapping): + raise UIIRValidationError("UIConfiguration.settings must be a mapping") + # MappingProxyType is not reassignable; nested freeze is enforced in __post_init__. + if type(self.settings) is not MappingProxyType: + raise UIIRValidationError( + "UIConfiguration.settings must be an immutable mapping" + ) + _reject_executable_payload(dict(self.settings), "UIConfiguration.settings") + + def to_dict(self) -> dict[str, Any]: + return { + "configuration_id": self.configuration_id, + "profile": self.profile, + "settings": dict(self.settings), + } + + +@dataclass(frozen=True, slots=True) +class UIReviewBinding: + """Review status attached to the declaration itself.""" + + review_status: ReviewStatus = ReviewStatus.UNREVIEWED + reviewer: str = "" + notes: str = "" + + def validate(self) -> None: + _validate_enum( + "UIReviewBinding.review_status", self.review_status, ReviewStatus + ) + _validate_string("UIReviewBinding.reviewer", self.reviewer) + _validate_string("UIReviewBinding.notes", self.notes) + + def to_dict(self) -> dict[str, str]: + return { + "notes": self.notes, + "review_status": self.review_status.value, + "reviewer": self.reviewer, + } + + +@dataclass(frozen=True, slots=True) +class UITrustBinding: + """Typed trust binding; never confuses authority kinds.""" + + trust_id: str + authority_kind: AuthorityKind + subject_ref: str + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UITrustBinding.trust_id", self.trust_id) + _validate_enum( + "UITrustBinding.authority_kind", self.authority_kind, AuthorityKind + ) + _validate_non_empty_string("UITrustBinding.subject_ref", self.subject_ref) + _require_tuple("UITrustBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UITrustBinding.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "authority_kind": self.authority_kind.value, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "subject_ref": self.subject_ref, + "trust_id": self.trust_id, + } + + +@dataclass(frozen=True, slots=True) +class UIComponent: + """Semantic component node (not a framework widget).""" + + component_id: str + role: str + purpose: str = "" + accessible_name_ref: str = "" + accessible_description_ref: str = "" + parent_id: str = "" + child_ids: tuple[str, ...] = () + modality_binding_ids: tuple[str, ...] = () + data_binding_ids: tuple[str, ...] = () + program_binding_ids: tuple[str, ...] = () + feedback_ids: tuple[str, ...] = () + privacy_sensitivity: str = "none" + presentation_classification: str = "interactive" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIComponent.component_id", self.component_id) + _validate_non_empty_string("UIComponent.role", self.role) + if not _IDENTIFIER_RE.fullmatch(self.role) and not self.role.startswith( + "aria:" + ): + # Allow ARIA tokens and namespaced domain roles. + if ":" not in self.role and "." not in self.role: + raise UIIRValidationError( + f"UIComponent {self.component_id!r}.role is not a stable role token" + ) + for name in ( + "purpose", + "accessible_name_ref", + "accessible_description_ref", + "parent_id", + "privacy_sensitivity", + "presentation_classification", + ): + _validate_string(f"UIComponent.{name}", getattr(self, name)) + if self.parent_id: + _validate_identifier("UIComponent.parent_id", self.parent_id) + for field_name in ( + "child_ids", + "modality_binding_ids", + "data_binding_ids", + "program_binding_ids", + "feedback_ids", + "source_ref_ids", + ): + values = getattr(self, field_name) + _require_tuple(f"UIComponent.{field_name}", values) + if field_name == "child_ids": + _validate_identifier_items(f"UIComponent.{field_name}", values) + else: + _validate_identifier_items(f"UIComponent.{field_name}", values) + if field_name != "source_ref_ids": + _require_unique(values, f"UIComponent.{field_name} member") + _require_unique(self.source_ref_ids, "UIComponent.source_ref_ids member") + _reject_executable_payload(self.to_dict(), f"UIComponent {self.component_id}") + + def to_dict(self) -> dict[str, Any]: + return { + "accessible_description_ref": self.accessible_description_ref, + "accessible_name_ref": self.accessible_name_ref, + "child_ids": list(self.child_ids), + "component_id": self.component_id, + "data_binding_ids": sorted(set(self.data_binding_ids)), + "feedback_ids": sorted(set(self.feedback_ids)), + "modality_binding_ids": sorted(set(self.modality_binding_ids)), + "parent_id": self.parent_id, + "presentation_classification": self.presentation_classification, + "privacy_sensitivity": self.privacy_sensitivity, + "program_binding_ids": sorted(set(self.program_binding_ids)), + "purpose": self.purpose, + "role": self.role, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UICompositionEdge: + """Composition edge between components.""" + + edge_id: str + kind: CompositionEdgeKind + source_component_id: str + target_component_id: str + slot_name: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UICompositionEdge.edge_id", self.edge_id) + _validate_enum("UICompositionEdge.kind", self.kind, CompositionEdgeKind) + _validate_identifier( + "UICompositionEdge.source_component_id", self.source_component_id + ) + _validate_identifier( + "UICompositionEdge.target_component_id", self.target_component_id + ) + _validate_string("UICompositionEdge.slot_name", self.slot_name) + _require_tuple("UICompositionEdge.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UICompositionEdge.source_ref_ids", self.source_ref_ids + ) + _require_unique( + self.source_ref_ids, "UICompositionEdge.source_ref_ids member" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "edge_id": self.edge_id, + "kind": self.kind.value, + "slot_name": self.slot_name, + "source_component_id": self.source_component_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "target_component_id": self.target_component_id, + } + + +@dataclass(frozen=True, slots=True) +class UILayoutRegion: + """Abstract layout region over components.""" + + region_id: str + kind: LayoutRegionKind + component_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UILayoutRegion.region_id", self.region_id) + _validate_enum("UILayoutRegion.kind", self.kind, LayoutRegionKind) + _require_tuple("UILayoutRegion.component_ids", self.component_ids) + _validate_identifier_items( + "UILayoutRegion.component_ids", self.component_ids + ) + _require_tuple("UILayoutRegion.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UILayoutRegion.source_ref_ids", self.source_ref_ids + ) + _require_unique( + self.source_ref_ids, "UILayoutRegion.source_ref_ids member" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "component_ids": list(self.component_ids), + "kind": self.kind.value, + "region_id": self.region_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UILayoutConstraint: + """Layout constraint predicate over regions/components.""" + + constraint_id: str + kind: str + region_ids: tuple[str, ...] = () + component_ids: tuple[str, ...] = () + adaptation_policy: AdaptationPolicy = AdaptationPolicy.PRESERVE + expression_ref: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UILayoutConstraint.constraint_id", self.constraint_id) + _validate_non_empty_string("UILayoutConstraint.kind", self.kind) + _validate_enum( + "UILayoutConstraint.adaptation_policy", + self.adaptation_policy, + AdaptationPolicy, + ) + _validate_string("UILayoutConstraint.expression_ref", self.expression_ref) + if self.expression_ref: + _validate_identifier( + "UILayoutConstraint.expression_ref", self.expression_ref + ) + for field_name in ("region_ids", "component_ids", "source_ref_ids"): + values = getattr(self, field_name) + _require_tuple(f"UILayoutConstraint.{field_name}", values) + _validate_identifier_items(f"UILayoutConstraint.{field_name}", values) + _require_unique(values, f"UILayoutConstraint.{field_name} member") + _reject_executable_payload( + self.to_dict(), f"UILayoutConstraint {self.constraint_id}" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "adaptation_policy": self.adaptation_policy.value, + "component_ids": sorted(set(self.component_ids)), + "constraint_id": self.constraint_id, + "expression_ref": self.expression_ref, + "kind": self.kind, + "region_ids": sorted(set(self.region_ids)), + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIDesignTokenRef: + """Design-token reference (not device pixels).""" + + token_id: str + category: str + token_name: str + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIDesignTokenRef.token_id", self.token_id) + _validate_non_empty_string("UIDesignTokenRef.category", self.category) + _validate_non_empty_string("UIDesignTokenRef.token_name", self.token_name) + _require_tuple("UIDesignTokenRef.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIDesignTokenRef.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "category": self.category, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "token_id": self.token_id, + "token_name": self.token_name, + } + + +@dataclass(frozen=True, slots=True) +class UIStateVariable: + """Typed state variable in the behavior model.""" + + variable_id: str + value_type: str + derived: bool = False + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIStateVariable.variable_id", self.variable_id) + _validate_non_empty_string("UIStateVariable.value_type", self.value_type) + if not isinstance(self.derived, bool): + raise UIIRValidationError("UIStateVariable.derived must be a boolean") + _require_tuple("UIStateVariable.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIStateVariable.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "derived": self.derived, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "value_type": self.value_type, + "variable_id": self.variable_id, + } + + +@dataclass(frozen=True, slots=True) +class UIState: + """Named state in a bounded hierarchical state machine.""" + + state_id: str + region_id: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIState.state_id", self.state_id) + _validate_string("UIState.region_id", self.region_id) + if self.region_id: + _validate_identifier("UIState.region_id", self.region_id) + _require_tuple("UIState.source_ref_ids", self.source_ref_ids) + _validate_identifier_items("UIState.source_ref_ids", self.source_ref_ids) + + def to_dict(self) -> dict[str, Any]: + return { + "region_id": self.region_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "state_id": self.state_id, + } + + +@dataclass(frozen=True, slots=True) +class UIEvent: + """Typed event that may trigger transitions.""" + + event_id: str + kind: EventKind + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIEvent.event_id", self.event_id) + _validate_enum("UIEvent.kind", self.kind, EventKind) + _require_tuple("UIEvent.source_ref_ids", self.source_ref_ids) + _validate_identifier_items("UIEvent.source_ref_ids", self.source_ref_ids) + + def to_dict(self) -> dict[str, Any]: + return { + "event_id": self.event_id, + "kind": self.kind.value, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIGuard: + """Guard referencing facts or formal constraints (no free-form code).""" + + guard_id: str + constraint_ref: str = "" + formal_constraint_id: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIGuard.guard_id", self.guard_id) + _validate_string("UIGuard.constraint_ref", self.constraint_ref) + _validate_string("UIGuard.formal_constraint_id", self.formal_constraint_id) + if self.constraint_ref: + _validate_identifier("UIGuard.constraint_ref", self.constraint_ref) + if self.formal_constraint_id: + _validate_identifier( + "UIGuard.formal_constraint_id", self.formal_constraint_id + ) + if not self.constraint_ref and not self.formal_constraint_id: + raise UIIRValidationError( + f"UIGuard {self.guard_id!r} requires constraint_ref or formal_constraint_id" + ) + _require_tuple("UIGuard.source_ref_ids", self.source_ref_ids) + _validate_identifier_items("UIGuard.source_ref_ids", self.source_ref_ids) + _reject_executable_payload(self.to_dict(), f"UIGuard {self.guard_id}") + + def to_dict(self) -> dict[str, Any]: + return { + "constraint_ref": self.constraint_ref, + "formal_constraint_id": self.formal_constraint_id, + "guard_id": self.guard_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIEffect: + """Effect referencing program bindings or local state transitions.""" + + effect_id: str + program_binding_id: str = "" + local_state_transition: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIEffect.effect_id", self.effect_id) + _validate_string("UIEffect.program_binding_id", self.program_binding_id) + _validate_string( + "UIEffect.local_state_transition", self.local_state_transition + ) + if self.program_binding_id: + _validate_identifier( + "UIEffect.program_binding_id", self.program_binding_id + ) + if self.local_state_transition: + _validate_identifier( + "UIEffect.local_state_transition", self.local_state_transition + ) + if not self.program_binding_id and not self.local_state_transition: + raise UIIRValidationError( + f"UIEffect {self.effect_id!r} requires program_binding_id or local_state_transition" + ) + _require_tuple("UIEffect.source_ref_ids", self.source_ref_ids) + _validate_identifier_items("UIEffect.source_ref_ids", self.source_ref_ids) + _reject_executable_payload(self.to_dict(), f"UIEffect {self.effect_id}") + + def to_dict(self) -> dict[str, Any]: + return { + "effect_id": self.effect_id, + "local_state_transition": self.local_state_transition, + "program_binding_id": self.program_binding_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UITransition: + """Deterministic state transition with priority.""" + + transition_id: str + source_state_id: str + target_state_id: str + event_id: str = "" + guard_id: str = "" + effect_ids: tuple[str, ...] = () + priority: int = 0 + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UITransition.transition_id", self.transition_id) + _validate_identifier("UITransition.source_state_id", self.source_state_id) + _validate_identifier("UITransition.target_state_id", self.target_state_id) + _validate_string("UITransition.event_id", self.event_id) + _validate_string("UITransition.guard_id", self.guard_id) + if self.event_id: + _validate_identifier("UITransition.event_id", self.event_id) + if self.guard_id: + _validate_identifier("UITransition.guard_id", self.guard_id) + if isinstance(self.priority, bool) or not isinstance(self.priority, int): + raise UIIRValidationError("UITransition.priority must be an integer") + _require_tuple("UITransition.effect_ids", self.effect_ids) + _validate_identifier_items("UITransition.effect_ids", self.effect_ids) + _require_tuple("UITransition.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UITransition.source_ref_ids", self.source_ref_ids + ) + _reject_executable_payload( + self.to_dict(), f"UITransition {self.transition_id}" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "effect_ids": list(self.effect_ids), + "event_id": self.event_id, + "guard_id": self.guard_id, + "priority": self.priority, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "source_state_id": self.source_state_id, + "target_state_id": self.target_state_id, + "transition_id": self.transition_id, + } + + +@dataclass(frozen=True, slots=True) +class UIUXTask: + """UX task over ordered component steps.""" + + task_id: str + name: str + step_component_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIUXTask.task_id", self.task_id) + _validate_non_empty_string("UIUXTask.name", self.name) + _require_tuple("UIUXTask.step_component_ids", self.step_component_ids) + _validate_identifier_items( + "UIUXTask.step_component_ids", self.step_component_ids + ) + _require_tuple("UIUXTask.source_ref_ids", self.source_ref_ids) + _validate_identifier_items("UIUXTask.source_ref_ids", self.source_ref_ids) + + def to_dict(self) -> dict[str, Any]: + return { + "name": self.name, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "step_component_ids": list(self.step_component_ids), + "task_id": self.task_id, + } + + +@dataclass(frozen=True, slots=True) +class UIJourney: + """UX journey over ordered tasks.""" + + journey_id: str + name: str + task_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIJourney.journey_id", self.journey_id) + _validate_non_empty_string("UIJourney.name", self.name) + _require_tuple("UIJourney.task_ids", self.task_ids) + _validate_identifier_items("UIJourney.task_ids", self.task_ids) + _require_tuple("UIJourney.source_ref_ids", self.source_ref_ids) + _validate_identifier_items("UIJourney.source_ref_ids", self.source_ref_ids) + + def to_dict(self) -> dict[str, Any]: + return { + "journey_id": self.journey_id, + "name": self.name, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "task_ids": list(self.task_ids), + } + + +@dataclass(frozen=True, slots=True) +class UIRecoveryPath: + """Success, failure, or recovery path contract.""" + + path_id: str + kind: TerminalOutcomeKind + target_outcome_id: str = "" + recovery_component_id: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIRecoveryPath.path_id", self.path_id) + _validate_enum("UIRecoveryPath.kind", self.kind, TerminalOutcomeKind) + _validate_string("UIRecoveryPath.target_outcome_id", self.target_outcome_id) + _validate_string( + "UIRecoveryPath.recovery_component_id", self.recovery_component_id + ) + if self.target_outcome_id: + _validate_identifier( + "UIRecoveryPath.target_outcome_id", self.target_outcome_id + ) + if self.recovery_component_id: + _validate_identifier( + "UIRecoveryPath.recovery_component_id", self.recovery_component_id + ) + _require_tuple("UIRecoveryPath.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIRecoveryPath.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "kind": self.kind.value, + "path_id": self.path_id, + "recovery_component_id": self.recovery_component_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "target_outcome_id": self.target_outcome_id, + } + + +@dataclass(frozen=True, slots=True) +class UIFeedbackContract: + """Feedback channel and error/recovery surface contract.""" + + feedback_id: str + channel: str + component_id: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIFeedbackContract.feedback_id", self.feedback_id) + _validate_non_empty_string("UIFeedbackContract.channel", self.channel) + _validate_string("UIFeedbackContract.component_id", self.component_id) + if self.component_id: + _validate_identifier( + "UIFeedbackContract.component_id", self.component_id + ) + _require_tuple("UIFeedbackContract.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIFeedbackContract.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "channel": self.channel, + "component_id": self.component_id, + "feedback_id": self.feedback_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIAccessibilityBinding: + """Accessibility semantics for a component.""" + + accessibility_id: str + component_id: str + role: str = "" + name_ref: str = "" + description_ref: str = "" + relationship_ids: tuple[str, ...] = () + live_region: bool = False + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UIAccessibilityBinding.accessibility_id", self.accessibility_id + ) + _validate_identifier( + "UIAccessibilityBinding.component_id", self.component_id + ) + for name in ("role", "name_ref", "description_ref"): + _validate_string(f"UIAccessibilityBinding.{name}", getattr(self, name)) + if not isinstance(self.live_region, bool): + raise UIIRValidationError( + "UIAccessibilityBinding.live_region must be a boolean" + ) + _require_tuple( + "UIAccessibilityBinding.relationship_ids", self.relationship_ids + ) + _validate_identifier_items( + "UIAccessibilityBinding.relationship_ids", self.relationship_ids + ) + _require_tuple("UIAccessibilityBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIAccessibilityBinding.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "accessibility_id": self.accessibility_id, + "component_id": self.component_id, + "description_ref": self.description_ref, + "live_region": self.live_region, + "name_ref": self.name_ref, + "relationship_ids": sorted(set(self.relationship_ids)), + "role": self.role, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UILocalizationBinding: + """Translatable message binding.""" + + localization_id: str + message_id: str + default_text: str = "" + variable_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UILocalizationBinding.localization_id", self.localization_id + ) + _validate_non_empty_string( + "UILocalizationBinding.message_id", self.message_id + ) + _validate_string("UILocalizationBinding.default_text", self.default_text) + _require_tuple("UILocalizationBinding.variable_ids", self.variable_ids) + _validate_identifier_items( + "UILocalizationBinding.variable_ids", self.variable_ids + ) + _require_unique( + self.variable_ids, + "UILocalizationBinding.variable_ids member", + ) + _require_tuple("UILocalizationBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UILocalizationBinding.source_ref_ids", self.source_ref_ids + ) + _require_unique( + self.source_ref_ids, + "UILocalizationBinding.source_ref_ids member", + ) + + def to_dict(self) -> dict[str, Any]: + return { + "default_text": self.default_text, + "localization_id": self.localization_id, + "message_id": self.message_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "variable_ids": sorted(set(self.variable_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIModalityRequirement: + """Input or output modality requirement.""" + + requirement_id: str + direction: str + capability_ids: tuple[str, ...] + essential: bool = True + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UIModalityRequirement.requirement_id", self.requirement_id + ) + if self.direction not in {"input", "output"}: + raise UIIRValidationError( + "UIModalityRequirement.direction must be 'input' or 'output'" + ) + if not self.capability_ids: + raise UIIRValidationError( + f"UIModalityRequirement {self.requirement_id!r}.capability_ids must not be empty" + ) + _require_tuple( + "UIModalityRequirement.capability_ids", self.capability_ids + ) + _validate_identifier_items( + "UIModalityRequirement.capability_ids", self.capability_ids + ) + _require_unique( + self.capability_ids, "UIModalityRequirement.capability_ids member" + ) + if not isinstance(self.essential, bool): + raise UIIRValidationError( + "UIModalityRequirement.essential must be a boolean" + ) + _require_tuple("UIModalityRequirement.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIModalityRequirement.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "capability_ids": sorted(set(self.capability_ids)), + "direction": self.direction, + "essential": self.essential, + "requirement_id": self.requirement_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIModalityAlternative: + """Alternative modality for an essential action/output.""" + + alternative_id: str + primary_requirement_id: str + alternative_requirement_id: str + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UIModalityAlternative.alternative_id", self.alternative_id + ) + _validate_identifier( + "UIModalityAlternative.primary_requirement_id", + self.primary_requirement_id, + ) + _validate_identifier( + "UIModalityAlternative.alternative_requirement_id", + self.alternative_requirement_id, + ) + if self.primary_requirement_id == self.alternative_requirement_id: + raise UIIRValidationError( + f"UIModalityAlternative {self.alternative_id!r} primary and alternative must differ" + ) + _require_tuple("UIModalityAlternative.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIModalityAlternative.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "alternative_id": self.alternative_id, + "alternative_requirement_id": self.alternative_requirement_id, + "primary_requirement_id": self.primary_requirement_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIDeviceCapabilityRequirement: + """Device capability requirement for adaptive projection.""" + + requirement_id: str + capability_ids: tuple[str, ...] + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UIDeviceCapabilityRequirement.requirement_id", self.requirement_id + ) + if not self.capability_ids: + raise UIIRValidationError( + f"UIDeviceCapabilityRequirement {self.requirement_id!r}.capability_ids must not be empty" + ) + _require_tuple( + "UIDeviceCapabilityRequirement.capability_ids", self.capability_ids + ) + _validate_identifier_items( + "UIDeviceCapabilityRequirement.capability_ids", self.capability_ids + ) + _require_unique( + self.capability_ids, + "UIDeviceCapabilityRequirement.capability_ids member", + ) + _require_tuple( + "UIDeviceCapabilityRequirement.source_ref_ids", self.source_ref_ids + ) + _require_unique( + self.source_ref_ids, + "UIDeviceCapabilityRequirement.source_ref_ids member", + ) + _validate_identifier_items( + "UIDeviceCapabilityRequirement.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "capability_ids": sorted(set(self.capability_ids)), + "requirement_id": self.requirement_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIAdaptiveVariant: + """Adaptive variant selected by capability predicates.""" + + variant_id: str + adaptation_policy: AdaptationPolicy + capability_predicate_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIAdaptiveVariant.variant_id", self.variant_id) + _validate_enum( + "UIAdaptiveVariant.adaptation_policy", + self.adaptation_policy, + AdaptationPolicy, + ) + _require_tuple( + "UIAdaptiveVariant.capability_predicate_ids", + self.capability_predicate_ids, + ) + _validate_identifier_items( + "UIAdaptiveVariant.capability_predicate_ids", + self.capability_predicate_ids, + ) + _require_unique( + self.capability_predicate_ids, + "UIAdaptiveVariant.capability_predicate_ids member", + ) + _require_tuple("UIAdaptiveVariant.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIAdaptiveVariant.source_ref_ids", self.source_ref_ids + ) + _require_unique( + self.source_ref_ids, + "UIAdaptiveVariant.source_ref_ids member", + ) + + def to_dict(self) -> dict[str, Any]: + return { + "adaptation_policy": self.adaptation_policy.value, + "capability_predicate_ids": sorted(set(self.capability_predicate_ids)), + "source_ref_ids": sorted(set(self.source_ref_ids)), + "variant_id": self.variant_id, + } + + +@dataclass(frozen=True, slots=True) +class UIDataBinding: + """Data source/query/update reference (no executable query code).""" + + binding_id: str + kind: str + resource_ref: str + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIDataBinding.binding_id", self.binding_id) + _validate_non_empty_string("UIDataBinding.kind", self.kind) + _validate_non_empty_string("UIDataBinding.resource_ref", self.resource_ref) + _require_tuple("UIDataBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIDataBinding.source_ref_ids", self.source_ref_ids + ) + _reject_executable_payload(self.to_dict(), f"UIDataBinding {self.binding_id}") + + def to_dict(self) -> dict[str, Any]: + return { + "binding_id": self.binding_id, + "kind": self.kind, + "resource_ref": self.resource_ref, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIContentReference: + """Content reference for labels, media, and messages.""" + + content_id: str + kind: str + resource_ref: str + localization_id: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIContentReference.content_id", self.content_id) + _validate_non_empty_string("UIContentReference.kind", self.kind) + _validate_non_empty_string( + "UIContentReference.resource_ref", self.resource_ref + ) + _validate_string( + "UIContentReference.localization_id", self.localization_id + ) + if self.localization_id: + _validate_identifier( + "UIContentReference.localization_id", self.localization_id + ) + _require_tuple("UIContentReference.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIContentReference.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "content_id": self.content_id, + "kind": self.kind, + "localization_id": self.localization_id, + "resource_ref": self.resource_ref, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIProgramBinding: + """Program action binding with exactly one semantic target family.""" + + binding_id: str + target_kind: ProgramBindingTargetKind + target_ref: str + risk_class: str = "low" + confirmation_class: str = "none" + precondition_ids: tuple[str, ...] = () + effect_ids: tuple[str, ...] = () + verification_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIProgramBinding.binding_id", self.binding_id) + _validate_enum( + "UIProgramBinding.target_kind", + self.target_kind, + ProgramBindingTargetKind, + ) + _validate_non_empty_string("UIProgramBinding.target_ref", self.target_ref) + _validate_non_empty_string("UIProgramBinding.risk_class", self.risk_class) + _validate_non_empty_string( + "UIProgramBinding.confirmation_class", self.confirmation_class + ) + for field_name in ( + "precondition_ids", + "effect_ids", + "verification_ids", + "source_ref_ids", + ): + values = getattr(self, field_name) + _require_tuple(f"UIProgramBinding.{field_name}", values) + _validate_identifier_items(f"UIProgramBinding.{field_name}", values) + _require_unique(values, f"UIProgramBinding.{field_name} member") + _reject_executable_payload( + self.to_dict(), f"UIProgramBinding {self.binding_id}" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "binding_id": self.binding_id, + "confirmation_class": self.confirmation_class, + "effect_ids": sorted(set(self.effect_ids)), + "precondition_ids": sorted(set(self.precondition_ids)), + "risk_class": self.risk_class, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "target_kind": self.target_kind.value, + "target_ref": self.target_ref, + "verification_ids": sorted(set(self.verification_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIIntentIRBinding: + """Stable Intent IR document/action reference.""" + + binding_id: str + intent_document_id: str + intent_action_id: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIIntentIRBinding.binding_id", self.binding_id) + _validate_identifier( + "UIIntentIRBinding.intent_document_id", self.intent_document_id + ) + _validate_string("UIIntentIRBinding.intent_action_id", self.intent_action_id) + if self.intent_action_id: + _validate_identifier( + "UIIntentIRBinding.intent_action_id", self.intent_action_id + ) + _require_tuple("UIIntentIRBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIIntentIRBinding.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "binding_id": self.binding_id, + "intent_action_id": self.intent_action_id, + "intent_document_id": self.intent_document_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIInvocationBinding: + """Invocation Intent template reference.""" + + binding_id: str + template_cid: str + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIInvocationBinding.binding_id", self.binding_id) + _validate_non_empty_string( + "UIInvocationBinding.template_cid", self.template_cid + ) + _require_tuple("UIInvocationBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIInvocationBinding.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "binding_id": self.binding_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "template_cid": self.template_cid, + } + + +@dataclass(frozen=True, slots=True) +class UIMCPIDLBinding: + """MCP-IDL interface method and schema reference.""" + + binding_id: str + interface_cid: str + method_name: str + argument_schema_ref: str = "" + result_schema_ref: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UIMCPIDLBinding.binding_id", self.binding_id) + _validate_non_empty_string( + "UIMCPIDLBinding.interface_cid", self.interface_cid + ) + _validate_non_empty_string("UIMCPIDLBinding.method_name", self.method_name) + for name in ("argument_schema_ref", "result_schema_ref"): + _validate_string(f"UIMCPIDLBinding.{name}", getattr(self, name)) + _require_tuple("UIMCPIDLBinding.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIMCPIDLBinding.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "argument_schema_ref": self.argument_schema_ref, + "binding_id": self.binding_id, + "interface_cid": self.interface_cid, + "method_name": self.method_name, + "result_schema_ref": self.result_schema_ref, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UIFormalConstraintRef: + """Formal constraint reference for guards and obligations.""" + + constraint_id: str + view: str + formula_ref: str + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UIFormalConstraintRef.constraint_id", self.constraint_id + ) + _validate_non_empty_string("UIFormalConstraintRef.view", self.view) + _validate_non_empty_string( + "UIFormalConstraintRef.formula_ref", self.formula_ref + ) + _require_tuple("UIFormalConstraintRef.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIFormalConstraintRef.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "constraint_id": self.constraint_id, + "formula_ref": self.formula_ref, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "view": self.view, + } + + +@dataclass(frozen=True, slots=True) +class UIProofObligationRef: + """Proof obligation reference linked to formal constraints.""" + + obligation_id: str + constraint_id: str + prover: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier( + "UIProofObligationRef.obligation_id", self.obligation_id + ) + _validate_identifier( + "UIProofObligationRef.constraint_id", self.constraint_id + ) + _validate_string("UIProofObligationRef.prover", self.prover) + _require_tuple("UIProofObligationRef.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UIProofObligationRef.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "constraint_id": self.constraint_id, + "obligation_id": self.obligation_id, + "prover": self.prover, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UITerminalOutcome: + """Declared terminal outcome of the UI interaction.""" + + outcome_id: str + kind: TerminalOutcomeKind + description: str = "" + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UITerminalOutcome.outcome_id", self.outcome_id) + _validate_enum("UITerminalOutcome.kind", self.kind, TerminalOutcomeKind) + _validate_string("UITerminalOutcome.description", self.description) + _require_tuple("UITerminalOutcome.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UITerminalOutcome.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "description": self.description, + "kind": self.kind.value, + "outcome_id": self.outcome_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + } + + +@dataclass(frozen=True, slots=True) +class UINamespacedExtension: + """Versioned, namespaced extension record (declaration content). + + Extensions affect canonical identity. Observations, telemetry, projections, + and proof/policy results are not extensions and must not appear here. + """ + + extension_id: str + namespace: str + version: str + payload: Mapping[str, Any] = MappingProxyType({}) + + def __post_init__(self) -> None: + if not isinstance(self.payload, Mapping): + raise UIIRValidationError( + "UINamespacedExtension.payload must be a mapping" + ) + object.__setattr__( + self, + "payload", + _deep_freeze_mapping(self.payload, "UINamespacedExtension.payload"), + ) + required: bool = False + source_ref_ids: tuple[str, ...] = () + + def validate(self) -> None: + _validate_identifier("UINamespacedExtension.extension_id", self.extension_id) + if not isinstance(self.namespace, str) or not _NAMESPACE_RE.fullmatch( + self.namespace + ): + raise UIIRValidationError( + "UINamespacedExtension.namespace must be a dotted namespace" + ) + if not isinstance(self.version, str) or not _VERSION_RE.fullmatch( + self.version + ): + raise UIIRValidationError( + "UINamespacedExtension.version must be a stable version token" + ) + if not isinstance(self.payload, Mapping): + raise UIIRValidationError( + "UINamespacedExtension.payload must be a mapping" + ) + if not isinstance(self.required, bool): + raise UIIRValidationError( + "UINamespacedExtension.required must be a boolean" + ) + _reject_executable_payload( + dict(self.payload), f"UINamespacedExtension {self.extension_id}.payload" + ) + # Fail closed for derived-runtime artifacts disguised as extensions. + banned_namespaces = { + "observation", + "telemetry", + "projection", + "proof", + "policy_result", + "runtime", + } + root = self.namespace.split(".", 1)[0] + if root in banned_namespaces: + raise UIIRValidationError( + f"UINamespacedExtension namespace {self.namespace!r} is not declaration content" + ) + _require_tuple("UINamespacedExtension.source_ref_ids", self.source_ref_ids) + _validate_identifier_items( + "UINamespacedExtension.source_ref_ids", self.source_ref_ids + ) + + def to_dict(self) -> dict[str, Any]: + return { + "extension_id": self.extension_id, + "namespace": self.namespace, + "payload": dict(self.payload), + "required": self.required, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "version": self.version, + } + + +@dataclass(frozen=True, slots=True) +class UIIRDocument: + """Immutable closed UI/UX IR v1 declaration envelope.""" + + document_id: str + title: str + sources: tuple[UISourceRef, ...] + components: tuple[UIComponent, ...] + entry_components: tuple[str, ...] + terminal_outcomes: tuple[UITerminalOutcome, ...] + schema_version: str = UI_UX_IR_SCHEMA_VERSION + locale_defaults: UILocaleDefaults = UILocaleDefaults() + tags: tuple[str, ...] = () + producer: UIProducer | None = None + configuration: UIConfiguration | None = None + review: UIReviewBinding = UIReviewBinding() + trust_bindings: tuple[UITrustBinding, ...] = () + composition_edges: tuple[UICompositionEdge, ...] = () + layout_regions: tuple[UILayoutRegion, ...] = () + layout_constraints: tuple[UILayoutConstraint, ...] = () + design_token_refs: tuple[UIDesignTokenRef, ...] = () + state_variables: tuple[UIStateVariable, ...] = () + states: tuple[UIState, ...] = () + events: tuple[UIEvent, ...] = () + transitions: tuple[UITransition, ...] = () + guards: tuple[UIGuard, ...] = () + effects: tuple[UIEffect, ...] = () + ux_tasks: tuple[UIUXTask, ...] = () + journeys: tuple[UIJourney, ...] = () + success_failure_recovery: tuple[UIRecoveryPath, ...] = () + feedback_contracts: tuple[UIFeedbackContract, ...] = () + accessibility: tuple[UIAccessibilityBinding, ...] = () + localization: tuple[UILocalizationBinding, ...] = () + input_modality_requirements: tuple[UIModalityRequirement, ...] = () + output_modality_requirements: tuple[UIModalityRequirement, ...] = () + modality_alternatives: tuple[UIModalityAlternative, ...] = () + device_capability_requirements: tuple[UIDeviceCapabilityRequirement, ...] = () + adaptive_variants: tuple[UIAdaptiveVariant, ...] = () + data_bindings: tuple[UIDataBinding, ...] = () + content_references: tuple[UIContentReference, ...] = () + program_bindings: tuple[UIProgramBinding, ...] = () + intent_ir_bindings: tuple[UIIntentIRBinding, ...] = () + invocation_bindings: tuple[UIInvocationBinding, ...] = () + mcp_idl_bindings: tuple[UIMCPIDLBinding, ...] = () + formal_constraint_refs: tuple[UIFormalConstraintRef, ...] = () + proof_obligation_refs: tuple[UIProofObligationRef, ...] = () + initial_states: tuple[str, ...] = () + extensions: tuple[UINamespacedExtension, ...] = () + + def validate(self) -> None: + validate_ui_ir(self) + + def to_dict(self) -> dict[str, Any]: + """Return a detached JSON-ready closed envelope payload.""" + + payload = { + "accessibility": [ + item.to_dict() + for item in sorted( + self.accessibility, key=lambda item: item.accessibility_id + ) + ], + "adaptive_variants": [ + item.to_dict() + for item in sorted( + self.adaptive_variants, key=lambda item: item.variant_id + ) + ], + "components": [ + item.to_dict() + for item in sorted( + self.components, key=lambda item: item.component_id + ) + ], + "composition_edges": [ + item.to_dict() + for item in sorted( + self.composition_edges, key=lambda item: item.edge_id + ) + ], + "configuration": ( + self.configuration.to_dict() if self.configuration else None + ), + "content_references": [ + item.to_dict() + for item in sorted( + self.content_references, key=lambda item: item.content_id + ) + ], + "data_bindings": [ + item.to_dict() + for item in sorted( + self.data_bindings, key=lambda item: item.binding_id + ) + ], + "design_token_refs": [ + item.to_dict() + for item in sorted( + self.design_token_refs, key=lambda item: item.token_id + ) + ], + "device_capability_requirements": [ + item.to_dict() + for item in sorted( + self.device_capability_requirements, + key=lambda item: item.requirement_id, + ) + ], + "document_id": self.document_id, + "effects": [ + item.to_dict() + for item in sorted(self.effects, key=lambda item: item.effect_id) + ], + "entry_components": sorted(set(self.entry_components)), + "events": [ + item.to_dict() + for item in sorted(self.events, key=lambda item: item.event_id) + ], + "extensions": [ + item.to_dict() + for item in sorted( + self.extensions, key=lambda item: item.extension_id + ) + ], + "feedback_contracts": [ + item.to_dict() + for item in sorted( + self.feedback_contracts, key=lambda item: item.feedback_id + ) + ], + "formal_constraint_refs": [ + item.to_dict() + for item in sorted( + self.formal_constraint_refs, key=lambda item: item.constraint_id + ) + ], + "guards": [ + item.to_dict() + for item in sorted(self.guards, key=lambda item: item.guard_id) + ], + "initial_states": sorted(set(self.initial_states)), + "input_modality_requirements": [ + item.to_dict() + for item in sorted( + self.input_modality_requirements, + key=lambda item: item.requirement_id, + ) + ], + "intent_ir_bindings": [ + item.to_dict() + for item in sorted( + self.intent_ir_bindings, key=lambda item: item.binding_id + ) + ], + "invocation_bindings": [ + item.to_dict() + for item in sorted( + self.invocation_bindings, key=lambda item: item.binding_id + ) + ], + "journeys": [ + item.to_dict() + for item in sorted(self.journeys, key=lambda item: item.journey_id) + ], + "layout_constraints": [ + item.to_dict() + for item in sorted( + self.layout_constraints, key=lambda item: item.constraint_id + ) + ], + "layout_regions": [ + item.to_dict() + for item in sorted( + self.layout_regions, key=lambda item: item.region_id + ) + ], + "locale_defaults": self.locale_defaults.to_dict(), + "localization": [ + item.to_dict() + for item in sorted( + self.localization, key=lambda item: item.localization_id + ) + ], + "mcp_idl_bindings": [ + item.to_dict() + for item in sorted( + self.mcp_idl_bindings, key=lambda item: item.binding_id + ) + ], + "modality_alternatives": [ + item.to_dict() + for item in sorted( + self.modality_alternatives, key=lambda item: item.alternative_id + ) + ], + "output_modality_requirements": [ + item.to_dict() + for item in sorted( + self.output_modality_requirements, + key=lambda item: item.requirement_id, + ) + ], + "producer": self.producer.to_dict() if self.producer else None, + "program_bindings": [ + item.to_dict() + for item in sorted( + self.program_bindings, key=lambda item: item.binding_id + ) + ], + "proof_obligation_refs": [ + item.to_dict() + for item in sorted( + self.proof_obligation_refs, key=lambda item: item.obligation_id + ) + ], + "review": self.review.to_dict(), + "schema_version": self.schema_version, + "sources": [ + item.to_dict() + for item in sorted(self.sources, key=lambda item: item.ref_id) + ], + "state_variables": [ + item.to_dict() + for item in sorted( + self.state_variables, key=lambda item: item.variable_id + ) + ], + "states": [ + item.to_dict() + for item in sorted(self.states, key=lambda item: item.state_id) + ], + "success_failure_recovery": [ + item.to_dict() + for item in sorted( + self.success_failure_recovery, key=lambda item: item.path_id + ) + ], + "tags": sorted(set(self.tags)), + "terminal_outcomes": [ + item.to_dict() + for item in sorted( + self.terminal_outcomes, key=lambda item: item.outcome_id + ) + ], + "title": self.title, + "transitions": [ + item.to_dict() + for item in sorted( + self.transitions, key=lambda item: item.transition_id + ) + ], + "trust_bindings": [ + item.to_dict() + for item in sorted( + self.trust_bindings, key=lambda item: item.trust_id + ) + ], + "ux_tasks": [ + item.to_dict() + for item in sorted(self.ux_tasks, key=lambda item: item.task_id) + ], + } + return payload + + +def validate_ui_ir( + document: UIIRDocument | Mapping[str, Any], +) -> UIIRDocument: + """Validate and return a :class:`UIIRDocument`. + + Mappings must pass through the versioned decoder (UIR-011). Accepting raw + mappings here would let untrusted JSON bypass exact field and type checks. + """ + + if not isinstance(document, UIIRDocument): + raise UIIRValidationError( + "UI/UX IR mappings require an explicit versioned decoder" + ) + if document.schema_version != UI_UX_IR_SCHEMA_VERSION: + raise UIIRValidationError( + f"Unsupported UI/UX IR schema_version: {document.schema_version!r}" + ) + _validate_identifier("UIIRDocument.document_id", document.document_id) + _validate_non_empty_string("UIIRDocument.title", document.title) + + if not document.sources: + raise UIIRValidationError("UIIRDocument.sources must not be empty") + if not document.components: + raise UIIRValidationError("UIIRDocument.components must not be empty") + if not document.entry_components: + raise UIIRValidationError("UIIRDocument.entry_components must not be empty") + if not document.terminal_outcomes: + raise UIIRValidationError("UIIRDocument.terminal_outcomes must not be empty") + + _validate_document_collections(document) + _validate_record_types(document) + + document.locale_defaults.validate() + document.review.validate() + if document.producer is not None: + document.producer.validate() + if document.configuration is not None: + document.configuration.validate() + + for source in document.sources: + source.validate() + for item in document.trust_bindings: + item.validate() + for item in document.components: + item.validate() + for item in document.composition_edges: + item.validate() + for item in document.layout_regions: + item.validate() + for item in document.layout_constraints: + item.validate() + for item in document.design_token_refs: + item.validate() + for item in document.state_variables: + item.validate() + for item in document.states: + item.validate() + for item in document.events: + item.validate() + for item in document.transitions: + item.validate() + for item in document.guards: + item.validate() + for item in document.effects: + item.validate() + for item in document.ux_tasks: + item.validate() + for item in document.journeys: + item.validate() + for item in document.success_failure_recovery: + item.validate() + for item in document.feedback_contracts: + item.validate() + for item in document.accessibility: + item.validate() + for item in document.localization: + item.validate() + for item in document.input_modality_requirements: + item.validate() + for item in document.output_modality_requirements: + item.validate() + for item in document.modality_alternatives: + item.validate() + for item in document.device_capability_requirements: + item.validate() + for item in document.adaptive_variants: + item.validate() + for item in document.data_bindings: + item.validate() + for item in document.content_references: + item.validate() + for item in document.program_bindings: + item.validate() + for item in document.intent_ir_bindings: + item.validate() + for item in document.invocation_bindings: + item.validate() + for item in document.mcp_idl_bindings: + item.validate() + for item in document.formal_constraint_refs: + item.validate() + for item in document.proof_obligation_refs: + item.validate() + for item in document.terminal_outcomes: + item.validate() + for item in document.extensions: + item.validate() + + _validate_unique_ids(document) + _validate_cross_references(document) + _reject_executable_payload(document.to_dict(), "UIIRDocument") + return document + + +# Alias retained for callers that prefer the longer family name. +validate_ui_ux_ir = validate_ui_ir + + +def reject_unknown_document_fields(payload: Mapping[str, Any]) -> None: + """Fail closed when a wire mapping contains undeclared top-level fields.""" + + if not isinstance(payload, Mapping): + raise UIIRValidationError("document payload must be a mapping") + unknown = sorted(set(payload) - UIIR_DOCUMENT_FIELDS) + if unknown: + raise UIIRValidationError( + f"unknown UIIRDocument field(s): {', '.join(unknown)}" + ) + missing = sorted( + name for name in UIIR_REQUIRED_PATHS if name not in payload + ) + if missing: + raise UIIRValidationError( + f"missing required UIIRDocument path(s): {', '.join(missing)}" + ) + + +def load_ui_ux_ir_json_schema() -> dict[str, Any]: + """Load the closed JSON Schema document shipped beside this module.""" + + import json + + if not UI_UX_IR_SCHEMA_JSON_PATH.is_file(): + raise UIIRValidationError( + f"JSON Schema not found at {UI_UX_IR_SCHEMA_JSON_PATH}" + ) + with UI_UX_IR_SCHEMA_JSON_PATH.open(encoding="utf-8") as handle: + schema = json.load(handle) + if not isinstance(schema, dict): + raise UIIRValidationError("JSON Schema root must be an object") + return schema + + +def _validate_record_types(document: UIIRDocument) -> None: + checks: tuple[tuple[str, tuple[Any, ...], type[Any]], ...] = ( + ("UIIRDocument.sources", document.sources, UISourceRef), + ("UIIRDocument.trust_bindings", document.trust_bindings, UITrustBinding), + ("UIIRDocument.components", document.components, UIComponent), + ( + "UIIRDocument.composition_edges", + document.composition_edges, + UICompositionEdge, + ), + ("UIIRDocument.layout_regions", document.layout_regions, UILayoutRegion), + ( + "UIIRDocument.layout_constraints", + document.layout_constraints, + UILayoutConstraint, + ), + ( + "UIIRDocument.design_token_refs", + document.design_token_refs, + UIDesignTokenRef, + ), + ("UIIRDocument.state_variables", document.state_variables, UIStateVariable), + ("UIIRDocument.states", document.states, UIState), + ("UIIRDocument.events", document.events, UIEvent), + ("UIIRDocument.transitions", document.transitions, UITransition), + ("UIIRDocument.guards", document.guards, UIGuard), + ("UIIRDocument.effects", document.effects, UIEffect), + ("UIIRDocument.ux_tasks", document.ux_tasks, UIUXTask), + ("UIIRDocument.journeys", document.journeys, UIJourney), + ( + "UIIRDocument.success_failure_recovery", + document.success_failure_recovery, + UIRecoveryPath, + ), + ( + "UIIRDocument.feedback_contracts", + document.feedback_contracts, + UIFeedbackContract, + ), + ( + "UIIRDocument.accessibility", + document.accessibility, + UIAccessibilityBinding, + ), + ("UIIRDocument.localization", document.localization, UILocalizationBinding), + ( + "UIIRDocument.input_modality_requirements", + document.input_modality_requirements, + UIModalityRequirement, + ), + ( + "UIIRDocument.output_modality_requirements", + document.output_modality_requirements, + UIModalityRequirement, + ), + ( + "UIIRDocument.modality_alternatives", + document.modality_alternatives, + UIModalityAlternative, + ), + ( + "UIIRDocument.device_capability_requirements", + document.device_capability_requirements, + UIDeviceCapabilityRequirement, + ), + ( + "UIIRDocument.adaptive_variants", + document.adaptive_variants, + UIAdaptiveVariant, + ), + ("UIIRDocument.data_bindings", document.data_bindings, UIDataBinding), + ( + "UIIRDocument.content_references", + document.content_references, + UIContentReference, + ), + ( + "UIIRDocument.program_bindings", + document.program_bindings, + UIProgramBinding, + ), + ( + "UIIRDocument.intent_ir_bindings", + document.intent_ir_bindings, + UIIntentIRBinding, + ), + ( + "UIIRDocument.invocation_bindings", + document.invocation_bindings, + UIInvocationBinding, + ), + ("UIIRDocument.mcp_idl_bindings", document.mcp_idl_bindings, UIMCPIDLBinding), + ( + "UIIRDocument.formal_constraint_refs", + document.formal_constraint_refs, + UIFormalConstraintRef, + ), + ( + "UIIRDocument.proof_obligation_refs", + document.proof_obligation_refs, + UIProofObligationRef, + ), + ( + "UIIRDocument.terminal_outcomes", + document.terminal_outcomes, + UITerminalOutcome, + ), + ("UIIRDocument.extensions", document.extensions, UINamespacedExtension), + ) + for name, values, item_type in checks: + _validate_record_collection(name, values, item_type) + if not isinstance(document.locale_defaults, UILocaleDefaults): + raise UIIRValidationError( + "UIIRDocument.locale_defaults must be a UILocaleDefaults" + ) + if not isinstance(document.review, UIReviewBinding): + raise UIIRValidationError("UIIRDocument.review must be a UIReviewBinding") + if document.producer is not None and not isinstance(document.producer, UIProducer): + raise UIIRValidationError("UIIRDocument.producer must be a UIProducer or None") + if document.configuration is not None and not isinstance( + document.configuration, UIConfiguration + ): + raise UIIRValidationError( + "UIIRDocument.configuration must be a UIConfiguration or None" + ) + + +def _validate_unique_ids(document: UIIRDocument) -> None: + _require_unique((item.ref_id for item in document.sources), "source ref") + _require_unique((item.trust_id for item in document.trust_bindings), "trust") + _require_unique((item.component_id for item in document.components), "component") + _require_unique((item.edge_id for item in document.composition_edges), "composition edge") + _require_unique((item.region_id for item in document.layout_regions), "layout region") + _require_unique( + (item.constraint_id for item in document.layout_constraints), + "layout constraint", + ) + _require_unique((item.token_id for item in document.design_token_refs), "design token") + _require_unique( + (item.variable_id for item in document.state_variables), "state variable" + ) + _require_unique((item.state_id for item in document.states), "state") + _require_unique((item.event_id for item in document.events), "event") + _require_unique((item.transition_id for item in document.transitions), "transition") + _require_unique((item.guard_id for item in document.guards), "guard") + _require_unique((item.effect_id for item in document.effects), "effect") + _require_unique((item.task_id for item in document.ux_tasks), "ux task") + _require_unique((item.journey_id for item in document.journeys), "journey") + _require_unique( + (item.path_id for item in document.success_failure_recovery), "recovery path" + ) + _require_unique( + (item.feedback_id for item in document.feedback_contracts), "feedback" + ) + _require_unique( + (item.accessibility_id for item in document.accessibility), "accessibility" + ) + _require_unique( + (item.localization_id for item in document.localization), "localization" + ) + _require_unique( + (item.requirement_id for item in document.input_modality_requirements), + "input modality requirement", + ) + _require_unique( + (item.requirement_id for item in document.output_modality_requirements), + "output modality requirement", + ) + _require_unique( + (item.alternative_id for item in document.modality_alternatives), + "modality alternative", + ) + _require_unique( + (item.requirement_id for item in document.device_capability_requirements), + "device capability requirement", + ) + _require_unique( + (item.variant_id for item in document.adaptive_variants), "adaptive variant" + ) + _require_unique((item.binding_id for item in document.data_bindings), "data binding") + _require_unique( + (item.content_id for item in document.content_references), "content reference" + ) + _require_unique( + (item.binding_id for item in document.program_bindings), "program binding" + ) + _require_unique( + (item.binding_id for item in document.intent_ir_bindings), "intent ir binding" + ) + _require_unique( + (item.binding_id for item in document.invocation_bindings), + "invocation binding", + ) + _require_unique( + (item.binding_id for item in document.mcp_idl_bindings), "mcp idl binding" + ) + _require_unique( + (item.constraint_id for item in document.formal_constraint_refs), + "formal constraint", + ) + _require_unique( + (item.obligation_id for item in document.proof_obligation_refs), + "proof obligation", + ) + _require_unique( + (item.outcome_id for item in document.terminal_outcomes), "terminal outcome" + ) + _require_unique( + (item.extension_id for item in document.extensions), "extension" + ) + _require_unique(document.entry_components, "entry_components member") + _require_unique(document.initial_states, "initial_states member") + _require_unique(document.tags, "tags member") + + +def _validate_cross_references(document: UIIRDocument) -> None: + source_ids = {item.ref_id for item in document.sources} + component_ids = {item.component_id for item in document.components} + state_ids = {item.state_id for item in document.states} + event_ids = {item.event_id for item in document.events} + guard_ids = {item.guard_id for item in document.guards} + effect_ids = {item.effect_id for item in document.effects} + region_ids = {item.region_id for item in document.layout_regions} + feedback_ids = {item.feedback_id for item in document.feedback_contracts} + data_binding_ids = {item.binding_id for item in document.data_bindings} + program_binding_ids = {item.binding_id for item in document.program_bindings} + task_ids = {item.task_id for item in document.ux_tasks} + localization_ids = { + item.localization_id for item in document.localization + } + modality_req_ids = { + item.requirement_id for item in document.input_modality_requirements + } | {item.requirement_id for item in document.output_modality_requirements} + formal_ids = { + item.constraint_id for item in document.formal_constraint_refs + } + outcome_ids = {item.outcome_id for item in document.terminal_outcomes} + state_variable_ids = { + item.variable_id for item in document.state_variables + } + accessibility_ids = { + item.accessibility_id for item in document.accessibility + } + transition_ids = {item.transition_id for item in document.transitions} + device_capability_ids = { + item.requirement_id for item in document.device_capability_requirements + } + + def sources_of(label: str, values: Iterable[str]) -> None: + _require_known_refs(values, source_ids, label) + + for component in document.components: + sources_of( + f"UIComponent {component.component_id!r}.source_ref_ids", + component.source_ref_ids, + ) + if component.parent_id: + _require_known_refs( + (component.parent_id,), + component_ids, + f"UIComponent {component.component_id!r}.parent_id", + ) + _require_known_refs( + component.child_ids, + component_ids, + f"UIComponent {component.component_id!r}.child_ids", + ) + _require_known_refs( + component.feedback_ids, + feedback_ids, + f"UIComponent {component.component_id!r}.feedback_ids", + ) + _require_known_refs( + component.data_binding_ids, + data_binding_ids, + f"UIComponent {component.component_id!r}.data_binding_ids", + ) + _require_known_refs( + component.program_binding_ids, + program_binding_ids, + f"UIComponent {component.component_id!r}.program_binding_ids", + ) + _require_known_refs( + component.modality_binding_ids, + modality_req_ids, + f"UIComponent {component.component_id!r}.modality_binding_ids", + ) + + for edge in document.composition_edges: + sources_of( + f"UICompositionEdge {edge.edge_id!r}.source_ref_ids", edge.source_ref_ids + ) + _require_known_refs( + (edge.source_component_id, edge.target_component_id), + component_ids, + f"UICompositionEdge {edge.edge_id!r}", + ) + + for region in document.layout_regions: + sources_of( + f"UILayoutRegion {region.region_id!r}.source_ref_ids", region.source_ref_ids + ) + _require_known_refs( + region.component_ids, + component_ids, + f"UILayoutRegion {region.region_id!r}.component_ids", + ) + + for constraint in document.layout_constraints: + sources_of( + f"UILayoutConstraint {constraint.constraint_id!r}.source_ref_ids", + constraint.source_ref_ids, + ) + _require_known_refs( + constraint.region_ids, + region_ids, + f"UILayoutConstraint {constraint.constraint_id!r}.region_ids", + ) + _require_known_refs( + constraint.component_ids, + component_ids, + f"UILayoutConstraint {constraint.constraint_id!r}.component_ids", + ) + if constraint.expression_ref: + _require_known_refs( + (constraint.expression_ref,), + formal_ids, + f"UILayoutConstraint {constraint.constraint_id!r}.expression_ref", + ) + + for state in document.states: + sources_of(f"UIState {state.state_id!r}.source_ref_ids", state.source_ref_ids) + if state.region_id: + _require_known_refs( + (state.region_id,), + region_ids, + f"UIState {state.state_id!r}.region_id", + ) + + for transition in document.transitions: + sources_of( + f"UITransition {transition.transition_id!r}.source_ref_ids", + transition.source_ref_ids, + ) + _require_known_refs( + (transition.source_state_id, transition.target_state_id), + state_ids, + f"UITransition {transition.transition_id!r}", + ) + if transition.event_id: + _require_known_refs( + (transition.event_id,), + event_ids, + f"UITransition {transition.transition_id!r}.event_id", + ) + if transition.guard_id: + _require_known_refs( + (transition.guard_id,), + guard_ids, + f"UITransition {transition.transition_id!r}.guard_id", + ) + _require_known_refs( + transition.effect_ids, + effect_ids, + f"UITransition {transition.transition_id!r}.effect_ids", + ) + + for guard in document.guards: + sources_of(f"UIGuard {guard.guard_id!r}.source_ref_ids", guard.source_ref_ids) + if guard.formal_constraint_id: + _require_known_refs( + (guard.formal_constraint_id,), + formal_ids, + f"UIGuard {guard.guard_id!r}.formal_constraint_id", + ) + if guard.constraint_ref: + _require_known_refs( + (guard.constraint_ref,), + formal_ids | state_ids | guard_ids, + f"UIGuard {guard.guard_id!r}.constraint_ref", + ) + + for effect in document.effects: + sources_of( + f"UIEffect {effect.effect_id!r}.source_ref_ids", effect.source_ref_ids + ) + if effect.program_binding_id: + _require_known_refs( + (effect.program_binding_id,), + program_binding_ids, + f"UIEffect {effect.effect_id!r}.program_binding_id", + ) + if effect.local_state_transition: + _require_known_refs( + (effect.local_state_transition,), + state_ids | transition_ids, + f"UIEffect {effect.effect_id!r}.local_state_transition", + ) + + for task in document.ux_tasks: + sources_of(f"UIUXTask {task.task_id!r}.source_ref_ids", task.source_ref_ids) + _require_known_refs( + task.step_component_ids, + component_ids, + f"UIUXTask {task.task_id!r}.step_component_ids", + ) + + for journey in document.journeys: + sources_of( + f"UIJourney {journey.journey_id!r}.source_ref_ids", journey.source_ref_ids + ) + _require_known_refs( + journey.task_ids, + task_ids, + f"UIJourney {journey.journey_id!r}.task_ids", + ) + + for path in document.success_failure_recovery: + sources_of( + f"UIRecoveryPath {path.path_id!r}.source_ref_ids", path.source_ref_ids + ) + if path.target_outcome_id: + _require_known_refs( + (path.target_outcome_id,), + outcome_ids, + f"UIRecoveryPath {path.path_id!r}.target_outcome_id", + ) + if path.recovery_component_id: + _require_known_refs( + (path.recovery_component_id,), + component_ids, + f"UIRecoveryPath {path.path_id!r}.recovery_component_id", + ) + + for feedback in document.feedback_contracts: + sources_of( + f"UIFeedbackContract {feedback.feedback_id!r}.source_ref_ids", + feedback.source_ref_ids, + ) + if feedback.component_id: + _require_known_refs( + (feedback.component_id,), + component_ids, + f"UIFeedbackContract {feedback.feedback_id!r}.component_id", + ) + + for a11y in document.accessibility: + sources_of( + f"UIAccessibilityBinding {a11y.accessibility_id!r}.source_ref_ids", + a11y.source_ref_ids, + ) + _require_known_refs( + (a11y.component_id,), + component_ids, + f"UIAccessibilityBinding {a11y.accessibility_id!r}.component_id", + ) + _require_known_refs( + a11y.relationship_ids, + component_ids | accessibility_ids, + f"UIAccessibilityBinding {a11y.accessibility_id!r}.relationship_ids", + ) + _require_unique( + a11y.relationship_ids, + f"UIAccessibilityBinding {a11y.accessibility_id!r}.relationship_ids member", + ) + + for localization in document.localization: + sources_of( + f"UILocalizationBinding {localization.localization_id!r}.source_ref_ids", + localization.source_ref_ids, + ) + _require_known_refs( + localization.variable_ids, + state_variable_ids, + f"UILocalizationBinding {localization.localization_id!r}.variable_ids", + ) + _require_unique( + localization.variable_ids, + f"UILocalizationBinding {localization.localization_id!r}.variable_ids member", + ) + + for content in document.content_references: + sources_of( + f"UIContentReference {content.content_id!r}.source_ref_ids", + content.source_ref_ids, + ) + if content.localization_id: + _require_known_refs( + (content.localization_id,), + localization_ids, + f"UIContentReference {content.content_id!r}.localization_id", + ) + + for requirement in document.input_modality_requirements: + if requirement.direction != "input": + raise UIIRValidationError( + f"input_modality_requirements entry {requirement.requirement_id!r} " + f"must use direction='input'" + ) + _require_unique( + requirement.capability_ids, + f"UIModalityRequirement {requirement.requirement_id!r}.capability_ids member", + ) + _require_unique( + requirement.source_ref_ids, + f"UIModalityRequirement {requirement.requirement_id!r}.source_ref_ids member", + ) + for requirement in document.output_modality_requirements: + if requirement.direction != "output": + raise UIIRValidationError( + f"output_modality_requirements entry {requirement.requirement_id!r} " + f"must use direction='output'" + ) + _require_unique( + requirement.capability_ids, + f"UIModalityRequirement {requirement.requirement_id!r}.capability_ids member", + ) + _require_unique( + requirement.source_ref_ids, + f"UIModalityRequirement {requirement.requirement_id!r}.source_ref_ids member", + ) + + for alt in document.modality_alternatives: + sources_of( + f"UIModalityAlternative {alt.alternative_id!r}.source_ref_ids", + alt.source_ref_ids, + ) + _require_known_refs( + (alt.primary_requirement_id, alt.alternative_requirement_id), + modality_req_ids, + f"UIModalityAlternative {alt.alternative_id!r}", + ) + + for variant in document.adaptive_variants: + sources_of( + f"UIAdaptiveVariant {variant.variant_id!r}.source_ref_ids", + variant.source_ref_ids, + ) + _require_known_refs( + variant.capability_predicate_ids, + device_capability_ids | modality_req_ids, + f"UIAdaptiveVariant {variant.variant_id!r}.capability_predicate_ids", + ) + _require_unique( + variant.capability_predicate_ids, + f"UIAdaptiveVariant {variant.variant_id!r}.capability_predicate_ids member", + ) + _require_unique( + variant.source_ref_ids, + f"UIAdaptiveVariant {variant.variant_id!r}.source_ref_ids member", + ) + + for binding in document.program_bindings: + sources_of( + f"UIProgramBinding {binding.binding_id!r}.source_ref_ids", + binding.source_ref_ids, + ) + _require_known_refs( + binding.precondition_ids, + formal_ids | guard_ids | state_ids, + f"UIProgramBinding {binding.binding_id!r}.precondition_ids", + ) + _require_known_refs( + binding.effect_ids, + effect_ids, + f"UIProgramBinding {binding.binding_id!r}.effect_ids", + ) + _require_known_refs( + binding.verification_ids, + formal_ids | {item.obligation_id for item in document.proof_obligation_refs}, + f"UIProgramBinding {binding.binding_id!r}.verification_ids", + ) + + for obligation in document.proof_obligation_refs: + sources_of( + f"UIProofObligationRef {obligation.obligation_id!r}.source_ref_ids", + obligation.source_ref_ids, + ) + _require_known_refs( + (obligation.constraint_id,), + formal_ids, + f"UIProofObligationRef {obligation.obligation_id!r}.constraint_id", + ) + + for collection_name, records in ( + ("trust_bindings", document.trust_bindings), + ("design_token_refs", document.design_token_refs), + ("state_variables", document.state_variables), + ("events", document.events), + ("localization", document.localization), + ("input_modality_requirements", document.input_modality_requirements), + ("output_modality_requirements", document.output_modality_requirements), + ("device_capability_requirements", document.device_capability_requirements), + ("adaptive_variants", document.adaptive_variants), + ("data_bindings", document.data_bindings), + ("program_bindings", document.program_bindings), + ("intent_ir_bindings", document.intent_ir_bindings), + ("invocation_bindings", document.invocation_bindings), + ("mcp_idl_bindings", document.mcp_idl_bindings), + ("formal_constraint_refs", document.formal_constraint_refs), + ("terminal_outcomes", document.terminal_outcomes), + ("extensions", document.extensions), + ): + for record in records: + ref_ids = getattr(record, "source_ref_ids", ()) + record_id = ( + getattr(record, "ref_id", None) + or getattr(record, "trust_id", None) + or getattr(record, "token_id", None) + or getattr(record, "variable_id", None) + or getattr(record, "event_id", None) + or getattr(record, "localization_id", None) + or getattr(record, "requirement_id", None) + or getattr(record, "variant_id", None) + or getattr(record, "binding_id", None) + or getattr(record, "constraint_id", None) + or getattr(record, "outcome_id", None) + or getattr(record, "extension_id", None) + or "?" + ) + sources_of( + f"UIIRDocument.{collection_name} {record_id!r}.source_ref_ids", + ref_ids, + ) + + _require_known_refs( + document.entry_components, + component_ids, + "UIIRDocument.entry_components", + ) + if document.initial_states: + if not state_ids: + raise UIIRValidationError( + "UIIRDocument.initial_states requires states to be declared" + ) + _require_known_refs( + document.initial_states, + state_ids, + "UIIRDocument.initial_states", + ) + if document.states and not document.initial_states: + raise UIIRValidationError( + "UIIRDocument.initial_states must not be empty when states are declared" + ) + + +def _validate_document_collections(document: UIIRDocument) -> None: + """Enforce immutable tuple collections and set-like uniqueness.""" + + tuple_fields = ( + "sources", + "trust_bindings", + "components", + "composition_edges", + "layout_regions", + "layout_constraints", + "design_token_refs", + "state_variables", + "states", + "events", + "transitions", + "guards", + "effects", + "ux_tasks", + "journeys", + "success_failure_recovery", + "feedback_contracts", + "accessibility", + "localization", + "input_modality_requirements", + "output_modality_requirements", + "modality_alternatives", + "device_capability_requirements", + "adaptive_variants", + "data_bindings", + "content_references", + "program_bindings", + "intent_ir_bindings", + "invocation_bindings", + "mcp_idl_bindings", + "formal_constraint_refs", + "proof_obligation_refs", + "entry_components", + "initial_states", + "terminal_outcomes", + "tags", + "extensions", + ) + for name in tuple_fields: + _require_tuple(f"UIIRDocument.{name}", getattr(document, name)) + + for name in ("entry_components", "initial_states", "tags"): + values = getattr(document, name) + _validate_string_items(f"UIIRDocument.{name}", values) + if name != "tags": + _validate_identifier_items(f"UIIRDocument.{name}", values) + _require_unique(values, f"UIIRDocument.{name} member") + + +def _validate_record_collection( + name: str, value: Any, item_type: type[Any] +) -> None: + _require_tuple(name, value) + for index, item in enumerate(value): + if not isinstance(item, item_type): + raise UIIRValidationError( + f"{name}[{index}] must be a {item_type.__name__}" + ) + + +def _validate_identifier(name: str, value: str) -> None: + if not isinstance(value, str) or not _IDENTIFIER_RE.fullmatch(value): + raise UIIRValidationError(f"{name} is not a stable identifier") + + +def _validate_identifier_items(name: str, values: Iterable[Any]) -> None: + for index, value in enumerate(values): + _validate_identifier(f"{name}[{index}]", value) + + +def _validate_string(name: str, value: Any) -> None: + if not isinstance(value, str): + raise UIIRValidationError(f"{name} must be a string") + + +def _validate_non_empty_string(name: str, value: Any) -> None: + _validate_string(name, value) + if not value.strip(): + raise UIIRValidationError(f"{name} must not be empty") + + +def _validate_string_items(name: str, values: Iterable[Any]) -> None: + for index, value in enumerate(values): + _validate_non_empty_string(f"{name}[{index}]", value) + + +def _require_tuple(name: str, value: Any) -> None: + if not isinstance(value, tuple): + semantics = UI_UX_IR_COLLECTION_SEMANTICS.get(name, "declared") + raise UIIRValidationError( + f"{name} must be an immutable tuple with {semantics} semantics" + ) + + +def _validate_sha256(name: str, value: str) -> None: + if not isinstance(value, str) or not _SHA256_RE.fullmatch(value): + raise UIIRValidationError( + f"{name} must be a lowercase 64-character SHA-256" + ) + + +def _validate_enum(name: str, value: Any, enum_type: type[Enum]) -> None: + if not isinstance(value, enum_type): + raise UIIRValidationError(f"{name} must be a {enum_type.__name__} value") + + +def _deep_freeze_mapping(value: Any, label: str) -> Any: + """Return an immutable, nested view of mapping/sequence payload data.""" + + if callable(value) or isinstance(value, type): + raise UIIRValidationError(f"{label} contains an executable callback") + if isinstance(value, Mapping): + frozen: dict[str, Any] = {} + for key, item in value.items(): + if not isinstance(key, str): + raise UIIRValidationError(f"{label} map keys must be strings") + if _is_forbidden_executable_key(key): + raise UIIRValidationError( + f"{label}/{key} is an executable callback field" + ) + frozen[key] = _deep_freeze_mapping(item, f"{label}/{key}") + return MappingProxyType(frozen) + if isinstance(value, (str, bytes, bytearray)) or value is None: + return value + if isinstance(value, (set, frozenset)): + raise UIIRValidationError( + f"{label} must not use set containers in declaration payloads" + ) + if isinstance(value, Sequence): + return tuple( + _deep_freeze_mapping(item, f"{label}[{index}]") + for index, item in enumerate(value) + ) + if isinstance(value, (int, float, bool)): + return value + raise UIIRValidationError( + f"{label} contains a non-JSON declaration value of type {type(value).__name__}" + ) + + +def _require_unique(values: Iterable[str], label: str) -> None: + seen: set[str] = set() + for value in values: + if value in seen: + raise UIIRValidationError(f"Duplicate {label} id: {value}") + seen.add(value) + + +def _require_known_refs( + values: Iterable[str], known: set[str], label: str +) -> None: + missing = sorted({value for value in values if value not in known}) + if missing: + raise UIIRValidationError( + f"{label} references unknown ids: {', '.join(missing)}" + ) + + +def _is_forbidden_executable_key(key: str) -> bool: + lowered = key.lower() + if lowered in _FORBIDDEN_EXECUTABLE_KEYS: + return True + return any(lowered.startswith(prefix) for prefix in _FORBIDDEN_EXECUTABLE_KEY_PREFIXES) + + +def _reject_executable_payload(value: Any, label: str, *, _path: str = "") -> None: + """Reject callables and forbidden executable keys anywhere in a payload.""" + + # Callable class objects are executable entry points just as free functions. + if callable(value) or isinstance(value, type): + raise UIIRValidationError( + f"{label}{_path} contains an executable callback" + ) + if isinstance(value, Mapping): + for key, item in value.items(): + if not isinstance(key, str): + raise UIIRValidationError( + f"{label}{_path} map keys must be strings" + ) + if _is_forbidden_executable_key(key): + raise UIIRValidationError( + f"{label}{_path}/{key} is an executable callback field" + ) + _reject_executable_payload(item, label, _path=f"{_path}/{key}") + return + if isinstance(value, (str, bytes, bytearray)) or value is None: + return + if isinstance(value, (set, frozenset)): + for index, item in enumerate(sorted(value, key=repr)): + _reject_executable_payload(item, label, _path=f"{_path}{{{index}}}") + return + if isinstance(value, Sequence): + for index, item in enumerate(value): + _reject_executable_payload(item, label, _path=f"{_path}[{index}]") + + +__all__ = [ + "AdaptationPolicy", + "AuthorityKind", + "CollectionSemantics", + "CompositionEdgeKind", + "EventKind", + "LEGACY_UI_UX_IR_SCHEMA_VERSION", + "LayoutRegionKind", + "ProgramBindingTargetKind", + "ReviewStatus", + "SourceSpan", + "TerminalOutcomeKind", + "UI_UX_IR_COLLECTION_SCHEMA", + "UI_UX_IR_COLLECTION_SEMANTICS", + "UI_UX_IR_INTERFACE", + "UI_UX_IR_SCHEMA_JSON_PATH", + "UI_UX_IR_SCHEMA_VERSION", + "UIAccessibilityBinding", + "UIAdaptiveVariant", + "UIComponent", + "UICompositionEdge", + "UIConfiguration", + "UIContentReference", + "UIDataBinding", + "UIDesignTokenRef", + "UIDeviceCapabilityRequirement", + "UIEffect", + "UIEvent", + "UIFeedbackContract", + "UIFormalConstraintRef", + "UIGuard", + "UIIRDocument", + "UIIRValidationError", + "UIIR_DOCUMENT_FIELDS", + "UIIR_REQUIRED_PATHS", + "UIIntentIRBinding", + "UIInvocationBinding", + "UIJourney", + "UILayoutConstraint", + "UILayoutRegion", + "UILocaleDefaults", + "UILocalizationBinding", + "UIMCPIDLBinding", + "UIModalityAlternative", + "UIModalityRequirement", + "UINamespacedExtension", + "UIProducer", + "UIProgramBinding", + "UIProofObligationRef", + "UIRecoveryPath", + "UIReviewBinding", + "UISourceRef", + "UIState", + "UIStateVariable", + "UITerminalOutcome", + "UITransition", + "UITrustBinding", + "UIUXTask", + "load_ui_ux_ir_json_schema", + "reject_unknown_document_fields", + "validate_ui_ir", + "validate_ui_ux_ir", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py b/releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py new file mode 100644 index 0000000000000000000000000000000000000000..7331939ac4fcbfb86f0d3a589a2edbd49142b4d2 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py @@ -0,0 +1,512 @@ +"""Shared experimental 384D source-to-typed-IR training and batched inference. + +The baseline and semantic strategies share transferred Legal weights, vocabulary, +input transformation and batching. Semantic selection uses free-running tuning +predictions. Native validation is local shape evidence, never semantic proof. +Published v1 implementations and checkpoints are intentionally untouched. +""" +from __future__ import annotations + +from copy import deepcopy +import hashlib +import json +import math +from pathlib import Path +import time + +from ....optimizers.logic_theorem_optimizer import domain_384_autoencoder as native +from ....optimizers.logic_theorem_optimizer import modal_latent_formula as numerical +from ....optimizers.logic_theorem_optimizer import legal_formula_codec as legal_codec + +SCHEMA = "shared-source-384-autoencoder/v2" +DOMAINS = (*native.DOMAINS, "legal_ir") +DIMENSION = 384 +MAX_BYTES = native.MAX_BYTES +FALSE = native.FALSE +_require, _raw, digest = native._require, native._raw, native.digest +_MISSING = object() + + +def validate_target(domain, target): + if domain != "legal_ir": + return native.validate_target(domain, target) + legal_codec._rule(target) + return {"valid": True, "domain_id": domain, "kind": "canonical_deontic_rule", + "canonical_ir": deepcopy(target), "scope": "one_canonical_deontic_rule", **FALSE} + + +def _implementation(): + return {"runtime_sha256": hashlib.sha256(Path(__file__).read_bytes()).hexdigest(), + "native": native._implementation(), "numerical": numerical._implementation(), + "legal_codec_sha256": hashlib.sha256(Path(legal_codec.__file__).read_bytes()).hexdigest()} + + +def _rows(domain, rows, *, training): + _require(domain in DOMAINS, "unsupported source decoder domain") + # Reuse the closed provenance and numerical row checks without invoking a + # different domain's target validator for Legal. + if domain in native.DOMAINS: + return native._rows(domain, rows, training=training) + _require(type(rows) is list and 1 <= len(rows) <= 4096, "bounded nonempty rows required") + fields = {"id", "source_text", "embedding"} | ({"target"} if training else set()) + _require(all(type(row) is dict and set(row) == fields for row in rows), "closed domain row schema required") + native._rows("intent_ir", [{key: row[key] for key in ("id", "source_text", "embedding")} for row in rows], training=False) + if training: + for row in rows: + validate_target(domain, row["target"]) + return deepcopy(rows) + + +def _leaves(value, path=()): + if type(value) in (dict, list) and not value: + return {path: value} + if type(value) is dict: + return {item: leaf for key in sorted(value) for item, leaf in _leaves(value[key], (*path, key)).items()} + if type(value) is list: + return {item: leaf for index, child in enumerate(value) for item, leaf in _leaves(child, (*path, index)).items()} + return {path: value} + + +def _token_records(value, path=()): + """Canonical JSON tokens with exact paths; keys never count as leaf values.""" + if type(value) is dict: + if not value: + return [("{", "leaf", path), ("}", "leaf", path)] + result = [("{", "structure", path)] + for index, key in enumerate(sorted(value)): + if index: + result.append((",", "structure", path)) + result.extend([(_raw(key).decode(), "key", path), (":", "structure", path)]) + result.extend(_token_records(value[key], (*path, key))) + return result + [("}", "structure", path)] + if type(value) is list: + if not value: + return [("[", "leaf", path), ("]", "leaf", path)] + result = [("[", "structure", path)] + for index, child in enumerate(value): + if index: + result.append((",", "structure", path)) + result.extend(_token_records(child, (*path, index))) + return result + [("]", "structure", path)] + return [(_raw(value).decode(), "leaf", path)] + + +def _varying_paths(rows): + leaves = [_leaves(row["target"]) for row in rows] + paths = set().union(*(row.keys() for row in leaves)) + # None tags an absent path; real JSON null is encoded as b"null". + return sorted((list(path) for path in paths if len({ + _raw(row[path]) if path in row else None for row in leaves}) > 1), key=_raw) + + +def _same_leaf(actual, expected): + if actual is _MISSING or expected is _MISSING: + return actual is expected + return _raw(actual) == _raw(expected) + + +def _config(options, parent): + defaults = dict(strategy="semantic_v2", epochs=500, max_seconds=180., learning_rate=.003, + batch_size=32, seed=1729, patience=30, max_optimizer_steps=None, reconstruction_weight=.1, + max_target_tokens=512, validation_interval=5, semantic_weight=4., + constant_weight=1., structure_weight=.25, input_normalization="center_rms", + embedding_provenance={"model_id": "caller_supplied", "verified_by_runtime": False}) + _require(options is None or type(options) is dict and set(options) <= set(defaults), "unknown training option") + defaults.update(options or {}) + _require(defaults["strategy"] in ("reference_ce", "semantic_v2"), "unknown training strategy") + _require(defaults["input_normalization"] in ("none", "center_rms"), "unknown input normalization") + for name, low, high in (("epochs", 1, 2000), ("batch_size", 1, 256), ("seed", 0, 2**31-1), + ("patience", 0, 2000), ("max_target_tokens", 4, 1024), ("validation_interval", 1, 1000)): + value = defaults[name] + _require(type(value) is int and low <= value <= high, "invalid " + name) + _require(defaults["max_optimizer_steps"] is None or type(defaults["max_optimizer_steps"]) is int + and 1 <= defaults["max_optimizer_steps"] <= 1000000, "invalid optimizer step budget") + for name, high in (("max_seconds", 3600), ("learning_rate", .1), ("reconstruction_weight", 100), + ("semantic_weight", 100), ("constant_weight", 100), ("structure_weight", 100)): + value = defaults[name] + _require(type(value) in (int, float) and math.isfinite(value) and 0 < value <= high, "invalid " + name) + _require(type(defaults["embedding_provenance"]) is dict and len(_raw(defaults["embedding_provenance"])) <= 16384, + "bounded embedding provenance required") + return {**defaults, **{key: parent[key] for key in ("hidden_size", "token_embedding_dim", "projection_width")}} + + +def _transform(torch, rows, mode): + data = torch.tensor([row["embedding"] for row in rows], dtype=torch.float32) + if mode == "none": + return {"mode": mode, "mean": [0.] * DIMENSION, "scale": 1., "origin": "training_only"} + mean = data.mean(0) + # One scale preserves angles and relative coordinate scales. A floor avoids + # division by an almost-zero empirical spread in a degenerate corpus. + scale = max(float((data - mean).square().sum(1).mean().sqrt()), .01) + return {"mode": mode, "mean": mean.tolist(), "scale": scale, "origin": "training_only"} + + +def _encoded(torch, rows, vocabulary, varying_paths, config, transform): + positions = {token: index for index, token in enumerate(vocabulary)} + varying = {tuple(path) for path in varying_paths} + encoded, weights = [], [] + for row in rows: + records = _token_records(row["target"]) + _require(len(records) + 2 <= config["max_target_tokens"], "target exceeds configured token limit") + _require(all(token in positions for token, _, _ in records), "target token outside training vocabulary") + encoded.append([1] + [positions[token] for token, _, _ in records] + [2]) + weights.append([0.] + [1. if config["strategy"] == "reference_ce" else + config["semantic_weight"] if role == "leaf" and path in varying else + config["constant_weight"] if role == "leaf" else config["structure_weight"] + for _, role, path in records] + [1.]) + width = max(map(len, encoded)) + labels = torch.tensor([row + [0] * (width-len(row)) for row in encoded], dtype=torch.long) + weight = torch.tensor([row + [0.] * (width-len(row)) for row in weights], dtype=torch.float32) + raw = torch.tensor([row["embedding"] for row in rows], dtype=torch.float32) + normalized = (raw - torch.tensor(transform["mean"])) / transform["scale"] + return normalized, labels, weight + + +def _loss(torch, model, data, labels, weights, config): + projected, logits = model(data, labels[:, :-1]) + ce = torch.nn.functional.cross_entropy(logits.flatten(0, 1), labels[:, 1:].reshape(-1), + ignore_index=0, reduction="none").reshape(labels.shape[0], -1) + mask = labels[:, 1:] != 0 + token_ce = ce.sum() / mask.sum() + weighted = (ce * weights[:, 1:]).sum() / weights[:, 1:].sum() + # Report and optimize reconstruction in the original embedding coordinates. + mse = (projected - data).square().mean() * config["_input_scale"]**2 + return weighted + config["reconstruction_weight"] * mse, token_ce, weighted, mse + + +def _greedy(torch, model, data, max_tokens): + """One recurrent step per batch, with no target strings or candidate memory.""" + projected = model.project(data) + hidden = model.start(projected) + _require(bool(torch.isfinite(projected).all()), "nonfinite reconstructed embedding") + current = torch.ones((len(data), 1), dtype=torch.long) + active = torch.ones(len(data), dtype=torch.bool) + sequences, ended = [[] for _ in range(len(data))], [False] * len(data) + for _ in range(max_tokens - 1): + logits, hidden = model.next_logits(current, hidden) + _require(bool(torch.isfinite(logits).all()) and bool(torch.isfinite(hidden).all()), "nonfinite generated state") + indices = logits[:, -1].argmax(-1) + for index, token in enumerate(indices.tolist()): + if not active[index]: + continue + if token == 2: + ended[index] = True + active[index] = False + elif token in (0, 1): + active[index] = False + else: + sequences[index].append(token) + if not bool(active.any()): + break + current = indices.unsqueeze(1) + return projected, sequences, ended + + +def _candidate(domain, indices, ended, vocabulary): + tokens = [vocabulary[index] for index in indices] + candidate, reason = None, None + if ended: + try: + value = native._parse("".join(tokens)) + candidate = validate_target(domain, value)["canonical_ir"] + except (ValueError, TypeError, KeyError, RecursionError) as exc: + reason = str(exc)[:512] + return candidate, tokens, reason + + +def _validation(torch, model, batch, rows, vocabulary, paths, domain, config): + model.eval() + with torch.inference_mode(): + objective, ce, weighted, mse = _loss(torch, model, *batch, config) + _require(all(bool(torch.isfinite(value)) for value in (objective, ce, weighted, mse)), "nonfinite validation") + _, sequences, ended = _greedy(torch, model, batch[0], config["max_target_tokens"]) + exact = valid = leaf_correct = leaf_count = 0 + for row, sequence, end in zip(rows, sequences, ended): + candidate, _, _ = _candidate(domain, sequence, end, vocabulary) + exact += candidate is not None and _raw(candidate) == _raw(row["target"]) + valid += candidate is not None + actual = _leaves(candidate) if candidate is not None else {} + gold = _leaves(row["target"]) + # Score train-derived varying paths, even when generation is malformed. + for path in map(tuple, paths): + leaf_count += 1 + leaf_correct += candidate is not None and _same_leaf(actual.get(path, _MISSING), gold.get(path, _MISSING)) + return dict(objective=float(objective), token_cross_entropy=float(ce), weighted_cross_entropy=float(weighted), + embedding_mse=float(mse), exact_targets=int(exact), valid_candidates=int(valid), count=len(rows), + semantic_leaf_correct=int(leaf_correct), semantic_leaf_count=leaf_count, + semantic_leaf_accuracy=leaf_correct / max(leaf_count, 1), + teacher_forcing_for_selection=True, free_running_metrics_teacher_forced=False, + teacher_forcing_selection_role=("primary_objective" if config["strategy"] == "reference_ce" else "tertiary_tiebreaker")) + + +def _selection(observed, strategy): + if strategy == "reference_ce": + return (-observed["objective"],) + return (observed["exact_targets"], observed["semantic_leaf_accuracy"], -observed["objective"]) + + +def _parent(parent_projection): + if type(parent_projection) is dict and set(parent_projection) == {"path", "sha256"}: + path = Path(parent_projection["path"]) + _require(path.is_file() and 0 < path.stat().st_size <= MAX_BYTES, "bounded parent required") + raw = path.read_bytes() + _require(hashlib.sha256(raw).hexdigest() == parent_projection["sha256"], "parent hash differs") + return native._parse(raw), parent_projection["sha256"], (path, raw) + return deepcopy(parent_projection), digest(parent_projection), None + + +def _length_buckets(torch, lengths, batch_size, generator): + # Shuffle before a stable length sort so identical target lengths never + # retain source-order composition groups across epochs. + order = torch.randperm(len(lengths), generator=generator) + order = order[lengths[order].argsort(stable=True)] + buckets = [order[offset:offset+batch_size] for offset in range(0, len(order), batch_size)] + return [buckets[index] for index in torch.randperm(len(buckets), generator=generator).tolist()] + + +def train(domain, training_rows, validation_rows, *, parent_projection, config=None): + """Train an isolated candidate; validation selects weights, no test API exists.""" + started = time.monotonic() + parent, parent_sha, parent_file = _parent(parent_projection) + training = _rows(domain, training_rows, training=True) + validation = _rows(domain, validation_rows, training=True) + for key in (lambda row: row["id"], lambda row: " ".join(row["source_text"].casefold().split()), + lambda row: digest(row["embedding"])): + _require(not {key(row) for row in training} & {key(row) for row in validation}, + "training/validation identity, source, or embedding overlap") + options = _config(config, parent["config"]) + paths = _varying_paths(training) + vocabulary = [*native.SPECIAL, *sorted({token for row in training for token, _, _ in _token_records(row["target"])})] + _require(len(vocabulary) <= 4096, "training vocabulary exceeds bound") + codec = {"schema": "typed-json-lexical/v1", "target_vocabulary": vocabulary} + with native._cpu() as torch: + numerical.validate_checkpoint(parent) + _require(parent["binding"]["dimension"] == DIMENSION and parent["progress"]["optimizer_steps"] > 0, + "trained 384D Legal parent required") + transform = _transform(torch, training, options["input_normalization"]) + settings = {**options, "_input_scale": transform["scale"]} + batch = _encoded(torch, training, vocabulary, paths, options, transform) + tuning = _encoded(torch, validation, vocabulary, paths, options, transform) + model, lineage = native._transfer(parent, codec, options) + optimizer = torch.optim.Adam(model.parameters(), lr=options["learning_rate"]) + before = _validation(torch, model, tuning, validation, vocabulary, paths, domain, settings) + best, best_state = before, deepcopy(model.state_dict()) + selected_epoch = selected_steps = steps = examples_seen = tokens_seen = stale = last_validated_steps = 0 + selected_epoch_complete = True + optimizer_seconds = validation_seconds = 0. + history, stop = [], "epoch_budget" + generator = torch.Generator().manual_seed(options["seed"]) + lengths = (batch[1] != 0).sum(1) + fit_started = time.monotonic() + for epoch in range(1, options["epochs"] + 1): + model.train() + completed = True + for index in _length_buckets(torch, lengths, options["batch_size"], generator): + if options["max_optimizer_steps"] is not None and steps >= options["max_optimizer_steps"]: + completed, stop = False, "optimizer_step_budget" + break + if time.monotonic() - fit_started >= options["max_seconds"]: + completed, stop = False, "deadline" + break + tick = time.monotonic() + width = int((batch[1][index] != 0).sum(1).max()) + values = (batch[0][index], batch[1][index, :width], batch[2][index, :width]) + optimizer.zero_grad(set_to_none=True) + loss, _, _, _ = _loss(torch, model, *values, settings) + _require(bool(torch.isfinite(loss)), "nonfinite training objective") + loss.backward() + norm = torch.nn.utils.clip_grad_norm_(model.parameters(), 5.) + _require(bool(torch.isfinite(norm)), "nonfinite gradient") + optimizer.step() + optimizer_seconds += time.monotonic() - tick + steps += 1 + examples_seen += len(index) + tokens_seen += int((values[1][:, 1:] != 0).sum()) + if not completed and steps == last_validated_steps: + break + reached_steps = options["max_optimizer_steps"] is not None and steps >= options["max_optimizer_steps"] + if completed and epoch % options["validation_interval"] and epoch != options["epochs"] and not reached_steps: + continue + tick = time.monotonic() + observed = _validation(torch, model, tuning, validation, vocabulary, paths, domain, settings) + validation_seconds += time.monotonic() - tick + last_validated_steps = steps + # A final tuning pass can finish after the optimizer deadline. The + # actual elapsed time includes it; every selected state was checked. + selected = _selection(observed, options["strategy"]) > _selection(best, options["strategy"]) + if selected: + best, best_state, selected_epoch, stale = observed, deepcopy(model.state_dict()), epoch, 0 + selected_steps, selected_epoch_complete = steps, completed + else: + stale += 1 + history.append({"epoch": epoch, "epoch_complete": completed, "optimizer_steps": steps, **observed, "selected": selected}) + if not completed: + break + if reached_steps: + stop = "optimizer_step_budget" + break + if options["patience"] and stale >= options["patience"]: + stop = "validation_patience" + break + if time.monotonic() - fit_started >= options["max_seconds"]: + stop = "deadline" + break + _require(steps > 0, "no training steps completed") + fit_seconds = time.monotonic() - fit_started + model.load_state_dict(best_state) + weights = {name: tensor.detach().tolist() for name, tensor in model.state_dict().items()} + def manifest(rows): + return [{"id": row["id"], "source_sha256": hashlib.sha256(row["source_text"].encode()).hexdigest(), + "normalized_source_sha256": hashlib.sha256(" ".join(row["source_text"].casefold().split()).encode()).hexdigest(), + "embedding_sha256": digest(row["embedding"]), "target_sha256": digest(row["target"])} for row in rows] + metrics = dict(before_validation=before, selected_validation=best, selected_epoch=selected_epoch, + optimizer_steps=steps, selected_optimizer_steps=selected_steps, selected_epoch_complete=selected_epoch_complete, + examples_seen=examples_seen, training_tokens=tokens_seen, + optimizer_seconds=optimizer_seconds, validation_seconds=validation_seconds, fit_seconds=fit_seconds, + optimizer_tokens_per_second=tokens_seen/max(optimizer_seconds, 1e-9), + optimizer_examples_per_second=examples_seen/max(optimizer_seconds, 1e-9), + fit_tokens_per_second=tokens_seen/max(fit_seconds, 1e-9), + fit_examples_per_second=examples_seen/max(fit_seconds, 1e-9), + pre_checkpoint_seconds=time.monotonic()-started, stopped_reason=stop, history=history, + test_used_for_selection=False, selection=("weighted_teacher_forced_objective" if options["strategy"] == "reference_ce" + else "free_running_exact_then_train_variable_leaves_then_weighted_objective")) + checkpoint = dict(schema=SCHEMA, domain_id=domain, dimension=DIMENSION, architecture=numerical.ARCHITECTURE, + codec=codec, config=options, implementation=_implementation(), parent_sha256=parent_sha, + parent_binding=deepcopy(parent["binding"]), lineage=lineage, model_state=weights, + weights_sha256=digest(weights), input_transform=transform, semantic_paths=paths, + training_manifest=manifest(training), validation_manifest=manifest(validation), training=metrics, **FALSE) + _require(len(_raw(checkpoint)) <= MAX_BYTES, "checkpoint exceeds bound") + if parent_file: + _require(parent_file[0].read_bytes() == parent_file[1], "parent changed during training") + Runtime(checkpoint) + return {"checkpoint": checkpoint, "metrics": deepcopy(metrics)} + + +class Runtime: + """Frozen shared numerical inference without target access or source parsing.""" + def __init__(self, checkpoint): + fields = {"schema", "domain_id", "dimension", "architecture", "codec", "config", "implementation", + "parent_sha256", "parent_binding", "lineage", "model_state", "weights_sha256", "input_transform", + "semantic_paths", "training_manifest", "validation_manifest", "training", *FALSE} + _require(type(checkpoint) is dict and set(checkpoint) == fields and checkpoint["schema"] == SCHEMA, + "closed source v2 checkpoint required") + _require(len(_raw(checkpoint)) <= MAX_BYTES, "checkpoint exceeds bound") + _require(checkpoint["domain_id"] in DOMAINS and type(checkpoint["dimension"]) is int and checkpoint["dimension"] == DIMENSION, + "checkpoint requires genuine 384D domain") + _require(all(checkpoint[key] is False for key in FALSE), "checkpoint cannot grant authority") + _require(checkpoint["implementation"] == _implementation(), "implementation pins differ") + _require(checkpoint["architecture"] == numerical.ARCHITECTURE, "architecture differs") + config = checkpoint["config"] + shape = {name: config[name] for name in ("hidden_size", "token_embedding_dim", "projection_width")} + for name, low, high in (("hidden_size", 8, 128), ("token_embedding_dim", 8, 64), ("projection_width", 1, 64)): + _require(type(shape[name]) is int and low <= shape[name] <= high, "invalid model shape") + _require(_config({key: value for key, value in config.items() if key not in shape}, shape) == config, + "configuration differs") + codec = checkpoint["codec"] + _require(type(codec) is dict and set(codec) == {"schema", "target_vocabulary"} and codec["schema"] == "typed-json-lexical/v1", "invalid codec") + vocabulary = codec["target_vocabulary"] + _require(type(vocabulary) is list and 4 <= len(vocabulary) <= 4096 and vocabulary[:3] == list(native.SPECIAL) + and all(type(token) is str and len(token) <= 16384 and native._TOKEN.fullmatch(token) for token in vocabulary[3:]) + and vocabulary[3:] == sorted(set(vocabulary[3:])), "invalid training vocabulary") + _require(digest(checkpoint["model_state"]) == checkpoint["weights_sha256"], "weight digest differs") + transform = checkpoint["input_transform"] + _require(type(transform) is dict and set(transform) == {"mode", "mean", "scale", "origin"} + and transform["mode"] == config["input_normalization"] and transform["origin"] == "training_only", "invalid input transform") + native._vector(transform["mean"]) + _require(type(transform["scale"]) in (int, float) and math.isfinite(transform["scale"]) and .01 <= transform["scale"] <= 1e8, + "invalid input scale") + if transform["mode"] == "none": + _require(transform["mean"] == [0.]*DIMENSION and transform["scale"] == 1., "identity transform differs") + paths = checkpoint["semantic_paths"] + _require(type(paths) is list and len(paths) <= 4096 and all(type(path) is list and len(path) <= 128 + and all(type(part) in (int, str) for part in path) for path in paths) + and paths == sorted(paths, key=_raw) and len({_raw(path) for path in paths}) == len(paths), "invalid semantic paths") + for name in ("training_manifest", "validation_manifest"): + rows = checkpoint[name] + _require(type(rows) is list and 1 <= len(rows) <= 4096, "invalid split manifest") + _require(all(type(row) is dict and set(row) == {"id", "source_sha256", "normalized_source_sha256", "embedding_sha256", "target_sha256"} + and type(row["id"]) is str and 0 < len(row["id"]) <= 256 + and all(type(row[key]) is str and native._SHA.fullmatch(row[key]) for key in row if key != "id") for row in rows), "invalid split row") + _require(len({row["id"] for row in rows}) == len(rows), "duplicate split ID") + for key in ("id", "source_sha256", "normalized_source_sha256", "embedding_sha256"): + _require(not {row[key] for row in checkpoint["training_manifest"]} & {row[key] for row in checkpoint["validation_manifest"]}, "checkpoint split overlap") + training = checkpoint["training"] + _require(type(training) is dict and type(training.get("optimizer_steps")) is int and training["optimizer_steps"] > 0 + and type(training.get("selected_epoch")) is int and 0 <= training["selected_epoch"] <= config["epochs"] + and training.get("test_used_for_selection") is False, "invalid training provenance") + _require(type(checkpoint["parent_sha256"]) is str and native._SHA.fullmatch(checkpoint["parent_sha256"]) + and type(checkpoint["parent_binding"]) is dict and checkpoint["parent_binding"].get("dimension") == DIMENSION, + "invalid parent binding") + with native._cpu(): + model = numerical._model({"dimension": DIMENSION}, codec, config) + state = checkpoint["model_state"] + _require(type(state) is dict and set(state) == set(model.state_dict()), "model tensor names differ") + model.load_state_dict({name: numerical._tensor(state[name], template, name) + for name, template in model.state_dict().items()}, strict=True) + self.checkpoint, self.model = deepcopy(checkpoint), model.eval() + + def describe(self): + return dict(schema=SCHEMA, domain_id=self.checkpoint["domain_id"], dimension=DIMENSION, + weights_sha256=self.checkpoint["weights_sha256"], strategy=self.checkpoint["config"]["strategy"], + source_text_is_neural_input=False, input_representation="source_embedding_384", + sample_memory_used=False, independent_source_fidelity_check_required=True, + zero_projection_ablation="zero_residual_branch_identity_embedding_retained", **FALSE) + + def infer(self, rows, *, weight_ablation=None): + rows = _rows(self.checkpoint["domain_id"], rows, training=False) + _require(weight_ablation in (None, "zero_projection", "zero_condition", "zero_decoder"), "unknown weight ablation") + model = self.model if weight_ablation is None else deepcopy(self.model) + config, transform = self.checkpoint["config"], self.checkpoint["input_transform"] + vocabulary = self.checkpoint["codec"]["target_vocabulary"] + reports = [] + with native._cpu() as torch, torch.inference_mode(): + if weight_ablation: + for name, parameter in model.named_parameters(): + if (weight_ablation == "zero_projection" and name.startswith("projection_")) or ( + weight_ablation == "zero_condition" and name.startswith("condition.")) or ( + weight_ablation == "zero_decoder" and name.startswith(("decoder.", "output."))): + parameter.zero_() + for offset in range(0, len(rows), config["batch_size"]): + part = rows[offset:offset+config["batch_size"]] + raw = torch.tensor([row["embedding"] for row in part], dtype=torch.float32) + data = (raw - torch.tensor(transform["mean"])) / transform["scale"] + projected, sequences, ended = _greedy(torch, model, data, config["max_target_tokens"]) + reconstructed = projected * transform["scale"] + torch.tensor(transform["mean"]) + for row, sequence, end, embedding in zip(part, sequences, ended, reconstructed): + candidate, tokens, reason = _candidate(self.checkpoint["domain_id"], sequence, end, vocabulary) + reports.append(dict(id=row["id"], source_sha256=hashlib.sha256(row["source_text"].encode()).hexdigest(), + status="unqualified_candidate" if candidate is not None else "fail_open_invalid_output", reason=reason, + candidate_ir=candidate, generated_tokens=tokens, ended=end, reconstructed_embedding=embedding.tolist(), + weight_ablation=weight_ablation, weights_sha256=self.checkpoint["weights_sha256"], + target_access=False, teacher_forcing=False, continue_planning=True, **FALSE)) + return dict(schema=SCHEMA, domain_id=self.checkpoint["domain_id"], dimension=DIMENSION, rows=reports, **FALSE) + + +def evaluate(checkpoint, rows): + gold = _rows(checkpoint["domain_id"], rows, training=True) + report = Runtime(checkpoint).infer([{key: row[key] for key in ("id", "source_text", "embedding")} for row in gold]) + correct = total = 0 + for actual, expected in zip(report["rows"], gold): + actual["exact_target"] = actual["candidate_ir"] is not None and _raw(actual["candidate_ir"]) == _raw(expected["target"]) + leaves = _leaves(actual["candidate_ir"]) if actual["candidate_ir"] is not None else {} + targets = _leaves(expected["target"]) + for path in map(tuple, checkpoint["semantic_paths"]): + total += 1 + correct += actual["candidate_ir"] is not None and _same_leaf(leaves.get(path, _MISSING), targets.get(path, _MISSING)) + return {**report, "exact_targets": sum(row["exact_target"] for row in report["rows"]), + "valid_candidates": sum(row["candidate_ir"] is not None for row in report["rows"]), + "count": len(gold), "semantic_leaf_correct": correct, "semantic_leaf_count": total, + "semantic_leaf_accuracy": correct/max(total, 1)} + + +def load_checkpoint(path, *, expected_sha256, expected_domain): + path = Path(path) + _require(path.is_file() and not path.is_symlink() and 0 < path.stat().st_size <= MAX_BYTES, "bounded regular checkpoint required") + raw = path.read_bytes() + _require(hashlib.sha256(raw).hexdigest() == expected_sha256, "checkpoint bytes differ") + checkpoint = native._parse(raw) + _require(type(checkpoint) is dict and checkpoint.get("domain_id") == expected_domain, "checkpoint belongs to another domain") + return Runtime(checkpoint) + + +__all__ = ["SCHEMA", "DOMAINS", "DIMENSION", "train", "Runtime", "evaluate", "load_checkpoint", "validate_target"] diff --git a/releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py b/releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py new file mode 100644 index 0000000000000000000000000000000000000000..e4a46f49464c84015d96f6a97d87a1a5bfa2af65 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py @@ -0,0 +1,699 @@ +"""Canonical, source-grounded Intent IR schema. + +Intent IR models what a skill is trying to accomplish and the procedure it +describes. It does not authorize or execute the procedure. Raw source bodies, +GraphRAG indexes, embeddings, model responses, and proof artifacts live in +separate content-addressed artifacts and are joined through identifiers. +""" + +from __future__ import annotations + +import re +from dataclasses import dataclass +from enum import Enum +from types import MappingProxyType +from typing import Any, Iterable, Mapping + +from ..ir_core.canonical import CollectionSchema, CollectionSemantics + + +INTENT_IR_SCHEMA_VERSION = "intent-ir/v1" +LEGACY_INTENT_IR_SCHEMA_VERSION = "intent-ir/v0.1" +_IDENTIFIER_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$") +_SHA256_RE = re.compile(r"^[0-9a-f]{64}$") + + +class IntentIRValidationError(ValueError): + """Raised when an Intent IR document violates its canonical contract.""" + + +class ReviewStatus(str, Enum): + """Human/machine review state; never infer trust from source popularity.""" + + UNREVIEWED = "unreviewed" + MACHINE_EXTRACTED = "machine_extracted" + HUMAN_REVIEWED = "human_reviewed" + TRUSTED_FIXTURE = "trusted_fixture" + QUARANTINED = "quarantined" + + +class IntentKind(str, Enum): + """Top-level semantic shape of an intent document.""" + + PROCEDURE = "procedure" + CAPABILITY = "capability" + POLICY = "policy" + DECLARATIVE = "declarative" + + +class IntentModality(str, Enum): + """Force attached to a normalized statement.""" + + ASSERTED = "asserted" + INTENDED = "intended" + REQUIRED = "required" + RECOMMENDED = "recommended" + PERMITTED = "permitted" + PROHIBITED = "prohibited" + + +class StatementKind(str, Enum): + """Role of a normalized statement in the action contract.""" + + GOAL = "goal" + PRECONDITION = "precondition" + POSTCONDITION = "postcondition" + INVARIANT = "invariant" + GUARD = "guard" + EFFECT = "effect" + ASSUMPTION = "assumption" + FAILURE = "failure" + VERIFICATION = "verification" + + +class ControlEdgeKind(str, Enum): + """Control-flow relationship between two actions.""" + + NEXT = "next" + ON_SUCCESS = "on_success" + ON_FAILURE = "on_failure" + CONDITIONAL = "conditional" + RETRY = "retry" + PARALLEL = "parallel" + JOIN = "join" + + +class NodeGrounding(str, Enum): + """Whether a semantic node is stated by evidence or derived from it.""" + + GROUNDED = "grounded" + INFERRED = "inferred" + + +# Alias retained for callers that describe this dimension as a "kind". +GroundingKind = NodeGrounding + + +# Every collection in the v1 wire contract has declared semantics. Set-like +# collections are unique and canonicalized by value or stable node identifier; +# ordered collections retain their input order and may contain repeated values. +INTENT_IR_COLLECTION_SEMANTICS: Mapping[str, CollectionSemantics] = MappingProxyType( + { + "IntentIRDocument.sources": CollectionSemantics.SET_LIKE, + "IntentIRDocument.statements": CollectionSemantics.SET_LIKE, + "IntentIRDocument.actions": CollectionSemantics.SET_LIKE, + "IntentIRDocument.control_edges": CollectionSemantics.SET_LIKE, + "IntentIRDocument.entry_action_ids": CollectionSemantics.SET_LIKE, + "IntentIRDocument.terminal_action_ids": CollectionSemantics.SET_LIKE, + "IntentIRDocument.tags": CollectionSemantics.SET_LIKE, + "IntentStatement.arguments": CollectionSemantics.ORDERED, + "IntentStatement.source_ref_ids": CollectionSemantics.SET_LIKE, + "IntentAction.object_refs": CollectionSemantics.SET_LIKE, + "IntentAction.source_ref_ids": CollectionSemantics.SET_LIKE, + "IntentAction.tool_refs": CollectionSemantics.SET_LIKE, + "IntentAction.input_refs": CollectionSemantics.SET_LIKE, + "IntentAction.output_refs": CollectionSemantics.SET_LIKE, + "IntentAction.precondition_ids": CollectionSemantics.SET_LIKE, + "IntentAction.effect_ids": CollectionSemantics.SET_LIKE, + "IntentAction.verification_ids": CollectionSemantics.SET_LIKE, + "IntentControlEdge.source_ref_ids": CollectionSemantics.SET_LIKE, + } +) + +# Machine-consumable JSON-pointer rules for the shared canonical identity +# profile. Wildcards cover each node in the set-like top-level collections. +INTENT_IR_COLLECTION_SCHEMA = CollectionSchema( + { + "/sources": CollectionSemantics.SET_LIKE, + "/statements": CollectionSemantics.SET_LIKE, + "/statements/*/arguments": CollectionSemantics.ORDERED, + "/statements/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/actions": CollectionSemantics.SET_LIKE, + "/actions/*/object_refs": CollectionSemantics.SET_LIKE, + "/actions/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/actions/*/tool_refs": CollectionSemantics.SET_LIKE, + "/actions/*/input_refs": CollectionSemantics.SET_LIKE, + "/actions/*/output_refs": CollectionSemantics.SET_LIKE, + "/actions/*/precondition_ids": CollectionSemantics.SET_LIKE, + "/actions/*/effect_ids": CollectionSemantics.SET_LIKE, + "/actions/*/verification_ids": CollectionSemantics.SET_LIKE, + "/control_edges": CollectionSemantics.SET_LIKE, + "/control_edges/*/source_ref_ids": CollectionSemantics.SET_LIKE, + "/entry_action_ids": CollectionSemantics.SET_LIKE, + "/terminal_action_ids": CollectionSemantics.SET_LIKE, + "/tags": CollectionSemantics.SET_LIKE, + }, + require_declared=True, +) + + +@dataclass(frozen=True, slots=True) +class SourceSpan: + """Character span in a separately stored source artifact.""" + + start_char: int + end_char: int + + def validate(self) -> None: + if isinstance(self.start_char, bool) or not isinstance(self.start_char, int): + raise IntentIRValidationError("SourceSpan.start_char must be an integer") + if isinstance(self.end_char, bool) or not isinstance(self.end_char, int): + raise IntentIRValidationError("SourceSpan.end_char must be an integer") + if self.start_char < 0 or self.end_char < self.start_char: + raise IntentIRValidationError("SourceSpan must satisfy 0 <= start_char <= end_char") + + def to_dict(self) -> dict[str, int]: + return {"end_char": self.end_char, "start_char": self.start_char} + + +@dataclass(frozen=True, slots=True) +class SourceRef: + """Immutable reference to evidence used by one Intent IR document. + + ``source_uri`` identifies the original source when available, while + ``container_uri`` identifies the pinned corpus artifact that supplied the + bytes. ``content_sha256`` always binds the exact normalized source body. + """ + + ref_id: str + source_uri: str + source_id: str + source_revision: str + content_sha256: str + container_uri: str = "" + container_sha256: str = "" + content_cid: str = "" + license_expression: str = "" + review_status: ReviewStatus = ReviewStatus.UNREVIEWED + span: SourceSpan | None = None + + def validate(self) -> None: + _validate_identifier("SourceRef.ref_id", self.ref_id) + _validate_enum("SourceRef.review_status", self.review_status, ReviewStatus) + for name in ("source_uri", "source_id", "source_revision"): + _validate_non_empty_string(f"SourceRef.{name}", getattr(self, name)) + for name in ( + "container_uri", + "content_cid", + "license_expression", + ): + _validate_string(f"SourceRef.{name}", getattr(self, name)) + _validate_sha256("SourceRef.content_sha256", self.content_sha256) + _validate_string("SourceRef.container_sha256", self.container_sha256) + if self.container_sha256: + _validate_sha256("SourceRef.container_sha256", self.container_sha256) + if self.span is not None and not isinstance(self.span, SourceSpan): + raise IntentIRValidationError("SourceRef.span must be a SourceSpan or None") + if self.span is not None: + self.span.validate() + + def to_dict(self) -> dict[str, Any]: + return { + "container_sha256": self.container_sha256, + "container_uri": self.container_uri, + "content_cid": self.content_cid, + "content_sha256": self.content_sha256, + "license_expression": self.license_expression, + "ref_id": self.ref_id, + "review_status": self.review_status.value, + "source_id": self.source_id, + "source_revision": self.source_revision, + "source_uri": self.source_uri, + "span": self.span.to_dict() if self.span else None, + } + + +@dataclass(frozen=True, slots=True) +class IntentStatement: + """One normalized, source-grounded semantic statement.""" + + statement_id: str + kind: StatementKind + modality: IntentModality + normalized_text: str + source_ref_ids: tuple[str, ...] + predicate: str = "" + arguments: tuple[str, ...] = () + confidence: float = 1.0 + review_status: ReviewStatus = ReviewStatus.MACHINE_EXTRACTED + grounding: NodeGrounding = NodeGrounding.GROUNDED + + def validate(self) -> None: + _validate_identifier("IntentStatement.statement_id", self.statement_id) + _validate_enum("IntentStatement.kind", self.kind, StatementKind) + _validate_enum("IntentStatement.modality", self.modality, IntentModality) + _validate_enum("IntentStatement.review_status", self.review_status, ReviewStatus) + _validate_enum("IntentStatement.grounding", self.grounding, NodeGrounding) + _validate_non_empty_string( + f"IntentStatement {self.statement_id!r}.normalized_text", + self.normalized_text, + ) + if self.grounding is NodeGrounding.GROUNDED and not self.source_ref_ids: + raise IntentIRValidationError( + f"Grounded IntentStatement {self.statement_id!r} requires source_ref_ids" + ) + _validate_confidence(f"IntentStatement {self.statement_id!r}.confidence", self.confidence) + _validate_string(f"IntentStatement {self.statement_id!r}.predicate", self.predicate) + if self.predicate and not _IDENTIFIER_RE.fullmatch(self.predicate): + raise IntentIRValidationError( + f"IntentStatement {self.statement_id!r}.predicate is not a stable identifier" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "arguments": list(self.arguments), + "confidence": self.confidence, + "grounding": self.grounding.value, + "kind": self.kind.value, + "modality": self.modality.value, + "normalized_text": self.normalized_text, + "predicate": self.predicate, + "review_status": self.review_status.value, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "statement_id": self.statement_id, + } + + +@dataclass(frozen=True, slots=True) +class IntentAction: + """One action node in an intent procedure.""" + + action_id: str + actor: str + verb: str + object_refs: tuple[str, ...] + source_ref_ids: tuple[str, ...] + tool_refs: tuple[str, ...] = () + input_refs: tuple[str, ...] = () + output_refs: tuple[str, ...] = () + precondition_ids: tuple[str, ...] = () + effect_ids: tuple[str, ...] = () + verification_ids: tuple[str, ...] = () + grounding: NodeGrounding = NodeGrounding.GROUNDED + + def validate(self) -> None: + _validate_identifier("IntentAction.action_id", self.action_id) + _validate_enum("IntentAction.grounding", self.grounding, NodeGrounding) + _validate_non_empty_string(f"IntentAction {self.action_id!r}.actor", self.actor) + _validate_non_empty_string(f"IntentAction {self.action_id!r}.verb", self.verb) + if self.grounding is NodeGrounding.GROUNDED and not self.source_ref_ids: + raise IntentIRValidationError( + f"Grounded IntentAction {self.action_id!r} requires source_ref_ids" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "action_id": self.action_id, + "actor": self.actor, + "effect_ids": sorted(set(self.effect_ids)), + "grounding": self.grounding.value, + "input_refs": sorted(set(self.input_refs)), + "object_refs": sorted(set(self.object_refs)), + "output_refs": sorted(set(self.output_refs)), + "precondition_ids": sorted(set(self.precondition_ids)), + "source_ref_ids": sorted(set(self.source_ref_ids)), + "tool_refs": sorted(set(self.tool_refs)), + "verb": self.verb, + "verification_ids": sorted(set(self.verification_ids)), + } + + +@dataclass(frozen=True, slots=True) +class IntentControlEdge: + """Directed control-flow edge between action nodes.""" + + edge_id: str + source_action_id: str + target_action_id: str + kind: ControlEdgeKind = ControlEdgeKind.NEXT + guard_statement_id: str = "" + source_ref_ids: tuple[str, ...] = () + grounding: NodeGrounding = NodeGrounding.GROUNDED + + def validate(self) -> None: + _validate_identifier("IntentControlEdge.edge_id", self.edge_id) + _validate_enum("IntentControlEdge.kind", self.kind, ControlEdgeKind) + _validate_enum("IntentControlEdge.grounding", self.grounding, NodeGrounding) + _validate_identifier("IntentControlEdge.source_action_id", self.source_action_id) + _validate_identifier("IntentControlEdge.target_action_id", self.target_action_id) + _validate_string("IntentControlEdge.guard_statement_id", self.guard_statement_id) + if self.guard_statement_id: + _validate_identifier( + "IntentControlEdge.guard_statement_id", + self.guard_statement_id, + ) + if ( + self.source_action_id == self.target_action_id + and self.kind is not ControlEdgeKind.RETRY + ): + raise IntentIRValidationError( + f"IntentControlEdge {self.edge_id!r} self-cycle must be a retry" + ) + if self.grounding is NodeGrounding.GROUNDED and not self.source_ref_ids: + raise IntentIRValidationError( + f"Grounded IntentControlEdge {self.edge_id!r} requires source_ref_ids" + ) + + def to_dict(self) -> dict[str, Any]: + return { + "edge_id": self.edge_id, + "guard_statement_id": self.guard_statement_id, + "grounding": self.grounding.value, + "kind": self.kind.value, + "source_action_id": self.source_action_id, + "source_ref_ids": sorted(set(self.source_ref_ids)), + "target_action_id": self.target_action_id, + } + + +@dataclass(frozen=True, slots=True) +class IntentIRDocument: + """Canonical semantic IR for one skill or source-grounded intent.""" + + document_id: str + title: str + intent_kind: IntentKind + sources: tuple[SourceRef, ...] + statements: tuple[IntentStatement, ...] + actions: tuple[IntentAction, ...] = () + control_edges: tuple[IntentControlEdge, ...] = () + entry_action_ids: tuple[str, ...] = () + terminal_action_ids: tuple[str, ...] = () + tags: tuple[str, ...] = () + schema_version: str = INTENT_IR_SCHEMA_VERSION + + def validate(self) -> None: + validate_intent_ir(self) + + def to_dict(self) -> dict[str, Any]: + return { + "actions": [ + item.to_dict() for item in sorted(self.actions, key=lambda item: item.action_id) + ], + "control_edges": [ + item.to_dict() for item in sorted(self.control_edges, key=lambda item: item.edge_id) + ], + "document_id": self.document_id, + "entry_action_ids": sorted(set(self.entry_action_ids)), + "intent_kind": self.intent_kind.value, + "schema_version": self.schema_version, + "sources": [ + item.to_dict() for item in sorted(self.sources, key=lambda item: item.ref_id) + ], + "statements": [ + item.to_dict() + for item in sorted(self.statements, key=lambda item: item.statement_id) + ], + "tags": sorted(set(self.tags)), + "terminal_action_ids": sorted(set(self.terminal_action_ids)), + "title": self.title, + } + + +def validate_intent_ir( + document: IntentIRDocument | Mapping[str, Any], +) -> IntentIRDocument: + """Validate and return an :class:`IntentIRDocument`. + + Mappings must pass through :mod:`intent_ir.decoder`; accepting them here + would let untrusted JSON bypass exact field and type validation. + """ + + if not isinstance(document, IntentIRDocument): + raise IntentIRValidationError("Intent IR mappings require an explicit versioned decoder") + if document.schema_version != INTENT_IR_SCHEMA_VERSION: + raise IntentIRValidationError( + f"Unsupported Intent IR schema_version: {document.schema_version!r}" + ) + _validate_identifier("IntentIRDocument.document_id", document.document_id) + _validate_enum("IntentIRDocument.intent_kind", document.intent_kind, IntentKind) + _validate_non_empty_string("IntentIRDocument.title", document.title) + if not document.sources: + raise IntentIRValidationError("IntentIRDocument.sources must not be empty") + if not document.statements: + raise IntentIRValidationError("IntentIRDocument.statements must not be empty") + + _validate_record_collection("IntentIRDocument.sources", document.sources, SourceRef) + _validate_record_collection("IntentIRDocument.statements", document.statements, IntentStatement) + _validate_record_collection("IntentIRDocument.actions", document.actions, IntentAction) + _validate_record_collection( + "IntentIRDocument.control_edges", + document.control_edges, + IntentControlEdge, + ) + _require_unique((item.ref_id for item in document.sources), "source ref") + _require_unique((item.statement_id for item in document.statements), "statement") + _require_unique((item.action_id for item in document.actions), "action") + _require_unique((item.edge_id for item in document.control_edges), "control edge") + _validate_document_collections(document) + + for source in document.sources: + source.validate() + for statement in document.statements: + statement.validate() + for action in document.actions: + action.validate() + for edge in document.control_edges: + edge.validate() + + source_ids = {item.ref_id for item in document.sources} + statements = {item.statement_id: item for item in document.statements} + action_ids = {item.action_id for item in document.actions} + + for statement in document.statements: + _require_known_refs( + statement.source_ref_ids, + source_ids, + f"IntentStatement {statement.statement_id!r}.source_ref_ids", + ) + for action in document.actions: + _require_known_refs( + action.source_ref_ids, + source_ids, + f"IntentAction {action.action_id!r}.source_ref_ids", + ) + _require_statement_kinds( + action.precondition_ids, + statements, + {StatementKind.PRECONDITION, StatementKind.GUARD, StatementKind.ASSUMPTION}, + f"IntentAction {action.action_id!r}.precondition_ids", + ) + _require_statement_kinds( + action.effect_ids, + statements, + {StatementKind.EFFECT, StatementKind.POSTCONDITION}, + f"IntentAction {action.action_id!r}.effect_ids", + ) + _require_statement_kinds( + action.verification_ids, + statements, + {StatementKind.VERIFICATION, StatementKind.INVARIANT}, + f"IntentAction {action.action_id!r}.verification_ids", + ) + for edge in document.control_edges: + _require_known_refs( + (edge.source_action_id, edge.target_action_id), + action_ids, + f"IntentControlEdge {edge.edge_id!r}", + ) + _require_known_refs( + edge.source_ref_ids, + source_ids, + f"IntentControlEdge {edge.edge_id!r}.source_ref_ids", + ) + if edge.guard_statement_id: + _require_statement_kinds( + (edge.guard_statement_id,), + statements, + {StatementKind.GUARD, StatementKind.PRECONDITION}, + f"IntentControlEdge {edge.edge_id!r}.guard_statement_id", + ) + + _require_known_refs( + document.entry_action_ids, + action_ids, + "IntentIRDocument.entry_action_ids", + ) + _require_known_refs( + document.terminal_action_ids, + action_ids, + "IntentIRDocument.terminal_action_ids", + ) + if document.intent_kind is IntentKind.PROCEDURE: + if not document.actions: + raise IntentIRValidationError("Procedure Intent IR requires at least one action") + if not document.entry_action_ids or not document.terminal_action_ids: + raise IntentIRValidationError( + "Procedure Intent IR requires entry_action_ids and terminal_action_ids" + ) + if not any(statement.kind is StatementKind.GOAL for statement in document.statements): + raise IntentIRValidationError("IntentIRDocument requires at least one goal statement") + return document + + +def _validate_document_collections(document: IntentIRDocument) -> None: + """Enforce the immutable and declared collection contract.""" + + _require_tuple("IntentIRDocument.sources", document.sources) + _require_tuple("IntentIRDocument.statements", document.statements) + _require_tuple("IntentIRDocument.actions", document.actions) + _require_tuple("IntentIRDocument.control_edges", document.control_edges) + + set_collections: tuple[tuple[str, tuple[Any, ...]], ...] = ( + ("IntentIRDocument.entry_action_ids", document.entry_action_ids), + ("IntentIRDocument.terminal_action_ids", document.terminal_action_ids), + ("IntentIRDocument.tags", document.tags), + ) + for statement in document.statements: + _require_tuple( + f"IntentStatement {statement.statement_id!r}.arguments", + statement.arguments, + ) + _validate_string_items( + f"IntentStatement {statement.statement_id!r}.arguments", + statement.arguments, + ) + set_collections += ( + ( + f"IntentStatement {statement.statement_id!r}.source_ref_ids", + statement.source_ref_ids, + ), + ) + for action in document.actions: + for field_name in ( + "object_refs", + "source_ref_ids", + "tool_refs", + "input_refs", + "output_refs", + "precondition_ids", + "effect_ids", + "verification_ids", + ): + set_collections += ( + ( + f"IntentAction {action.action_id!r}.{field_name}", + getattr(action, field_name), + ), + ) + for edge in document.control_edges: + set_collections += ( + ( + f"IntentControlEdge {edge.edge_id!r}.source_ref_ids", + edge.source_ref_ids, + ), + ) + + for name, values in set_collections: + _require_tuple(name, values) + _validate_string_items(name, values) + _require_unique(values, f"{name} member") + + +def _validate_record_collection(name: str, value: Any, item_type: type[Any]) -> None: + _require_tuple(name, value) + for index, item in enumerate(value): + if not isinstance(item, item_type): + raise IntentIRValidationError(f"{name}[{index}] must be a {item_type.__name__}") + + +def _validate_identifier(name: str, value: str) -> None: + if not isinstance(value, str) or not _IDENTIFIER_RE.fullmatch(value): + raise IntentIRValidationError(f"{name} is not a stable identifier") + + +def _validate_string(name: str, value: Any) -> None: + if not isinstance(value, str): + raise IntentIRValidationError(f"{name} must be a string") + + +def _validate_non_empty_string(name: str, value: Any) -> None: + _validate_string(name, value) + if not value.strip(): + raise IntentIRValidationError(f"{name} must not be empty") + + +def _validate_string_items(name: str, values: Iterable[Any]) -> None: + for index, value in enumerate(values): + _validate_non_empty_string(f"{name}[{index}]", value) + + +def _require_tuple(name: str, value: Any) -> None: + if not isinstance(value, tuple): + raise IntentIRValidationError( + f"{name} must be an immutable tuple with " + f"{INTENT_IR_COLLECTION_SEMANTICS.get(name, 'declared')} semantics" + ) + + +def _validate_sha256(name: str, value: str) -> None: + if not isinstance(value, str) or not _SHA256_RE.fullmatch(value): + raise IntentIRValidationError(f"{name} must be a lowercase 64-character SHA-256") + + +def _validate_enum(name: str, value: Any, enum_type: type[Enum]) -> None: + if not isinstance(value, enum_type): + raise IntentIRValidationError(f"{name} must be a {enum_type.__name__} value") + + +def _validate_confidence(name: str, value: float) -> None: + if isinstance(value, bool) or not isinstance(value, (int, float)): + raise IntentIRValidationError(f"{name} must be numeric") + if not 0.0 <= float(value) <= 1.0: + raise IntentIRValidationError(f"{name} must be between 0 and 1") + + +def _require_unique(values: Iterable[str], label: str) -> None: + seen: set[str] = set() + for value in values: + if value in seen: + raise IntentIRValidationError(f"Duplicate {label} id: {value}") + seen.add(value) + + +def _require_known_refs(values: Iterable[str], known: set[str], label: str) -> None: + missing = sorted({value for value in values if value not in known}) + if missing: + raise IntentIRValidationError(f"{label} references unknown ids: {', '.join(missing)}") + + +def _require_statement_kinds( + values: Iterable[str], + statements: Mapping[str, IntentStatement], + allowed: set[StatementKind], + label: str, +) -> None: + _require_known_refs(values, set(statements), label) + invalid = sorted( + statement_id for statement_id in values if statements[statement_id].kind not in allowed + ) + if invalid: + allowed_values = ", ".join(sorted(item.value for item in allowed)) + raise IntentIRValidationError( + f"{label} has incompatible statement kinds for {', '.join(invalid)}; " + f"allowed: {allowed_values}" + ) + + +__all__ = [ + "CollectionSemantics", + "INTENT_IR_COLLECTION_SCHEMA", + "INTENT_IR_SCHEMA_VERSION", + "INTENT_IR_COLLECTION_SEMANTICS", + "LEGACY_INTENT_IR_SCHEMA_VERSION", + "ControlEdgeKind", + "GroundingKind", + "IntentAction", + "IntentControlEdge", + "IntentIRDocument", + "IntentIRValidationError", + "IntentKind", + "IntentModality", + "IntentStatement", + "NodeGrounding", + "ReviewStatus", + "SourceRef", + "SourceSpan", + "StatementKind", + "validate_intent_ir", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py b/releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py new file mode 100644 index 0000000000000000000000000000000000000000..6ee3da24d699e94a9a7bfb00fce8ce5e726b9bc6 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py @@ -0,0 +1,1017 @@ +"""Immutable, declaration-only Security IR v1. + +The records in this module describe a security model. Verification attempts, +solver verdicts, runtime traces, counterexamples, and release decisions are +deliberately not fields of :class:`SecurityIR`; those are observations about a +declaration and must bind its identity from a separate result record. +""" + +from __future__ import annotations + +import re +from collections.abc import Mapping, Sequence +from dataclasses import dataclass, field +from enum import Enum +from types import MappingProxyType +from typing import Any, ClassVar, Final + +from ..ir_core.canonical import ( + CollectionSchema, + CollectionSemantics, + canonical_json_bytes, +) +from ..ir_core.identity import CanonicalIdentity, canonical_identity +from ..ir_core.provenance import ( + ProvenanceValidationError, + freeze_json, + freeze_json_mapping, + thaw_json, +) + + +SECURITY_IR_SCHEMA_VERSION: Final = "security-ir/v1" +SECURITY_IR_V1_SCHEMA_VERSION: Final = SECURITY_IR_SCHEMA_VERSION +SECURITY_IR_IDENTITY_DOMAIN: Final = "security-ir" +_ID_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$") +_SHA256_RE = re.compile(r"^[0-9a-f]{64}$") + + +class SecurityIRValidationError(ValueError): + """Raised when a Security IR declaration is malformed.""" + + +class PolicyEffect(str, Enum): + """The declarative effect of a security policy.""" + + ALLOW = "allow" + DENY = "deny" + REQUIRE = "require" + AUDIT = "audit" + UNSPECIFIED = "unspecified" + + +def _text(value: Any, name: str, *, allow_empty: bool = False) -> str: + if not isinstance(value, str): + raise SecurityIRValidationError(f"{name} must be a string") + if not allow_empty and not value.strip(): + raise SecurityIRValidationError(f"{name} must be a non-empty string") + if value != value.strip(): + raise SecurityIRValidationError(f"{name} must not have surrounding whitespace") + return value + + +def _identifier(value: Any, name: str) -> str: + normalized = _text(value, name) + if not _ID_RE.fullmatch(normalized): + raise SecurityIRValidationError(f"{name} is not a stable identifier") + return normalized + + +def _ids(values: Sequence[str] | None, name: str) -> tuple[str, ...]: + if values is None: + return () + if isinstance(values, (str, bytes, bytearray)) or not isinstance(values, Sequence): + raise SecurityIRValidationError(f"{name} must be a sequence") + result = tuple(_identifier(value, name) for value in values) + if len(result) != len(set(result)): + raise SecurityIRValidationError(f"{name} values must be unique") + return result + + +def _attributes(value: Mapping[str, Any] | None) -> Mapping[str, Any]: + try: + return freeze_json_mapping(value) + except ProvenanceValidationError as exc: + raise SecurityIRValidationError(str(exc)) from exc + + +def _payload(value: Any) -> Any: + try: + return freeze_json(value) + except ProvenanceValidationError as exc: + raise SecurityIRValidationError(str(exc)) from exc + + +def _as_mapping(value: Any, name: str) -> Mapping[str, Any]: + if not isinstance(value, Mapping): + raise SecurityIRValidationError(f"{name} must be a mapping") + return value + + +def _known_fields(value: Mapping[str, Any], allowed: frozenset[str], name: str) -> None: + unknown = sorted(set(value) - allowed) + if unknown: + raise SecurityIRValidationError(f"unknown {name} field(s): {', '.join(unknown)}") + + +@dataclass(frozen=True, slots=True) +class SecuritySource: + """A typed reference to source/evidence bytes outside the declaration.""" + + source_id: str + uri: str + revision: str = "" + content_sha256: str = "" + review_status: str = "unreviewed" + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "source_id", _identifier(self.source_id, "source_id")) + object.__setattr__(self, "uri", _text(self.uri, "uri")) + object.__setattr__(self, "revision", _text(self.revision, "revision", allow_empty=True)) + if self.content_sha256 and not _SHA256_RE.fullmatch(self.content_sha256): + raise SecurityIRValidationError("content_sha256 must be a lowercase SHA-256 hex digest") + object.__setattr__(self, "review_status", _text(self.review_status, "review_status")) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return { + "attributes": thaw_json(self.attributes), + "content_sha256": self.content_sha256, + "review_status": self.review_status, + "revision": self.revision, + "source_id": self.source_id, + "uri": self.uri, + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "SecuritySource": + value = _as_mapping(value, "source") + _known_fields( + value, + frozenset( + { + "source_id", + "uri", + "revision", + "content_sha256", + "review_status", + "attributes", + } + ), + "source", + ) + return cls( + source_id=value.get("source_id", ""), + uri=value.get("uri", ""), + revision=value.get("revision", ""), + content_sha256=value.get("content_sha256", ""), + review_status=value.get("review_status", "unreviewed"), + attributes=value.get("attributes", {}), + ) + + +@dataclass(frozen=True, slots=True) +class Principal: + """An actor that may hold roles or exercise authority.""" + + principal_id: str + kind: str = "unspecified" + role_ids: tuple[str, ...] = () + trust_zone_ids: tuple[str, ...] = () + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "principal_id", _identifier(self.principal_id, "principal_id")) + object.__setattr__(self, "kind", _text(self.kind, "principal kind")) + for name in ("role_ids", "trust_zone_ids", "source_ids"): + object.__setattr__(self, name, _ids(getattr(self, name), name)) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict( + self, + "principal_id", + "kind", + "role_ids", + "trust_zone_ids", + "source_ids", + ) + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "Principal": + return _record_from_dict(cls, value, "principal_id") + + +@dataclass(frozen=True, slots=True) +class Asset: + """A security-relevant unit of value or protected information.""" + + asset_id: str + kind: str = "unspecified" + symbol: str = "" + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "asset_id", _identifier(self.asset_id, "asset_id")) + object.__setattr__(self, "kind", _text(self.kind, "asset kind")) + object.__setattr__(self, "symbol", _text(self.symbol, "asset symbol", allow_empty=True)) + object.__setattr__(self, "source_ids", _ids(self.source_ids, "source_ids")) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict(self, "asset_id", "kind", "symbol", "source_ids") + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "Asset": + return _record_from_dict(cls, value, "asset_id") + + +@dataclass(frozen=True, slots=True) +class TrustZone: + """A boundary inside which a declared trust posture applies.""" + + trust_zone_id: str + name: str + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__( + self, + "trust_zone_id", + _identifier(self.trust_zone_id, "trust_zone_id"), + ) + object.__setattr__(self, "name", _text(self.name, "trust zone name")) + object.__setattr__(self, "source_ids", _ids(self.source_ids, "source_ids")) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict(self, "trust_zone_id", "name", "source_ids") + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "TrustZone": + return _record_from_dict(cls, value, "trust_zone_id") + + +@dataclass(frozen=True, slots=True) +class Channel: + """A declared communication or data-flow channel.""" + + channel_id: str + source_node_id: str + target_node_id: str + protocol: str = "unspecified" + trust_zone_ids: tuple[str, ...] = () + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + for name in ("channel_id", "source_node_id", "target_node_id"): + object.__setattr__(self, name, _identifier(getattr(self, name), name)) + object.__setattr__(self, "protocol", _text(self.protocol, "channel protocol")) + object.__setattr__(self, "trust_zone_ids", _ids(self.trust_zone_ids, "trust_zone_ids")) + object.__setattr__(self, "source_ids", _ids(self.source_ids, "source_ids")) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict( + self, + "channel_id", + "source_node_id", + "target_node_id", + "protocol", + "trust_zone_ids", + "source_ids", + ) + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "Channel": + return _record_from_dict( + cls, value, "channel_id", required=("source_node_id", "target_node_id") + ) + + +@dataclass(frozen=True, slots=True) +class Resource: + """A protected system resource, account, wallet, service, or entity.""" + + resource_id: str + kind: str = "unspecified" + owner_principal_ids: tuple[str, ...] = () + asset_ids: tuple[str, ...] = () + trust_zone_ids: tuple[str, ...] = () + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "resource_id", _identifier(self.resource_id, "resource_id")) + object.__setattr__(self, "kind", _text(self.kind, "resource kind")) + for name in ( + "owner_principal_ids", + "asset_ids", + "trust_zone_ids", + "source_ids", + ): + object.__setattr__(self, name, _ids(getattr(self, name), name)) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict( + self, + "resource_id", + "kind", + "owner_principal_ids", + "asset_ids", + "trust_zone_ids", + "source_ids", + ) + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "Resource": + return _record_from_dict(cls, value, "resource_id") + + +@dataclass(frozen=True, slots=True) +class Policy: + """A declarative security decision rule.""" + + policy_id: str + name: str + effect: PolicyEffect = PolicyEffect.UNSPECIFIED + principal_ids: tuple[str, ...] = () + resource_ids: tuple[str, ...] = () + channel_ids: tuple[str, ...] = () + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "policy_id", _identifier(self.policy_id, "policy_id")) + object.__setattr__(self, "name", _text(self.name, "policy name")) + try: + effect = ( + self.effect if isinstance(self.effect, PolicyEffect) else PolicyEffect(self.effect) + ) + except (TypeError, ValueError) as exc: + raise SecurityIRValidationError(f"unsupported policy effect: {self.effect!r}") from exc + object.__setattr__(self, "effect", effect) + for name in ("principal_ids", "resource_ids", "channel_ids", "source_ids"): + object.__setattr__(self, name, _ids(getattr(self, name), name)) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + result = _record_dict( + self, + "policy_id", + "name", + "principal_ids", + "resource_ids", + "channel_ids", + "source_ids", + ) + result["effect"] = self.effect.value + return result + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "Policy": + return _record_from_dict(cls, value, "policy_id", required=("name",)) + + +@dataclass(frozen=True, slots=True) +class StateTransition: + """One declarative transition in a state machine.""" + + source_state: str + target_state: str + event: str + guard: str = "" + effect: str = "" + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + for name in ("source_state", "target_state", "event"): + object.__setattr__(self, name, _text(getattr(self, name), name)) + for name in ("guard", "effect"): + object.__setattr__(self, name, _text(getattr(self, name), name, allow_empty=True)) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return { + "attributes": thaw_json(self.attributes), + "effect": self.effect, + "event": self.event, + "guard": self.guard, + "source_state": self.source_state, + "target_state": self.target_state, + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "StateTransition": + value = _as_mapping(value, "state transition") + _known_fields( + value, + frozenset( + { + "source_state", + "target_state", + "event", + "guard", + "effect", + "attributes", + } + ), + "state transition", + ) + return cls( + source_state=value.get("source_state", ""), + target_state=value.get("target_state", ""), + event=value.get("event", ""), + guard=value.get("guard", ""), + effect=value.get("effect", ""), + attributes=value.get("attributes", {}), + ) + + +@dataclass(frozen=True, slots=True) +class StateMachine: + """A finite-state declaration; no execution history is stored here.""" + + state_machine_id: str + states: tuple[str, ...] + initial_state: str = "" + transitions: tuple[StateTransition, ...] = () + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__( + self, + "state_machine_id", + _identifier(self.state_machine_id, "state_machine_id"), + ) + states = tuple(_text(value, "state") for value in self.states) + if not states or len(states) != len(set(states)): + raise SecurityIRValidationError("state machine states must be non-empty and unique") + object.__setattr__(self, "states", states) + initial = _text(self.initial_state, "initial_state", allow_empty=True) + if initial and initial not in states: + raise SecurityIRValidationError("initial_state must be one of states") + object.__setattr__(self, "initial_state", initial) + transitions = tuple( + item + if isinstance(item, StateTransition) + else StateTransition.from_dict(_as_mapping(item, "state transition")) + for item in self.transitions + ) + for transition in transitions: + if transition.source_state not in states or transition.target_state not in states: + raise SecurityIRValidationError( + "state transition endpoints must be declared states" + ) + object.__setattr__(self, "transitions", transitions) + object.__setattr__(self, "source_ids", _ids(self.source_ids, "source_ids")) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return { + "attributes": thaw_json(self.attributes), + "initial_state": self.initial_state, + "source_ids": list(self.source_ids), + "state_machine_id": self.state_machine_id, + "states": list(self.states), + "transitions": [item.to_dict() for item in self.transitions], + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "StateMachine": + value = _as_mapping(value, "state machine") + _known_fields( + value, + frozenset( + { + "state_machine_id", + "states", + "initial_state", + "transitions", + "source_ids", + "attributes", + } + ), + "state machine", + ) + return cls( + state_machine_id=value.get("state_machine_id", ""), + states=tuple(value.get("states", ())), + initial_state=value.get("initial_state", ""), + transitions=tuple( + StateTransition.from_dict(item) for item in value.get("transitions", ()) + ), + source_ids=tuple(value.get("source_ids", ())), + attributes=value.get("attributes", {}), + ) + + +@dataclass(frozen=True, slots=True) +class ThreatAssumption: + """A declared premise; presence does not establish truth.""" + + assumption_id: str + statement: str + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__( + self, + "assumption_id", + _identifier(self.assumption_id, "assumption_id"), + ) + object.__setattr__(self, "statement", _text(self.statement, "statement")) + object.__setattr__(self, "source_ids", _ids(self.source_ids, "source_ids")) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict(self, "assumption_id", "statement", "source_ids") + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ThreatAssumption": + return _record_from_dict(cls, value, "assumption_id", required=("statement",)) + + +@dataclass(frozen=True, slots=True) +class SecurityClaim: + """A source-grounded security property under explicit assumptions.""" + + claim_id: str + statement: str + domain: str + severity: str = "unspecified" + assumption_ids: tuple[str, ...] = () + policy_ids: tuple[str, ...] = () + source_ids: tuple[str, ...] = () + attributes: Mapping[str, Any] = field(default_factory=dict) + + def __post_init__(self) -> None: + object.__setattr__(self, "claim_id", _identifier(self.claim_id, "claim_id")) + object.__setattr__(self, "statement", _text(self.statement, "statement")) + object.__setattr__(self, "domain", _identifier(self.domain, "claim domain")) + object.__setattr__(self, "severity", _text(self.severity, "severity")) + for name in ("assumption_ids", "policy_ids", "source_ids"): + object.__setattr__(self, name, _ids(getattr(self, name), name)) + object.__setattr__(self, "attributes", _attributes(self.attributes)) + + def to_dict(self) -> dict[str, Any]: + return _record_dict( + self, + "claim_id", + "statement", + "domain", + "severity", + "assumption_ids", + "policy_ids", + "source_ids", + ) + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "SecurityClaim": + return _record_from_dict(cls, value, "claim_id", required=("statement", "domain")) + + +@dataclass(frozen=True, slots=True) +class SecurityExtension: + """A namespaced, versioned declaration not owned by the shared vocabulary.""" + + extension_id: str + vocabulary: str + version: str + payload: Any + required: bool = False + source_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + object.__setattr__(self, "extension_id", _identifier(self.extension_id, "extension_id")) + object.__setattr__(self, "vocabulary", _identifier(self.vocabulary, "extension vocabulary")) + object.__setattr__(self, "version", _text(self.version, "extension version")) + if not isinstance(self.required, bool): + raise SecurityIRValidationError("extension required must be a boolean") + object.__setattr__(self, "payload", _payload(self.payload)) + object.__setattr__(self, "source_ids", _ids(self.source_ids, "source_ids")) + + def to_dict(self) -> dict[str, Any]: + return { + "extension_id": self.extension_id, + "payload": thaw_json(self.payload), + "required": self.required, + "source_ids": list(self.source_ids), + "version": self.version, + "vocabulary": self.vocabulary, + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "SecurityExtension": + value = _as_mapping(value, "extension") + _known_fields( + value, + frozenset( + { + "extension_id", + "vocabulary", + "version", + "payload", + "required", + "source_ids", + } + ), + "extension", + ) + return cls( + extension_id=value.get("extension_id", ""), + vocabulary=value.get("vocabulary", ""), + version=value.get("version", ""), + payload=value.get("payload"), + required=value.get("required", False), + source_ids=tuple(value.get("source_ids", ())), + ) + + +_RECORD_DEFAULTS: Mapping[type[Any], Mapping[str, Any]] = MappingProxyType( + { + Principal: { + "kind": "unspecified", + "role_ids": (), + "trust_zone_ids": (), + "source_ids": (), + }, + Asset: {"kind": "unspecified", "symbol": "", "source_ids": ()}, + TrustZone: {"source_ids": ()}, + Channel: { + "protocol": "unspecified", + "trust_zone_ids": (), + "source_ids": (), + }, + Resource: { + "kind": "unspecified", + "owner_principal_ids": (), + "asset_ids": (), + "trust_zone_ids": (), + "source_ids": (), + }, + Policy: { + "effect": PolicyEffect.UNSPECIFIED, + "principal_ids": (), + "resource_ids": (), + "channel_ids": (), + "source_ids": (), + }, + ThreatAssumption: {"source_ids": ()}, + SecurityClaim: { + "severity": "unspecified", + "assumption_ids": (), + "policy_ids": (), + "source_ids": (), + }, + } +) + + +def _record_dict(record: Any, *field_names: str) -> dict[str, Any]: + result: dict[str, Any] = {"attributes": thaw_json(record.attributes)} + for name in field_names: + value = getattr(record, name) + result[name] = list(value) if isinstance(value, tuple) else value + return result + + +def _record_from_dict( + record_type: type[Any], + value: Mapping[str, Any], + id_field: str, + *, + required: tuple[str, ...] = (), +) -> Any: + value = _as_mapping(value, record_type.__name__) + defaults = dict(_RECORD_DEFAULTS[record_type]) + allowed = frozenset({id_field, *defaults, *required, "attributes"}) + _known_fields(value, allowed, record_type.__name__) + kwargs = {id_field: value.get(id_field, ""), "attributes": value.get("attributes", {})} + for name, default in defaults.items(): + item = value.get(name, default) + kwargs[name] = tuple(item) if isinstance(default, tuple) else item + for name in required: + kwargs[name] = value.get(name, "") + return record_type(**kwargs) + + +SECURITY_IR_COLLECTION_SCHEMA = CollectionSchema( + { + "/sources": CollectionSemantics.SET_LIKE, + "/principals": CollectionSemantics.SET_LIKE, + "/principals/*/role_ids": CollectionSemantics.SET_LIKE, + "/principals/*/trust_zone_ids": CollectionSemantics.SET_LIKE, + "/principals/*/source_ids": CollectionSemantics.SET_LIKE, + "/assets": CollectionSemantics.SET_LIKE, + "/assets/*/source_ids": CollectionSemantics.SET_LIKE, + "/trust_zones": CollectionSemantics.SET_LIKE, + "/trust_zones/*/source_ids": CollectionSemantics.SET_LIKE, + "/channels": CollectionSemantics.SET_LIKE, + "/channels/*/trust_zone_ids": CollectionSemantics.SET_LIKE, + "/channels/*/source_ids": CollectionSemantics.SET_LIKE, + "/resources": CollectionSemantics.SET_LIKE, + "/resources/*/owner_principal_ids": CollectionSemantics.SET_LIKE, + "/resources/*/asset_ids": CollectionSemantics.SET_LIKE, + "/resources/*/trust_zone_ids": CollectionSemantics.SET_LIKE, + "/resources/*/source_ids": CollectionSemantics.SET_LIKE, + "/policies": CollectionSemantics.SET_LIKE, + "/policies/*/principal_ids": CollectionSemantics.SET_LIKE, + "/policies/*/resource_ids": CollectionSemantics.SET_LIKE, + "/policies/*/channel_ids": CollectionSemantics.SET_LIKE, + "/policies/*/source_ids": CollectionSemantics.SET_LIKE, + "/state_machines": CollectionSemantics.SET_LIKE, + "/state_machines/*/states": CollectionSemantics.SET_LIKE, + "/state_machines/*/transitions": CollectionSemantics.SET_LIKE, + "/state_machines/*/source_ids": CollectionSemantics.SET_LIKE, + "/assumptions": CollectionSemantics.SET_LIKE, + "/assumptions/*/source_ids": CollectionSemantics.SET_LIKE, + "/claims": CollectionSemantics.SET_LIKE, + "/claims/*/assumption_ids": CollectionSemantics.SET_LIKE, + "/claims/*/policy_ids": CollectionSemantics.SET_LIKE, + "/claims/*/source_ids": CollectionSemantics.SET_LIKE, + "/extensions": CollectionSemantics.SET_LIKE, + "/extensions/*/source_ids": CollectionSemantics.SET_LIKE, + } +) + + +@dataclass(frozen=True, slots=True) +class SecurityIR: + """An immutable Security IR declaration with dependency-stable identity.""" + + declaration_id: str + principals: tuple[Principal, ...] = () + assets: tuple[Asset, ...] = () + trust_zones: tuple[TrustZone, ...] = () + channels: tuple[Channel, ...] = () + resources: tuple[Resource, ...] = () + policies: tuple[Policy, ...] = () + state_machines: tuple[StateMachine, ...] = () + assumptions: tuple[ThreatAssumption, ...] = () + claims: tuple[SecurityClaim, ...] = () + sources: tuple[SecuritySource, ...] = () + extensions: tuple[SecurityExtension, ...] = () + schema_version: str = SECURITY_IR_SCHEMA_VERSION + + _COLLECTION_TYPES: ClassVar[Mapping[str, type[Any]]] = MappingProxyType( + { + "principals": Principal, + "assets": Asset, + "trust_zones": TrustZone, + "channels": Channel, + "resources": Resource, + "policies": Policy, + "state_machines": StateMachine, + "assumptions": ThreatAssumption, + "claims": SecurityClaim, + "sources": SecuritySource, + "extensions": SecurityExtension, + } + ) + + def __post_init__(self) -> None: + object.__setattr__( + self, + "declaration_id", + _identifier(self.declaration_id, "declaration_id"), + ) + if self.schema_version != SECURITY_IR_SCHEMA_VERSION: + raise SecurityIRValidationError( + f"unsupported Security IR schema version: {self.schema_version!r}" + ) + for name, record_type in self._COLLECTION_TYPES.items(): + values = getattr(self, name) + if isinstance(values, (str, bytes, bytearray)) or not isinstance(values, Sequence): + raise SecurityIRValidationError(f"{name} must be a sequence") + converted = tuple( + item + if isinstance(item, record_type) + else record_type.from_dict(_as_mapping(item, name)) + for item in values + ) + object.__setattr__(self, name, converted) + validate_security_ir(self) + + def to_dict(self) -> dict[str, Any]: + """Return a detached, JSON-ready declaration payload.""" + + return { + "assets": [item.to_dict() for item in self.assets], + "assumptions": [item.to_dict() for item in self.assumptions], + "channels": [item.to_dict() for item in self.channels], + "claims": [item.to_dict() for item in self.claims], + "declaration_id": self.declaration_id, + "extensions": [item.to_dict() for item in self.extensions], + "policies": [item.to_dict() for item in self.policies], + "principals": [item.to_dict() for item in self.principals], + "resources": [item.to_dict() for item in self.resources], + "schema_version": self.schema_version, + "sources": [item.to_dict() for item in self.sources], + "state_machines": [item.to_dict() for item in self.state_machines], + "trust_zones": [item.to_dict() for item in self.trust_zones], + } + + def validate(self) -> None: + """Validate this declaration against the complete v1 contract.""" + + validate_security_ir(self) + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "SecurityIR": + """Decode a strict Security IR v1 declaration.""" + + value = _as_mapping(value, "SecurityIR") + allowed = frozenset({"declaration_id", "schema_version", *cls._COLLECTION_TYPES}) + _known_fields(value, allowed, "SecurityIR") + kwargs: dict[str, Any] = { + "declaration_id": value.get("declaration_id", ""), + "schema_version": value.get("schema_version", SECURITY_IR_SCHEMA_VERSION), + } + for name, record_type in cls._COLLECTION_TYPES.items(): + raw = value.get(name, ()) + if isinstance(raw, (str, bytes, bytearray)) or not isinstance(raw, Sequence): + raise SecurityIRValidationError(f"{name} must be a sequence") + kwargs[name] = tuple(record_type.from_dict(item) for item in raw) + return cls(**kwargs) + + def canonical_bytes(self) -> bytes: + """Return canonical declaration bytes (not a verification artifact).""" + + return canonical_json_bytes(self.to_dict(), collection_schema=SECURITY_IR_COLLECTION_SCHEMA) + + def canonical_json(self) -> str: + """Return canonical declaration JSON.""" + + return self.canonical_bytes().decode("utf-8") + + @property + def identity(self) -> CanonicalIdentity: + """Return the shared fixed-profile identity for this declaration.""" + + return canonical_identity( + self.to_dict(), + domain=SECURITY_IR_IDENTITY_DOMAIN, + schema_version=self.schema_version, + collection_schema=SECURITY_IR_COLLECTION_SCHEMA, + ) + + @property + def declaration_identity(self) -> CanonicalIdentity: + """Explicit spelling emphasizing that result state is not addressed.""" + + return self.identity + + @property + def model_id(self) -> str: + """Compatibility spelling for the declaration's stable local ID.""" + + return self.declaration_id + + @property + def digest(self) -> str: + return self.identity.digest + + @property + def cid(self) -> str: + return self.identity.cid + + +def _unique(records: Sequence[Any], field_name: str, label: str) -> set[str]: + values = [getattr(item, field_name) for item in records] + if len(values) != len(set(values)): + raise SecurityIRValidationError(f"duplicate {label} identifier") + return set(values) + + +def _require_refs(values: Sequence[str], known: set[str], field_name: str) -> None: + missing = sorted(set(values) - known) + if missing: + raise SecurityIRValidationError(f"{field_name} contains unknown identifiers: {missing}") + + +def validate_security_ir(declaration: SecurityIR) -> SecurityIR: + """Validate identifiers, types, and cross-references in a declaration.""" + + if not isinstance(declaration, SecurityIR): + raise SecurityIRValidationError("declaration must be a SecurityIR") + source_ids = _unique(declaration.sources, "source_id", "source") + principal_ids = _unique(declaration.principals, "principal_id", "principal") + asset_ids = _unique(declaration.assets, "asset_id", "asset") + zone_ids = _unique(declaration.trust_zones, "trust_zone_id", "trust zone") + channel_ids = _unique(declaration.channels, "channel_id", "channel") + resource_ids = _unique(declaration.resources, "resource_id", "resource") + policy_ids = _unique(declaration.policies, "policy_id", "policy") + _unique(declaration.state_machines, "state_machine_id", "state machine") + assumption_ids = _unique(declaration.assumptions, "assumption_id", "assumption") + _unique(declaration.claims, "claim_id", "claim") + _unique(declaration.extensions, "extension_id", "extension") + + for record in ( + *declaration.principals, + *declaration.assets, + *declaration.trust_zones, + *declaration.channels, + *declaration.resources, + *declaration.policies, + *declaration.state_machines, + *declaration.assumptions, + *declaration.claims, + *declaration.extensions, + ): + _require_refs(record.source_ids, source_ids, f"{type(record).__name__}.source_ids") + for item in declaration.principals: + _require_refs( + item.trust_zone_ids, zone_ids, f"Principal {item.principal_id}.trust_zone_ids" + ) + for item in declaration.channels: + known_nodes = principal_ids | resource_ids | asset_ids | zone_ids + _require_refs( + (item.source_node_id, item.target_node_id), + known_nodes, + f"Channel {item.channel_id} endpoints", + ) + _require_refs(item.trust_zone_ids, zone_ids, f"Channel {item.channel_id}.trust_zone_ids") + for item in declaration.resources: + _require_refs( + item.owner_principal_ids, + principal_ids, + f"Resource {item.resource_id}.owner_principal_ids", + ) + _require_refs(item.asset_ids, asset_ids, f"Resource {item.resource_id}.asset_ids") + _require_refs( + item.trust_zone_ids, + zone_ids, + f"Resource {item.resource_id}.trust_zone_ids", + ) + for item in declaration.policies: + _require_refs( + item.principal_ids, + principal_ids, + f"Policy {item.policy_id}.principal_ids", + ) + _require_refs( + item.resource_ids, + resource_ids, + f"Policy {item.policy_id}.resource_ids", + ) + _require_refs(item.channel_ids, channel_ids, f"Policy {item.policy_id}.channel_ids") + for item in declaration.claims: + _require_refs( + item.assumption_ids, + assumption_ids, + f"SecurityClaim {item.claim_id}.assumption_ids", + ) + _require_refs(item.policy_ids, policy_ids, f"SecurityClaim {item.claim_id}.policy_ids") + return declaration + + +# Descriptive aliases for callers using the plan's plural vocabulary. +Assumption = ThreatAssumption +Claim = SecurityClaim +Source = SecuritySource +Extension = SecurityExtension +SecurityAsset = Asset +SecurityAssumption = ThreatAssumption +SecurityChannel = Channel +SecurityPolicy = Policy +SecurityPrincipal = Principal +SecurityResource = Resource +SecurityStateMachine = StateMachine +SecurityTrustZone = TrustZone +SecurityIRV1 = SecurityIR + + +__all__ = [ + "Asset", + "Assumption", + "Channel", + "Claim", + "Extension", + "Policy", + "PolicyEffect", + "Principal", + "Resource", + "SECURITY_IR_COLLECTION_SCHEMA", + "SECURITY_IR_IDENTITY_DOMAIN", + "SECURITY_IR_SCHEMA_VERSION", + "SECURITY_IR_V1_SCHEMA_VERSION", + "SecurityAsset", + "SecurityAssumption", + "SecurityChannel", + "SecurityClaim", + "SecurityExtension", + "SecurityIR", + "SecurityIRV1", + "SecurityIRValidationError", + "SecurityPolicy", + "SecurityPrincipal", + "SecurityResource", + "SecuritySource", + "SecurityStateMachine", + "SecurityTrustZone", + "Source", + "StateMachine", + "StateTransition", + "ThreatAssumption", + "TrustZone", + "validate_security_ir", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py b/releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py new file mode 100644 index 0000000000000000000000000000000000000000..1bf4da481ff84ccb3554ae0dd1126dfc4cbffb6b --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py @@ -0,0 +1,2820 @@ +"""Immutable contracts for the measured canonical legal round trip. + +This module is the shared boundary between the independently implemented +compiler and decompiler. It intentionally contains no parser, model, solver, +or benchmark imports. The selected implementation is evidence-bound, while +the wire contract remains open to legal vocabularies beyond the five frozen +benchmark cases. The semantic IR deliberately keeps the measured +``{"rules": [...]}`` shape so its CID is directly comparable with benchmark L1 +artifacts. Source maps and provenance travel beside that source-withheld +semantic object in compiler results, never inside decompiler requests. + +Every persistent identity is a CIDv1. DAG-shaped records use canonical +DAG-JSON; source and reconstructed text use the raw codec. Each self-addressed +record states its CID scope explicitly; notably, the parity policy hashes the +whole document with only ``policy_cid`` omitted. +""" + +from __future__ import annotations + +import json +import math +import re +from collections.abc import Mapping, Sequence +from dataclasses import dataclass, field +from enum import Enum +from importlib import resources +from types import MappingProxyType +from typing import Final, Protocol, runtime_checkable + +from ipfs_datasets_py.utils.cid_utils import ( + cid_for_bytes, + cid_for_dag_json, + validate_cid, +) + + +CANONICAL_STRUCTURED_TEXT_COMPILER_INTERFACE: Final = "CanonicalStructuredTextCompiler@1" +CANONICAL_STRUCTURED_TEXT_DECOMPILER_INTERFACE: Final = "CanonicalStructuredTextDecompiler@1" +CANONICAL_ROUNDTRIP_CONTRACTS_INTERFACE: Final = "CanonicalRoundTripContracts@1" +CANONICAL_ROUNDTRIP_IR_INTERFACE: Final = "CanonicalRoundTripIR@1" +CANONICAL_ROUNDTRIP_IR_SCHEMA_VERSION: Final = "ipfs-datasets.canonical-roundtrip-ir.v1" +CANONICAL_ROUNDTRIP_PARITY_POLICY_INTERFACE: Final = "CanonicalRoundTripParityPolicy@1" +CANONICAL_ROUNDTRIP_PARITY_POLICY_SCHEMA: Final = ( + "ipfs-datasets.semantic-roundtrip-canonical-parity-policy.v1" +) +CANONICAL_TYPED_BRIDGE_INTERFACE: Final = "CanonicalTypedBridge@1" +CANONICAL_TYPED_BRIDGE_SCHEMA_VERSION: Final = "ipfs-datasets.canonical-typed-bridge.v1" +CANONICAL_TYPED_BRIDGE_MIGRATION_INTERFACE: Final = "CanonicalTypedBridgeMigration@1" +CANONICAL_TYPED_BRIDGE_CONFORMANCE_INTERFACE: Final = "CanonicalTypedBridgeConformance@1" + +# Immutable benchmark-to-design lineage, revalidated by SRT-027. +SRT014_REPORT_CID: Final = "baguqeerakqgerwv6npdlqpgrc3bjzuxqog3hiouey3c4giw5vkdgk2jhfbpq" +SRT014_GATE_CID: Final = "baguqeeraa7vbts26rxvqujbvgvgplq4xrprcebufol5qqmstc6cbrac2rthq" +SRT014_REMEDIATION_MANIFEST_CID: Final = ( + "baguqeerarr7ebjrzd3argtdekd7er3bqrnvhuzy2ogqzfi7h5nv37dbea52a" +) +REPLACEMENT_REPORT_CID: Final = "baguqeeramdvshi4ynajkvsb72zncgcn2pgvklsglgxwea7za25lndnaf5cga" +REPLACEMENT_GATE_CID: Final = "baguqeerawhggoyrnacv74kbuq3rhpmz4jikhr3tnv5uahpxcnpghfrwfj6jq" +CANONICAL_DESIGN_GATE_CID: Final = "baguqeerab4top4ljgojms7f7p6y4ksdlivfwhyzxzhynnii4zbrfvw4mqtfq" +SELECTION_BASIS: Final = "replacement_bounded_tie_policy" +SELECTABLE_ARM_IDS: Final = ( + "typed_deontic__no_guidance__no_repair__not_applicable__deterministic", + "typed_deontic__no_guidance__selective__not_applicable__deterministic", +) +IMPLEMENTATION_REPRESENTATIVE_ARM_ID: Final = SELECTABLE_ARM_IDS[0] +IMPLEMENTATION_REPRESENTATIVE_ARM_IDENTITY_CID: Final = ( + "baguqeeraylvbngffosmvcvwowelspcdbbk5wom5itjvfanbzty4eioxsauhq" +) +TIED_SELECTIVE_ARM_IDENTITY_CID: Final = ( + "baguqeeraaslupqmtxclda2ml7ppssprxecn64wwywehq6x6tfz6vd73zr32q" +) +SELECTED_CONSTRUCTOR_INTERFACE: Final = "TypedDeonticCanonicalConstructor@1" +SELECTED_CONSTRUCTOR_ADAPTER_RAW_CID: Final = ( + "bafkreig2yeibug44tbffleyvju4zvo62thdqkpht3n2qn6guefkvbv7z2a" +) +SELECTED_REALIZER_INTERFACE: Final = "SourceWithheldCanonicalParaphraser@1" +SELECTED_REALIZER_ADAPTER_RAW_CID: Final = ( + "bafkreifrmafgdy5wajq7sepxxatwc2mnnubqt2c7kwped456vukyptfi6y" +) +SELECTED_COORDINATE_RUNNER_RAW_CID: Final = ( + "bafkreigxa4dwxkqipox36emw7m3qyd7axxb3cqwfv4ckiniewtw5ftix6u" +) + +SOURCE_WITHHELD_DECOMPILER_CONFIG: Final[Mapping[str, str]] = MappingProxyType( + { + "profile": "typed_deontic_must_paraphrase_v1", + "atom_surface": "underscore_to_space_v1", + "obligation_surface": "must", + "permission_surface": "may", + "prohibition_surface": "must not", + "temporal_position": "before_conditions", + "condition_connector": "if", + "exception_connector": "unless", + "rule_order": "canonical_rule_ir_v1", + } +) +SOURCE_WITHHELD_DECOMPILER_CONFIG_CID: Final = ( + "baguqeeratlk326nodsva4rxwm65xgnpenhcovspm7crtyd4enaqhgjciqayq" +) +SOURCE_WITHHELD_RENDERING_SPEC_CID: Final = ( + "baguqeera72pqowlkovfqvydbtk5lxc7g42o75xtfgmx7cm4vqdvnaimjpjvq" +) + +# Filled from the checked-in policy. The value is verified again at import +# boundary by ``load_parity_policy``; it is not trusted merely as a constant. +CANONICAL_PARITY_POLICY_CID: Final = "baguqeera5g5z4yvncxbn3uk4ftqmnxxmmclwpnwjpdshiy52la2o5bzdk27a" + +MAX_TEXT_CHARS: Final = 1_000_000 +MAX_ATOM_CHARS: Final = 4_096 +MAX_RULES: Final = 10_000 +MAX_QUALIFIERS_PER_FACET: Final = 1_000 +MAX_JSON_DEPTH: Final = 20 +MAX_CONFIG_BYTES: Final = 65_536 + +_CID_SCOPE: Final = "payload_without_cid_fields" +_CID_CODEC: Final = "dag-json" +_CID_RE = re.compile(r"^b[a-z2-7]{20,}$") +_FORBIDDEN_DECOMPILER_KEYS: Final = frozenset( + { + "source", + "source_body", + "source_cache", + "source_cache_key", + "source_cid", + "source_document", + "source_excerpt", + "source_hash", + "source_map", + "source_metadata", + "source_path", + "source_ref", + "source_text", + "source_uri", + "t0", + "gold", + "gold_ir", + "prior_reconstruction", + "native", + "native_ir", + "native_metadata", + "native_payload", + "native_record", + "parse", + "parse_tree", + "constructor_record", + "constructor_payload", + "compiler_record", + "compiler_payload", + "private_payload", + "hidden_fields", + } +) + + +class CanonicalContractError(ValueError): + """Raised when a canonical compiler/decompiler boundary is violated.""" + + +class OperationStatus(str, Enum): + """Terminal outcome of one compiler or decompiler request.""" + + SUCCESS = "success" + ABSTAINED = "abstained" + FAILED = "failed" + + +class CanonicalErrorCode(str, Enum): + """Stable machine-readable failure and abstention classes.""" + + INVALID_REQUEST = "invalid_request" + INVALID_IR = "invalid_ir" + UNSUPPORTED_SEMANTICS = "unsupported_semantics" + POLICY_MISMATCH = "policy_mismatch" + COMPONENT_UNAVAILABLE = "component_unavailable" + COMPONENT_FAILED = "component_failed" + SOURCE_WITHHOLDING_VIOLATION = "source_withholding_violation" + EMPTY_OUTPUT = "empty_output" + + +class DiagnosticSeverity(str, Enum): + """Severity of a source-grounded diagnostic.""" + + INFO = "info" + WARNING = "warning" + ERROR = "error" + + +class UnsupportedDisposition(str, Enum): + """Required handling for semantics outside the v1 representation.""" + + ABSTAIN = "abstain" + EXPLICIT_PARTIAL = "explicit_partial" + + +def _string( + value: object, + field: str, + *, + allow_blank: bool = False, + maximum: int = MAX_ATOM_CHARS, +) -> str: + if not isinstance(value, str): + raise CanonicalContractError(f"{field} must be a string") + if len(value) > maximum: + raise CanonicalContractError(f"{field} exceeds the {maximum} character bound") + if not allow_blank and not value.strip(): + raise CanonicalContractError(f"{field} must be nonblank") + return value + + +def _cid(value: object, field: str, *, codec: str) -> str: + try: + return validate_cid(value, codecs=(codec,)) + except (TypeError, ValueError) as exc: + raise CanonicalContractError(f"{field} must be a canonical {codec} CIDv1") from exc + + +def _cid_with_declared_codec( + value: object, + codec: object, + field: str, +) -> tuple[str, str]: + if codec not in {"raw", "dag-json"}: + raise CanonicalContractError(f"{field}_codec must be raw or dag-json") + assert isinstance(codec, str) + return _cid(value, field, codec=codec), codec + + +def _freeze_json(value: object, field: str, depth: int = 0) -> object: + if depth > MAX_JSON_DEPTH: + raise CanonicalContractError(f"{field} exceeds maximum JSON depth") + if value is None or type(value) in {str, bool, int}: + return value + if type(value) is float: + if not math.isfinite(value): + raise CanonicalContractError(f"{field} contains a non-finite number") + return value + if isinstance(value, Mapping): + frozen: dict[str, object] = {} + for key, item in value.items(): + if not isinstance(key, str): + raise CanonicalContractError(f"{field} keys must be strings") + frozen[key] = _freeze_json(item, f"{field}.{key}", depth + 1) + return MappingProxyType(frozen) + if isinstance(value, Sequence) and not isinstance(value, (str, bytes, bytearray)): + return tuple( + _freeze_json(item, f"{field}[{index}]", depth + 1) for index, item in enumerate(value) + ) + raise CanonicalContractError(f"{field} must contain only JSON values") + + +def _thaw_json(value: object) -> object: + if isinstance(value, Mapping): + return {key: _thaw_json(item) for key, item in value.items()} + if isinstance(value, tuple): + return [_thaw_json(item) for item in value] + return value + + +def _frozen_object(value: object, field: str) -> Mapping[str, object]: + if not isinstance(value, Mapping): + raise CanonicalContractError(f"{field} must be an object") + result = _freeze_json(value, field) + assert isinstance(result, Mapping) + encoded = json.dumps( + _thaw_json(result), + sort_keys=True, + separators=(",", ":"), + ensure_ascii=False, + allow_nan=False, + ).encode("utf-8") + if len(encoded) > MAX_CONFIG_BYTES: + raise CanonicalContractError(f"{field} exceeds the {MAX_CONFIG_BYTES} byte bound") + return result + + +def _string_items( + value: object, + field: str, + *, + maximum: int = MAX_QUALIFIERS_PER_FACET, +) -> tuple[str, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError(f"{field} must be a string array") + if len(value) > maximum: + raise CanonicalContractError(f"{field} exceeds the {maximum} item bound") + return tuple(sorted({_string(item, f"{field}[{index}]") for index, item in enumerate(value)})) + + +def _enum(value: object, enum_type: type[Enum], field: str) -> Enum: + try: + return enum_type(value) + except (TypeError, ValueError) as exc: + raise CanonicalContractError(f"{field} is invalid") from exc + + +def _normalized_key(key: object) -> str: + return ( + re.sub( + r"[^a-z0-9]+", + "_", + re.sub(r"(?<=[a-z0-9])(?=[A-Z])", "_", str(key).strip()), + flags=re.IGNORECASE, + ) + .strip("_") + .lower() + ) + + +def _reject_source_channels(value: object, path: str = "config") -> None: + if isinstance(value, Mapping): + for key, item in value.items(): + if _normalized_key(key) in _FORBIDDEN_DECOMPILER_KEYS: + raise CanonicalContractError(f"decompiler request may not contain {path}.{key}") + _reject_source_channels(item, f"{path}.{key}") + elif isinstance(value, Sequence) and not isinstance(value, (str, bytes, bytearray)): + for index, item in enumerate(value): + _reject_source_channels(item, f"{path}[{index}]") + + +@dataclass(frozen=True, slots=True) +class CanonicalAtomVocabulary: + """Caller-supplied open vocabulary for reproducible projection. + + This is not the benchmark fixture vocabulary. It is a general transport + contract whose values are explicit request data. It lets conformance + tests reproduce a measured projection without importing hidden case data; + automatic vocabulary inference is a different, currently unmeasured stage. + """ + + actors: tuple[str, ...] = () + actions: tuple[str, ...] = () + objects: tuple[str, ...] = () + qualifiers: tuple[str, ...] = () + + def __post_init__(self) -> None: + for name in ("actors", "actions", "objects", "qualifiers"): + object.__setattr__( + self, + name, + _string_items(getattr(self, name), f"vocabulary.{name}"), + ) + + def to_dict(self) -> dict[str, list[str]]: + return { + name: list(getattr(self, name)) + for name in ("actors", "actions", "objects", "qualifiers") + } + + @classmethod + def from_dict(cls, value: object) -> "CanonicalAtomVocabulary": + if not isinstance(value, Mapping) or set(value) != { + "actors", + "actions", + "objects", + "qualifiers", + }: + raise CanonicalContractError("atom vocabulary fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class CanonicalRule: + """One open-vocabulary rule in the v1 semantic bottleneck. + + The seven measured facets are stable, but their string values are not a + production closed vocabulary. New semantic facets require a new schema + version; a v1 implementation must report them as unsupported rather than + silently discard them. + """ + + modality: str + actor: str + action: str + object: str = "" + conditions: tuple[str, ...] = () + exceptions: tuple[str, ...] = () + temporal: tuple[str, ...] = () + + def __post_init__(self) -> None: + object.__setattr__(self, "modality", _string(self.modality, "modality")) + if self.modality not in {"O", "P", "F"}: + raise CanonicalContractError( + "modality must be O, P, or F under the measured v1 grammar" + ) + object.__setattr__(self, "actor", _string(self.actor, "actor")) + object.__setattr__(self, "action", _string(self.action, "action")) + object.__setattr__( + self, + "object", + _string(self.object, "object", allow_blank=True), + ) + for field in ("conditions", "exceptions", "temporal"): + object.__setattr__( + self, + field, + _string_items(getattr(self, field), field), + ) + + def to_dict(self) -> dict[str, object]: + """Return the exact open-vocabulary rule payload measured by SRT-026.""" + + return { + "modality": self.modality, + "actor": self.actor, + "action": self.action, + "object": self.object, + "conditions": list(self.conditions), + "exceptions": list(self.exceptions), + "temporal": list(self.temporal), + } + + @property + def rule_cid(self) -> str: + return cid_for_dag_json(self.to_dict()) + + @classmethod + def from_dict(cls, value: object) -> "CanonicalRule": + if not isinstance(value, Mapping): + raise CanonicalContractError("canonical rule must be an object") + expected = { + "modality", + "actor", + "action", + "object", + "conditions", + "exceptions", + "temporal", + } + if set(value) != expected: + raise CanonicalContractError("canonical rule fields changed") + return cls( + modality=value["modality"], # type: ignore[arg-type] + actor=value["actor"], # type: ignore[arg-type] + action=value["action"], # type: ignore[arg-type] + object=value["object"], # type: ignore[arg-type] + conditions=value["conditions"], # type: ignore[arg-type] + exceptions=value["exceptions"], # type: ignore[arg-type] + temporal=value["temporal"], # type: ignore[arg-type] + ) + + +@dataclass(frozen=True, slots=True) +class SourceMapEntry: + """Ground one semantic field in a half-open source-text character span.""" + + rule_cid: str + field_path: str + source_cid: str + start: int + end: int + attribution: str = "direct" + + def __post_init__(self) -> None: + object.__setattr__(self, "rule_cid", _cid(self.rule_cid, "rule_cid", codec="dag-json")) + object.__setattr__(self, "source_cid", _cid(self.source_cid, "source_cid", codec="raw")) + _string(self.field_path, "field_path") + _string(self.attribution, "attribution") + if ( + isinstance(self.start, bool) + or not isinstance(self.start, int) + or isinstance(self.end, bool) + or not isinstance(self.end, int) + or self.start < 0 + or self.end <= self.start + ): + raise CanonicalContractError("source-map offsets must form a nonempty half-open span") + + def to_dict(self) -> dict[str, object]: + return { + "rule_cid": self.rule_cid, + "field_path": self.field_path, + "source_cid": self.source_cid, + "start": self.start, + "end": self.end, + "attribution": self.attribution, + } + + @classmethod + def from_dict(cls, value: object) -> "SourceMapEntry": + if not isinstance(value, Mapping) or set(value) != { + "rule_cid", + "field_path", + "source_cid", + "start", + "end", + "attribution", + }: + raise CanonicalContractError("source-map entry fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class UnsupportedSemantic: + """Explicit record of meaning that v1 could not faithfully represent.""" + + code: str + message: str + disposition: UnsupportedDisposition + source_cid: str + start: int + end: int + + def __post_init__(self) -> None: + _string(self.code, "unsupported.code") + _string(self.message, "unsupported.message") + object.__setattr__( + self, + "disposition", + _enum( + self.disposition, + UnsupportedDisposition, + "unsupported.disposition", + ), + ) + object.__setattr__( + self, + "source_cid", + _cid(self.source_cid, "unsupported.source_cid", codec="raw"), + ) + if ( + isinstance(self.start, bool) + or not isinstance(self.start, int) + or isinstance(self.end, bool) + or not isinstance(self.end, int) + or self.start < 0 + or self.end <= self.start + ): + raise CanonicalContractError( + "unsupported semantic offsets must form a nonempty half-open span" + ) + + def to_dict(self) -> dict[str, object]: + return { + "code": self.code, + "message": self.message, + "disposition": self.disposition.value, + "source_cid": self.source_cid, + "start": self.start, + "end": self.end, + } + + @classmethod + def from_dict(cls, value: object) -> "UnsupportedSemantic": + if not isinstance(value, Mapping) or set(value) != { + "code", + "message", + "disposition", + "source_cid", + "start", + "end", + }: + raise CanonicalContractError("unsupported semantic fields changed") + return cls(**value) # type: ignore[arg-type] + + +def _rule_sort_key(rule: CanonicalRule) -> tuple[object, ...]: + return ( + rule.modality, + rule.actor, + rule.action, + rule.object, + rule.conditions, + rule.exceptions, + rule.temporal, + rule.rule_cid, + ) + + +@dataclass(frozen=True, slots=True) +class CanonicalRoundTripIR: + """CID-addressed semantic IR with the exact measured payload shape.""" + + rules: tuple[CanonicalRule, ...] + + def __post_init__(self) -> None: + if not isinstance(self.rules, Sequence) or isinstance(self.rules, (str, bytes, bytearray)): + raise CanonicalContractError("rules must be an array") + if not 0 < len(self.rules) <= MAX_RULES: + raise CanonicalContractError(f"rules must contain between 1 and {MAX_RULES} entries") + rules = tuple( + rule if isinstance(rule, CanonicalRule) else CanonicalRule.from_dict(rule) + for rule in self.rules + ) + object.__setattr__(self, "rules", tuple(sorted(rules, key=_rule_sort_key))) + + @property + def ir_cid(self) -> str: + return cid_for_dag_json(self.to_dict()) + + def to_dict(self) -> dict[str, object]: + return {"rules": [rule.to_dict() for rule in self.rules]} + + @classmethod + def from_dict(cls, value: object) -> "CanonicalRoundTripIR": + if not isinstance(value, Mapping): + raise CanonicalContractError("canonical IR must be an object") + if set(value) != {"rules"}: + raise CanonicalContractError("canonical IR fields changed") + return cls(rules=value["rules"]) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class CanonicalDiagnostic: + """One immutable, optionally source-grounded diagnostic.""" + + code: str + message: str + severity: DiagnosticSeverity + source_cid: str | None = None + start: int | None = None + end: int | None = None + + def __post_init__(self) -> None: + _string(self.code, "diagnostic.code") + _string(self.message, "diagnostic.message") + object.__setattr__( + self, + "severity", + _enum(self.severity, DiagnosticSeverity, "diagnostic.severity"), + ) + span_values = (self.source_cid, self.start, self.end) + if all(value is None for value in span_values): + return + if any(value is None for value in span_values): + raise CanonicalContractError( + "diagnostic source_cid/start/end must be supplied together" + ) + object.__setattr__( + self, + "source_cid", + _cid(self.source_cid, "diagnostic.source_cid", codec="raw"), + ) + if ( + isinstance(self.start, bool) + or not isinstance(self.start, int) + or isinstance(self.end, bool) + or not isinstance(self.end, int) + or self.start < 0 + or self.end <= self.start + ): + raise CanonicalContractError("diagnostic source span is invalid") + + def to_dict(self) -> dict[str, object]: + return { + "code": self.code, + "message": self.message, + "severity": self.severity.value, + "source_cid": self.source_cid, + "start": self.start, + "end": self.end, + } + + @classmethod + def from_dict(cls, value: object) -> "CanonicalDiagnostic": + if not isinstance(value, Mapping) or set(value) != { + "code", + "message", + "severity", + "source_cid", + "start", + "end", + }: + raise CanonicalContractError("diagnostic fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class CanonicalError: + """Terminal structured error returned instead of a partial artifact.""" + + code: CanonicalErrorCode + message: str + retryable: bool = False + details: Mapping[str, object] = field(default_factory=lambda: MappingProxyType({})) + + def __post_init__(self) -> None: + object.__setattr__(self, "code", _enum(self.code, CanonicalErrorCode, "error.code")) + _string(self.message, "error.message") + if not isinstance(self.retryable, bool): + raise CanonicalContractError("error.retryable must be boolean") + object.__setattr__(self, "details", _frozen_object(self.details, "error.details")) + + def to_dict(self) -> dict[str, object]: + return { + "code": self.code.value, + "message": self.message, + "retryable": self.retryable, + "details": _thaw_json(self.details), + } + + @classmethod + def from_dict(cls, value: object) -> "CanonicalError": + if not isinstance(value, Mapping) or set(value) != { + "code", + "message", + "retryable", + "details", + }: + raise CanonicalContractError("error fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class ComponentTrace: + """CID-bound attribution for one explicit compiler/decompiler component.""" + + component_id: str + component_interface: str + input_cid: str + input_codec: str + output_cid: str + output_codec: str + config_cid: str + deterministic: bool + model_receipt_cid: str | None = None + + def __post_init__(self) -> None: + _string(self.component_id, "trace.component_id") + _string(self.component_interface, "trace.component_interface") + input_cid, input_codec = _cid_with_declared_codec( + self.input_cid, + self.input_codec, + "trace.input_cid", + ) + output_cid, output_codec = _cid_with_declared_codec( + self.output_cid, + self.output_codec, + "trace.output_cid", + ) + object.__setattr__(self, "input_cid", input_cid) + object.__setattr__(self, "input_codec", input_codec) + object.__setattr__(self, "output_cid", output_cid) + object.__setattr__(self, "output_codec", output_codec) + object.__setattr__( + self, + "config_cid", + _cid(self.config_cid, "trace.config_cid", codec="dag-json"), + ) + if not isinstance(self.deterministic, bool): + raise CanonicalContractError("trace.deterministic must be boolean") + if self.model_receipt_cid is not None: + object.__setattr__( + self, + "model_receipt_cid", + _cid( + self.model_receipt_cid, + "trace.model_receipt_cid", + codec="dag-json", + ), + ) + if self.deterministic and self.model_receipt_cid is not None: + raise CanonicalContractError("deterministic trace cannot carry a model receipt") + + def to_dict(self) -> dict[str, object]: + return { + "component_id": self.component_id, + "component_interface": self.component_interface, + "input_cid": self.input_cid, + "input_codec": self.input_codec, + "output_cid": self.output_cid, + "output_codec": self.output_codec, + "config_cid": self.config_cid, + "deterministic": self.deterministic, + "model_receipt_cid": self.model_receipt_cid, + } + + @classmethod + def from_dict(cls, value: object) -> "ComponentTrace": + if not isinstance(value, Mapping) or set(value) != { + "component_id", + "component_interface", + "input_cid", + "input_codec", + "output_cid", + "output_codec", + "config_cid", + "deterministic", + "model_receipt_cid", + }: + raise CanonicalContractError("component trace fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class CompilerRequest: + """Bounded public request for structured text to canonical IR.""" + + source_text: str + request_id: str + atom_vocabulary: CanonicalAtomVocabulary + policy_cid: str = CANONICAL_PARITY_POLICY_CID + allow_explicit_partial: bool = False + config: Mapping[str, object] = field(default_factory=lambda: MappingProxyType({})) + + def __post_init__(self) -> None: + _string( + self.source_text, + "source_text", + maximum=MAX_TEXT_CHARS, + ) + _string(self.request_id, "request_id") + object.__setattr__( + self, + "policy_cid", + _cid(self.policy_cid, "policy_cid", codec="dag-json"), + ) + if self.policy_cid != CANONICAL_PARITY_POLICY_CID: + raise CanonicalContractError("compiler request policy CID changed") + if not isinstance(self.atom_vocabulary, CanonicalAtomVocabulary): + if isinstance(self.atom_vocabulary, Mapping): + object.__setattr__( + self, + "atom_vocabulary", + CanonicalAtomVocabulary.from_dict(self.atom_vocabulary), + ) + else: + raise CanonicalContractError("atom_vocabulary must be CanonicalAtomVocabulary") + if not isinstance(self.allow_explicit_partial, bool): + raise CanonicalContractError("allow_explicit_partial must be boolean") + object.__setattr__(self, "config", _frozen_object(self.config, "config")) + + @property + def source_cid(self) -> str: + return cid_for_bytes(self.source_text.encode("utf-8")) + + def identity_payload(self) -> dict[str, object]: + return { + "interface": CANONICAL_STRUCTURED_TEXT_COMPILER_INTERFACE, + "request_id": self.request_id, + "source_cid": self.source_cid, + "policy_cid": self.policy_cid, + "atom_vocabulary": self.atom_vocabulary.to_dict(), + "allow_explicit_partial": self.allow_explicit_partial, + "config": _thaw_json(self.config), + } + + @property + def request_cid(self) -> str: + return cid_for_dag_json(self.identity_payload()) + + def to_dict(self) -> dict[str, object]: + """Return the complete executable wire request with verified IDs.""" + + return { + **self.identity_payload(), + "source_text": self.source_text, + "request_cid": self.request_cid, + "request_cid_codec": "dag-json", + "request_cid_scope": "identity_payload_with_source_cid", + } + + @classmethod + def from_dict(cls, value: object) -> "CompilerRequest": + if not isinstance(value, Mapping) or set(value) != { + "interface", + "request_id", + "source_text", + "source_cid", + "policy_cid", + "atom_vocabulary", + "allow_explicit_partial", + "config", + "request_cid", + "request_cid_codec", + "request_cid_scope", + }: + raise CanonicalContractError("compiler request fields changed") + if value["interface"] != CANONICAL_STRUCTURED_TEXT_COMPILER_INTERFACE: + raise CanonicalContractError("compiler request interface changed") + if ( + value["request_cid_codec"] != "dag-json" + or value["request_cid_scope"] != "identity_payload_with_source_cid" + ): + raise CanonicalContractError("compiler request CID contract changed") + request = cls( + source_text=value["source_text"], # type: ignore[arg-type] + request_id=value["request_id"], # type: ignore[arg-type] + atom_vocabulary=CanonicalAtomVocabulary.from_dict(value["atom_vocabulary"]), + policy_cid=value["policy_cid"], # type: ignore[arg-type] + allow_explicit_partial=value[ # type: ignore[arg-type] + "allow_explicit_partial" + ], + config=value["config"], # type: ignore[arg-type] + ) + if _cid(value["source_cid"], "source_cid", codec="raw") != request.source_cid: + raise CanonicalContractError("source_cid does not match source_text") + if _cid(value["request_cid"], "request_cid", codec="dag-json") != request.request_cid: + raise CanonicalContractError("request_cid does not match compiler request") + return request + + +@dataclass(frozen=True, slots=True) +class DecompilerRequest: + """Strict source-withheld request for canonical IR to natural language.""" + + canonical_ir: CanonicalRoundTripIR + request_id: str + policy_cid: str = CANONICAL_PARITY_POLICY_CID + config: Mapping[str, object] = field(default_factory=lambda: SOURCE_WITHHELD_DECOMPILER_CONFIG) + + def __post_init__(self) -> None: + if not isinstance(self.canonical_ir, CanonicalRoundTripIR): + raise CanonicalContractError("canonical_ir must be CanonicalRoundTripIR") + _string(self.request_id, "request_id") + object.__setattr__( + self, + "policy_cid", + _cid(self.policy_cid, "policy_cid", codec="dag-json"), + ) + if self.policy_cid != CANONICAL_PARITY_POLICY_CID: + raise CanonicalContractError("decompiler request policy CID changed") + _reject_source_channels(self.config) + frozen_config = _frozen_object(self.config, "config") + if dict(frozen_config) != dict(SOURCE_WITHHELD_DECOMPILER_CONFIG): + raise CanonicalContractError( + "decompiler config must equal the measured source-withheld " + f"profile {SOURCE_WITHHELD_DECOMPILER_CONFIG_CID}" + ) + if cid_for_dag_json(dict(frozen_config)) != SOURCE_WITHHELD_DECOMPILER_CONFIG_CID: + raise CanonicalContractError( + "decompiler config CID does not match the measured profile" + ) + object.__setattr__(self, "config", frozen_config) + + def identity_payload(self) -> dict[str, object]: + return { + "interface": CANONICAL_STRUCTURED_TEXT_DECOMPILER_INTERFACE, + "request_id": self.request_id, + "canonical_ir_cid": self.canonical_ir.ir_cid, + "policy_cid": self.policy_cid, + "source_withheld": True, + "config": _thaw_json(self.config), + "config_cid": SOURCE_WITHHELD_DECOMPILER_CONFIG_CID, + "rendering_spec_cid": SOURCE_WITHHELD_RENDERING_SPEC_CID, + } + + @property + def request_cid(self) -> str: + return cid_for_dag_json(self.identity_payload()) + + def to_dict(self) -> dict[str, object]: + """Return the complete source-withheld executable wire request.""" + + return { + **self.identity_payload(), + "canonical_ir": self.canonical_ir.to_dict(), + "request_cid": self.request_cid, + "request_cid_codec": "dag-json", + "request_cid_scope": "identity_payload_with_canonical_ir_cid", + } + + @classmethod + def from_dict(cls, value: object) -> "DecompilerRequest": + if not isinstance(value, Mapping) or set(value) != { + "interface", + "request_id", + "canonical_ir", + "canonical_ir_cid", + "policy_cid", + "source_withheld", + "config", + "config_cid", + "rendering_spec_cid", + "request_cid", + "request_cid_codec", + "request_cid_scope", + }: + raise CanonicalContractError("decompiler request fields changed") + if value["interface"] != CANONICAL_STRUCTURED_TEXT_DECOMPILER_INTERFACE: + raise CanonicalContractError("decompiler request interface changed") + if value["source_withheld"] is not True: + raise CanonicalContractError("decompiler request is not source-withheld") + if value["config_cid"] != SOURCE_WITHHELD_DECOMPILER_CONFIG_CID: + raise CanonicalContractError("decompiler config CID changed") + if value["rendering_spec_cid"] != SOURCE_WITHHELD_RENDERING_SPEC_CID: + raise CanonicalContractError("decompiler rendering spec CID changed") + if ( + value["request_cid_codec"] != "dag-json" + or value["request_cid_scope"] != "identity_payload_with_canonical_ir_cid" + ): + raise CanonicalContractError("decompiler request CID contract changed") + canonical_ir = CanonicalRoundTripIR.from_dict(value["canonical_ir"]) + if ( + _cid( + value["canonical_ir_cid"], + "canonical_ir_cid", + codec="dag-json", + ) + != canonical_ir.ir_cid + ): + raise CanonicalContractError("canonical_ir_cid does not match canonical_ir") + request = cls( + canonical_ir=canonical_ir, + request_id=value["request_id"], # type: ignore[arg-type] + policy_cid=value["policy_cid"], # type: ignore[arg-type] + config=value["config"], # type: ignore[arg-type] + ) + if _cid(value["request_cid"], "request_cid", codec="dag-json") != request.request_cid: + raise CanonicalContractError("request_cid does not match decompiler request") + return request + + +def _diagnostics(value: object) -> tuple[CanonicalDiagnostic, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError("diagnostics must be an array") + return tuple( + item if isinstance(item, CanonicalDiagnostic) else CanonicalDiagnostic.from_dict(item) + for item in value + ) + + +def _traces(value: object) -> tuple[ComponentTrace, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError("component_trace must be an array") + return tuple( + item if isinstance(item, ComponentTrace) else ComponentTrace.from_dict(item) + for item in value + ) + + +@dataclass(frozen=True, slots=True) +class CompilerResult: + """Terminal compiler result; partial meaning can never be silent.""" + + status: OperationStatus + request_cid: str + canonical_ir: CanonicalRoundTripIR | None = None + source_map: tuple[SourceMapEntry, ...] = () + unsupported_semantics: tuple[UnsupportedSemantic, ...] = () + provenance: Mapping[str, object] = field(default_factory=lambda: MappingProxyType({})) + diagnostics: tuple[CanonicalDiagnostic, ...] = () + component_trace: tuple[ComponentTrace, ...] = () + error: CanonicalError | None = None + + def __post_init__(self) -> None: + object.__setattr__(self, "status", _enum(self.status, OperationStatus, "status")) + object.__setattr__( + self, + "request_cid", + _cid(self.request_cid, "request_cid", codec="dag-json"), + ) + if self.canonical_ir is not None and not isinstance( + self.canonical_ir, CanonicalRoundTripIR + ): + raise CanonicalContractError("canonical_ir must be CanonicalRoundTripIR or None") + entries = tuple( + entry if isinstance(entry, SourceMapEntry) else SourceMapEntry.from_dict(entry) + for entry in self.source_map + ) + if self.canonical_ir is None and entries: + raise CanonicalContractError("source_map requires a canonical IR result") + if self.canonical_ir is not None: + known_rule_cids = {rule.rule_cid for rule in self.canonical_ir.rules} + if any(entry.rule_cid not in known_rule_cids for entry in entries): + raise CanonicalContractError("source_map references a rule outside this IR") + object.__setattr__( + self, + "source_map", + tuple( + sorted( + entries, + key=lambda item: ( + item.rule_cid, + item.field_path, + item.start, + item.end, + ), + ) + ), + ) + unsupported = tuple( + item if isinstance(item, UnsupportedSemantic) else UnsupportedSemantic.from_dict(item) + for item in self.unsupported_semantics + ) + object.__setattr__( + self, + "unsupported_semantics", + tuple( + sorted( + unsupported, + key=lambda item: ( + item.code, + item.source_cid, + item.start, + item.end, + ), + ) + ), + ) + object.__setattr__( + self, + "provenance", + _frozen_object(self.provenance, "provenance"), + ) + object.__setattr__(self, "diagnostics", _diagnostics(self.diagnostics)) + object.__setattr__(self, "component_trace", _traces(self.component_trace)) + if self.error is not None and not isinstance(self.error, CanonicalError): + raise CanonicalContractError("error must be CanonicalError or None") + if self.status is OperationStatus.SUCCESS: + if self.canonical_ir is None or self.error is not None: + raise CanonicalContractError("successful compiler result requires IR and no error") + if any( + item.disposition is UnsupportedDisposition.ABSTAIN + for item in self.unsupported_semantics + ): + raise CanonicalContractError( + "successful result cannot carry abstain-required semantics" + ) + elif self.canonical_ir is not None or self.error is None: + raise CanonicalContractError( + "abstained/failed compiler result requires an error and no IR" + ) + elif self.source_map: + raise CanonicalContractError( + "abstained/failed compiler result cannot carry a source map" + ) + + def source_map_receipt(self) -> dict[str, object] | None: + """Bind the source map to the exact request and semantic IR.""" + + if self.canonical_ir is None: + return None + body: dict[str, object] = { + "interface": "CanonicalSourceMapReceipt@1", + "request_cid": self.request_cid, + "canonical_ir_cid": self.canonical_ir.ir_cid, + "entries": [entry.to_dict() for entry in self.source_map], + } + return {**body, "receipt_cid": cid_for_dag_json(body)} + + def identity_payload(self) -> dict[str, object]: + return { + "interface": CANONICAL_STRUCTURED_TEXT_COMPILER_INTERFACE, + "status": self.status.value, + "request_cid": self.request_cid, + "canonical_ir": (None if self.canonical_ir is None else self.canonical_ir.to_dict()), + "canonical_ir_cid": (None if self.canonical_ir is None else self.canonical_ir.ir_cid), + "source_map_receipt": self.source_map_receipt(), + "unsupported_semantics": [item.to_dict() for item in self.unsupported_semantics], + "provenance": _thaw_json(self.provenance), + "diagnostics": [item.to_dict() for item in self.diagnostics], + "component_trace": [item.to_dict() for item in self.component_trace], + "error": None if self.error is None else self.error.to_dict(), + } + + @property + def result_cid(self) -> str: + return cid_for_dag_json(self.identity_payload()) + + def to_dict(self) -> dict[str, object]: + return { + **self.identity_payload(), + "result_cid": self.result_cid, + "result_cid_codec": "dag-json", + "result_cid_scope": "identity_payload", + } + + @classmethod + def from_dict(cls, value: object) -> "CompilerResult": + if not isinstance(value, Mapping) or set(value) != { + "interface", + "status", + "request_cid", + "canonical_ir", + "canonical_ir_cid", + "source_map_receipt", + "unsupported_semantics", + "provenance", + "diagnostics", + "component_trace", + "error", + "result_cid", + "result_cid_codec", + "result_cid_scope", + }: + raise CanonicalContractError("compiler result fields changed") + if value["interface"] != CANONICAL_STRUCTURED_TEXT_COMPILER_INTERFACE: + raise CanonicalContractError("compiler result interface changed") + if ( + value["result_cid_codec"] != "dag-json" + or value["result_cid_scope"] != "identity_payload" + ): + raise CanonicalContractError("compiler result CID contract changed") + raw_ir = value["canonical_ir"] + canonical_ir = None if raw_ir is None else CanonicalRoundTripIR.from_dict(raw_ir) + if canonical_ir is None: + if value["canonical_ir_cid"] is not None: + raise CanonicalContractError("compiler result has CID without canonical IR") + elif ( + _cid( + value["canonical_ir_cid"], + "canonical_ir_cid", + codec="dag-json", + ) + != canonical_ir.ir_cid + ): + raise CanonicalContractError("compiler result canonical_ir_cid does not match IR") + raw_error = value["error"] + result = cls( + status=value["status"], # type: ignore[arg-type] + request_cid=value["request_cid"], # type: ignore[arg-type] + canonical_ir=canonical_ir, + source_map=( + () + if value["source_map_receipt"] is None + else tuple( + SourceMapEntry.from_dict(item) + for item in value["source_map_receipt"][ # type: ignore[index,union-attr] + "entries" + ] + ) + ), + unsupported_semantics=tuple( + UnsupportedSemantic.from_dict(item) + for item in value["unsupported_semantics"] # type: ignore[union-attr] + ), + provenance=value["provenance"], # type: ignore[arg-type] + diagnostics=tuple( + CanonicalDiagnostic.from_dict(item) + for item in value["diagnostics"] # type: ignore[union-attr] + ), + component_trace=tuple( + ComponentTrace.from_dict(item) + for item in value["component_trace"] # type: ignore[union-attr] + ), + error=(None if raw_error is None else CanonicalError.from_dict(raw_error)), + ) + if result.source_map_receipt() != value["source_map_receipt"]: + raise CanonicalContractError("source-map receipt does not match result") + if _cid(value["result_cid"], "result_cid", codec="dag-json") != result.result_cid: + raise CanonicalContractError("result_cid does not match compiler result") + return result + + +@dataclass(frozen=True, slots=True) +class DecompilerResult: + """Terminal source-withheld decompiler result with stable attribution.""" + + status: OperationStatus + request_cid: str + text: str | None = None + text_cid: str | None = None + diagnostics: tuple[CanonicalDiagnostic, ...] = () + component_trace: tuple[ComponentTrace, ...] = () + error: CanonicalError | None = None + + def __post_init__(self) -> None: + object.__setattr__(self, "status", _enum(self.status, OperationStatus, "status")) + object.__setattr__( + self, + "request_cid", + _cid(self.request_cid, "request_cid", codec="dag-json"), + ) + object.__setattr__(self, "diagnostics", _diagnostics(self.diagnostics)) + object.__setattr__(self, "component_trace", _traces(self.component_trace)) + if self.error is not None and not isinstance(self.error, CanonicalError): + raise CanonicalContractError("error must be CanonicalError or None") + if self.status is OperationStatus.SUCCESS: + if self.text is None or self.text_cid is None or self.error is not None: + raise CanonicalContractError( + "successful decompiler result requires text/CID and no error" + ) + _string(self.text, "text", maximum=MAX_TEXT_CHARS) + supplied = _cid(self.text_cid, "text_cid", codec="raw") + expected = cid_for_bytes(self.text.encode("utf-8")) + if supplied != expected: + raise CanonicalContractError("text_cid does not match reconstructed text") + elif self.text is not None or self.text_cid is not None or self.error is None: + raise CanonicalContractError( + "abstained/failed decompiler result requires an error and no text" + ) + + def identity_payload(self) -> dict[str, object]: + return { + "interface": CANONICAL_STRUCTURED_TEXT_DECOMPILER_INTERFACE, + "status": self.status.value, + "request_cid": self.request_cid, + "text": self.text, + "text_cid": self.text_cid, + "diagnostics": [item.to_dict() for item in self.diagnostics], + "component_trace": [item.to_dict() for item in self.component_trace], + "error": None if self.error is None else self.error.to_dict(), + "source_withheld": True, + } + + @property + def result_cid(self) -> str: + return cid_for_dag_json(self.identity_payload()) + + def to_dict(self) -> dict[str, object]: + return { + **self.identity_payload(), + "result_cid": self.result_cid, + "result_cid_codec": "dag-json", + "result_cid_scope": "identity_payload", + } + + @classmethod + def from_dict(cls, value: object) -> "DecompilerResult": + if not isinstance(value, Mapping) or set(value) != { + "interface", + "status", + "request_cid", + "text", + "text_cid", + "diagnostics", + "component_trace", + "error", + "source_withheld", + "result_cid", + "result_cid_codec", + "result_cid_scope", + }: + raise CanonicalContractError("decompiler result fields changed") + if value["interface"] != CANONICAL_STRUCTURED_TEXT_DECOMPILER_INTERFACE: + raise CanonicalContractError("decompiler result interface changed") + if value["source_withheld"] is not True: + raise CanonicalContractError("decompiler result is not source-withheld") + if ( + value["result_cid_codec"] != "dag-json" + or value["result_cid_scope"] != "identity_payload" + ): + raise CanonicalContractError("decompiler result CID contract changed") + raw_error = value["error"] + result = cls( + status=value["status"], # type: ignore[arg-type] + request_cid=value["request_cid"], # type: ignore[arg-type] + text=value["text"], # type: ignore[arg-type] + text_cid=value["text_cid"], # type: ignore[arg-type] + diagnostics=tuple( + CanonicalDiagnostic.from_dict(item) + for item in value["diagnostics"] # type: ignore[union-attr] + ), + component_trace=tuple( + ComponentTrace.from_dict(item) + for item in value["component_trace"] # type: ignore[union-attr] + ), + error=(None if raw_error is None else CanonicalError.from_dict(raw_error)), + ) + if _cid(value["result_cid"], "result_cid", codec="dag-json") != result.result_cid: + raise CanonicalContractError("result_cid does not match decompiler result") + return result + + +@dataclass(frozen=True, slots=True) +class CanonicalParityPolicy: + """Validated immutable view of the checked-in SRT-015 parity policy.""" + + document: Mapping[str, object] + + def __post_init__(self) -> None: + policy = _frozen_object(self.document, "parity_policy") + plain = _thaw_json(policy) + assert isinstance(plain, dict) + if plain.get("interface") != CANONICAL_ROUNDTRIP_PARITY_POLICY_INTERFACE: + raise CanonicalContractError("parity policy interface changed") + if plain.get("schema_version") != CANONICAL_ROUNDTRIP_PARITY_POLICY_SCHEMA: + raise CanonicalContractError("parity policy schema changed") + if plain.get("policy_cid_codec") != _CID_CODEC: + raise CanonicalContractError("parity policy CID codec changed") + if plain.get("policy_cid_scope") != "document_without_policy_cid": + raise CanonicalContractError("parity policy CID scope changed") + supplied = _cid(plain.get("policy_cid"), "policy_cid", codec="dag-json") + payload = dict(plain) + payload.pop("policy_cid", None) + expected = cid_for_dag_json(payload) + if supplied != expected or supplied != CANONICAL_PARITY_POLICY_CID: + raise CanonicalContractError("parity policy CID does not match payload") + evidence = plain.get("evidence") + if not isinstance(evidence, Mapping): + raise CanonicalContractError("parity policy evidence must be an object") + expected_evidence = { + "srt014_report_cid": SRT014_REPORT_CID, + "srt014_gate_cid": SRT014_GATE_CID, + "remediation_manifest_cid": SRT014_REMEDIATION_MANIFEST_CID, + "replacement_report_cid": REPLACEMENT_REPORT_CID, + "replacement_gate_cid": REPLACEMENT_GATE_CID, + "canonical_design_gate_cid": CANONICAL_DESIGN_GATE_CID, + } + if dict(evidence) != expected_evidence: + raise CanonicalContractError("parity policy evidence lineage changed") + selection = plain.get("selection") + if not isinstance(selection, Mapping) or dict(selection) != { + "outcome": "exact_tie", + "selection_basis": SELECTION_BASIS, + "selectable_arm_ids": list(SELECTABLE_ARM_IDS), + "implementation_representative_arm_id": (IMPLEMENTATION_REPRESENTATIVE_ARM_ID), + "representative_semantically_superior": False, + }: + raise CanonicalContractError("parity policy selection lineage changed") + object.__setattr__(self, "document", policy) + + @property + def policy_cid(self) -> str: + return CANONICAL_PARITY_POLICY_CID + + def to_dict(self) -> dict[str, object]: + result = _thaw_json(self.document) + assert isinstance(result, dict) + return result + + +def canonical_ir_schema_path() -> resources.abc.Traversable: + """Return the packaged v1 schema resource without assuming a filesystem.""" + + return resources.files("ipfs_datasets_py.logic.legal_ir").joinpath( + "schemas/canonical_roundtrip_ir.schema.json" + ) + + +def load_canonical_ir_schema() -> dict[str, object]: + """Load a detached copy of the packaged canonical IR JSON Schema.""" + + with canonical_ir_schema_path().open("r", encoding="utf-8") as stream: + value = json.load(stream) + if not isinstance(value, dict): + raise CanonicalContractError("canonical IR schema must be an object") + return value + + +def load_parity_policy() -> CanonicalParityPolicy: + """Load and validate the repository/package SRT-015 parity policy.""" + + package_root = resources.files("ipfs_datasets_py") + policy_path = package_root.parent.joinpath( + "docs/benchmarks/semantic_roundtrip_canonical_parity_policy.json" + ) + try: + with policy_path.open("r", encoding="utf-8") as stream: + value = json.load(stream) + except (FileNotFoundError, TypeError): + # Wheels need not ship repository documentation. The exact immutable + # policy payload remains available beside this module as a package + # resource through the schema's ``x-parity-policy`` annotation. + schema = load_canonical_ir_schema() + value = schema.get("x-parity-policy") + if not isinstance(value, Mapping): + raise CanonicalContractError("canonical parity policy is unavailable") + return CanonicalParityPolicy(value) + + +@runtime_checkable +class CanonicalStructuredTextCompiler(Protocol): + """Structural interface consumed by orchestration and round-trip code.""" + + @property + def identity(self) -> str: + """Return a frozen implementation/configuration identity.""" + + def compile(self, request: CompilerRequest) -> CompilerResult: + """Compile structured text or return an explicit abstention/failure.""" + + +@runtime_checkable +class CanonicalStructuredTextDecompiler(Protocol): + """Source-withheld structural interface for canonical IR realization.""" + + @property + def identity(self) -> str: + """Return a frozen implementation/configuration identity.""" + + def decompile(self, request: DecompilerRequest) -> DecompilerResult: + """Realize canonical IR without consulting its originating source.""" + + +class ConstructDisposition(str, Enum): + """How one required typed-bridge construct is carried.""" + + REPRESENTED = "represented" + EXPLICIT_PARTIAL = "explicit_partial" + UNSUPPORTED = "unsupported" + + +class RequiredBridgeConstruct(str, Enum): + """Closed catalog of constructs every typed-bridge envelope must account for.""" + + FAMILY_IDENTITY = "family_identity" + SOURCE_REFERENCES = "source_references" + ASSUMPTIONS = "assumptions" + PROVENANCE = "provenance" + UNSUPPORTED_CONSTRUCTS = "unsupported_constructs" + SOURCE_TEXT = "source_text" + TYPED_SYNTAX = "typed_syntax" + CANONICAL_IR = "canonical_ir" + DOMAIN_LOGIC_SLICE = "domain_logic_slice" + LOGIC_FAMILY_REPRESENTATIONS = "logic_family_representations" + FAMILY_EXTENSIONS = "family_extensions" + FORMALIZATION_ARTIFACT = "formalization_artifact" + LEGAL_IR_DOCUMENT = "legal_ir_document" + PROVER_SYNTAX = "prover_syntax" + CONTROLLED_NATURAL_LANGUAGE = "controlled_natural_language" + PROOF_TRACES = "proof_traces" + TACTIC_TRACES = "tactic_traces" + COUNTEREXAMPLE_TRACES = "counterexample_traces" + TRANSLATION_TRACES = "translation_traces" + + +class BridgeRepresentationKind(str, Enum): + """Closed representation kinds aligned with the existing training vocabulary.""" + + SOURCE_TEXT = "source_text" + CONTROLLED_NATURAL_LANGUAGE = "controlled_natural_language" + TYPED_SYNTAX = "typed_syntax" + CANONICAL_IR = "canonical_ir" + DOMAIN_LOGIC_SLICE = "domain_logic_slice" + LOGIC_FAMILY = "logic_family" + PROVER_SYNTAX = "prover_syntax" + FORMALIZATION_ARTIFACT = "formalization_artifact" + LEGAL_IR_DOCUMENT = "legal_ir_document" + TRACE = "trace" + FAMILY_EXTENSION = "family_extension" + + +class BridgeTraceKind(str, Enum): + """Closed trace kinds carried by the typed bridge.""" + + PROOF = "proof" + TACTIC = "tactic" + COUNTEREXAMPLE = "counterexample" + TRANSLATION = "translation" + + +REGISTERED_BRIDGE_FAMILY_IDS: Final[frozenset[str]] = frozenset( + { + "canonical_roundtrip", + "legal", + "security", + "intent", + "deontic", + "modal", + "tdfol", + "cec", + "zkp", + "first_order", + "temporal", + "policy", + "threat_model", + "frame_logic", + "unspecified", + "propositional", + "higher_order", + "datalog", + "hoare", + "smt", + "linear", + "separation", + } +) +FORBIDDEN_BRIDGE_FAMILY_IDS: Final[frozenset[str]] = frozenset( + { + "domain_logic_slice", + "DomainLogicSlice", + "domain-logic-slice", + "domainlogic slice", + } +) +CORE_BRIDGE_VIEW_NAMES: Final[frozenset[str]] = frozenset( + { + "canonical_roundtrip_ir", + "typed_syntax", + "source_text", + "formalization_artifact", + "legal_ir_document", + "prover_syntax", + "controlled_natural_language", + "logic_family", + "domain_logic_slice", + } +) +_DEFAULT_UNSUPPORTED_CONSTRUCT_MESSAGES: Final[Mapping[str, str]] = MappingProxyType( + { + RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value: ( + "No DomainLogicSlice schema or family exists at the bound authority " + "tree; the construct is retained as unsupported rather than invented " + "or silently aliased to an existing family AST." + ), + RequiredBridgeConstruct.CANONICAL_IR.value: ( + "No CanonicalRoundTripIR view was supplied to this envelope." + ), + RequiredBridgeConstruct.TYPED_SYNTAX.value: ( + "No typed-syntax view was supplied to this envelope." + ), + RequiredBridgeConstruct.SOURCE_TEXT.value: ( + "No source-text view or source reference was supplied to this envelope." + ), + RequiredBridgeConstruct.FORMALIZATION_ARTIFACT.value: ( + "No FormalizationArtifact view was supplied to this envelope." + ), + RequiredBridgeConstruct.LEGAL_IR_DOCUMENT.value: ( + "No LegalIRDocument view was supplied to this envelope." + ), + RequiredBridgeConstruct.PROVER_SYNTAX.value: ( + "No prover-syntax view was supplied to this envelope." + ), + RequiredBridgeConstruct.CONTROLLED_NATURAL_LANGUAGE.value: ( + "No controlled-natural-language view was supplied to this envelope." + ), + RequiredBridgeConstruct.PROOF_TRACES.value: ( + "No proof-trace reference was supplied to this envelope." + ), + RequiredBridgeConstruct.TACTIC_TRACES.value: ( + "No tactic-trace reference was supplied to this envelope." + ), + RequiredBridgeConstruct.COUNTEREXAMPLE_TRACES.value: ( + "No counterexample-trace reference was supplied to this envelope." + ), + RequiredBridgeConstruct.TRANSLATION_TRACES.value: ( + "No translation-trace reference was supplied to this envelope." + ), + RequiredBridgeConstruct.LOGIC_FAMILY_REPRESENTATIONS.value: ( + "No existing logic-family representation view was supplied." + ), + RequiredBridgeConstruct.FAMILY_EXTENSIONS.value: ( + "No family-extension view was supplied to this envelope." + ), + } +) +_CONSTRUCT_VIEW_NAMES: Final[Mapping[str, str]] = MappingProxyType( + { + RequiredBridgeConstruct.CANONICAL_IR.value: "canonical_roundtrip_ir", + RequiredBridgeConstruct.TYPED_SYNTAX.value: "typed_syntax", + RequiredBridgeConstruct.SOURCE_TEXT.value: "source_text", + RequiredBridgeConstruct.FORMALIZATION_ARTIFACT.value: "formalization_artifact", + RequiredBridgeConstruct.LEGAL_IR_DOCUMENT.value: "legal_ir_document", + RequiredBridgeConstruct.PROVER_SYNTAX.value: "prover_syntax", + RequiredBridgeConstruct.CONTROLLED_NATURAL_LANGUAGE.value: ( + "controlled_natural_language" + ), + RequiredBridgeConstruct.LOGIC_FAMILY_REPRESENTATIONS.value: "logic_family", + } +) +_CONSTRUCT_VIEW_KINDS: Final[Mapping[str, BridgeRepresentationKind]] = MappingProxyType( + { + RequiredBridgeConstruct.CANONICAL_IR.value: BridgeRepresentationKind.CANONICAL_IR, + RequiredBridgeConstruct.TYPED_SYNTAX.value: BridgeRepresentationKind.TYPED_SYNTAX, + RequiredBridgeConstruct.SOURCE_TEXT.value: BridgeRepresentationKind.SOURCE_TEXT, + RequiredBridgeConstruct.FORMALIZATION_ARTIFACT.value: ( + BridgeRepresentationKind.FORMALIZATION_ARTIFACT + ), + RequiredBridgeConstruct.LEGAL_IR_DOCUMENT.value: ( + BridgeRepresentationKind.LEGAL_IR_DOCUMENT + ), + RequiredBridgeConstruct.PROVER_SYNTAX.value: BridgeRepresentationKind.PROVER_SYNTAX, + RequiredBridgeConstruct.CONTROLLED_NATURAL_LANGUAGE.value: ( + BridgeRepresentationKind.CONTROLLED_NATURAL_LANGUAGE + ), + RequiredBridgeConstruct.LOGIC_FAMILY_REPRESENTATIONS.value: ( + BridgeRepresentationKind.LOGIC_FAMILY + ), + } +) + + +def _view_represents_construct( + construct: str, + views: Mapping[str, "BridgeView"], +) -> bool: + """Return whether a reserved name or matching view kind carries ``construct``.""" + + reserved = _CONSTRUCT_VIEW_NAMES.get(construct) + if reserved is not None and reserved in views: + return True + expected_kind = _CONSTRUCT_VIEW_KINDS.get(construct) + if expected_kind is None: + return False + return any(view.kind is expected_kind for view in views.values()) + + +_CONSTRUCT_TRACE_KINDS: Final[Mapping[str, str]] = MappingProxyType( + { + RequiredBridgeConstruct.PROOF_TRACES.value: BridgeTraceKind.PROOF.value, + RequiredBridgeConstruct.TACTIC_TRACES.value: BridgeTraceKind.TACTIC.value, + RequiredBridgeConstruct.COUNTEREXAMPLE_TRACES.value: ( + BridgeTraceKind.COUNTEREXAMPLE.value + ), + RequiredBridgeConstruct.TRANSLATION_TRACES.value: ( + BridgeTraceKind.TRANSLATION.value + ), + } +) + + +def _bridge_family_id(value: object, field: str) -> str: + family_id = _string(value, field) + if family_id in FORBIDDEN_BRIDGE_FAMILY_IDS or family_id.lower() in { + item.lower() for item in FORBIDDEN_BRIDGE_FAMILY_IDS + }: + raise CanonicalContractError( + f"{field} cannot be a DomainLogicSlice family; that name is not a " + "logic family and must not alias an existing family AST" + ) + if family_id not in REGISTERED_BRIDGE_FAMILY_IDS: + raise CanonicalContractError( + f"{field} {family_id!r} is not a registered existing logic family" + ) + return family_id + + +def _optional_raw_cid(value: object, field: str) -> str | None: + if value is None or value == "": + return None + return _cid(value, field, codec="raw") + + +def _optional_dag_cid(value: object, field: str) -> str | None: + if value is None or value == "": + return None + return _cid(value, field, codec="dag-json") + + +def _optional_span(start: object, end: object, field: str) -> tuple[int | None, int | None]: + if start is None and end is None: + return None, None + if ( + isinstance(start, bool) + or not isinstance(start, int) + or isinstance(end, bool) + or not isinstance(end, int) + or start < 0 + or end <= start + ): + raise CanonicalContractError(f"{field} offsets must form a nonempty half-open span") + return start, end + + +@dataclass(frozen=True, slots=True) +class BridgeFamilyIdentity: + """Existing-family identity retained by one typed-bridge envelope.""" + + family_id: str + authority_schema: str + payload_cid: str + payload_codec: str = "dag-json" + representation_kind: BridgeRepresentationKind = BridgeRepresentationKind.LOGIC_FAMILY + + def __post_init__(self) -> None: + object.__setattr__(self, "family_id", _bridge_family_id(self.family_id, "family_id")) + object.__setattr__( + self, + "authority_schema", + _string(self.authority_schema, "authority_schema"), + ) + object.__setattr__( + self, + "representation_kind", + _enum( + self.representation_kind, + BridgeRepresentationKind, + "representation_kind", + ), + ) + if self.representation_kind is BridgeRepresentationKind.DOMAIN_LOGIC_SLICE: + raise CanonicalContractError( + "family identity cannot use the domain_logic_slice representation " + "kind; that kind is a projection role, not a family" + ) + payload_cid, payload_codec = _cid_with_declared_codec( + self.payload_cid, + self.payload_codec, + "payload_cid", + ) + object.__setattr__(self, "payload_cid", payload_cid) + object.__setattr__(self, "payload_codec", payload_codec) + + def to_dict(self) -> dict[str, object]: + return { + "authority_schema": self.authority_schema, + "family_id": self.family_id, + "payload_cid": self.payload_cid, + "payload_codec": self.payload_codec, + "representation_kind": self.representation_kind.value, + } + + @classmethod + def from_dict(cls, value: object) -> "BridgeFamilyIdentity": + if not isinstance(value, Mapping) or set(value) != { + "authority_schema", + "family_id", + "payload_cid", + "payload_codec", + "representation_kind", + }: + raise CanonicalContractError("family identity fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class BridgeSourceReference: + """Content-addressed source binding carried beside family payloads.""" + + ref_id: str + source_cid: str + source_uri: str = "" + source_revision: str = "" + start: int | None = None + end: int | None = None + + def __post_init__(self) -> None: + object.__setattr__(self, "ref_id", _string(self.ref_id, "source_ref.ref_id")) + object.__setattr__( + self, + "source_cid", + _cid(self.source_cid, "source_ref.source_cid", codec="raw"), + ) + object.__setattr__( + self, + "source_uri", + _string(self.source_uri, "source_ref.source_uri", allow_blank=True), + ) + object.__setattr__( + self, + "source_revision", + _string( + self.source_revision, + "source_ref.source_revision", + allow_blank=True, + ), + ) + start, end = _optional_span(self.start, self.end, "source_ref") + object.__setattr__(self, "start", start) + object.__setattr__(self, "end", end) + + def to_dict(self) -> dict[str, object]: + return { + "end": self.end, + "ref_id": self.ref_id, + "source_cid": self.source_cid, + "source_revision": self.source_revision, + "source_uri": self.source_uri, + "start": self.start, + } + + @classmethod + def from_dict(cls, value: object) -> "BridgeSourceReference": + if not isinstance(value, Mapping) or set(value) != { + "end", + "ref_id", + "source_cid", + "source_revision", + "source_uri", + "start", + }: + raise CanonicalContractError("source reference fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class BridgeAssumption: + """Caller-visible assumption retained with the typed bridge.""" + + assumption_id: str + statement: str + source_ref_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + object.__setattr__( + self, + "assumption_id", + _string(self.assumption_id, "assumption.assumption_id"), + ) + object.__setattr__( + self, + "statement", + _string(self.statement, "assumption.statement"), + ) + object.__setattr__( + self, + "source_ref_ids", + _string_items(self.source_ref_ids, "assumption.source_ref_ids"), + ) + + def to_dict(self) -> dict[str, object]: + return { + "assumption_id": self.assumption_id, + "source_ref_ids": list(self.source_ref_ids), + "statement": self.statement, + } + + @classmethod + def from_dict(cls, value: object) -> "BridgeAssumption": + if not isinstance(value, Mapping) or set(value) != { + "assumption_id", + "source_ref_ids", + "statement", + }: + raise CanonicalContractError("assumption fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class BridgeUnsupportedConstruct: + """Explicit record that a required construct could not be faithfully carried.""" + + construct_id: str + code: str + message: str + disposition: UnsupportedDisposition = UnsupportedDisposition.EXPLICIT_PARTIAL + family_id: str = "" + source_cid: str | None = None + start: int | None = None + end: int | None = None + + def __post_init__(self) -> None: + object.__setattr__( + self, + "construct_id", + _string(self.construct_id, "unsupported.construct_id"), + ) + object.__setattr__(self, "code", _string(self.code, "unsupported.code")) + object.__setattr__(self, "message", _string(self.message, "unsupported.message")) + object.__setattr__( + self, + "disposition", + _enum(self.disposition, UnsupportedDisposition, "unsupported.disposition"), + ) + if self.family_id: + object.__setattr__( + self, + "family_id", + _bridge_family_id(self.family_id, "unsupported.family_id"), + ) + else: + object.__setattr__(self, "family_id", "") + object.__setattr__( + self, + "source_cid", + _optional_raw_cid(self.source_cid, "unsupported.source_cid"), + ) + start, end = _optional_span(self.start, self.end, "unsupported") + object.__setattr__(self, "start", start) + object.__setattr__(self, "end", end) + + def to_dict(self) -> dict[str, object]: + return { + "code": self.code, + "construct_id": self.construct_id, + "disposition": self.disposition.value, + "end": self.end, + "family_id": self.family_id, + "message": self.message, + "source_cid": self.source_cid, + "start": self.start, + } + + @classmethod + def from_dict(cls, value: object) -> "BridgeUnsupportedConstruct": + if not isinstance(value, Mapping) or set(value) != { + "code", + "construct_id", + "disposition", + "end", + "family_id", + "message", + "source_cid", + "start", + }: + raise CanonicalContractError("unsupported construct fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class BridgeView: + """One existing-contract payload retained under its own schema identity.""" + + name: str + kind: BridgeRepresentationKind + schema_id: str + family_id: str + payload: Mapping[str, object] + payload_cid: str = "" + + def __post_init__(self) -> None: + object.__setattr__(self, "name", _string(self.name, "view.name")) + object.__setattr__( + self, + "kind", + _enum(self.kind, BridgeRepresentationKind, "view.kind"), + ) + if self.kind is BridgeRepresentationKind.DOMAIN_LOGIC_SLICE: + raise CanonicalContractError( + "views cannot carry a domain_logic_slice kind; that role is the " + "dedicated DomainLogicSlice projection, not a family view" + ) + object.__setattr__(self, "schema_id", _string(self.schema_id, "view.schema_id")) + object.__setattr__(self, "family_id", _bridge_family_id(self.family_id, "view.family_id")) + object.__setattr__(self, "payload", _frozen_object(self.payload, "view.payload")) + expected = cid_for_dag_json(_thaw_json(self.payload)) + if self.payload_cid: + supplied = _cid(self.payload_cid, "view.payload_cid", codec="dag-json") + if supplied != expected: + raise CanonicalContractError("view.payload_cid does not match payload") + object.__setattr__(self, "payload_cid", supplied) + else: + object.__setattr__(self, "payload_cid", expected) + + def to_dict(self) -> dict[str, object]: + payload = _thaw_json(self.payload) + assert isinstance(payload, dict) + return { + "family_id": self.family_id, + "kind": self.kind.value, + "name": self.name, + "payload": payload, + "payload_cid": self.payload_cid, + "schema_id": self.schema_id, + } + + @classmethod + def from_dict(cls, value: object) -> "BridgeView": + if not isinstance(value, Mapping) or set(value) != { + "family_id", + "kind", + "name", + "payload", + "payload_cid", + "schema_id", + }: + raise CanonicalContractError("bridge view fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class BridgeTraceRef: + """Reference to an existing proof, tactic, counterexample, or translation trace.""" + + kind: BridgeTraceKind + trace_id: str + trace_cid: str | None = None + schema_id: str = "" + + def __post_init__(self) -> None: + object.__setattr__(self, "kind", _enum(self.kind, BridgeTraceKind, "trace.kind")) + object.__setattr__(self, "trace_id", _string(self.trace_id, "trace.trace_id")) + object.__setattr__( + self, + "trace_cid", + _optional_dag_cid(self.trace_cid, "trace.trace_cid"), + ) + object.__setattr__( + self, + "schema_id", + _string(self.schema_id, "trace.schema_id", allow_blank=True), + ) + + def to_dict(self) -> dict[str, object]: + return { + "kind": self.kind.value, + "schema_id": self.schema_id, + "trace_cid": self.trace_cid, + "trace_id": self.trace_id, + } + + @classmethod + def from_dict(cls, value: object) -> "BridgeTraceRef": + if not isinstance(value, Mapping) or set(value) != { + "kind", + "schema_id", + "trace_cid", + "trace_id", + }: + raise CanonicalContractError("trace reference fields changed") + return cls(**value) # type: ignore[arg-type] + + +@dataclass(frozen=True, slots=True) +class DomainLogicSliceRole: + """Family-preserving projection role; not a logic family and not a family AST. + + A projected slice references an existing family payload by CID and member + identifiers. It never renames that payload into a DomainLogicSlice family. + When no faithful projection exists, the role is explicitly unsupported. + """ + + disposition: ConstructDisposition + family_id: str + source_view: str = "" + source_schema_id: str = "" + source_payload_cid: str | None = None + member_ids: tuple[str, ...] = () + projected_payload_cid: str | None = None + unsupported: BridgeUnsupportedConstruct | None = None + + def __post_init__(self) -> None: + object.__setattr__( + self, + "disposition", + _enum(self.disposition, ConstructDisposition, "slice.disposition"), + ) + object.__setattr__(self, "family_id", _bridge_family_id(self.family_id, "slice.family_id")) + object.__setattr__( + self, + "source_view", + _string(self.source_view, "slice.source_view", allow_blank=True), + ) + object.__setattr__( + self, + "source_schema_id", + _string(self.source_schema_id, "slice.source_schema_id", allow_blank=True), + ) + object.__setattr__( + self, + "source_payload_cid", + _optional_dag_cid(self.source_payload_cid, "slice.source_payload_cid"), + ) + object.__setattr__( + self, + "member_ids", + _string_items(self.member_ids, "slice.member_ids"), + ) + object.__setattr__( + self, + "projected_payload_cid", + _optional_dag_cid( + self.projected_payload_cid, + "slice.projected_payload_cid", + ), + ) + if self.unsupported is not None and not isinstance( + self.unsupported, BridgeUnsupportedConstruct + ): + if isinstance(self.unsupported, Mapping): + object.__setattr__( + self, + "unsupported", + BridgeUnsupportedConstruct.from_dict(self.unsupported), + ) + else: + raise CanonicalContractError( + "slice.unsupported must be BridgeUnsupportedConstruct or None" + ) + if self.disposition is ConstructDisposition.UNSUPPORTED: + if self.unsupported is None: + raise CanonicalContractError( + "unsupported DomainLogicSlice role requires an explicit record" + ) + if self.projected_payload_cid is not None: + raise CanonicalContractError( + "unsupported DomainLogicSlice role cannot carry a projection CID" + ) + elif self.disposition is ConstructDisposition.REPRESENTED: + raise CanonicalContractError( + "DomainLogicSlice cannot be fully represented; project as " + "explicit_partial or retain it as unsupported" + ) + else: + if not self.source_view or self.source_payload_cid is None: + raise CanonicalContractError( + "projected DomainLogicSlice role requires a source view and payload CID" + ) + expected = cid_for_dag_json(self.projection_payload()) + if self.projected_payload_cid is None: + object.__setattr__(self, "projected_payload_cid", expected) + elif self.projected_payload_cid != expected: + raise CanonicalContractError( + "slice.projected_payload_cid does not match the projection" + ) + + def projection_payload(self) -> dict[str, object]: + """Return the reference-only projection; never a renamed family AST.""" + + return { + "family_id": self.family_id, + "member_ids": list(self.member_ids), + "slice_kind": BridgeRepresentationKind.DOMAIN_LOGIC_SLICE.value, + "source_payload_cid": self.source_payload_cid, + "source_schema_id": self.source_schema_id, + "source_view": self.source_view, + } + + def to_dict(self) -> dict[str, object]: + return { + "disposition": self.disposition.value, + "family_id": self.family_id, + "member_ids": list(self.member_ids), + "projected_payload_cid": self.projected_payload_cid, + "source_payload_cid": self.source_payload_cid, + "source_schema_id": self.source_schema_id, + "source_view": self.source_view, + "unsupported": None if self.unsupported is None else self.unsupported.to_dict(), + } + + @classmethod + def from_dict(cls, value: object) -> "DomainLogicSliceRole": + if not isinstance(value, Mapping) or set(value) != { + "disposition", + "family_id", + "member_ids", + "projected_payload_cid", + "source_payload_cid", + "source_schema_id", + "source_view", + "unsupported", + }: + raise CanonicalContractError("DomainLogicSlice role fields changed") + return cls(**value) # type: ignore[arg-type] + + +def _bridge_source_references(value: object) -> tuple[BridgeSourceReference, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError("source_references must be an array") + items = tuple( + item if isinstance(item, BridgeSourceReference) else BridgeSourceReference.from_dict(item) + for item in value + ) + return tuple(sorted(items, key=lambda item: (item.ref_id, item.source_cid))) + + +def _bridge_assumptions(value: object) -> tuple[BridgeAssumption, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError("assumptions must be an array") + items = tuple( + item if isinstance(item, BridgeAssumption) else BridgeAssumption.from_dict(item) + for item in value + ) + return tuple(sorted(items, key=lambda item: item.assumption_id)) + + +def _bridge_unsupported(value: object) -> tuple[BridgeUnsupportedConstruct, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError("unsupported_constructs must be an array") + items = tuple( + item + if isinstance(item, BridgeUnsupportedConstruct) + else BridgeUnsupportedConstruct.from_dict(item) + for item in value + ) + return tuple( + sorted( + items, + key=lambda item: (item.construct_id, item.code, item.message), + ) + ) + + +def _bridge_views(value: object) -> Mapping[str, BridgeView]: + if not isinstance(value, Mapping): + raise CanonicalContractError("views must be an object") + views: dict[str, BridgeView] = {} + for name, item in value.items(): + view = item if isinstance(item, BridgeView) else BridgeView.from_dict(item) + if view.name != name: + raise CanonicalContractError("view name does not match views map key") + views[name] = view + return MappingProxyType(dict(sorted(views.items()))) + + +def _bridge_trace_refs(value: object) -> tuple[BridgeTraceRef, ...]: + if not isinstance(value, Sequence) or isinstance(value, (str, bytes, bytearray)): + raise CanonicalContractError("trace_refs must be an array") + items = tuple( + item if isinstance(item, BridgeTraceRef) else BridgeTraceRef.from_dict(item) + for item in value + ) + return tuple(sorted(items, key=lambda item: (item.kind.value, item.trace_id))) + + +def _bridge_dispositions(value: object) -> Mapping[str, ConstructDisposition]: + if not isinstance(value, Mapping): + raise CanonicalContractError("construct_dispositions must be an object") + dispositions: dict[str, ConstructDisposition] = {} + for key, item in value.items(): + if not isinstance(key, str): + raise CanonicalContractError("construct_dispositions keys must be strings") + dispositions[key] = _enum( # type: ignore[assignment] + item, + ConstructDisposition, + f"construct_dispositions.{key}", + ) + return MappingProxyType(dict(sorted(dispositions.items()))) + + +def _default_unsupported( + construct: RequiredBridgeConstruct, + *, + family_id: str = "", +) -> BridgeUnsupportedConstruct: + return BridgeUnsupportedConstruct( + construct_id=construct.value, + code=f"gap.{construct.value}", + message=_DEFAULT_UNSUPPORTED_CONSTRUCT_MESSAGES[construct.value], + disposition=UnsupportedDisposition.EXPLICIT_PARTIAL, + family_id=family_id, + ) + + +def _slice_projection( + *, + family_id: str, + view: BridgeView, + member_ids: Sequence[str] = (), +) -> DomainLogicSliceRole: + return DomainLogicSliceRole( + disposition=ConstructDisposition.EXPLICIT_PARTIAL, + family_id=family_id, + source_view=view.name, + source_schema_id=view.schema_id, + source_payload_cid=view.payload_cid, + member_ids=tuple(member_ids), + unsupported=BridgeUnsupportedConstruct( + construct_id="domain_logic_slice.family", + code="gap.domain_logic_slice", + message=_DEFAULT_UNSUPPORTED_CONSTRUCT_MESSAGES[ + RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value + ], + disposition=UnsupportedDisposition.EXPLICIT_PARTIAL, + family_id=family_id, + ), + ) + + +def infer_slice_member_ids(payload: Mapping[str, object]) -> tuple[str, ...]: + """Extract stable member identifiers from an existing family payload.""" + + members: list[str] = [] + rules = payload.get("rules") + if isinstance(rules, Sequence) and not isinstance(rules, (str, bytes, bytearray)): + for item in rules: + if isinstance(item, Mapping): + try: + members.append(CanonicalRule.from_dict(item).rule_cid) + except CanonicalContractError: + continue + formulas = payload.get("formulas") + if isinstance(formulas, Sequence) and not isinstance(formulas, (str, bytes, bytearray)): + for item in formulas: + if isinstance(item, Mapping): + formula_id = item.get("formula_id") or item.get("id") + if isinstance(formula_id, str) and formula_id.strip(): + members.append(formula_id) + views = payload.get("views") + if isinstance(views, Mapping): + members.extend(str(name) for name in views) + return tuple(sorted(set(members))) + + +@dataclass(frozen=True, slots=True) +class CanonicalTypedBridge: + """Versioned composition of existing typed contracts. + + CanonicalRoundTripIR, FormalizationArtifact, and LegalIRDocument remain + distinct views. Family identity is retained. DomainLogicSlice is a + projection role, never a new logic family. + """ + + family_identity: BridgeFamilyIdentity + source_references: tuple[BridgeSourceReference, ...] = () + assumptions: tuple[BridgeAssumption, ...] = () + provenance: Mapping[str, object] = field(default_factory=lambda: MappingProxyType({})) + unsupported_constructs: tuple[BridgeUnsupportedConstruct, ...] = () + views: Mapping[str, BridgeView] = field(default_factory=lambda: MappingProxyType({})) + trace_refs: tuple[BridgeTraceRef, ...] = () + domain_logic_slice: DomainLogicSliceRole | None = None + construct_dispositions: Mapping[str, ConstructDisposition] = field( + default_factory=lambda: MappingProxyType({}) + ) + adapter_name: str = "" + metadata: Mapping[str, object] = field(default_factory=lambda: MappingProxyType({})) + + def __post_init__(self) -> None: + if not isinstance(self.family_identity, BridgeFamilyIdentity): + if isinstance(self.family_identity, Mapping): + object.__setattr__( + self, + "family_identity", + BridgeFamilyIdentity.from_dict(self.family_identity), + ) + else: + raise CanonicalContractError( + "family_identity must be BridgeFamilyIdentity" + ) + object.__setattr__( + self, + "source_references", + _bridge_source_references(self.source_references), + ) + object.__setattr__(self, "assumptions", _bridge_assumptions(self.assumptions)) + object.__setattr__(self, "provenance", _frozen_object(self.provenance, "provenance")) + object.__setattr__( + self, + "unsupported_constructs", + _bridge_unsupported(self.unsupported_constructs), + ) + object.__setattr__(self, "views", _bridge_views(self.views)) + object.__setattr__(self, "trace_refs", _bridge_trace_refs(self.trace_refs)) + if self.domain_logic_slice is not None and not isinstance( + self.domain_logic_slice, DomainLogicSliceRole + ): + if isinstance(self.domain_logic_slice, Mapping): + object.__setattr__( + self, + "domain_logic_slice", + DomainLogicSliceRole.from_dict(self.domain_logic_slice), + ) + else: + raise CanonicalContractError( + "domain_logic_slice must be DomainLogicSliceRole or None" + ) + if self.domain_logic_slice is None: + raise CanonicalContractError( + "domain_logic_slice must be projected or explicitly unsupported" + ) + if self.domain_logic_slice.family_id != self.family_identity.family_id: + raise CanonicalContractError( + "DomainLogicSlice role family_id must match envelope family identity" + ) + object.__setattr__( + self, + "construct_dispositions", + _bridge_dispositions(self.construct_dispositions), + ) + object.__setattr__( + self, + "adapter_name", + _string(self.adapter_name, "adapter_name", allow_blank=True), + ) + object.__setattr__(self, "metadata", _frozen_object(self.metadata, "metadata")) + for view in self.views.values(): + if view.family_id != self.family_identity.family_id and view.kind not in { + BridgeRepresentationKind.FAMILY_EXTENSION, + BridgeRepresentationKind.TRACE, + }: + raise CanonicalContractError( + f"view {view.name!r} family_id {view.family_id!r} collapses or " + "cross-aliases the envelope family identity" + ) + expected = self._expected_dispositions() + if dict(self.construct_dispositions) != expected: + raise CanonicalContractError("construct_dispositions do not match envelope contents") + self._validate_construct_coverage() + + def _expected_dispositions(self) -> dict[str, ConstructDisposition]: + dispositions: dict[str, ConstructDisposition] = { + RequiredBridgeConstruct.FAMILY_IDENTITY.value: ConstructDisposition.REPRESENTED, + RequiredBridgeConstruct.SOURCE_REFERENCES.value: ( + ConstructDisposition.REPRESENTED + ), + RequiredBridgeConstruct.ASSUMPTIONS.value: ConstructDisposition.REPRESENTED, + RequiredBridgeConstruct.PROVENANCE.value: ConstructDisposition.REPRESENTED, + RequiredBridgeConstruct.UNSUPPORTED_CONSTRUCTS.value: ( + ConstructDisposition.REPRESENTED + ), + } + if self.domain_logic_slice is None: + dispositions[RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value] = ( + ConstructDisposition.UNSUPPORTED + ) + else: + dispositions[RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value] = ( + self.domain_logic_slice.disposition + ) + for construct in _CONSTRUCT_VIEW_NAMES: + dispositions[construct] = ( + ConstructDisposition.REPRESENTED + if _view_represents_construct(construct, self.views) + else ConstructDisposition.UNSUPPORTED + ) + extension_views = [ + view + for view in self.views.values() + if view.kind is BridgeRepresentationKind.FAMILY_EXTENSION + or view.name not in CORE_BRIDGE_VIEW_NAMES + ] + dispositions[RequiredBridgeConstruct.FAMILY_EXTENSIONS.value] = ( + ConstructDisposition.REPRESENTED + if extension_views + else ConstructDisposition.UNSUPPORTED + ) + trace_kinds = {item.kind.value for item in self.trace_refs} + for construct, kind in _CONSTRUCT_TRACE_KINDS.items(): + dispositions[construct] = ( + ConstructDisposition.REPRESENTED + if kind in trace_kinds + else ConstructDisposition.UNSUPPORTED + ) + return dict(sorted(dispositions.items())) + + def _validate_construct_coverage(self) -> None: + required = {item.value for item in RequiredBridgeConstruct} + present = set(self.construct_dispositions) + if present != required: + missing = ", ".join(sorted(required - present)) or "none" + extra = ", ".join(sorted(present - required)) or "none" + raise CanonicalContractError( + f"construct catalog mismatch; missing={missing}; extra={extra}" + ) + unsupported_ids = {item.construct_id for item in self.unsupported_constructs} + for construct, disposition in self.construct_dispositions.items(): + if disposition is ConstructDisposition.UNSUPPORTED and construct not in { + RequiredBridgeConstruct.FAMILY_IDENTITY.value, + RequiredBridgeConstruct.SOURCE_REFERENCES.value, + RequiredBridgeConstruct.ASSUMPTIONS.value, + RequiredBridgeConstruct.PROVENANCE.value, + RequiredBridgeConstruct.UNSUPPORTED_CONSTRUCTS.value, + }: + if construct not in unsupported_ids and not ( + construct == RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value + and self.domain_logic_slice is not None + and self.domain_logic_slice.unsupported is not None + ): + raise CanonicalContractError( + f"unsupported construct {construct!r} lacks an explicit record" + ) + + def identity_payload(self) -> dict[str, object]: + return { + "adapter_name": self.adapter_name, + "assumptions": [item.to_dict() for item in self.assumptions], + "construct_dispositions": { + key: value.value for key, value in self.construct_dispositions.items() + }, + "domain_logic_slice": self.domain_logic_slice.to_dict(), + "family_identity": self.family_identity.to_dict(), + "interface": CANONICAL_TYPED_BRIDGE_INTERFACE, + "metadata": _thaw_json(self.metadata), + "provenance": _thaw_json(self.provenance), + "schema_version": CANONICAL_TYPED_BRIDGE_SCHEMA_VERSION, + "source_references": [item.to_dict() for item in self.source_references], + "trace_refs": [item.to_dict() for item in self.trace_refs], + "unsupported_constructs": [item.to_dict() for item in self.unsupported_constructs], + "views": {name: view.to_dict() for name, view in self.views.items()}, + } + + @property + def bridge_cid(self) -> str: + return cid_for_dag_json(self.identity_payload()) + + def to_dict(self) -> dict[str, object]: + return { + **self.identity_payload(), + "bridge_cid": self.bridge_cid, + "bridge_cid_codec": "dag-json", + "bridge_cid_scope": "identity_payload", + } + + @classmethod + def from_dict(cls, value: object) -> "CanonicalTypedBridge": + if not isinstance(value, Mapping) or set(value) != { + "adapter_name", + "assumptions", + "bridge_cid", + "bridge_cid_codec", + "bridge_cid_scope", + "construct_dispositions", + "domain_logic_slice", + "family_identity", + "interface", + "metadata", + "provenance", + "schema_version", + "source_references", + "trace_refs", + "unsupported_constructs", + "views", + }: + raise CanonicalContractError("typed bridge fields changed") + if value["interface"] != CANONICAL_TYPED_BRIDGE_INTERFACE: + raise CanonicalContractError("typed bridge interface changed") + if value["schema_version"] != CANONICAL_TYPED_BRIDGE_SCHEMA_VERSION: + raise CanonicalContractError("typed bridge schema version changed") + if ( + value["bridge_cid_codec"] != "dag-json" + or value["bridge_cid_scope"] != "identity_payload" + ): + raise CanonicalContractError("typed bridge CID contract changed") + bridge = cls( + family_identity=BridgeFamilyIdentity.from_dict(value["family_identity"]), + source_references=tuple( + BridgeSourceReference.from_dict(item) + for item in value["source_references"] # type: ignore[union-attr] + ), + assumptions=tuple( + BridgeAssumption.from_dict(item) + for item in value["assumptions"] # type: ignore[union-attr] + ), + provenance=value["provenance"], # type: ignore[arg-type] + unsupported_constructs=tuple( + BridgeUnsupportedConstruct.from_dict(item) + for item in value["unsupported_constructs"] # type: ignore[union-attr] + ), + views={ + name: BridgeView.from_dict(item) + for name, item in value["views"].items() # type: ignore[union-attr] + }, + trace_refs=tuple( + BridgeTraceRef.from_dict(item) + for item in value["trace_refs"] # type: ignore[union-attr] + ), + domain_logic_slice=DomainLogicSliceRole.from_dict(value["domain_logic_slice"]), + construct_dispositions=value["construct_dispositions"], # type: ignore[arg-type] + adapter_name=value["adapter_name"], # type: ignore[arg-type] + metadata=value["metadata"], # type: ignore[arg-type] + ) + if _cid(value["bridge_cid"], "bridge_cid", codec="dag-json") != bridge.bridge_cid: + raise CanonicalContractError("bridge_cid does not match typed bridge") + return bridge + + @classmethod + def compose( + cls, + *, + family_id: str, + authority_schema: str, + views: Mapping[str, BridgeView] | Sequence[BridgeView] = (), + source_references: Sequence[BridgeSourceReference] = (), + assumptions: Sequence[BridgeAssumption] = (), + provenance: Mapping[str, object] | None = None, + unsupported_constructs: Sequence[BridgeUnsupportedConstruct] = (), + trace_refs: Sequence[BridgeTraceRef] = (), + domain_logic_slice: DomainLogicSliceRole | None = None, + adapter_name: str = "", + metadata: Mapping[str, object] | None = None, + payload_cid: str | None = None, + representation_kind: BridgeRepresentationKind = BridgeRepresentationKind.LOGIC_FAMILY, + ) -> "CanonicalTypedBridge": + """Build a fail-closed envelope that accounts for every required construct.""" + + if isinstance(views, Mapping): + view_map = { + name: (view if isinstance(view, BridgeView) else BridgeView.from_dict(view)) + for name, view in views.items() + } + else: + view_map = {} + for view in views: + item = view if isinstance(view, BridgeView) else BridgeView.from_dict(view) + view_map[item.name] = item + if not view_map: + raise CanonicalContractError("typed bridge compose requires at least one view") + authority_view = ( + view_map.get("canonical_roundtrip_ir") + or view_map.get("formalization_artifact") + or view_map.get("legal_ir_document") + or view_map.get("logic_family") + or next(iter(view_map.values())) + ) + family_identity = BridgeFamilyIdentity( + family_id=family_id, + authority_schema=authority_schema, + payload_cid=payload_cid or authority_view.payload_cid, + representation_kind=representation_kind, + ) + if domain_logic_slice is None: + domain_logic_slice = _slice_projection( + family_id=family_id, + view=authority_view, + member_ids=infer_slice_member_ids(authority_view.payload), + ) + unsupported = { + item.construct_id: item + for item in ( + item + if isinstance(item, BridgeUnsupportedConstruct) + else BridgeUnsupportedConstruct.from_dict(item) + for item in unsupported_constructs + ) + } + for construct in _CONSTRUCT_VIEW_NAMES: + if ( + not _view_represents_construct(construct, view_map) + and construct not in unsupported + ): + unsupported[construct] = _default_unsupported( + RequiredBridgeConstruct(construct), + family_id=family_id, + ) + extension_present = any( + view.kind is BridgeRepresentationKind.FAMILY_EXTENSION + or view.name not in CORE_BRIDGE_VIEW_NAMES + for view in view_map.values() + ) + if ( + not extension_present + and RequiredBridgeConstruct.FAMILY_EXTENSIONS.value not in unsupported + ): + unsupported[RequiredBridgeConstruct.FAMILY_EXTENSIONS.value] = ( + _default_unsupported( + RequiredBridgeConstruct.FAMILY_EXTENSIONS, + family_id=family_id, + ) + ) + trace_kinds = { + (item.kind.value if isinstance(item, BridgeTraceRef) else str(item["kind"])) + for item in trace_refs + } + for construct, kind in _CONSTRUCT_TRACE_KINDS.items(): + if kind not in trace_kinds and construct not in unsupported: + unsupported[construct] = _default_unsupported( + RequiredBridgeConstruct(construct), + family_id=family_id, + ) + if ( + domain_logic_slice.disposition is ConstructDisposition.UNSUPPORTED + and RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value not in unsupported + ): + record = domain_logic_slice.unsupported or _default_unsupported( + RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE, + family_id=family_id, + ) + unsupported[RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value] = record + dispositions = { + RequiredBridgeConstruct.FAMILY_IDENTITY.value: ( + ConstructDisposition.REPRESENTED + ), + RequiredBridgeConstruct.SOURCE_REFERENCES.value: ( + ConstructDisposition.REPRESENTED + ), + RequiredBridgeConstruct.ASSUMPTIONS.value: ConstructDisposition.REPRESENTED, + RequiredBridgeConstruct.PROVENANCE.value: ConstructDisposition.REPRESENTED, + RequiredBridgeConstruct.UNSUPPORTED_CONSTRUCTS.value: ( + ConstructDisposition.REPRESENTED + ), + RequiredBridgeConstruct.DOMAIN_LOGIC_SLICE.value: ( + domain_logic_slice.disposition + ), + } + for construct in _CONSTRUCT_VIEW_NAMES: + dispositions[construct] = ( + ConstructDisposition.REPRESENTED + if _view_represents_construct(construct, view_map) + else ConstructDisposition.UNSUPPORTED + ) + dispositions[RequiredBridgeConstruct.FAMILY_EXTENSIONS.value] = ( + ConstructDisposition.REPRESENTED + if extension_present + else ConstructDisposition.UNSUPPORTED + ) + for construct, kind in _CONSTRUCT_TRACE_KINDS.items(): + dispositions[construct] = ( + ConstructDisposition.REPRESENTED + if kind in trace_kinds + else ConstructDisposition.UNSUPPORTED + ) + return cls( + family_identity=family_identity, + source_references=tuple(source_references), + assumptions=tuple(assumptions), + provenance=provenance or {}, + unsupported_constructs=tuple(unsupported.values()), + views=view_map, + trace_refs=tuple(trace_refs), + domain_logic_slice=domain_logic_slice, + construct_dispositions=dispositions, + adapter_name=adapter_name, + metadata=metadata or {}, + ) + + +__all__ = [ + "CANONICAL_DESIGN_GATE_CID", + "CANONICAL_PARITY_POLICY_CID", + "CANONICAL_ROUNDTRIP_CONTRACTS_INTERFACE", + "CANONICAL_ROUNDTRIP_IR_INTERFACE", + "CANONICAL_ROUNDTRIP_IR_SCHEMA_VERSION", + "CANONICAL_ROUNDTRIP_PARITY_POLICY_INTERFACE", + "CANONICAL_ROUNDTRIP_PARITY_POLICY_SCHEMA", + "CANONICAL_STRUCTURED_TEXT_COMPILER_INTERFACE", + "CANONICAL_STRUCTURED_TEXT_DECOMPILER_INTERFACE", + "CANONICAL_TYPED_BRIDGE_CONFORMANCE_INTERFACE", + "CANONICAL_TYPED_BRIDGE_INTERFACE", + "CANONICAL_TYPED_BRIDGE_MIGRATION_INTERFACE", + "CANONICAL_TYPED_BRIDGE_SCHEMA_VERSION", + "CORE_BRIDGE_VIEW_NAMES", + "FORBIDDEN_BRIDGE_FAMILY_IDS", + "IMPLEMENTATION_REPRESENTATIVE_ARM_ID", + "REGISTERED_BRIDGE_FAMILY_IDS", + "IMPLEMENTATION_REPRESENTATIVE_ARM_IDENTITY_CID", + "REPLACEMENT_GATE_CID", + "REPLACEMENT_REPORT_CID", + "SELECTABLE_ARM_IDS", + "SELECTED_CONSTRUCTOR_ADAPTER_RAW_CID", + "SELECTED_CONSTRUCTOR_INTERFACE", + "SELECTED_COORDINATE_RUNNER_RAW_CID", + "SELECTED_REALIZER_ADAPTER_RAW_CID", + "SELECTED_REALIZER_INTERFACE", + "SELECTION_BASIS", + "SOURCE_WITHHELD_DECOMPILER_CONFIG", + "SOURCE_WITHHELD_DECOMPILER_CONFIG_CID", + "SOURCE_WITHHELD_RENDERING_SPEC_CID", + "SRT014_GATE_CID", + "SRT014_REMEDIATION_MANIFEST_CID", + "SRT014_REPORT_CID", + "TIED_SELECTIVE_ARM_IDENTITY_CID", + "CanonicalContractError", + "CanonicalAtomVocabulary", + "CanonicalDiagnostic", + "CanonicalError", + "CanonicalErrorCode", + "CanonicalParityPolicy", + "CanonicalRoundTripIR", + "CanonicalRule", + "CanonicalStructuredTextCompiler", + "CanonicalStructuredTextDecompiler", + "CanonicalTypedBridge", + "CompilerRequest", + "CompilerResult", + "ComponentTrace", + "ConstructDisposition", + "DecompilerRequest", + "DecompilerResult", + "DiagnosticSeverity", + "DomainLogicSliceRole", + "BridgeAssumption", + "BridgeFamilyIdentity", + "BridgeRepresentationKind", + "BridgeSourceReference", + "BridgeTraceKind", + "BridgeTraceRef", + "BridgeUnsupportedConstruct", + "BridgeView", + "OperationStatus", + "RequiredBridgeConstruct", + "SourceMapEntry", + "UnsupportedDisposition", + "UnsupportedSemantic", + "canonical_ir_schema_path", + "infer_slice_member_ids", + "load_canonical_ir_schema", + "load_parity_policy", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57/ipfs_datasets_py/logic/ui_ux_ir/decoder.py b/releases/20261004-retained-checkpoints-v1/source/d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57/ipfs_datasets_py/logic/ui_ux_ir/decoder.py new file mode 100644 index 0000000000000000000000000000000000000000..e39bcaf91cb0a3559c2d5bfb8da62addf96181a0 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57/ipfs_datasets_py/logic/ui_ux_ir/decoder.py @@ -0,0 +1,207 @@ +"""Exact-version decoding for UI/UX IR wire documents (UIR-011).""" + +from __future__ import annotations + +import json +from typing import Any, Mapping + +from .schema import ( + LEGACY_UI_UX_IR_SCHEMA_VERSION, + ReviewStatus, + SourceSpan, + TerminalOutcomeKind, + UIComponent, + UILocaleDefaults, + UIIRDocument, + UIIRValidationError, + UISourceRef, + UITerminalOutcome, + UI_UX_IR_SCHEMA_VERSION, + reject_unknown_document_fields, + validate_ui_ir, +) + + +class UIIRDecodeError(UIIRValidationError): + """Raised when an untrusted payload cannot be decoded exactly.""" + + +def _require_mapping(value: Any, label: str) -> Mapping[str, Any]: + if not isinstance(value, Mapping): + raise UIIRDecodeError(f"{label} must be an object") + return value + + +def _tuple_str(value: Any, label: str) -> tuple[str, ...]: + if value is None: + return () + if not isinstance(value, (list, tuple)): + raise UIIRDecodeError(f"{label} must be an array") + out: list[str] = [] + for item in value: + if not isinstance(item, str) or not item.strip(): + raise UIIRDecodeError(f"{label} members must be non-empty strings") + out.append(item) + return tuple(out) + + +def _decode_source(payload: Mapping[str, Any]) -> UISourceRef: + span_raw = payload.get("span") + span = None + if span_raw is not None: + span_map = _require_mapping(span_raw, "UISourceRef.span") + span = SourceSpan( + start_char=int(span_map.get("start_char", 0)), + end_char=int(span_map.get("end_char", 0)), + ) + review = payload.get("review_status", ReviewStatus.UNREVIEWED) + if isinstance(review, str): + review = ReviewStatus(review) + return UISourceRef( + ref_id=str(payload.get("ref_id") or ""), + source_uri=str(payload.get("source_uri") or ""), + source_id=str(payload.get("source_id") or ""), + source_revision=str(payload.get("source_revision") or ""), + content_sha256=str(payload.get("content_sha256") or ""), + container_uri=str(payload.get("container_uri") or ""), + container_sha256=str(payload.get("container_sha256") or ""), + content_cid=str(payload.get("content_cid") or ""), + license_expression=str(payload.get("license_expression") or ""), + review_status=review, + span=span, + ) + + +def _decode_component(payload: Mapping[str, Any]) -> UIComponent: + return UIComponent( + component_id=str(payload.get("component_id") or ""), + role=str(payload.get("role") or ""), + purpose=str(payload.get("purpose") or ""), + accessible_name_ref=str(payload.get("accessible_name_ref") or ""), + accessible_description_ref=str(payload.get("accessible_description_ref") or ""), + parent_id=str(payload.get("parent_id") or ""), + child_ids=_tuple_str(payload.get("child_ids"), "UIComponent.child_ids"), + modality_binding_ids=_tuple_str( + payload.get("modality_binding_ids"), "UIComponent.modality_binding_ids" + ), + data_binding_ids=_tuple_str( + payload.get("data_binding_ids"), "UIComponent.data_binding_ids" + ), + program_binding_ids=_tuple_str( + payload.get("program_binding_ids"), "UIComponent.program_binding_ids" + ), + feedback_ids=_tuple_str(payload.get("feedback_ids"), "UIComponent.feedback_ids"), + privacy_sensitivity=str(payload.get("privacy_sensitivity") or "none"), + presentation_classification=str( + payload.get("presentation_classification") or "interactive" + ), + source_ref_ids=_tuple_str( + payload.get("source_ref_ids"), "UIComponent.source_ref_ids" + ), + ) + + +def _decode_terminal(payload: Mapping[str, Any]) -> UITerminalOutcome: + kind = payload.get("kind", TerminalOutcomeKind.SUCCESS) + if isinstance(kind, str): + kind = TerminalOutcomeKind(kind) + return UITerminalOutcome( + outcome_id=str(payload.get("outcome_id") or ""), + kind=kind, + description=str(payload.get("description") or ""), + source_ref_ids=_tuple_str( + payload.get("source_ref_ids"), "UITerminalOutcome.source_ref_ids" + ), + ) + + +def _decode_locale(payload: Mapping[str, Any] | None) -> UILocaleDefaults: + if not payload: + return UILocaleDefaults() + data = _require_mapping(payload, "locale_defaults") + return UILocaleDefaults( + default_locale=str(data.get("default_locale") or "en"), + fallback_locales=_tuple_str( + data.get("fallback_locales"), "locale_defaults.fallback_locales" + ), + text_direction=str(data.get("text_direction") or "ltr"), + ) + + +def decode_ui_ir(payload: Mapping[str, Any] | str | bytes) -> UIIRDocument: + """Decode a wire payload into a validated ``UIIRDocument``. + + Unknown versions and unknown top-level fields fail closed. Legacy versions + must be migrated explicitly via :mod:`migrations` before decode. + """ + + if isinstance(payload, (bytes, bytearray)): + try: + payload = json.loads(bytes(payload).decode("utf-8")) + except (UnicodeDecodeError, json.JSONDecodeError) as exc: + raise UIIRDecodeError(f"UI/UX IR payload is not valid UTF-8 JSON: {exc}") from exc + elif isinstance(payload, str): + try: + payload = json.loads(payload) + except json.JSONDecodeError as exc: + raise UIIRDecodeError(f"UI/UX IR payload is not valid JSON: {exc}") from exc + if not isinstance(payload, Mapping): + raise UIIRDecodeError("UI/UX IR payload must decode to an object") + + version = str(payload.get("schema_version") or "") + if not version: + raise UIIRDecodeError("UI/UX IR payload missing schema_version") + if version == LEGACY_UI_UX_IR_SCHEMA_VERSION: + raise UIIRDecodeError( + f"Legacy schema_version {version!r} requires explicit migration before decode" + ) + if version != UI_UX_IR_SCHEMA_VERSION: + raise UIIRDecodeError( + f"Unsupported schema_version {version!r}; expected {UI_UX_IR_SCHEMA_VERSION!r}" + ) + try: + reject_unknown_document_fields(payload) + except UIIRValidationError as exc: + raise UIIRDecodeError(str(exc)) from exc + + sources_raw = payload.get("sources") or () + components_raw = payload.get("components") or () + terminals_raw = payload.get("terminal_outcomes") or () + if not isinstance(sources_raw, (list, tuple)): + raise UIIRDecodeError("sources must be an array") + if not isinstance(components_raw, (list, tuple)): + raise UIIRDecodeError("components must be an array") + if not isinstance(terminals_raw, (list, tuple)): + raise UIIRDecodeError("terminal_outcomes must be an array") + + try: + document = UIIRDocument( + document_id=str(payload.get("document_id") or ""), + title=str(payload.get("title") or ""), + schema_version=version, + sources=tuple( + _decode_source(_require_mapping(item, "sources[]")) for item in sources_raw + ), + components=tuple( + _decode_component(_require_mapping(item, "components[]")) + for item in components_raw + ), + entry_components=_tuple_str( + payload.get("entry_components"), "entry_components" + ), + terminal_outcomes=tuple( + _decode_terminal(_require_mapping(item, "terminal_outcomes[]")) + for item in terminals_raw + ), + locale_defaults=_decode_locale(payload.get("locale_defaults")), + tags=_tuple_str(payload.get("tags"), "tags"), + ) + except UIIRValidationError as exc: + raise UIIRDecodeError(str(exc)) from exc + except (TypeError, ValueError, KeyError) as exc: + raise UIIRDecodeError(f"Failed to decode UI/UX IR document: {exc}") from exc + + return validate_ui_ir(document) + + +__all__ = ["UIIRDecodeError", "decode_ui_ir"] diff --git a/releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py b/releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py new file mode 100644 index 0000000000000000000000000000000000000000..6e5e78a9ff1fea4c9fa36bd64b9ad85d7a98f270 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py @@ -0,0 +1,611 @@ +"""Lineage-bound joint residual projection and latent-conditioned formula decoder. + +The frozen 8D or current 384D numerical core supplies a raw representation. +This module trains a new residual projection and token decoder together using +embedding reconstruction and formula token losses. Formula gradients reach the +new projection; they do not differentiate the historical sparse core. Source +strings bind observations only and never enter the decoder. The first head +supports one exact canonical deontic rule; other logic projections abstain. +No checkpoint, metric or syntax check grants semantic or Lake admission. +""" +from __future__ import annotations + +import copy +import hashlib +import json +import math +from pathlib import Path +import random +import re +import stat +import time + +from . import legal_formula_codec as codec_module + +SCHEMA = "modal-latent-formula-checkpoint/v1" +ARCHITECTURE = "residual-projection-latent-formula-gru/v1" +PROJECTION_ID = "typed_deontic_rule_v1" +MAX_BYTES = 48 * 1024 * 1024 +MAX_ROWS = 4096 +FALSE = {"qualified": False, "admitted": False, "formalized": False, + "roundtrip_ok": False, "proof_authority": False, + "semantic_correctness_verified": False, "promotion_performed": False, + "publication_performed": False, "lake_executed": False} +_SHA = re.compile(r"[0-9a-f]{64}\Z") + + +def _require(condition, message): + if not condition: + raise ValueError(message) + + +def _raw(value): + return json.dumps(value, sort_keys=True, separators=(",", ":"), + ensure_ascii=True, allow_nan=False).encode() + + +def checkpoint_digest(value): + return hashlib.sha256(_raw(value)).hexdigest() + + +def _pins(): + from ...logic.autoformal import tree_pin + from ...logic.legal_ir import canonical_contracts + from . import legal_ir_grammar_decoder + expected = next((parent / "ipfs_datasets_py" for parent in Path(__file__).resolve().parents + if (parent / "ipfs_datasets_py/logic/autoformal/tree_pin.py").is_file()), None) + _require(expected is not None, "canonical package root is missing") + modules = (codec_module, tree_pin, canonical_contracts, legal_ir_grammar_decoder) + for module in modules: + _require(expected.resolve() in Path(module.__file__).resolve().parents, + "latent formula dependency loaded outside pinned package tree") + tree_pin.require_workspace_logic_tree() + files = {Path(module.__file__).name: hashlib.sha256(Path(module.__file__).read_bytes()).hexdigest() + for module in modules} + files[Path(__file__).name] = hashlib.sha256(Path(__file__).read_bytes()).hexdigest() + return {"scope": "listed_latent_decoder_and_grammar_sources_only", "files": files} + + +_IMPLEMENTATION_AT_IMPORT = _pins() + + +def _implementation(): + current = _pins() + _require(current == _IMPLEMENTATION_AT_IMPORT, "latent formula implementation changed since import") + return current + + +def _torch(): + import torch + _require(torch.get_num_threads() == 1, "caller must reserve CPU and set torch.set_num_threads(1)") + return torch + + +def _binding(value): + fields = {"domain", "lineage_id", "dimension", "runtime_profile", "core_sha256"} + _require(type(value) is dict and set(value) == fields, "closed latent binding required") + _require(value["domain"] == "legal_ir", "legal latent decoder requires legal_ir domain") + dimension = {"legacy_hub_v1": 8, "current_legal_v2": 384}.get(value["lineage_id"]) + _require(type(value["dimension"]) is int and dimension == value["dimension"], + "lineage and latent dimension differ") + _require(type(value["runtime_profile"]) is str and 0 < len(value["runtime_profile"]) <= 256, + "bounded runtime profile required") + _require(type(value["core_sha256"]) is str and _SHA.fullmatch(value["core_sha256"]), + "exact core state SHA256 required") + return copy.deepcopy(value) + + +def _config(*, learning_rate=.01, batch_size=8, seed=1729, hidden_size=32, + token_embedding_dim=16, projection_width=16, formula_weight=1., reconstruction_weight=1.): + for name, value, low, high in (("batch_size", batch_size, 1, 16), ("seed", seed, 0, 2**31 - 1), + ("hidden_size", hidden_size, 8, 128), ("token_embedding_dim", token_embedding_dim, 8, 64), + ("projection_width", projection_width, 1, 64)): + _require(type(value) is int and low <= value <= high, name + " is outside bounded integer range") + for name, value, high in (("learning_rate", learning_rate, .1), ("formula_weight", formula_weight, 100.), + ("reconstruction_weight", reconstruction_weight, 100.)): + _require(type(value) in (int, float) and math.isfinite(value) and 0 < value <= high, + name + " must be finite and positive within its bound") + return {"architecture": ARCHITECTURE, "device": "cpu", "dtype": "float32", "temperature": 0, + "max_target_tokens": 64, "source_input": "provenance_only_not_neural_input", + "torch_version": str(_torch().__version__), "learning_rate": float(learning_rate), + "batch_size": batch_size, "seed": seed, "hidden_size": hidden_size, + "token_embedding_dim": token_embedding_dim, "projection_width": projection_width, + "formula_weight": float(formula_weight), "reconstruction_weight": float(reconstruction_weight)} + + +def _vector(value, dimension, label): + _require(type(value) is list and len(value) == dimension and all( + type(number) in (int, float) and math.isfinite(number) and abs(number) <= 1e8 for number in value), + label + " requires bounded finite values with exact lineage width") + + +def _rows(rows, dimension, *, training, allow_empty=False): + _require(type(rows) in (list, tuple) and (0 if allow_empty else 1) <= len(rows) <= MAX_ROWS, + "bounded rows required") + fields = {"id", "source_text", "latent"} | ({"embedding", "canonical_ir"} if training else set()) + ids, sources = set(), set() + for row in rows: + _require(type(row) is dict and set(row) == fields, "closed latent row schema required") + _require(type(row["id"]) is str and 0 < len(row["id"]) <= 512 and row["id"] not in ids, + "unique bounded row id required") + _require(type(row["source_text"]) is str and 0 < len(row["source_text"]) <= 16384 + and row["source_text"].strip(), "bounded nonempty source provenance required") + source = " ".join(row["source_text"].casefold().split()) + _require(not training or source not in sources, "duplicate normalized training source") + ids.add(row["id"]) + sources.add(source) + _vector(row["latent"], dimension, "latent") + if training: + _vector(row["embedding"], dimension, "embedding") + return list(rows) + + +def _splits(training, tuning, dimension): + train = _rows(training, dimension, training=True) + tune = _rows(tuning, dimension, training=True, allow_empty=True) + _require(not {row["id"] for row in train} & {row["id"] for row in tune}, "training/tuning IDs overlap") + key = lambda row: " ".join(row["source_text"].casefold().split()) + _require(not {key(row) for row in train} & {key(row) for row in tune}, "training/tuning sources overlap") + return train, tune + + +def _model(binding, codec, config): + torch = _torch() + class JointDecoder(torch.nn.Module): + def __init__(self): + super().__init__() + dimension, width, hidden = binding["dimension"], config["projection_width"], config["hidden_size"] + self.projection_down = torch.nn.Linear(dimension, width) + self.projection_up = torch.nn.Linear(width, dimension) + self.condition = torch.nn.Linear(dimension, hidden) + self.target_embedding = torch.nn.Embedding(len(codec["target_vocabulary"]), + config["token_embedding_dim"], padding_idx=0) + self.decoder = torch.nn.GRU(config["token_embedding_dim"], hidden, batch_first=True) + self.output = torch.nn.Linear(hidden, len(codec["target_vocabulary"])) + + def project(self, latent): + return latent + self.projection_up(torch.tanh(self.projection_down(latent))) + + def start(self, projected): + return torch.tanh(self.condition(projected)).unsqueeze(0) + + def next_logits(self, tokens, hidden): + outputs, hidden = self.decoder(self.target_embedding(tokens), hidden) + return self.output(outputs), hidden + + def forward(self, latent, target): + projected = self.project(latent) + return projected, self.next_logits(target, self.start(projected))[0] + with torch.random.fork_rng(devices=[]): + torch.manual_seed(config["seed"]) + model = JointDecoder() + return model + + +def _optimizer(model, config): + return _torch().optim.Adam(model.parameters(), lr=config["learning_rate"], foreach=False) + + +def _pack(model, optimizer): + states = {} + for name, parameter in model.named_parameters(): + state = optimizer.state.get(parameter) + if state: + states[name] = {"step": int(state["step"].item()), "exp_avg": state["exp_avg"].detach().tolist(), + "exp_avg_sq": state["exp_avg_sq"].detach().tolist()} + return ({name: value.detach().tolist() for name, value in model.state_dict().items()}, + {"schema": "adam-default-betas-eps/v1", "parameters": states}) + + +def _tensor(value, template, label, *, nonnegative=False): + def check(part, shape): + if shape: + _require(type(part) is list and len(part) == shape[0], label + " tensor shape differs") + for item in part: + check(item, shape[1:]) + else: + _require(type(part) in (int, float) and math.isfinite(part) and (not nonnegative or part >= 0), + label + " tensor values must be finite and valid") + check(value, tuple(template.shape)) + tensor = _torch().tensor(value, dtype=_torch().float32) + _require(bool(_torch().isfinite(tensor).all()), label + " overflows float32") + return tensor + + +def build_checkpoint(binding, train_rows, tune_rows, **options): + """Initialize a separate head; no existing weights are converted or updated.""" + binding, config, implementation = _binding(binding), _config(**options), _implementation() + train, tune = _splits(train_rows, tune_rows, binding["dimension"]) + # Reuse only the exact target grammar. The sentinel creates no textual model + # vocabulary, and actual source strings never condition generation. + codec = codec_module.fit_codec([{"id": row["id"], "source_text": "latent", "canonical_ir": row["canonical_ir"]} + for row in train]) + for row in tune: + codec_module.encode_target(codec, row["canonical_ir"]) + model = _model(binding, codec, config) + weights, optimizer = _pack(model, _optimizer(model, config)) + checkpoint = {"schema": SCHEMA, "binding": binding, "projection_id": PROJECTION_ID, "config": config, + "codec": codec, "implementation": implementation, "training_manifest_sha256": checkpoint_digest(train), + "tuning_manifest_sha256": checkpoint_digest(tune), "training_count": len(train), "tuning_count": len(tune), + "model_state": weights, "optimizer_state": optimizer, + "progress": {"epochs_completed": 0, "row_cursor": 0, "optimizer_steps": 0}, + "parent_checkpoint_sha256": None, **FALSE} + validate_checkpoint(checkpoint) + return checkpoint + + +def _restore(checkpoint, expected_binding=None): + torch = _torch() + fields = {"schema", "binding", "projection_id", "config", "codec", "implementation", + "training_manifest_sha256", "tuning_manifest_sha256", "training_count", "tuning_count", + "model_state", "optimizer_state", "progress", "parent_checkpoint_sha256", *FALSE} + _require(type(checkpoint) is dict and set(checkpoint) == fields and checkpoint["schema"] == SCHEMA, + "closed latent checkpoint schema required") + _require(len(_raw(checkpoint)) <= MAX_BYTES, "latent checkpoint exceeds byte bound") + _require(all(checkpoint[key] is False for key in FALSE), "latent checkpoint cannot grant authority") + binding = _binding(checkpoint["binding"]) + if expected_binding is not None: + _require(binding == _binding(expected_binding), "latent checkpoint binding differs") + _require(checkpoint["projection_id"] == PROJECTION_ID, "unsupported formula projection") + _require(checkpoint["implementation"] == _implementation(), "latent formula source provenance differs") + config = checkpoint["config"] + keys = ("learning_rate", "batch_size", "seed", "hidden_size", "token_embedding_dim", "projection_width", + "formula_weight", "reconstruction_weight") + _require(type(config) is dict and all(name in config for name in keys), "closed model config required") + _require(_raw(config) == _raw(_config(**{name: config[name] for name in keys})), "model config differs") + codec_module.validate_codec(checkpoint["codec"]) + _require(checkpoint["codec"]["source_vocabulary"] == ["", "", "latent"], + "latent model must not contain source vocabulary") + for name in ("training_manifest_sha256", "tuning_manifest_sha256"): + _require(type(checkpoint[name]) is str and _SHA.fullmatch(checkpoint[name]), "invalid manifest hash") + parent = checkpoint["parent_checkpoint_sha256"] + _require(parent is None or type(parent) is str and _SHA.fullmatch(parent), "invalid parent checkpoint hash") + count, tune_count = checkpoint["training_count"], checkpoint["tuning_count"] + _require(type(count) is int and 1 <= count <= MAX_ROWS and type(tune_count) is int and 0 <= tune_count <= MAX_ROWS, + "invalid split counts") + progress = checkpoint["progress"] + _require(type(progress) is dict and set(progress) == {"epochs_completed", "row_cursor", "optimizer_steps"} + and all(type(number) is int and 0 <= number <= 10**9 for number in progress.values()), + "closed bounded integer training progress required") + batch, cursor = config["batch_size"], progress["row_cursor"] + _require(cursor < count and cursor % batch == 0 and progress["optimizer_steps"] == + progress["epochs_completed"] * math.ceil(count / batch) + cursor // batch, + "optimizer step and row cursor differ") + model = _model(binding, checkpoint["codec"], config) + templates = model.state_dict() + weights = checkpoint["model_state"] + _require(type(weights) is dict and set(weights) == set(templates), "model state keys differ") + model.load_state_dict({name: _tensor(weights[name], template, name) for name, template in templates.items()}) + optimizer = _optimizer(model, config) + moments = checkpoint["optimizer_state"] + _require(type(moments) is dict and set(moments) == {"schema", "parameters"} + and moments["schema"] == "adam-default-betas-eps/v1" and type(moments["parameters"]) is dict, + "closed Adam moments required") + parameters = dict(model.named_parameters()) + _require(set(moments["parameters"]) == (set(parameters) if progress["optimizer_steps"] else set()), + "Adam parameter set differs") + for name, item in moments["parameters"].items(): + _require(type(item) is dict and set(item) == {"step", "exp_avg", "exp_avg_sq"} + and type(item["step"]) is int and item["step"] == progress["optimizer_steps"], + "Adam parameter step differs") + parameter = parameters[name] + optimizer.state[parameter] = {"step": torch.tensor(float(item["step"])), + "exp_avg": _tensor(item["exp_avg"], parameter, name + ".exp_avg"), + "exp_avg_sq": _tensor(item["exp_avg_sq"], parameter, name + ".exp_avg_sq", nonnegative=True)} + model.eval() + return torch, model, optimizer + + +def validate_checkpoint(checkpoint, *, expected_binding=None): + _restore(checkpoint, expected_binding) + + +def _batch(rows, codec): + torch = _torch() + targets = [codec_module.encode_target(codec, row["canonical_ir"]) for row in rows] + width = max(map(len, targets)) + return (torch.tensor([row["latent"] for row in rows], dtype=torch.float32), + torch.tensor([row["embedding"] for row in rows], dtype=torch.float32), + torch.tensor([target + [0] * (width - len(target)) for target in targets], dtype=torch.long)) + + +def _loss(model, rows, codec, config): + torch = _torch() + latent, expected_embedding, target = _batch(rows, codec) + projected, logits = model(latent, target[:, :-1]) + expected = target[:, 1:] + formula = torch.nn.functional.cross_entropy(logits.reshape(-1, logits.shape[-1]), expected.reshape(-1), ignore_index=0) + reconstruction = torch.nn.functional.mse_loss(projected, expected_embedding) + total = config["formula_weight"] * formula + config["reconstruction_weight"] * reconstruction + return total, formula, reconstruction, int((expected != 0).sum()) + + +def _norm(values): + return math.sqrt(sum(float(value.detach().double().square().sum()) for value in values if value is not None)) + + +def _metrics(model, rows, codec, config, deadline): + torch = _torch() + evaluated, tokens, ce, reconstruction = 0, 0, 0., 0. + model.eval() + with torch.no_grad(): + for start in range(0, len(rows), config["batch_size"]): + if time.monotonic() >= deadline: + break + batch = rows[start:start + config["batch_size"]] + loss, formula, mse, count = _loss(model, batch, codec, config) + _require(bool(torch.isfinite(loss)), "nonfinite evaluation loss") + ce += float(formula) * count + reconstruction += float(mse) * len(batch) + tokens += count + evaluated += len(batch) + return {"token_cross_entropy": ce / tokens if tokens else None, + "reconstruction_mse": reconstruction / evaluated if evaluated else None, + "rows_evaluated": evaluated, "token_count": tokens, "complete": evaluated == len(rows), + "teacher_forcing": True, "used_for_fit_or_selection": False} + + +def train(checkpoint, train_rows, tune_rows, *, epochs=20, max_seconds=60, max_optimizer_steps=None): + """Continue complete batches, retaining exact Adam and partial-epoch cursor. + + Formula and reconstruction losses jointly update the residual projection. + Tuning metrics are observational; this API does not select or promote a + candidate. The deadline is soft at numeric-batch and evaluation boundaries. + """ + started = time.monotonic() + _require(type(epochs) is int and 1 <= epochs <= 1000, "epochs must be in 1..1000") + _require(type(max_seconds) in (int, float) and math.isfinite(max_seconds) and 0 <= max_seconds <= 3600, + "bounded nonnegative deadline required") + _require(max_optimizer_steps is None or type(max_optimizer_steps) is int and 0 <= max_optimizer_steps <= 100000, + "bounded optimizer step budget required") + deadline = started + max_seconds + torch, model, optimizer = _restore(checkpoint) + training, tuning = _splits(train_rows, tune_rows, checkpoint["binding"]["dimension"]) + _require(checkpoint_digest(training) == checkpoint["training_manifest_sha256"] + and checkpoint_digest(tuning) == checkpoint["tuning_manifest_sha256"], "resume manifests differ") + config, codec = checkpoint["config"], checkpoint["codec"] + progress = dict(checkpoint["progress"]) + start_step, start_epoch = progress["optimizer_steps"], progress["epochs_completed"] + goal = start_epoch + epochs + before = _metrics(model, training, codec, config, deadline) + initial, _ = _pack(model, optimizer) + groups = {"projection": [parameter for name, parameter in model.named_parameters() if name.startswith("projection_")], + "decoder": [parameter for name, parameter in model.named_parameters() if not name.startswith("projection_")]} + maximum = {"projection": 0., "decoder": 0., "formula_to_projection": 0.} + history, stopped = [], "epoch_limit" + while progress["epochs_completed"] < goal: + if time.monotonic() >= deadline: + stopped = "deadline_before_batch"; break + if max_optimizer_steps is not None and progress["optimizer_steps"] - start_step >= max_optimizer_steps: + stopped = "optimizer_step_budget"; break + order = list(range(len(training))) + random.Random(config["seed"] + progress["epochs_completed"]).shuffle(order) + indices = order[progress["row_cursor"]:progress["row_cursor"] + config["batch_size"]] + batch = [training[index] for index in indices] + model.train() + optimizer.zero_grad(set_to_none=True) + loss, formula, mse, tokens = _loss(model, batch, codec, config) + _require(bool(torch.isfinite(loss)), "nonfinite joint training loss") + formula_gradients = torch.autograd.grad(formula, groups["projection"], retain_graph=True) + _require(all(bool(torch.isfinite(value).all()) for value in formula_gradients), "nonfinite formula projection gradient") + maximum["formula_to_projection"] = max(maximum["formula_to_projection"], _norm(formula_gradients)) + loss.backward() + for name, parameters in groups.items(): + _require(all(parameter.grad is not None and bool(torch.isfinite(parameter.grad).all()) for parameter in parameters), + "missing or nonfinite joint gradient") + maximum[name] = max(maximum[name], _norm(parameter.grad for parameter in parameters)) + torch.nn.utils.clip_grad_norm_(list(model.parameters()), 5., error_if_nonfinite=True) + optimizer.step() + _require(all(bool(torch.isfinite(parameter).all()) for parameter in model.parameters()), "nonfinite updated weights") + _require(all(bool(torch.isfinite(value).all()) for item in optimizer.state.values() for value in item.values() + if torch.is_tensor(value)), "nonfinite updated Adam moments") + progress["optimizer_steps"] += 1 + progress["row_cursor"] += len(indices) + if progress["row_cursor"] == len(training): + progress["epochs_completed"] += 1 + progress["row_cursor"] = 0 + history.append({"step": progress["optimizer_steps"], "token_cross_entropy": float(formula.detach()), + "reconstruction_mse": float(mse.detach()), "joint_loss": float(loss.detach()), "token_count": tokens}) + after = _metrics(model, training, codec, config, deadline) + tuning_metrics = _metrics(model, tuning, codec, config, deadline) + weights, moments = _pack(model, optimizer) + result = copy.deepcopy(checkpoint) + result.update(model_state=weights, optimizer_state=moments, progress=progress, + parent_checkpoint_sha256=checkpoint_digest(checkpoint)) + _require(result["implementation"] == _implementation(), "latent producer changed during training") + _require(len(_raw(result)) <= MAX_BYTES, "latent checkpoint exceeds byte bound") + selected = lambda state, prefix: {name: value for name, value in state.items() + if name.startswith("projection_") == (prefix == "projection")} + evidence = {name: {"gradient_norm_max": maximum[name], + "initial_parameters_sha256": checkpoint_digest(selected(initial, name)), + "final_parameters_sha256": checkpoint_digest(selected(weights, name)), + "parameter_update_l2": _norm(torch.tensor(weights[key], dtype=torch.float64) - torch.tensor(initial[key], dtype=torch.float64) + for key in selected(weights, name))} for name in groups} + report = {"schema": "modal-latent-formula-training/v1", "binding": copy.deepcopy(checkpoint["binding"]), + "checkpoint_sha256": checkpoint_digest(result), "parent_checkpoint_sha256": checkpoint_digest(checkpoint), + "projection_id": PROJECTION_ID, "training_executed": progress["optimizer_steps"] > start_step, + "optimizer_steps": progress["optimizer_steps"] - start_step, + "epochs_completed": progress["epochs_completed"] - start_epoch, "progress": dict(progress), + "stopped_reason": stopped, "elapsed_seconds": time.monotonic() - started, + "deadline_scope": "soft_before_batch; preparation_serialization_and_inflight_batch_not_interruptible", + "training_before": before, "training_after": after, "tuning": tuning_metrics, "batch_losses": history, + "parameter_evidence": evidence, "formula_projection_gradient_norm_max": maximum["formula_to_projection"], + "objective": "formula_token_cross_entropy_plus_projected_embedding_mse", + "core_sparse_weights_frozen_for_formula_gradient": True, "sample_memory_used": False, + "source_text_is_neural_input": False, "formula_conditioning": "learned_residual_projection_of_core_representation", + "heldout_canary": False, "selection_performed": False, "family_backend_syntax_checked": False, + "unsupported_projection_policy": "explicit_abstention", "examples_persisted": False, + "download_calls": 0, "provider_calls": 0, **FALSE} + return {"checkpoint": result, "report": report} + + +def _display(canonical_ir): + rule = canonical_ir["rules"][0] + atom = lambda value: value if re.fullmatch(r"[A-Za-z_][A-Za-z_0-9]*", value) else json.dumps(value, ensure_ascii=False) + text = rule["modality"] + "(" + atom(rule["action"]) + "(" + atom(rule["actor"]) + ", " + atom(rule["object"]) + "))" + qualifiers = {field: rule[field] for field in ("conditions", "exceptions", "temporal") if rule[field]} + return text + (" scope=" + json.dumps(qualifiers, sort_keys=True, ensure_ascii=False) if qualifiers else "") + + +class LatentFormulaDecoder: + """Worker-private cached inference; inputs never include formula targets.""" + def __init__(self, checkpoint, *, expected_binding=None): + self.torch, self.model, _ = _restore(checkpoint, expected_binding) + self._checkpoint = copy.deepcopy(checkpoint) + self._checkpoint_sha256 = checkpoint_digest(checkpoint) + self._codec = self._checkpoint["codec"] + # A version-counter-only check misses writes through tensor.data. Keep + # one tensor-sized reference, rather than repeatedly serializing the + # full JSON checkpoint (which also contains Adam and provenance). + self._reference_weights = {name: tensor.detach().clone() + for name, tensor in self.model.state_dict().items()} + + @property + def checkpoint(self): + """A diagnostic snapshot; callers cannot mutate inference metadata.""" + return copy.deepcopy(self._checkpoint) + + @property + def codec(self): + return copy.deepcopy(self._codec) + + @property + def checkpoint_sha256(self): + return self._checkpoint_sha256 + + def _check(self): + _torch() + _require(self._checkpoint["implementation"] == _implementation(), "latent source provenance differs") + state = self.model.state_dict() + _require(set(state) == set(self._reference_weights), "cached decoder weights differ from checkpoint") + _require(all(tensor.shape == self._reference_weights[name].shape + and tensor.dtype == self._reference_weights[name].dtype + and tensor.device == self._reference_weights[name].device + and self.torch.equal(tensor, self._reference_weights[name]) + for name, tensor in state.items()), "cached decoder weights differ from checkpoint") + + def project(self, latents): + self._check() + _require(type(latents) in (list, tuple) and 1 <= len(latents) <= 128, "one to 128 vectors required") + for latent in latents: + _vector(latent, self._checkpoint["binding"]["dimension"], "latent") + self.model.eval() + with self.torch.no_grad(): + values = self.model.project(self.torch.tensor(latents, dtype=self.torch.float32)) + _require(bool(self.torch.isfinite(values).all()), "nonfinite learned projection") + result = values.tolist() + self._check() + return result + + def _decode(self, row, projection_id): + base = {"id": row["id"], "source_sha256": hashlib.sha256(row["source_text"].encode()).hexdigest(), + "latent_sha256": checkpoint_digest(row["latent"]), "projection_id": projection_id, + "status": "abstained", "reason": None, "canonical_ir": None, "formula_text": None, "formal_outputs": [], + "teacher_forcing": False, "target_access": False, "training_executed": False, + "source_text_is_neural_input": False, "latent_input_conditioned": True, "independent_text_to_logic": False, + "learned_formula_generation": True, "sample_memory_used": False, "family_syntax_checked": False, + "temperature": 0, **FALSE} + if projection_id != PROJECTION_ID: + return {**base, "reason": "unsupported_formula_projection"} + if not self._checkpoint["progress"]["optimizer_steps"]: + return {**base, "reason": "untrained_formula_head"} + if not bool(self.model.output.weight.detach().any()) and not bool(self.model.output.bias.detach().any()): + return {**base, "reason": "zero_output_head"} + torch = self.torch + prefix, minimum_margin = [codec_module.TARGET_BOS], None + self.model.eval() + with torch.no_grad(): + projected = self.model.project(torch.tensor([row["latent"]], dtype=torch.float32)) + if not bool(torch.isfinite(projected).all()): + return {**base, "reason": "nonfinite_learned_projection"} + hidden = self.model.start(projected) + if not bool(torch.isfinite(hidden).all()): + return {**base, "reason": "nonfinite_decoder_condition"} + for _ in range(63): + allowed = codec_module.allowed_token_ids(self._codec, prefix) + if not allowed: + return {**base, "reason": "no_allowed_grammar_token", "generated_token_ids": prefix} + logits, hidden = self.model.next_logits(torch.tensor([[prefix[-1]]], dtype=torch.long), hidden) + scores = logits[0, -1, allowed] + if not bool(torch.isfinite(scores).all()): + return {**base, "reason": "nonfinite_decoder_scores"} + ranking = torch.argsort(scores, descending=True, stable=True) + if len(allowed) > 1: + margin = float(scores[ranking[0]] - scores[ranking[1]]) + minimum_margin = margin if minimum_margin is None else min(minimum_margin, margin) + if margin <= 1e-7: + return {**base, "reason": "ambiguous_decoder_scores", "generated_token_ids": prefix} + prefix.append(allowed[int(ranking[0])]) + if prefix[-1] == codec_module.TARGET_EOS: + try: + canonical_ir = codec_module.decode_target(self._codec, prefix) + except ValueError as error: + return {**base, "reason": "generated_ir_rejected", "detail": str(error), "generated_token_ids": prefix} + display = _display(canonical_ir) + output = {"family": "deontic", "format": "typed-deontic-rule/v1", + "payload": canonical_ir["rules"][0], "formula_text": display, + "formula_text_role": "display_only_full_ast_is_authoritative", + "syntax_scope": "canonical_rule_schema_and_decoder_grammar", + "origin": "learned_latent_conditioned_formula_decoder", **FALSE} + return {**base, "status": "decoded", "canonical_ir": canonical_ir, "formula_text": display, + "formal_outputs": [output], "generated_token_ids": prefix, + "minimum_decision_logit_margin": minimum_margin, + "syntax_scope": "canonical_rule_schema_and_decoder_grammar"} + return {**base, "reason": "generation_length_limit", "generated_token_ids": prefix} + + def infer(self, rows, *, projection_id=PROJECTION_ID): + self._check() + _require(type(projection_id) is str and 0 < len(projection_id) <= 256, "bounded projection id required") + _require(type(rows) in (list, tuple) and 1 <= len(rows) <= 128, "one to 128 inference rows required") + validated = _rows(rows, self._checkpoint["binding"]["dimension"], training=False) + results = [self._decode(row, projection_id) for row in validated] + self._check() + count = sum(row["status"] == "decoded" for row in results) + return {"schema": "modal-latent-formula-inference/v1", "binding": copy.deepcopy(self._checkpoint["binding"]), + "checkpoint_sha256": self.checkpoint_sha256, "rows": results, "decoded_count": count, + "status": "decoded" if count == len(rows) else "partial" if count else "abstained", + "decoded_formulas_generated": count > 0, "training_executed": False, + "source_text_is_neural_input": False, "latent_input_conditioned": True, + "teacher_forcing": False, "target_access": False, "learned_formula_generation": True, + "independent_text_to_logic": False, "sample_memory_used": False, **FALSE} + + +def infer(checkpoint, rows, *, expected_binding=None, projection_id=PROJECTION_ID): + return LatentFormulaDecoder(checkpoint, expected_binding=expected_binding).infer(rows, projection_id=projection_id) + + +def project(checkpoint, latents, *, expected_binding=None): + return LatentFormulaDecoder(checkpoint, expected_binding=expected_binding).project(latents) + + +def save_checkpoint(checkpoint, path): + validate_checkpoint(checkpoint) + data = _raw(checkpoint) + destination = Path(path) + with destination.open("xb") as handle: + handle.write(data) + return {"path": str(destination), "sha256": hashlib.sha256(data).hexdigest(), "size_bytes": len(data), **FALSE} + + +def load_checkpoint(path, *, expected_sha256, expected_binding=None): + _require(type(expected_sha256) is str and _SHA.fullmatch(expected_sha256), "expected checkpoint SHA256 required") + source = Path(path) + _require(not source.is_symlink(), "checkpoint symlink is forbidden") + metadata = source.stat() + _require(stat.S_ISREG(metadata.st_mode) and metadata.st_size <= MAX_BYTES, "bounded regular checkpoint file required") + data = source.read_bytes() + _require(len(data) <= MAX_BYTES and hashlib.sha256(data).hexdigest() == expected_sha256, "checkpoint hash differs") + def pairs(items): + result = {} + for key, value in items: + _require(key not in result, "duplicate JSON keys are forbidden") + result[key] = value + return result + result = json.loads(data, object_pairs_hook=pairs) + _require(_raw(result) == data, "checkpoint requires canonical finite JSON") + validate_checkpoint(result, expected_binding=expected_binding) + return result + + +__all__ = ["SCHEMA", "ARCHITECTURE", "PROJECTION_ID", "FALSE", "build_checkpoint", "train", "infer", "project", + "LatentFormulaDecoder", "checkpoint_digest", "validate_checkpoint", "save_checkpoint", "load_checkpoint"] diff --git a/releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py b/releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py new file mode 100644 index 0000000000000000000000000000000000000000..9da72916ff034adef5342fc41bc74c0ab422ccb9 --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py @@ -0,0 +1,1430 @@ +"""Language-neutral program and control-flow semantics. + +The records in this module describe source programs; they do not execute a +program and they do not encode a particular solver language. ``ProgramIR`` +performs closed-world validation of symbols, expression dependencies, command +evaluation order, function scopes, and control-flow graphs. Consequently a +frontend cannot silently leave a name unresolved or construct a partial CFG. +""" + +from __future__ import annotations + +import re +from collections import defaultdict, deque +from collections.abc import Mapping, Sequence +from dataclasses import dataclass, field +from enum import Enum +from typing import Any, Final + +from ipfs_datasets_py.logic.ir_core.canonical import canonical_json_bytes +from ipfs_datasets_py.logic.ir_core.claims import FrozenMap +from ipfs_datasets_py.logic.ir_core.identity import CanonicalIdentity, canonical_identity +from ipfs_datasets_py.logic.ir_core.provenance import SourceRef, SourceSpan + +PROGRAM_IR_SCHEMA_VERSION: Final = "program-ir/v1" +PROGRAM_IR_IDENTITY_DOMAIN: Final = "logic.software-verification.program" + +_ID_RE = re.compile(r"^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$") + + +class ProgramValidationError(ValueError): + """Raised when program semantics are incomplete or inconsistent.""" + + +class SymbolKind(str, Enum): + GLOBAL = "global" + PARAMETER = "parameter" + LOCAL = "local" + RESULT = "result" + EXCEPTION = "exception" + FUNCTION = "function" + + +class ExpressionKind(str, Enum): + LITERAL = "literal" + SYMBOL = "symbol" + UNARY = "unary" + BINARY = "binary" + CONDITIONAL = "conditional" + CALL = "call" + FIELD = "field" + INDEX = "index" + QUANTIFIED = "quantified" + OLD = "old" + RESULT = "result" + UNDEFINED = "undefined" + + +class CommandKind(str, Enum): + SKIP = "skip" + ASSIGN = "assign" + ASSUME = "assume" + ASSERT = "assert" + CALL = "call" + RETURN = "return" + THROW = "throw" + HAVOC = "havoc" + ALLOCATE = "allocate" + DEALLOCATE = "deallocate" + ATOMIC = "atomic" + UNDEFINED = "undefined" + + +class EdgeKind(str, Enum): + NORMAL = "normal" + TRUE = "true" + FALSE = "false" + EXCEPTION = "exception" + RETURN = "return" + BREAK = "break" + CONTINUE = "continue" + + +class Purity(str, Enum): + """Explicit source-level purity classification. + + ``UNKNOWN`` is intentionally distinct from ``IMPURE``. Downstream tools + must not promote an unknown declaration to a pure one. + """ + + PURE = "pure" + READ_ONLY = "read_only" + IMPURE = "impure" + UNKNOWN = "unknown" + + +class UndefinedBehaviorConsequence(str, Enum): + TRAP = "trap" + NONDETERMINISTIC = "nondeterministic" + UNCONSTRAINED = "unconstrained" + LANGUAGE_DEFINED = "language_defined" + + +def _text(value: object, label: str) -> str: + if not isinstance(value, str) or not value or value.strip() != value: + raise ProgramValidationError( + f"{label} must be a non-empty string without surrounding whitespace" + ) + if "\x00" in value: + raise ProgramValidationError(f"{label} must not contain NUL bytes") + return value + + +def _optional_text(value: object, label: str) -> str: + if value == "": + return "" + return _text(value, label) + + +def _identifier(value: object, label: str) -> str: + result = _text(value, label) + if not _ID_RE.fullmatch(result): + raise ProgramValidationError(f"{label} must be a stable identifier") + return result + + +def _ids( + values: Sequence[str], + label: str, + *, + preserve_order: bool = False, +) -> tuple[str, ...]: + if isinstance(values, (str, bytes, bytearray)) or not isinstance(values, Sequence): + raise ProgramValidationError(f"{label} must be a sequence of identifiers") + result = tuple(_identifier(item, f"{label} item") for item in values) + if len(result) != len(set(result)): + raise ProgramValidationError(f"{label} must not contain duplicates") + return result if preserve_order else tuple(sorted(result)) + + +def _source_map( + source_ref_ids: Sequence[str], + span_ids: Sequence[str], + owner: str, +) -> tuple[tuple[str, ...], tuple[str, ...]]: + sources = _ids(source_ref_ids, f"{owner}.source_ref_ids") + spans = _ids(span_ids, f"{owner}.span_ids") + if not sources and not spans: + raise ProgramValidationError( + f"{owner} must be source mapped with source_ref_ids or span_ids" + ) + return sources, spans + + +def _enum(value: object, enum_type: type[Enum], label: str) -> Any: + try: + return value if isinstance(value, enum_type) else enum_type(value) + except (TypeError, ValueError) as error: + choices = ", ".join(item.value for item in enum_type) + raise ProgramValidationError(f"{label} must be one of {choices}") from error + + +def _mapping(value: object, label: str) -> Mapping[str, Any]: + if not isinstance(value, Mapping): + raise ProgramValidationError(f"{label} must be a mapping") + return value + + +def _frozen(value: Mapping[str, Any] | FrozenMap, label: str) -> FrozenMap: + try: + return value if isinstance(value, FrozenMap) else FrozenMap(value) + except (TypeError, ValueError) as error: + raise ProgramValidationError( + f"{label} must contain JSON-compatible data: {error}" + ) from error + + +def _known(values: Sequence[str], known: set[str], label: str) -> None: + missing = sorted(set(values) - known) + if missing: + raise ProgramValidationError(f"{label} references unknown ids {missing}") + + +@dataclass(frozen=True, slots=True) +class ProgramSymbol: + symbol_id: str + name: str + type_ref: str + kind: SymbolKind | str + source_ref_ids: tuple[str, ...] = () + span_ids: tuple[str, ...] = () + attributes: FrozenMap = field(default_factory=FrozenMap) + + def __post_init__(self) -> None: + sources, spans = _source_map(self.source_ref_ids, self.span_ids, "ProgramSymbol") + object.__setattr__(self, "symbol_id", _identifier(self.symbol_id, "symbol_id")) + object.__setattr__(self, "name", _text(self.name, "name")) + object.__setattr__(self, "type_ref", _text(self.type_ref, "type_ref")) + object.__setattr__(self, "kind", _enum(self.kind, SymbolKind, "kind")) + object.__setattr__(self, "source_ref_ids", sources) + object.__setattr__(self, "span_ids", spans) + object.__setattr__(self, "attributes", _frozen(self.attributes, "attributes")) + + def to_dict(self) -> dict[str, Any]: + return { + "attributes": self.attributes.to_dict(), + "kind": self.kind.value, + "name": self.name, + "source_ref_ids": list(self.source_ref_ids), + "span_ids": list(self.span_ids), + "symbol_id": self.symbol_id, + "type_ref": self.type_ref, + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ProgramSymbol": + return cls( + symbol_id=value.get("symbol_id", ""), + name=value.get("name", ""), + type_ref=value.get("type_ref", ""), + kind=value.get("kind", ""), + source_ref_ids=tuple(value.get("source_ref_ids", ())), + span_ids=tuple(value.get("span_ids", ())), + attributes=_frozen(_mapping(value.get("attributes", {}), "attributes"), "attributes"), + ) + + +@dataclass(frozen=True, slots=True) +class ProgramExpression: + """One typed expression with explicit operand evaluation order.""" + + expression_id: str + kind: ExpressionKind | str + type_ref: str + operand_ids: tuple[str, ...] = () + evaluation_order: tuple[str, ...] = () + symbol_ids: tuple[str, ...] = () + operator: str = "" + attributes: FrozenMap = field(default_factory=FrozenMap) + source_ref_ids: tuple[str, ...] = () + span_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + sources, spans = _source_map(self.source_ref_ids, self.span_ids, "ProgramExpression") + operands = _ids(self.operand_ids, "operand_ids", preserve_order=True) + order = _ids( + self.evaluation_order or operands, + "evaluation_order", + preserve_order=True, + ) + if len(order) != len(operands) or set(order) != set(operands): + raise ProgramValidationError( + "evaluation_order must contain every operand_id exactly once" + ) + kind = _enum(self.kind, ExpressionKind, "kind") + symbols = _ids(self.symbol_ids, "symbol_ids") + if kind in {ExpressionKind.SYMBOL, ExpressionKind.RESULT} and len(symbols) != 1: + raise ProgramValidationError( + f"{kind.value} expressions must reference exactly one symbol" + ) + if kind is ExpressionKind.LITERAL and (operands or symbols): + raise ProgramValidationError("literal expressions cannot reference operands or symbols") + if ( + kind + in { + ExpressionKind.UNARY, + ExpressionKind.FIELD, + ExpressionKind.OLD, + } + and len(operands) != 1 + ): + raise ProgramValidationError(f"{kind.value} expressions require exactly one operand") + if kind is ExpressionKind.BINARY and len(operands) != 2: + raise ProgramValidationError("binary expressions require exactly two operands") + if kind is ExpressionKind.CONDITIONAL and len(operands) != 3: + raise ProgramValidationError( + "conditional expressions require condition, then, and else operands" + ) + if ( + kind + in { + ExpressionKind.UNARY, + ExpressionKind.BINARY, + ExpressionKind.FIELD, + ExpressionKind.INDEX, + ExpressionKind.QUANTIFIED, + } + and not self.operator + ): + raise ProgramValidationError(f"{kind.value} expressions require operator") + object.__setattr__(self, "expression_id", _identifier(self.expression_id, "expression_id")) + object.__setattr__(self, "kind", kind) + object.__setattr__(self, "type_ref", _text(self.type_ref, "type_ref")) + object.__setattr__(self, "operand_ids", operands) + object.__setattr__(self, "evaluation_order", order) + object.__setattr__(self, "symbol_ids", symbols) + object.__setattr__(self, "operator", _optional_text(self.operator, "operator")) + object.__setattr__(self, "attributes", _frozen(self.attributes, "attributes")) + object.__setattr__(self, "source_ref_ids", sources) + object.__setattr__(self, "span_ids", spans) + + def to_dict(self) -> dict[str, Any]: + return { + "attributes": self.attributes.to_dict(), + "evaluation_order": list(self.evaluation_order), + "expression_id": self.expression_id, + "kind": self.kind.value, + "operand_ids": list(self.operand_ids), + "operator": self.operator, + "source_ref_ids": list(self.source_ref_ids), + "span_ids": list(self.span_ids), + "symbol_ids": list(self.symbol_ids), + "type_ref": self.type_ref, + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ProgramExpression": + return cls( + expression_id=value.get("expression_id", ""), + kind=value.get("kind", ""), + type_ref=value.get("type_ref", ""), + operand_ids=tuple(value.get("operand_ids", ())), + evaluation_order=tuple(value.get("evaluation_order", ())), + symbol_ids=tuple(value.get("symbol_ids", ())), + operator=value.get("operator", ""), + attributes=_frozen(_mapping(value.get("attributes", {}), "attributes"), "attributes"), + source_ref_ids=tuple(value.get("source_ref_ids", ())), + span_ids=tuple(value.get("span_ids", ())), + ) + + +@dataclass(frozen=True, slots=True) +class EffectSummary: + """Explicit read/write/resource and observable effects.""" + + reads: tuple[str, ...] = () + writes: tuple[str, ...] = () + allocates: tuple[str, ...] = () + deallocates: tuple[str, ...] = () + raises: tuple[str, ...] = () + performs_io: bool = False + nondeterministic: bool = False + synchronizes: bool = False + + def __post_init__(self) -> None: + for name in ("reads", "writes", "allocates", "deallocates"): + object.__setattr__(self, name, _ids(getattr(self, name), name)) + object.__setattr__( + self, + "raises", + tuple(sorted(_text(item, "raises item") for item in self.raises)), + ) + if len(self.raises) != len(set(self.raises)): + raise ProgramValidationError("raises must not contain duplicates") + for name in ("performs_io", "nondeterministic", "synchronizes"): + if not isinstance(getattr(self, name), bool): + raise ProgramValidationError(f"{name} must be boolean") + + @property + def is_pure(self) -> bool: + return not ( + self.writes + or self.allocates + or self.deallocates + or self.raises + or self.performs_io + or self.nondeterministic + or self.synchronizes + ) + + @property + def is_read_only(self) -> bool: + return not ( + self.writes + or self.allocates + or self.deallocates + or self.performs_io + or self.synchronizes + ) + + def symbol_ids(self) -> tuple[str, ...]: + return tuple(sorted(set(self.reads + self.writes + self.allocates + self.deallocates))) + + def is_subset_of(self, other: "EffectSummary") -> bool: + return ( + set(self.reads) <= set(other.reads) + and set(self.writes) <= set(other.writes) + and set(self.allocates) <= set(other.allocates) + and set(self.deallocates) <= set(other.deallocates) + and set(self.raises) <= set(other.raises) + and (not self.performs_io or other.performs_io) + and (not self.nondeterministic or other.nondeterministic) + and (not self.synchronizes or other.synchronizes) + ) + + def to_dict(self) -> dict[str, Any]: + return { + "allocates": list(self.allocates), + "deallocates": list(self.deallocates), + "nondeterministic": self.nondeterministic, + "performs_io": self.performs_io, + "raises": list(self.raises), + "reads": list(self.reads), + "synchronizes": self.synchronizes, + "writes": list(self.writes), + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "EffectSummary": + return cls( + reads=tuple(value.get("reads", ())), + writes=tuple(value.get("writes", ())), + allocates=tuple(value.get("allocates", ())), + deallocates=tuple(value.get("deallocates", ())), + raises=tuple(value.get("raises", ())), + performs_io=value.get("performs_io", False), + nondeterministic=value.get("nondeterministic", False), + synchronizes=value.get("synchronizes", False), + ) + + +@dataclass(frozen=True, slots=True) +class UndefinedBehaviorCondition: + condition_id: str + expression_id: str + description: str + consequence: UndefinedBehaviorConsequence | str + source_ref_ids: tuple[str, ...] = () + span_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + sources, spans = _source_map( + self.source_ref_ids, self.span_ids, "UndefinedBehaviorCondition" + ) + object.__setattr__(self, "condition_id", _identifier(self.condition_id, "condition_id")) + object.__setattr__(self, "expression_id", _identifier(self.expression_id, "expression_id")) + object.__setattr__(self, "description", _text(self.description, "description")) + object.__setattr__( + self, + "consequence", + _enum(self.consequence, UndefinedBehaviorConsequence, "consequence"), + ) + object.__setattr__(self, "source_ref_ids", sources) + object.__setattr__(self, "span_ids", spans) + + def to_dict(self) -> dict[str, Any]: + return { + "condition_id": self.condition_id, + "consequence": self.consequence.value, + "description": self.description, + "expression_id": self.expression_id, + "source_ref_ids": list(self.source_ref_ids), + "span_ids": list(self.span_ids), + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "UndefinedBehaviorCondition": + return cls( + condition_id=value.get("condition_id", ""), + expression_id=value.get("expression_id", ""), + description=value.get("description", ""), + consequence=value.get("consequence", ""), + source_ref_ids=tuple(value.get("source_ref_ids", ())), + span_ids=tuple(value.get("span_ids", ())), + ) + + +@dataclass(frozen=True, slots=True) +class ProgramCommand: + """One atomic command; block order supplies sequential composition.""" + + command_id: str + kind: CommandKind | str + expression_ids: tuple[str, ...] = () + evaluation_order: tuple[str, ...] = () + target_symbol_ids: tuple[str, ...] = () + effects: EffectSummary = field(default_factory=EffectSummary) + undefined_behavior: tuple[UndefinedBehaviorCondition, ...] = () + source_ref_ids: tuple[str, ...] = () + span_ids: tuple[str, ...] = () + attributes: FrozenMap = field(default_factory=FrozenMap) + + def __post_init__(self) -> None: + sources, spans = _source_map(self.source_ref_ids, self.span_ids, "ProgramCommand") + expressions = _ids(self.expression_ids, "expression_ids", preserve_order=True) + order = _ids( + self.evaluation_order or expressions, + "evaluation_order", + preserve_order=True, + ) + if len(order) != len(expressions) or set(order) != set(expressions): + raise ProgramValidationError( + "command evaluation_order must contain every expression_id exactly once" + ) + kind = _enum(self.kind, CommandKind, "kind") + targets = _ids(self.target_symbol_ids, "target_symbol_ids") + effects = ( + self.effects + if isinstance(self.effects, EffectSummary) + else EffectSummary.from_dict(_mapping(self.effects, "effects")) + ) + undefined = tuple( + item + if isinstance(item, UndefinedBehaviorCondition) + else UndefinedBehaviorCondition.from_dict(_mapping(item, "undefined_behavior item")) + for item in self.undefined_behavior + ) + if kind is CommandKind.ASSIGN and not targets: + raise ProgramValidationError("assign commands require target_symbol_ids") + if kind in {CommandKind.ASSUME, CommandKind.ASSERT} and len(expressions) != 1: + raise ProgramValidationError(f"{kind.value} commands require exactly one expression") + if kind is CommandKind.THROW and not effects.raises: + raise ProgramValidationError("throw commands require an explicit raised type") + if kind is CommandKind.UNDEFINED and not undefined: + raise ProgramValidationError( + "undefined commands require an explicit undefined_behavior condition" + ) + ids = [item.condition_id for item in undefined] + if len(ids) != len(set(ids)): + raise ProgramValidationError("duplicate undefined behavior condition ids") + object.__setattr__(self, "command_id", _identifier(self.command_id, "command_id")) + object.__setattr__(self, "kind", kind) + object.__setattr__(self, "expression_ids", expressions) + object.__setattr__(self, "evaluation_order", order) + object.__setattr__(self, "target_symbol_ids", targets) + object.__setattr__(self, "effects", effects) + object.__setattr__(self, "undefined_behavior", undefined) + object.__setattr__(self, "source_ref_ids", sources) + object.__setattr__(self, "span_ids", spans) + object.__setattr__(self, "attributes", _frozen(self.attributes, "attributes")) + + def to_dict(self) -> dict[str, Any]: + return { + "attributes": self.attributes.to_dict(), + "command_id": self.command_id, + "effects": self.effects.to_dict(), + "evaluation_order": list(self.evaluation_order), + "expression_ids": list(self.expression_ids), + "kind": self.kind.value, + "source_ref_ids": list(self.source_ref_ids), + "span_ids": list(self.span_ids), + "target_symbol_ids": list(self.target_symbol_ids), + "undefined_behavior": [item.to_dict() for item in self.undefined_behavior], + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ProgramCommand": + return cls( + command_id=value.get("command_id", ""), + kind=value.get("kind", ""), + expression_ids=tuple(value.get("expression_ids", ())), + evaluation_order=tuple(value.get("evaluation_order", ())), + target_symbol_ids=tuple(value.get("target_symbol_ids", ())), + effects=EffectSummary.from_dict(_mapping(value.get("effects", {}), "effects")), + undefined_behavior=tuple( + UndefinedBehaviorCondition.from_dict(_mapping(item, "undefined_behavior item")) + for item in value.get("undefined_behavior", ()) + ), + source_ref_ids=tuple(value.get("source_ref_ids", ())), + span_ids=tuple(value.get("span_ids", ())), + attributes=_frozen(_mapping(value.get("attributes", {}), "attributes"), "attributes"), + ) + + +@dataclass(frozen=True, slots=True) +class BasicBlock: + block_id: str + command_ids: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + span_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + sources, spans = _source_map(self.source_ref_ids, self.span_ids, "BasicBlock") + object.__setattr__(self, "block_id", _identifier(self.block_id, "block_id")) + object.__setattr__( + self, + "command_ids", + _ids(self.command_ids, "command_ids", preserve_order=True), + ) + object.__setattr__(self, "source_ref_ids", sources) + object.__setattr__(self, "span_ids", spans) + + def to_dict(self) -> dict[str, Any]: + return { + "block_id": self.block_id, + "command_ids": list(self.command_ids), + "source_ref_ids": list(self.source_ref_ids), + "span_ids": list(self.span_ids), + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "BasicBlock": + return cls( + block_id=value.get("block_id", ""), + command_ids=tuple(value.get("command_ids", ())), + source_ref_ids=tuple(value.get("source_ref_ids", ())), + span_ids=tuple(value.get("span_ids", ())), + ) + + +@dataclass(frozen=True, slots=True) +class ControlFlowEdge: + edge_id: str + source_block_id: str + target_block_id: str + kind: EdgeKind | str = EdgeKind.NORMAL + order: int = 0 + condition_expression_id: str = "" + exception_type: str = "" + + def __post_init__(self) -> None: + kind = _enum(self.kind, EdgeKind, "kind") + if isinstance(self.order, bool) or not isinstance(self.order, int) or self.order < 0: + raise ProgramValidationError("edge order must be a non-negative integer") + condition = _optional_text(self.condition_expression_id, "condition_expression_id") + if condition: + condition = _identifier(condition, "condition_expression_id") + exception = _optional_text(self.exception_type, "exception_type") + if kind in {EdgeKind.TRUE, EdgeKind.FALSE} and not condition: + raise ProgramValidationError(f"{kind.value} edges require condition_expression_id") + if kind is EdgeKind.EXCEPTION and not exception: + raise ProgramValidationError("exception edges require exception_type") + if kind is not EdgeKind.EXCEPTION and exception: + raise ProgramValidationError("exception_type is only valid for exception edges") + object.__setattr__(self, "edge_id", _identifier(self.edge_id, "edge_id")) + object.__setattr__( + self, + "source_block_id", + _identifier(self.source_block_id, "source_block_id"), + ) + object.__setattr__( + self, + "target_block_id", + _identifier(self.target_block_id, "target_block_id"), + ) + object.__setattr__(self, "kind", kind) + object.__setattr__(self, "condition_expression_id", condition) + object.__setattr__(self, "exception_type", exception) + + def to_dict(self) -> dict[str, Any]: + return { + "condition_expression_id": self.condition_expression_id, + "edge_id": self.edge_id, + "exception_type": self.exception_type, + "kind": self.kind.value, + "order": self.order, + "source_block_id": self.source_block_id, + "target_block_id": self.target_block_id, + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ControlFlowEdge": + return cls( + edge_id=value.get("edge_id", ""), + source_block_id=value.get("source_block_id", ""), + target_block_id=value.get("target_block_id", ""), + kind=value.get("kind", EdgeKind.NORMAL.value), + order=value.get("order", 0), + condition_expression_id=value.get("condition_expression_id", ""), + exception_type=value.get("exception_type", ""), + ) + + +@dataclass(frozen=True, slots=True) +class ControlFlowGraph: + """A closed CFG with distinct normal and exceptional exits.""" + + graph_id: str + entry_block_id: str + blocks: tuple[BasicBlock, ...] + edges: tuple[ControlFlowEdge, ...] + normal_exit_block_ids: tuple[str, ...] + exceptional_exit_block_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + blocks = tuple( + item if isinstance(item, BasicBlock) else BasicBlock.from_dict(_mapping(item, "block")) + for item in self.blocks + ) + edges = tuple( + item + if isinstance(item, ControlFlowEdge) + else ControlFlowEdge.from_dict(_mapping(item, "edge")) + for item in self.edges + ) + object.__setattr__(self, "graph_id", _identifier(self.graph_id, "graph_id")) + object.__setattr__( + self, "entry_block_id", _identifier(self.entry_block_id, "entry_block_id") + ) + object.__setattr__(self, "blocks", tuple(sorted(blocks, key=lambda item: item.block_id))) + object.__setattr__(self, "edges", tuple(sorted(edges, key=lambda item: item.edge_id))) + object.__setattr__( + self, + "normal_exit_block_ids", + _ids(self.normal_exit_block_ids, "normal_exit_block_ids"), + ) + object.__setattr__( + self, + "exceptional_exit_block_ids", + _ids(self.exceptional_exit_block_ids, "exceptional_exit_block_ids"), + ) + self.validate() + + @property + def command_ids(self) -> tuple[str, ...]: + return tuple(command for block in self.blocks for command in block.command_ids) + + def validate( + self, + *, + known_command_ids: set[str] | None = None, + known_expression_ids: set[str] | None = None, + ) -> None: + block_ids = [item.block_id for item in self.blocks] + edge_ids = [item.edge_id for item in self.edges] + if not block_ids: + raise ProgramValidationError("a CFG requires at least one block") + if len(block_ids) != len(set(block_ids)): + raise ProgramValidationError("duplicate CFG block identifiers") + if len(edge_ids) != len(set(edge_ids)): + raise ProgramValidationError("duplicate CFG edge identifiers") + known_blocks = set(block_ids) + _known((self.entry_block_id,), known_blocks, f"CFG {self.graph_id}.entry") + if not self.normal_exit_block_ids: + raise ProgramValidationError("a CFG requires at least one normal exit") + _known( + self.normal_exit_block_ids, + known_blocks, + f"CFG {self.graph_id}.normal exits", + ) + _known( + self.exceptional_exit_block_ids, + known_blocks, + f"CFG {self.graph_id}.exceptional exits", + ) + overlap = set(self.normal_exit_block_ids) & set(self.exceptional_exit_block_ids) + if overlap: + raise ProgramValidationError( + f"normal and exceptional CFG exits must be separate: {sorted(overlap)}" + ) + all_commands = list(self.command_ids) + if len(all_commands) != len(set(all_commands)): + raise ProgramValidationError("a command may occur in only one CFG block") + if known_command_ids is not None: + _known(all_commands, known_command_ids, f"CFG {self.graph_id}.commands") + + outgoing: dict[str, list[ControlFlowEdge]] = defaultdict(list) + adjacency: dict[str, set[str]] = defaultdict(set) + for edge in self.edges: + _known( + (edge.source_block_id, edge.target_block_id), + known_blocks, + f"edge {edge.edge_id}", + ) + if known_expression_ids is not None and edge.condition_expression_id: + _known( + (edge.condition_expression_id,), + known_expression_ids, + f"edge {edge.edge_id}.condition", + ) + outgoing[edge.source_block_id].append(edge) + adjacency[edge.source_block_id].add(edge.target_block_id) + for block_id, block_edges in outgoing.items(): + orders = [edge.order for edge in block_edges] + if len(orders) != len(set(orders)): + raise ProgramValidationError( + f"outgoing edge order is ambiguous at block {block_id}" + ) + if sorted(orders) != list(range(len(orders))): + raise ProgramValidationError( + f"outgoing edge order at block {block_id} must be contiguous from zero" + ) + kinds = {edge.kind for edge in block_edges} + if (EdgeKind.TRUE in kinds) != (EdgeKind.FALSE in kinds): + raise ProgramValidationError( + f"block {block_id} must have both true and false edges" + ) + if EdgeKind.TRUE in kinds: + true_edges = [edge for edge in block_edges if edge.kind is EdgeKind.TRUE] + false_edges = [edge for edge in block_edges if edge.kind is EdgeKind.FALSE] + if len(true_edges) != 1 or len(false_edges) != 1: + raise ProgramValidationError( + f"block {block_id} must have exactly one true and one false edge" + ) + if true_edges[0].condition_expression_id != false_edges[0].condition_expression_id: + raise ProgramValidationError( + f"true and false edges at block {block_id} must share one condition" + ) + + exits = set(self.normal_exit_block_ids) | set(self.exceptional_exit_block_ids) + terminal_with_edges = sorted(exits & set(outgoing)) + if terminal_with_edges: + raise ProgramValidationError(f"CFG exit blocks must be terminal: {terminal_with_edges}") + dead_ends = sorted(known_blocks - exits - set(outgoing)) + if dead_ends: + raise ProgramValidationError(f"non-exit CFG blocks have no outgoing edge: {dead_ends}") + reachable = {self.entry_block_id} + queue = deque((self.entry_block_id,)) + while queue: + current = queue.popleft() + for target in adjacency[current]: + if target not in reachable: + reachable.add(target) + queue.append(target) + unreachable = sorted(known_blocks - reachable) + if unreachable: + raise ProgramValidationError(f"unreachable CFG blocks: {unreachable}") + if not (reachable & set(self.normal_exit_block_ids)): + raise ProgramValidationError("no normal exit is reachable from CFG entry") + + def to_dict(self) -> dict[str, Any]: + return { + "blocks": [ + item.to_dict() for item in sorted(self.blocks, key=lambda item: item.block_id) + ], + "edges": [item.to_dict() for item in sorted(self.edges, key=lambda item: item.edge_id)], + "entry_block_id": self.entry_block_id, + "exceptional_exit_block_ids": list(self.exceptional_exit_block_ids), + "graph_id": self.graph_id, + "normal_exit_block_ids": list(self.normal_exit_block_ids), + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ControlFlowGraph": + return cls( + graph_id=value.get("graph_id", ""), + entry_block_id=value.get("entry_block_id", ""), + blocks=tuple( + BasicBlock.from_dict(_mapping(item, "block")) for item in value.get("blocks", ()) + ), + edges=tuple( + ControlFlowEdge.from_dict(_mapping(item, "edge")) for item in value.get("edges", ()) + ), + normal_exit_block_ids=tuple(value.get("normal_exit_block_ids", ())), + exceptional_exit_block_ids=tuple(value.get("exceptional_exit_block_ids", ())), + ) + + +@dataclass(frozen=True, slots=True) +class ProgramFunction: + function_id: str + name: str + cfg: ControlFlowGraph + parameter_symbol_ids: tuple[str, ...] = () + local_symbol_ids: tuple[str, ...] = () + exception_symbol_ids: tuple[str, ...] = () + result_symbol_id: str = "" + return_type: str = "void" + purity: Purity | str = Purity.UNKNOWN + effects: EffectSummary = field(default_factory=EffectSummary) + declared_exceptions: tuple[str, ...] = () + source_ref_ids: tuple[str, ...] = () + span_ids: tuple[str, ...] = () + + def __post_init__(self) -> None: + sources, spans = _source_map(self.source_ref_ids, self.span_ids, "ProgramFunction") + cfg = ( + self.cfg + if isinstance(self.cfg, ControlFlowGraph) + else ControlFlowGraph.from_dict(_mapping(self.cfg, "cfg")) + ) + result = _optional_text(self.result_symbol_id, "result_symbol_id") + if result: + result = _identifier(result, "result_symbol_id") + effects = ( + self.effects + if isinstance(self.effects, EffectSummary) + else EffectSummary.from_dict(_mapping(self.effects, "effects")) + ) + exceptions = tuple( + sorted(_text(item, "declared_exceptions item") for item in self.declared_exceptions) + ) + if len(exceptions) != len(set(exceptions)): + raise ProgramValidationError("declared_exceptions must not contain duplicates") + purity = _enum(self.purity, Purity, "purity") + if purity is Purity.PURE and not effects.is_pure: + raise ProgramValidationError("pure functions cannot declare impure effects") + if purity is Purity.READ_ONLY and not effects.is_read_only: + raise ProgramValidationError("read-only functions cannot declare write effects") + if set(effects.raises) - set(exceptions): + raise ProgramValidationError("function effects raise undeclared exception types") + object.__setattr__(self, "function_id", _identifier(self.function_id, "function_id")) + object.__setattr__(self, "name", _text(self.name, "name")) + object.__setattr__(self, "cfg", cfg) + object.__setattr__( + self, + "parameter_symbol_ids", + _ids( + self.parameter_symbol_ids, + "parameter_symbol_ids", + preserve_order=True, + ), + ) + object.__setattr__( + self, "local_symbol_ids", _ids(self.local_symbol_ids, "local_symbol_ids") + ) + object.__setattr__( + self, + "exception_symbol_ids", + _ids(self.exception_symbol_ids, "exception_symbol_ids"), + ) + scoped_groups = ( + set(self.parameter_symbol_ids), + set(self.local_symbol_ids), + set(self.exception_symbol_ids), + {result} if result else set(), + ) + seen: set[str] = set() + for group in scoped_groups: + if seen & group: + raise ProgramValidationError("function symbol scopes overlap") + seen.update(group) + object.__setattr__(self, "result_symbol_id", result) + object.__setattr__(self, "return_type", _text(self.return_type, "return_type")) + object.__setattr__(self, "purity", purity) + object.__setattr__(self, "effects", effects) + object.__setattr__(self, "declared_exceptions", exceptions) + object.__setattr__(self, "source_ref_ids", sources) + object.__setattr__(self, "span_ids", spans) + + @property + def scoped_symbol_ids(self) -> tuple[str, ...]: + values = self.parameter_symbol_ids + self.local_symbol_ids + self.exception_symbol_ids + if self.result_symbol_id: + values += (self.result_symbol_id,) + return values + + def to_dict(self) -> dict[str, Any]: + return { + "cfg": self.cfg.to_dict(), + "declared_exceptions": list(self.declared_exceptions), + "effects": self.effects.to_dict(), + "exception_symbol_ids": list(self.exception_symbol_ids), + "function_id": self.function_id, + "local_symbol_ids": list(self.local_symbol_ids), + "name": self.name, + "parameter_symbol_ids": list(self.parameter_symbol_ids), + "purity": self.purity.value, + "result_symbol_id": self.result_symbol_id, + "return_type": self.return_type, + "source_ref_ids": list(self.source_ref_ids), + "span_ids": list(self.span_ids), + } + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ProgramFunction": + return cls( + function_id=value.get("function_id", ""), + name=value.get("name", ""), + cfg=ControlFlowGraph.from_dict(_mapping(value.get("cfg", {}), "cfg")), + parameter_symbol_ids=tuple(value.get("parameter_symbol_ids", ())), + local_symbol_ids=tuple(value.get("local_symbol_ids", ())), + result_symbol_id=value.get("result_symbol_id", ""), + return_type=value.get("return_type", "void"), + purity=value.get("purity", Purity.UNKNOWN.value), + effects=EffectSummary.from_dict(_mapping(value.get("effects", {}), "effects")), + exception_symbol_ids=tuple(value.get("exception_symbol_ids", ())), + declared_exceptions=tuple(value.get("declared_exceptions", ())), + source_ref_ids=tuple(value.get("source_ref_ids", ())), + span_ids=tuple(value.get("span_ids", ())), + ) + + +@dataclass(frozen=True, slots=True) +class ProgramIR: + """Canonical closed-world program document (``ProgramIR@1``).""" + + sources: tuple[SourceRef, ...] + spans: tuple[SourceSpan, ...] + symbols: tuple[ProgramSymbol, ...] + expressions: tuple[ProgramExpression, ...] + commands: tuple[ProgramCommand, ...] + functions: tuple[ProgramFunction, ...] + global_symbol_ids: tuple[str, ...] = () + metadata: FrozenMap = field(default_factory=FrozenMap) + program_id: str = "" + schema_version: str = PROGRAM_IR_SCHEMA_VERSION + + def __post_init__(self) -> None: + object.__setattr__( + self, + "sources", + tuple( + item + if isinstance(item, SourceRef) + else SourceRef.from_dict(_mapping(item, "source")) + for item in self.sources + ), + ) + object.__setattr__( + self, + "spans", + tuple( + item + if isinstance(item, SourceSpan) + else SourceSpan.from_dict(_mapping(item, "span")) + for item in self.spans + ), + ) + for name, cls in ( + ("symbols", ProgramSymbol), + ("expressions", ProgramExpression), + ("commands", ProgramCommand), + ("functions", ProgramFunction), + ): + singular = name[:-1] if name != "classes" else "class" + values = tuple( + item if isinstance(item, cls) else cls.from_dict(_mapping(item, singular)) + for item in getattr(self, name) + ) + identity_field = { + "symbols": "symbol_id", + "expressions": "expression_id", + "commands": "command_id", + "functions": "function_id", + }[name] + object.__setattr__( + self, + name, + tuple(sorted(values, key=lambda item: getattr(item, identity_field))), + ) + object.__setattr__( + self, "sources", tuple(sorted(self.sources, key=lambda item: item.ref_id)) + ) + object.__setattr__(self, "spans", tuple(sorted(self.spans, key=lambda item: item.span_id))) + object.__setattr__( + self, + "global_symbol_ids", + _ids(self.global_symbol_ids, "global_symbol_ids"), + ) + object.__setattr__(self, "metadata", _frozen(self.metadata, "metadata")) + self.validate() + identity = self._compute_identity() + if self.program_id and self.program_id != identity.cid: + raise ProgramValidationError("program_id does not match canonical program semantics") + object.__setattr__(self, "program_id", identity.cid) + + @property + def identity(self) -> CanonicalIdentity: + return self._compute_identity() + + @property + def canonical_id(self) -> str: + return self.program_id + + def _compute_identity(self) -> CanonicalIdentity: + return canonical_identity( + self.semantic_dict(), + domain=PROGRAM_IR_IDENTITY_DOMAIN, + schema_version=PROGRAM_IR_SCHEMA_VERSION, + ) + + def semantic_dict(self) -> dict[str, Any]: + return { + "commands": [ + item.to_dict() for item in sorted(self.commands, key=lambda item: item.command_id) + ], + "expressions": [ + item.to_dict() + for item in sorted(self.expressions, key=lambda item: item.expression_id) + ], + "functions": [ + item.to_dict() for item in sorted(self.functions, key=lambda item: item.function_id) + ], + "global_symbol_ids": list(self.global_symbol_ids), + "metadata": self.metadata.to_dict(), + "schema_version": self.schema_version, + "sources": [ + item.to_dict() for item in sorted(self.sources, key=lambda item: item.ref_id) + ], + "spans": [item.to_dict() for item in sorted(self.spans, key=lambda item: item.span_id)], + "symbols": [ + item.to_dict() for item in sorted(self.symbols, key=lambda item: item.symbol_id) + ], + } + + deterministic_dict = semantic_dict + + def to_dict(self) -> dict[str, Any]: + value = self.semantic_dict() + value["program_id"] = self.program_id + return value + + def canonical_bytes(self) -> bytes: + return canonical_json_bytes(self.to_dict()) + + def semantic_bytes(self) -> bytes: + return self.identity.canonical_bytes + + def to_json(self) -> str: + return self.canonical_bytes().decode("utf-8") + + def validate(self) -> None: + if self.schema_version != PROGRAM_IR_SCHEMA_VERSION: + raise ProgramValidationError(f"unsupported schema_version {self.schema_version!r}") + if not self.sources: + raise ProgramValidationError("a source-grounded ProgramIR requires sources") + if not self.functions: + raise ProgramValidationError("ProgramIR requires at least one function") + + def unique(values: Sequence[object], attr: str, label: str) -> set[str]: + ids = [getattr(item, attr) for item in values] + if len(ids) != len(set(ids)): + raise ProgramValidationError(f"duplicate {label} identifiers") + return set(ids) + + source_ids = unique(self.sources, "ref_id", "source") + unique(self.spans, "span_id", "span") + symbol_ids = unique(self.symbols, "symbol_id", "symbol") + expression_ids = unique(self.expressions, "expression_id", "expression") + command_ids = unique(self.commands, "command_id", "command") + unique(self.functions, "function_id", "function") + graph_ids = [item.cfg.graph_id for item in self.functions] + if len(graph_ids) != len(set(graph_ids)): + raise ProgramValidationError("duplicate CFG identifiers") + + for source in self.sources: + source.validate() + spans_by_id = {item.span_id: item for item in self.spans} + for span in self.spans: + span.validate() + _known((span.source_ref_id,), source_ids, f"span {span.span_id}") + for item in ( + *self.symbols, + *self.expressions, + *self.commands, + *self.functions, + *(block for function in self.functions for block in function.cfg.blocks), + *(condition for command in self.commands for condition in command.undefined_behavior), + ): + self._validate_source_map(item, source_ids, spans_by_id) + + _known(self.global_symbol_ids, symbol_ids, "global_symbol_ids") + symbols_by_id = {item.symbol_id: item for item in self.symbols} + for symbol_id in self.global_symbol_ids: + if symbols_by_id[symbol_id].kind not in { + SymbolKind.GLOBAL, + SymbolKind.FUNCTION, + }: + raise ProgramValidationError(f"global scope contains non-global symbol {symbol_id}") + expressions_by_id = {item.expression_id: item for item in self.expressions} + for expression in self.expressions: + _known( + expression.operand_ids, + expression_ids, + f"expression {expression.expression_id}.operands", + ) + _known( + expression.symbol_ids, + symbol_ids, + f"expression {expression.expression_id}.symbols", + ) + if expression.expression_id in expression.operand_ids: + raise ProgramValidationError( + f"expression {expression.expression_id} references itself" + ) + self._reject_expression_cycles(expressions_by_id) + + commands_by_id = {item.command_id: item for item in self.commands} + for command in self.commands: + _known( + command.expression_ids, + expression_ids, + f"command {command.command_id}.expressions", + ) + _known( + command.target_symbol_ids, + symbol_ids, + f"command {command.command_id}.targets", + ) + _known( + command.effects.symbol_ids(), + symbol_ids, + f"command {command.command_id}.effects", + ) + for condition in command.undefined_behavior: + _known( + (condition.expression_id,), + expression_ids, + f"undefined behavior {condition.condition_id}", + ) + + owned_commands: dict[str, str] = {} + used_scoped_symbols: set[str] = set() + for function in self.functions: + function.cfg.validate( + known_command_ids=command_ids, + known_expression_ids=expression_ids, + ) + _known(function.scoped_symbol_ids, symbol_ids, f"function {function.function_id}") + visible = set(self.global_symbol_ids) | set(function.scoped_symbol_ids) + for symbol_id in function.parameter_symbol_ids: + if symbols_by_id[symbol_id].kind is not SymbolKind.PARAMETER: + raise ProgramValidationError( + f"function parameter {symbol_id} is not a parameter symbol" + ) + for symbol_id in function.local_symbol_ids: + if symbols_by_id[symbol_id].kind is not SymbolKind.LOCAL: + raise ProgramValidationError( + f"function local {symbol_id} is not a local symbol" + ) + for symbol_id in function.exception_symbol_ids: + if symbols_by_id[symbol_id].kind is not SymbolKind.EXCEPTION: + raise ProgramValidationError( + f"function exception {symbol_id} is not an exception symbol" + ) + if function.result_symbol_id and ( + symbols_by_id[function.result_symbol_id].kind is not SymbolKind.RESULT + ): + raise ProgramValidationError( + f"function result {function.result_symbol_id} is not a result symbol" + ) + overlap = used_scoped_symbols & set(function.scoped_symbol_ids) + if overlap: + raise ProgramValidationError( + f"function-local symbols have multiple owners: {sorted(overlap)}" + ) + used_scoped_symbols.update(function.scoped_symbol_ids) + _known( + function.effects.symbol_ids(), + visible, + f"function {function.function_id}.effects", + ) + edge_exceptions = { + edge.exception_type + for edge in function.cfg.edges + if edge.kind is EdgeKind.EXCEPTION + } + undeclared_edge_exceptions = sorted(edge_exceptions - set(function.declared_exceptions)) + if undeclared_edge_exceptions: + raise ProgramValidationError( + f"CFG {function.cfg.graph_id} raises undeclared exceptions " + f"{undeclared_edge_exceptions}" + ) + for edge in function.cfg.edges: + if edge.condition_expression_id: + referenced = self._expression_symbols( + (edge.condition_expression_id,), expressions_by_id + ) + _known( + tuple(referenced), + visible, + f"edge {edge.edge_id} condition in function {function.function_id}", + ) + for command_id in function.cfg.command_ids: + if command_id in owned_commands: + raise ProgramValidationError( + f"command {command_id} belongs to multiple functions" + ) + owned_commands[command_id] = function.function_id + command = commands_by_id[command_id] + _known( + command.target_symbol_ids, + visible, + f"command {command_id}.targets in function {function.function_id}", + ) + _known( + command.effects.symbol_ids(), + visible, + f"command {command_id}.effects in function {function.function_id}", + ) + if not command.effects.is_subset_of(function.effects): + raise ProgramValidationError( + f"command {command_id} effects exceed function " + f"{function.function_id} effects" + ) + roots = list(command.expression_ids) + roots.extend(item.expression_id for item in command.undefined_behavior) + for edge in function.cfg.edges: + if ( + edge.source_block_id + in { + block.block_id + for block in function.cfg.blocks + if command_id in block.command_ids + } + and edge.condition_expression_id + ): + roots.append(edge.condition_expression_id) + referenced = self._expression_symbols(roots, expressions_by_id) + _known( + tuple(referenced), + visible, + f"command {command_id} expressions in function {function.function_id}", + ) + unowned = sorted(command_ids - set(owned_commands)) + if unowned: + raise ProgramValidationError(f"commands are not owned by a function: {unowned}") + scoped_declared = { + item.symbol_id + for item in self.symbols + if item.kind + in { + SymbolKind.PARAMETER, + SymbolKind.LOCAL, + SymbolKind.RESULT, + SymbolKind.EXCEPTION, + } + } + unowned_symbols = sorted(scoped_declared - used_scoped_symbols) + if unowned_symbols: + raise ProgramValidationError( + f"scoped symbols are not bound to a function: {unowned_symbols}" + ) + + @staticmethod + def _validate_source_map( + item: object, + source_ids: set[str], + spans: Mapping[str, SourceSpan], + ) -> None: + sources = getattr(item, "source_ref_ids") + span_ids = getattr(item, "span_ids") + _known(sources, source_ids, f"{type(item).__name__}.source_ref_ids") + _known(span_ids, set(spans), f"{type(item).__name__}.span_ids") + if sources: + unlisted = sorted( + { + spans[span_id].source_ref_id + for span_id in span_ids + if spans[span_id].source_ref_id not in sources + } + ) + if unlisted: + raise ProgramValidationError( + f"{type(item).__name__} spans belong to unlisted sources {unlisted}" + ) + + @staticmethod + def _reject_expression_cycles( + expressions: Mapping[str, ProgramExpression], + ) -> None: + visiting: set[str] = set() + visited: set[str] = set() + + def visit(expression_id: str) -> None: + if expression_id in visiting: + raise ProgramValidationError(f"cyclic expression dependency at {expression_id}") + if expression_id in visited: + return + visiting.add(expression_id) + for child in expressions[expression_id].operand_ids: + visit(child) + visiting.remove(expression_id) + visited.add(expression_id) + + for expression_id in expressions: + visit(expression_id) + + @staticmethod + def _expression_symbols( + roots: Sequence[str], + expressions: Mapping[str, ProgramExpression], + ) -> set[str]: + symbols: set[str] = set() + pending = list(roots) + seen: set[str] = set() + while pending: + current = pending.pop() + if current in seen: + continue + seen.add(current) + expression = expressions[current] + symbols.update(expression.symbol_ids) + pending.extend(expression.operand_ids) + return symbols + + @classmethod + def from_dict(cls, value: Mapping[str, Any]) -> "ProgramIR": + value = _mapping(value, "program") + return cls( + sources=tuple( + SourceRef.from_dict(_mapping(item, "source")) for item in value.get("sources", ()) + ), + spans=tuple( + SourceSpan.from_dict(_mapping(item, "span")) for item in value.get("spans", ()) + ), + symbols=tuple( + ProgramSymbol.from_dict(_mapping(item, "symbol")) + for item in value.get("symbols", ()) + ), + expressions=tuple( + ProgramExpression.from_dict(_mapping(item, "expression")) + for item in value.get("expressions", ()) + ), + commands=tuple( + ProgramCommand.from_dict(_mapping(item, "command")) + for item in value.get("commands", ()) + ), + functions=tuple( + ProgramFunction.from_dict(_mapping(item, "function")) + for item in value.get("functions", ()) + ), + global_symbol_ids=tuple(value.get("global_symbol_ids", ())), + metadata=_frozen(_mapping(value.get("metadata", {}), "metadata"), "metadata"), + program_id=value.get("program_id", ""), + schema_version=value.get("schema_version", PROGRAM_IR_SCHEMA_VERSION), + ) + + +# Concise compatibility spellings for consumers that already qualify the module. +Expression = ProgramExpression +Command = ProgramCommand +Function = ProgramFunction +CFG = ControlFlowGraph + + +__all__ = [ + "PROGRAM_IR_SCHEMA_VERSION", + "BasicBlock", + "CFG", + "Command", + "CommandKind", + "ControlFlowEdge", + "ControlFlowGraph", + "EdgeKind", + "EffectSummary", + "Expression", + "ExpressionKind", + "Function", + "ProgramCommand", + "ProgramExpression", + "ProgramFunction", + "ProgramIR", + "ProgramSymbol", + "ProgramValidationError", + "Purity", + "SymbolKind", + "UndefinedBehaviorCondition", + "UndefinedBehaviorConsequence", +] diff --git a/releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py b/releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py new file mode 100644 index 0000000000000000000000000000000000000000..0e96d544c72999d1fe9bc4c03e2585addb4a331c --- /dev/null +++ b/releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py @@ -0,0 +1,313 @@ +"""Lossless, bounded token grammar for one canonical deontic rule. + +This is a new codec, not the historical PGIR identifier-bucket tokenizer. +Source tokens and exact typed target atoms are fitted on training examples +only. Unknown values and overlong sequences raise; nothing is truncated, +hashed into identifier buckets, copied from a target, or inferred by a parser. +Syntax validation grants no semantic qualification or Lake admission. +""" +from __future__ import annotations + +from functools import lru_cache +import json +import re + +from ...logic.legal_ir.canonical_contracts import CanonicalRoundTripIR, CanonicalContractError +from .legal_ir_grammar_decoder import LegalIRGrammarDecoder + +SCHEMA = "legal-source-formula-codec/v1" +MAX_SOURCE_TOKENS = 64 +MAX_TARGET_TOKENS = 64 +MAX_VOCABULARY = 4096 +MAX_EXAMPLES = 4096 +MAX_QUALIFIERS = 4 +SOURCE_PAD = 0 +SOURCE_UNK = 1 +TARGET_PAD = 0 +TARGET_BOS = 1 +TARGET_EOS = 2 +FIELDS = ("modality", "actor", "action", "object", "conditions", "exceptions", "temporal") +SCALARS = FIELDS[:4] +QUALIFIERS = FIELDS[4:] +_SOURCE_RE = re.compile(r"\w+|[^\w\s]", re.UNICODE) +_MODALITIES = {"O": "obligation", "P": "permission", "F": "prohibition"} +_POLICY = { + "source_tokenization": "unicode_casefold_word_or_punctuation/v1", + "source_unknown": "reject", "target_unknown": "reject", + "vocabulary_origin": "training_examples_only", "identifier_hashing": False, + "target_schema": "CanonicalRoundTripIR@1", "rule_count": 1, + "field_order": list(FIELDS), "qualifiers": "sorted_unique_input_required", + "max_qualifiers_per_facet": MAX_QUALIFIERS, + "max_source_tokens": MAX_SOURCE_TOKENS, "max_target_tokens": MAX_TARGET_TOKENS, + "max_vocabulary": MAX_VOCABULARY, + "source_pad_id": SOURCE_PAD, "source_unk_id": SOURCE_UNK, + "target_pad_id": TARGET_PAD, "target_bos_id": TARGET_BOS, "target_eos_id": TARGET_EOS, + "truncation": "reject", "generation_fallback": "none", +} + + +class CodecError(ValueError): + """Unrepresentable, malformed, unknown, or oversized codec input.""" + + +def _json(value): + return json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(",", ":"), allow_nan=False) + + +def _tag(field): + return _json(["field", field]) + + +def _end(field): + return _json(["end", field]) + + +def _atom(field, value): + return _json(["atom", field, value]) + + +_STRUCTURAL = ("", "", "") + tuple( + item for field in FIELDS for item in ((_tag(field), _end(field)) if field in QUALIFIERS else (_tag(field),))) + + +def _source_tokens(text): + if type(text) is not str or not text.strip() or len(text) > 16384: + raise CodecError("source_text must be nonempty text of at most 16384 characters") + tokens = _SOURCE_RE.findall(text.casefold()) + if not tokens or len(tokens) > MAX_SOURCE_TOKENS: + raise CodecError("source exceeds 64 tokens; truncation is forbidden") + if any(len(token) > 512 for token in tokens): + raise CodecError("source lexeme exceeds 512 characters") + return tokens + + +def _rule(canonical_ir): + if type(canonical_ir) is not dict or set(canonical_ir) != {"rules"}: + raise CodecError("canonical_ir must contain exactly rules") + rules = canonical_ir["rules"] + if type(rules) is not list or len(rules) != 1 or type(rules[0]) is not dict: + raise CodecError("v1 requires exactly one rule in a rules list") + rule = rules[0] + if set(rule) != set(FIELDS): + raise CodecError("rule must contain exactly the seven canonical facets") + if any(type(rule[field]) is not str for field in SCALARS): + raise CodecError("scalar facets require exact strings") + for field in QUALIFIERS: + values = rule[field] + if type(values) is not list or len(values) > MAX_QUALIFIERS or any(type(v) is not str for v in values): + raise CodecError("qualifier facets require at most four exact string atoms") + if values != sorted(set(values)): + raise CodecError("qualifier atoms must already be sorted and unique; normalization is forbidden") + try: + validated = CanonicalRoundTripIR.from_dict(canonical_ir).to_dict() + except (CanonicalContractError, TypeError, ValueError) as error: + raise CodecError("canonical rule validation failed: " + str(error)) from error + if validated != canonical_ir: + raise CodecError("canonical validation would change the supplied IR") + # PGIR's rule schema uses spelled-out modality and subject. This explicit + # validation projection is never emitted in place of the canonical payload. + projected = {"rules": [{**rule, "modality": _MODALITIES[rule["modality"]], "subject": rule["actor"]}]} + result = LegalIRGrammarDecoder().validate(projected, family="deontic") + if not result.accepted: + reasons = ",".join(reason.reason for reason in result.rejection_reasons) + raise CodecError("deontic grammar rejected rule: " + reasons) + return rule + + +@lru_cache(maxsize=16) +def _vocabularies(source, target): + """Compile immutable vocabulary tuples; repeated generation stays cheap.""" + if source[:2] != ("", "") or len(source) < 3: + raise CodecError("source vocabulary must start with PAD0 and UNK1 and contain training tokens") + if source[2:] != tuple(sorted(set(source[2:]))): + raise CodecError("source vocabulary must have deterministic unique token order") + if len(set(source)) != len(source) or len(set(target)) != len(target): + raise CodecError("vocabulary entries must be unique") + for token in source[2:]: + if _source_tokens(token) != [token]: + raise CodecError("source vocabulary entry is not one casefolded token") + if target[:len(_STRUCTURAL)] != _STRUCTURAL: + raise CodecError("target special IDs or structural grammar tags differ") + atoms = target[len(_STRUCTURAL):] + if atoms != tuple(sorted(set(atoms))): + raise CodecError("target atom vocabulary must have deterministic unique token order") + by_field = {field: [] for field in FIELDS} + decoded = {} + for token_id, token in enumerate(target[len(_STRUCTURAL):], len(_STRUCTURAL)): + try: + row = json.loads(token) + except (ValueError, TypeError) as error: + raise CodecError("target atom must be canonical JSON") from error + if (type(row) is not list or len(row) != 3 or row[0] != "atom" + or row[1] not in FIELDS or type(row[2]) is not str or _json(row) != token): + raise CodecError("target atom must be an exact typed field/string tuple") + field, value = row[1:] + trial = {"modality": "O", "actor": "agent", "action": "act", "object": "", + "conditions": [], "exceptions": [], "temporal": []} + trial[field] = [value] if field in QUALIFIERS else value + _rule({"rules": [trial]}) + by_field[field].append((token_id, value)) + decoded[token_id] = (field, value) + if any(not by_field[field] for field in SCALARS): + raise CodecError("each scalar field requires at least one training atom") + return ({token: index for index, token in enumerate(source)}, + {token: index for index, token in enumerate(target)}, by_field, decoded) + + +def _validated(codec): + if type(codec) is not dict or set(codec) != {"schema", "source_vocabulary", "target_vocabulary", "policy"}: + raise CodecError("codec schema fields differ") + if codec["schema"] != SCHEMA or type(codec["policy"]) is not dict or codec["policy"] != _POLICY: + raise CodecError("codec version or declared policy differs") + try: + if _json(codec["policy"]) != _json(_POLICY): + raise CodecError("codec policy numeric types differ") + except (ValueError, TypeError) as error: + raise CodecError("codec policy must be exact finite JSON") from error + for name in ("source_vocabulary", "target_vocabulary"): + values = codec[name] + if type(values) is not list or not 1 <= len(values) <= MAX_VOCABULARY: + raise CodecError("each vocabulary must be a list of at most 4096 tokens") + if any(type(value) is not str or len(value) > 4096 for value in values): + raise CodecError("vocabulary entries must be bounded strings") + return _vocabularies(tuple(codec["source_vocabulary"]), tuple(codec["target_vocabulary"])) + + +def validate_codec(codec): + """Validate the exact stored vocabulary, token IDs, limits and policy.""" + _validated(codec) + + +def fit_codec(examples): + """Freeze vocabularies from explicitly supplied training examples only.""" + if type(examples) is not list or not 1 <= len(examples) <= MAX_EXAMPLES: + raise CodecError("fit requires between one and 4096 training examples") + source, target, seen = set(), set(), set() + for example in examples: + if type(example) is not dict or set(example) != {"id", "source_text", "canonical_ir"}: + raise CodecError("training example requires exactly id, source_text and canonical_ir") + identifier = example["id"] + if type(identifier) is not str or not identifier.strip() or identifier in seen: + raise CodecError("training example ids must be unique nonempty strings") + seen.add(identifier) + source.update(_source_tokens(example["source_text"])) + rule = _rule(example["canonical_ir"]) + for field in FIELDS: + for value in rule[field] if field in QUALIFIERS else [rule[field]]: + target.add(_atom(field, value)) + if len(source) + 2 > MAX_VOCABULARY or len(target) + len(_STRUCTURAL) > MAX_VOCABULARY: + raise CodecError("training vocabulary exceeds 4096 tokens") + codec = {"schema": SCHEMA, "source_vocabulary": ["", "", *sorted(source)], + "target_vocabulary": [*_STRUCTURAL, *sorted(target)], "policy": json.loads(_json(_POLICY))} + validate_codec(codec) + for example in examples: + encode_source(codec, example["source_text"]) + encode_target(codec, example["canonical_ir"]) + return codec + + +def encode_source(codec, text): + """Tokenize raw text without a compiler, target, IR or unknown fallback.""" + source_ids = _validated(codec)[0] + tokens = _source_tokens(text) + missing = sorted(set(tokens) - source_ids.keys()) + if missing: + raise CodecError("source contains out-of-vocabulary tokens: " + ", ".join(repr(x) for x in missing[:8])) + return [source_ids[token] for token in tokens] + + +def encode_target(codec, canonical_ir): + target_ids = _validated(codec)[1] + rule = _rule(canonical_ir) + pieces = [""] + for field in FIELDS: + pieces.append(_tag(field)) + pieces.extend(_atom(field, value) for value in (rule[field] if field in QUALIFIERS else [rule[field]])) + if field in QUALIFIERS: + pieces.append(_end(field)) + pieces.append("") + if len(pieces) > MAX_TARGET_TOKENS: + raise CodecError("target exceeds 64 tokens; truncation is forbidden") + missing = [piece for piece in pieces if piece not in target_ids] + if missing: + raise CodecError("target contains out-of-vocabulary typed atoms") + return [target_ids[piece] for piece in pieces] + + +def _prefix(codec, token_ids): + _, target_ids, by_field, decoded = _validated(codec) + if type(token_ids) not in (list, tuple) or len(token_ids) > MAX_TARGET_TOKENS: + raise CodecError("target prefix must be at most 64 token IDs") + if any(type(token) is not int or not 0 <= token < len(codec["target_vocabulary"]) for token in token_ids): + raise CodecError("target token IDs must be exact integers in the vocabulary") + position, mode, values, rule = 0, "bos", [], {} + for token_id in token_ids: + if mode == "bos": + if token_id != TARGET_BOS: + raise CodecError("target must begin with BOS") + mode = "field" + elif mode == "field": + field = FIELDS[position] + if token_id != target_ids[_tag(field)]: + raise CodecError("target field order or marker differs") + mode, values = "values", [] + elif mode == "values": + field = FIELDS[position] + if field in QUALIFIERS and token_id == target_ids[_end(field)]: + rule[field] = list(values) + position += 1 + mode = "eos" if position == len(FIELDS) else "field" + else: + atom = decoded.get(token_id) + if atom is None or atom[0] != field: + raise CodecError("target atom belongs to another field or is structural") + value = atom[1] + if field in QUALIFIERS: + if len(values) >= MAX_QUALIFIERS or (values and value <= values[-1]): + raise CodecError("qualifier tokens must be sorted unique and at most four") + values.append(value) + else: + rule[field] = value + position += 1 + mode = "field" + elif mode == "eos": + if token_id != TARGET_EOS: + raise CodecError("complete target requires EOS") + mode = "done" + else: + raise CodecError("tokens after EOS are forbidden") + if mode == "bos": + allowed = [TARGET_BOS] + elif mode == "field": + allowed = [target_ids[_tag(FIELDS[position])]] + elif mode == "values": + field = FIELDS[position] + allowed = [token_id for token_id, value in by_field[field] + if field in SCALARS or (len(values) < MAX_QUALIFIERS and (not values or value > values[-1]))] + if field in QUALIFIERS: + allowed.append(target_ids[_end(field)]) + elif mode == "eos": + allowed = [TARGET_EOS] + else: + allowed = [] + return sorted(allowed), rule, mode + + +def allowed_token_ids(codec, prefix_ids): + """Exact next-token grammar; an EOS-only or incomplete rule never passes.""" + return _prefix(codec, prefix_ids)[0] + + +def decode_target(codec, token_ids): + """Parse a complete prediction into exact validated IR, without fallback.""" + _, rule, mode = _prefix(codec, token_ids) + if mode != "done": + raise CodecError("target is incomplete; all facets and EOS are required") + result = {"rules": [rule]} + _rule(result) + return result + + +__all__ = ["SCHEMA", "CodecError", "fit_codec", "validate_codec", "encode_source", "encode_target", + "decode_target", "allowed_token_ids", "MAX_SOURCE_TOKENS", "MAX_TARGET_TOKENS", "MAX_VOCABULARY", + "SOURCE_PAD", "SOURCE_UNK", "TARGET_PAD", "TARGET_BOS", "TARGET_EOS"] diff --git a/releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/asset-manifest.json b/releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/asset-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..1598d044c4f5d37736d17d2418e78c1e3d07bdd9 --- /dev/null +++ b/releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/asset-manifest.json @@ -0,0 +1,308 @@ +{ + "checkpoint": { + "bytes": 304490, + "path_in_repo": "releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/checkpoint.json", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "codec": null, + "companion_assets": [], + "config": { + "embedding_provenance": { + "assets": [ + { + "bytes": 190, + "name": "1_Pooling/config.json", + "sha256": "4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23" + }, + { + "bytes": 583, + "name": "config.json", + "sha256": "00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59" + }, + { + "bytes": 66746168, + "name": "model.safetensors", + "sha256": "9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2" + }, + { + "bytes": 385, + "name": "modules.json", + "sha256": "73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e" + }, + { + "bytes": 57, + "name": "sentence_bert_config.json", + "sha256": "948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529" + }, + { + "bytes": 125, + "name": "special_tokens_map.json", + "sha256": "b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3" + }, + { + "bytes": 711661, + "name": "tokenizer.json", + "sha256": "da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0" + }, + { + "bytes": 394, + "name": "tokenizer_config.json", + "sha256": "e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7" + }, + { + "bytes": 231508, + "name": "vocab.txt", + "sha256": "07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3" + } + ], + "batch_size": 32, + "device": "cuda", + "dimension": 384, + "dtype": "float32", + "encode_rows_per_second": 2155.864994796075, + "encode_seconds": 0.890593800926581, + "load_seconds": 0.6136547059286386, + "max_tokens_observed": 34, + "model_id": "thenlper/gte-small", + "normalized": true, + "revision": "17e1f347d17fe144873b1201da91788898c639cd", + "rows": 1920, + "truncated": false + }, + "ridges": [ + 0.0001, + 0.001, + 0.01, + 0.1 + ] + }, + "contract": null, + "declaration": { + "decoder_budget_unit": "fixed schema/scalar slots", + "development_child_exact": "0/9", + "development_parent_exact": "9/9", + "dimension_role": "input_embedding", + "input_width": 384, + "parent_pretraining_independence": "unknown", + "payload_ir_family": "security_ir", + "promoted": false, + "receipt": { + "bytes": 304490, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/06/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "role": "unpromoted repository child envelope" + }, + "full_runtime_closure_verified": false, + "identity": { + "checkpoint_schema": "codebase-source-384-generation@1", + "dimension": 384, + "dimension_role": "input_embedding", + "donor": null, + "donor_pins": null, + "embedded_decoder_schema": "structured-source-384-autoencoder/v1", + "format_id": null, + "initialization_only": false, + "ir_family_id": "codebase_ir", + "legacy_profile": "codebase_ir/source_conditioned_384_v1", + "native_codebase_decoder_complete": false, + "original_checkpoint_pin": { + "bytes": 304490, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/06/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930", + "sha256": "069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930" + }, + "payload_ir_family": "security_ir", + "profile_id": null, + "proof_authority": false, + "record_id": "ir-model-asset-binding/v1:327b68fdd5889632e5752370a9c168a80ada5597436264fb1d6fb5fc483e778f", + "retained_status": "borrowed_security_payload_unpromoted", + "role": "unpromoted repository child envelope", + "runtime_ready": false, + "schema_version": null, + "source_profile_id": null, + "task_id": null, + "teacher_qualified": false, + "trained": null + }, + "license_scope": { + "repository_source": "AGPL-3.0, see SOURCE-LICENSE", + "weights_and_companions": "Original provenance retained; this release supplies no new blanket license grant." + }, + "numerical_execution_performed": false, + "original_package": null, + "schema": "retained-ir-checkpoint-release/v1", + "source_binding_scope": "listed checkpoint implementation hashes only, not full import/native closure", + "source_map": [ + { + "declaration_pointer": "/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "original_pin": { + "bytes": 27328, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "sha256": "3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py" + }, + { + "declaration_pointer": "/shared_runtime/legal_codec_sha256", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/decoder.py", + "original_pin": { + "bytes": 24220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/decoder.py", + "sha256": "7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "original_pin": { + "bytes": 11527, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "sha256": "6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/schema.py", + "original_pin": { + "bytes": 27163, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/schema.py", + "sha256": "93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.security_ir.model", + "expected_relative_path": "ipfs_datasets_py/logic/security_ir/model.py", + "original_pin": { + "bytes": 37220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/security_ir/model.py", + "sha256": "abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.software_verification.program", + "expected_relative_path": "ipfs_datasets_py/logic/software_verification/program.py", + "original_pin": { + "bytes": 58065, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/software_verification/program.py", + "sha256": "f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "original_pin": { + "bytes": 7300, + "path": "/home/barberb/lift_coding/artifacts/ir-original-corpus-replay-20261003/inputs/legal-original/ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "sha256": "21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3/ipfs_datasets_py/logic/ui_ux_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "original_pin": { + "bytes": 120714, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "sha256": "8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/native/runtime", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "original_pin": { + "bytes": 34679, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "sha256": "66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/canonical_contracts.py", + "expected_relative_path": "ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "original_pin": { + "bytes": 109257, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "sha256": "d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_formula_codec.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_ir_grammar_decoder.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "original_pin": { + "bytes": 146870, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "sha256": "0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/modal_latent_formula.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/tree_pin.py", + "expected_relative_path": "ipfs_datasets_py/logic/autoformal/tree_pin.py", + "original_pin": { + "bytes": 1948, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/autoformal/tree_pin.py", + "sha256": "587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py" + }, + { + "declaration_pointer": "/shared_runtime/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "original_pin": { + "bytes": 31851, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "sha256": "8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py" + } + ], + "unknown_schema_task_profile_policy": "Unknown fields remain null; no family-only alias or default serving route." +} diff --git a/releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/checkpoint.json b/releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/checkpoint.json new file mode 100644 index 0000000000000000000000000000000000000000..ba019ac30dacc9b863db8ff5e2f57b47ac7799c1 --- /dev/null +++ b/releases/retained-checkpoints/069458d8266e0ffce07415e49b8b2ae87dcca4374e5a9aec43844b6c69e85930/checkpoint.json @@ -0,0 +1 @@ +{"authority":{"admitted":false,"behavioral_satisfaction":false,"promotion_performed":false,"proof_authority":false,"source_runtime_semantics_verified":false},"checkpoint":{"admitted":false,"config":{"embedding_provenance":{"assets":[{"bytes":190,"name":"1_Pooling/config.json","sha256":"4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23"},{"bytes":583,"name":"config.json","sha256":"00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59"},{"bytes":66746168,"name":"model.safetensors","sha256":"9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2"},{"bytes":385,"name":"modules.json","sha256":"73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e"},{"bytes":57,"name":"sentence_bert_config.json","sha256":"948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529"},{"bytes":125,"name":"special_tokens_map.json","sha256":"b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3"},{"bytes":711661,"name":"tokenizer.json","sha256":"da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0"},{"bytes":394,"name":"tokenizer_config.json","sha256":"e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7"},{"bytes":231508,"name":"vocab.txt","sha256":"07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3"}],"batch_size":32,"device":"cuda","dimension":384,"dtype":"float32","encode_rows_per_second":2155.864994796075,"encode_seconds":0.890593800926581,"load_seconds":0.6136547059286386,"max_tokens_observed":34,"model_id":"thenlper/gte-small","normalized":true,"revision":"17e1f347d17fe144873b1201da91788898c639cd","rows":1920,"truncated":false},"ridges":[0.0001,0.001,0.01,0.1]},"dimension":384,"domain_id":"security_ir","head_sha256":"40c7546c13413766b0952fdf33a8fff1fb7bf327e46e41b64a1532c5b9d754e7","head_state":{"bias":[1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.1111111111111111,0.6666666666666666,0.3333333333333333],"weights":[[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.050340967564399694,0.17413945053188107,0.08738026868023228,-0.27899982282895386,0.11567837584394691,-0.1273522486008792,0.41830291268158293,0.01230226610144052,-0.4517921699734846,0.017480103615941142,-0.017480103616707696],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.16508409536811838,0.17048684766140407,-0.031225292516018917,-0.08130084860251147,-0.06454295725358566,0.12190899391068992,-0.48512638718901446,-0.24190610560775208,0.776789844964749,-0.057960706545449166,0.05796070654462673],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.12312741649955919,0.14353891841945163,-0.15939863467751333,0.03418981448032037,-0.13761410853370107,0.0968867774825169,-0.06047716005376088,-0.08158764423273412,0.2875894536142843,-0.018330098223748124,0.01833009822290962],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.006244596059858172,0.13927974692879055,0.05604407783698096,-0.2153153578933152,-0.15991644247286455,-0.06741085889223403,0.38652917005292087,0.15429904457926283,-0.28726478407955314,0.019991533127606927,-0.019991533127898923],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09596456667945508,-0.3344485395311703,-0.016433979840463103,0.3501829086023562,-0.026423857553881616,-0.2666378648218173,0.12325138059424945,0.21196660261452493,0.05450791661611679,0.0006996107675096474,-0.0006996107670276268],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09161049014469572,-0.025863957570306885,-0.021638064860943027,0.02101866675151754,0.037821654954644984,-0.12401181627732152,-0.04377728185499742,0.03760583063215737,0.027234478079384936,0.026483355679908744,-0.026483355679306795],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11571836315206199,0.6006188168518963,-0.3856010294060223,-0.21057702163849887,-0.17119417594888425,-0.2683540442295513,0.20260980237984572,0.12516571913387797,-0.008386430294800242,-0.004440765807246865,0.004440765806559314],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.015500145084445024,0.5160714376484296,-0.10972184166255232,-0.3529861098248018,-0.10949704021227408,0.09243675724688123,-0.28596135937530237,-0.15901647307489652,0.42417477434008205,-0.05336348615893912,0.05336348615925949],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.021308202190340235,0.3369231671481936,-0.28563116851694664,-0.025338344926443403,-0.02783195413210763,-0.14863976731722892,0.3495394128485458,0.08329384480700149,-0.30362339210238787,-0.025953653703973966,0.02595365370417419],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.03127952502475715,0.05193564933310121,0.04494422900208221,-0.0849443886231202,0.039708348638134994,-0.04477673563309651,0.20521571948723302,0.07844734605685792,-0.2592506432346821,-0.011935489707492919,0.011935489707112817],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17327979419407316,0.23621889430569856,-0.1937172039829047,-0.041502768004748565,-0.3238722917044573,0.20122372233704874,-0.22385153831670646,0.09342981395360704,0.42535116560734243,-0.0009989223197425907,0.0009989223193271383],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.133088418280415,0.07401856957120463,-0.15819166422150416,0.06315460868976278,-0.14988397905609657,0.3744335686679357,0.09184989344749253,0.30997753611440393,-0.47227011493362697,0.021018485959039906,-0.021018485958492282],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.227591924642833,-0.159261156062388,-0.02693022483553846,0.18948132360030123,-0.24627778493590882,0.495446306489598,-0.2529127640353129,-0.12590389718491976,0.353950121607238,-0.0032899427024396387,0.0032899427034338573],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14569386862981076,0.5275510182555139,-0.34642397868068164,-0.20197702124047712,0.18436311408583994,-0.34877914475109434,0.27027212670910034,0.07633388694450938,-0.30703386995245835,0.02084998166520085,-0.020849981665287436],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14809176249611378,-0.3080895920348563,0.22585199002547224,0.07792452235524955,-0.10658072096673402,0.27297074897906193,-0.3211679186734841,0.10793102219199552,-0.09693181437177993,0.004313079654288854,-0.004313079653516701],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.006163730070093303,0.15754025135458394,-0.14511585747249517,-0.014464142577812025,-0.2506824529035231,0.08140908269054686,-0.28271575636884977,0.023867759895051965,0.43632484545164535,0.002039748694450727,-0.002039748694494368],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08102946571246003,-0.07928056346699282,0.12393846697891028,-0.075881388755148,-0.020835120871657405,0.023729662825631687,-0.035281943697382925,0.237607379154335,-0.25502595787973775,0.031223485245190852,-0.03122348524494679],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09737933214842011,-0.006000020400625318,-0.13386018294933963,0.1780476918672465,-0.3611469392134826,0.20923099089908498,-0.11061309966109432,0.2588366665576905,-0.13187443924715694,-0.03818748851339109,0.03818748851466099],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06480514354495474,0.17632814753407142,0.07551674350455298,-0.3162812675698101,0.24069843557834053,-0.402374782082554,-0.0625537816959657,0.02433772947475569,0.19952363171090648,0.06443637653230296,-0.06443637653124724],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13378752738715566,0.030894057579062193,-0.14699713996292058,0.14716865543983149,-0.01651494679886979,0.12910738357227564,0.10897008502932438,-0.055409891235823544,-0.33100573101040764,-0.031065573055679585,0.031065573055454775],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4295577483163661,0.20298156354964245,-0.30465411846018153,0.20589498190564667,0.05180420354134756,-0.15842095692390892,0.618464140139981,-0.2335966791285277,-0.8120308829401446,-0.10422242699627865,0.1042224269979546],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2077496734121435,0.20511222159904707,-0.2511410378630974,0.051034049463366996,-0.17623102651153952,0.17853730035300305,-0.048359240714338475,0.21804671006719778,-0.38474864980542983,-0.005005233198426681,0.0050052331981536215],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06655114164690687,-0.019852722651242515,0.041560260986300036,-0.04259032432579552,-0.012241501329886604,0.14353345512371207,-0.19361597047616402,0.0035793370265519114,0.14617860729436397,0.02088278598960476,-0.020882785990056066],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11338347480257883,-0.27965254992656663,0.08566237528823897,0.21714231794278008,-0.09817881978065371,0.08114669760439874,-0.31636512146402374,-0.08859517722486819,0.5122237523648714,-0.023152143305650158,0.023152143305362503],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.3040458965077473,-0.20362384711645745,0.017903103190566507,0.19527522009382983,0.16430897623291527,-0.04767263725329172,0.13804950182623713,-0.19757878022099254,0.23738435975364772,-0.009554476169173464,0.009554476169631064],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3551830565091481,0.09457262587486319,-0.010504109623937642,-0.11502041182316793,0.13512496394840245,-0.27893646845433756,0.05264847024278337,-0.008461508759937179,-0.2246066179137045,0.03095189557256488,-0.030951895572749244],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1614545049939607,0.07562327818963674,-0.28244277380754007,0.19480664775649106,-0.36587238067772915,-0.08858108731166899,0.48425244773862447,0.25479769096454236,-0.11112931785806371,0.012012847861362235,-0.012012847861164544],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07078688408802138,-0.29908685319244704,0.05392220093220161,0.21704164671437412,-0.1576607395612167,-0.20845551028036546,0.1557281892508373,0.11402772641684222,0.19527022380748166,0.028123005545131103,-0.02812300554437988],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1829776944585775,0.11448789122050959,0.019033948066494603,-0.1687415698141555,0.13099269942068179,-0.015324601687456852,0.04335856505390494,0.13227324403686652,-0.43905787075732033,0.0352197305258745,-0.03521973052546769],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.18968693167903955,-0.017309779243006706,0.038390703742227465,-0.01887019750001489,-0.016767475086325364,0.04228262274286136,-0.4570745580227422,-0.08902981870430314,0.7080654337512728,-0.002210726997298848,0.002210726997245842],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14374730623417115,0.29365519767225867,-0.046053433158588696,-0.2725379358511803,-0.009467448637854122,0.05139959147730054,0.14782317825908495,0.2152044862917196,-0.5237709422868985,0.024936171336457428,-0.024936171336598652],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13024347663732935,0.14110351727955134,-0.01321077072814281,-0.09770600905951496,-0.07913369803007647,0.03065715241769056,-0.12560693584835367,-0.05709644333363974,0.07074971066574033,-0.03018673749180816,0.03018673749185515],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21554440216339435,0.03562240909988258,-0.1600091185824215,0.13664544493368835,0.033571431450780516,-0.0885525556439807,-0.3730143130491643,-0.19882331111433815,0.39901561074386804,-0.012258735450584698,0.01225873545122001],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11210358402831118,0.1795448902725205,-0.02690183062281608,-0.1619775914517193,-0.00015178267214224295,-0.10478244430632465,0.11186862687196983,-0.10553650601061494,-0.004166946109697898,0.009334531803716533,-0.009334531803798892],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.005905969324784538,0.058021500903948406,-0.06568276742370682,0.015001762790548424,0.05103094693555619,-0.07171531969233964,0.11728952840904272,-0.08557313550294687,-0.024278485744556766,-0.007340496270495934,0.0073404962705908424],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.050141467047915354,-0.1069147429770462,0.07684836170433874,0.0009504761649651269,0.1816866275903694,-0.11862241987983613,0.09996641677874915,0.19004941070260842,-0.37410559713169655,0.02911590510752331,-0.02911590510746956],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1388930103127799,0.04205543050365933,0.0469358666556363,-0.11957911645007506,0.02872639316591013,-0.21701707540638202,0.04706436065856017,0.011557947239466652,0.29914920394715816,0.03058781929101545,-0.030587819291112855],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07420703799515166,0.07044511113812399,0.04986272382669856,-0.09245582627498519,-0.14096736918522615,0.17834992172529135,-0.2857194668072645,-0.12019193462049449,0.26646980220320365,-0.027852008691326265,0.027852008691467815],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07654947423578837,0.0348386811838748,-0.08308682341202402,0.029348593854698634,0.018092471963313917,-0.2690282462986707,0.049713212520505694,-0.013716120491899365,0.31038770491594264,0.018899548373579527,-0.018899548373338806],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.10832194013570455,0.008313469554645276,0.05716992545429759,-0.03758956517043683,-0.2756529356884996,0.3033589571217363,-0.16807295774933106,-0.2450844170516613,0.46587946366534394,-0.027893829839134215,0.02789382983890537],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04889751291384095,0.0285454706476027,-0.09834871153867754,0.09202378293617972,0.06439217534828273,-0.03628599351487436,-0.2307880983526701,-0.06284213970724145,0.1944060012668564,-0.02222054204587564,0.022220542045778894],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09280811549472082,0.0009255745623701702,-0.0758140850413688,0.0829288965472271,0.2161155855661009,0.15487146678416847,-0.11827048680526822,-0.14465403590329345,-0.20891103120441162,-0.008040386068253955,0.008040386068225006],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09300389652601959,-0.358084910518637,0.1909028795051051,0.19810886587844237,0.17779229639959113,0.021616484630854103,0.3367702223059725,-0.029499237065180133,-0.44460270460921447,-0.030926834864054342,0.030926834864545637],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.10778212538032442,0.060246629255072244,-0.005007542894752126,-0.05584515224324401,0.1840415544194841,-0.34528718289850896,0.2939326295285181,0.14901320328060907,-0.1733120130668223,0.0006060658824445427,-0.0006060658820976084],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04054762148580925,-0.2811282070680709,0.20604452488979835,0.056521638514989724,0.1248285330210165,-0.2824637190734797,0.15167040153547687,0.10557845034196664,-0.12159924364762553,0.018562043663176056,-0.018562043663412492],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.05275721003094602,0.09882720141967144,-0.0888478452670604,-0.04257791994893813,0.0025586342654171667,-0.07697272362124422,0.21892783245032021,0.005918470168576466,-0.06507643943657368,0.03259856379523389,-0.03259856379468241],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.20872121158266455,-0.009358025035656324,-0.008275392450903635,0.03598971162475203,-0.123626203467828,-0.03363741180578714,0.2427976128949037,0.1803450065317484,-0.07551408670953796,-0.018356294139000705,0.018356294138177864],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.01199253434974245,0.007272630471096972,-0.14325558006534994,0.139280832587621,0.18548071684505948,-0.31039787249968515,0.0575425047644999,-0.27665650002790426,0.32874073357458516,-0.0032978829939090248,0.003297882994160376],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.3560798044512693,-0.06871717268764473,0.16171947865973632,-0.009833419949068263,-0.3027773782287629,0.5601738825539624,-0.3602027664970654,-0.21420164178255063,0.5899188223843582,-0.08316888602173937,0.08316888602353543],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.062178883044705036,0.1255417925524103,-0.10864891337058798,-0.01851616010093663,0.07239304469312961,-0.12137316319565788,0.1312593024659001,0.11853407992213771,-0.13701109992095337,0.0016232809195172422,-0.0016232809192847381],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12765066986114912,0.005402635678828923,0.11345451311099945,-0.1666633690430236,0.14613578436168662,0.10156548732581687,0.06124716650710957,0.08919172328569736,-0.47798461108940665,0.04780622025252264,-0.047806220252363515],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2574965869698102,-0.13939853329006727,0.1828767094758392,-0.10338582992930286,0.036426799751700316,0.28356763826914744,-0.05312740199125239,0.033405079357694656,-0.49786104861324154,0.0599076537448829,-0.0599076537448869],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1251364844432736,-0.1487245686559968,-0.11640342780084897,0.23618249517075665,-0.05307088494350743,0.12641757918594665,-0.09292557742081395,0.13419694424617268,-0.2108090442249029,0.02894550128648594,-0.028945501286958913],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.024707057900190687,-0.17526834907576652,0.19866550709164757,-0.04326142338413314,0.19512634343344057,0.0556679202874714,-0.091762139808748,-0.06906131858723082,-0.04539948205616075,0.01986426536865492,-0.01986426536848184],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.19881276359967437,-0.22296930497392345,0.13582926416774493,0.13016752495958717,0.286459621621403,-0.10380627465341627,-0.0076050219825737255,-0.24402101717621721,0.2247579716375193,-0.04302748415177228,0.04302748415240181],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1362391990656971,-0.09420924893454691,0.14423099233768596,-0.06393922280820949,0.19974895208690457,-0.10641915753512018,0.5483941470439863,0.08351264461725998,-0.5750799077417601,0.013917479404566975,-0.013917479404150617],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.020280179716595917,-0.14737792556306265,0.0184869118167142,0.15305824657507897,-0.05228175343653836,0.02491583413085177,-0.27357498502875494,-0.07957559686023705,0.3360690886504629,-0.0241672328279965,0.024167232828145216],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07824186619781305,0.27132109882118155,-0.039758675597951536,-0.2729529901488409,-0.0635838795179806,-0.06916708646918288,0.030304131515842214,0.18718523332475798,-0.12158969812566904,0.041390566925932695,-0.0413905669253224],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.13482420051642857,-0.0013384869132750505,-0.08250491314750326,0.1064655894544049,-0.14087413079709968,0.17728853320080412,-0.2371492084200896,0.02484419731225472,0.28809261982770246,-0.022622189392128036,0.022622189392957927],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014261753824484896,0.23354712780848105,-0.12373184828787782,-0.07587558125521658,-0.07082623830715289,0.15484038063955446,-0.005263096333500291,0.22995736884560025,-0.35690986693331733,-0.03393969826591976,0.03393969826571583],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.329619811358153,0.05211190863499501,0.07261255878846473,-0.12680400374216755,0.09695545118552133,0.11581578898927163,0.06776279858922665,-0.0015341366940355057,-0.6065401771093367,0.0020795363181603244,-0.0020795363178869627],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2639689318486319,-0.026897697104733564,0.07629245262202936,-0.0637403873823605,-0.11517996723482668,0.08544387793761753,-0.1873782944396137,0.045228056105195716,0.4502008913463864,0.014345631865895294,-0.014345631866154592],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1402594793595176,0.01719774288479871,0.07297063443930576,-0.03498151787897823,-0.5527711226358658,0.7749957599598296,-0.6590721140703298,-0.02518021171505647,0.26658134965720687,-0.05518685944664023,0.05518685944518394],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.03316554154476868,-0.10024798744455081,0.17292044179563482,-0.06820291789783411,0.1610796227875494,-0.12492384345654584,0.30010874642950214,0.07920688095757614,-0.3867754016265796,-0.004469536453843647,0.004469536454054466],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17239566134876128,0.19916806094201553,-0.26625372281453447,0.04737271886937605,-0.147864204607246,-0.20436649101519277,0.21540399762448723,0.06973793927435828,0.2591973630751944,0.01971294300327422,-0.019712943002874555],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09933974236783415,-0.05520870524189925,-0.26905884427515603,0.3335257342078562,-0.08861010721006743,0.014730010255421451,0.03768791933074317,0.104889372913396,-0.17729512234811817,-0.009258184690287868,0.009258184690207201],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.15499666114239316,0.17637950226804075,-0.10589641435077089,-0.08686316166088034,-0.3075367560608984,0.08756133718047582,-0.08979823682329471,0.09739554410934037,0.38375484647983465,0.016380073743935193,-0.016380073743210453],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.037528861954459335,-0.12700849220075466,0.021407765768435432,0.09854404248586195,-0.17501032882350426,-0.16024674618081983,-0.17254108137269877,0.05979190449799525,0.41753407387096303,0.007056683945514374,-0.007056683945659976],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.36600479793937385,0.2052080290531485,0.16534877785415858,-0.41100354125905714,-0.12864025072921434,0.1411848415777275,-0.1993853909886957,0.12755608224706694,0.46573625018368164,0.04044673435188092,-0.040446734351243976],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08984247305268463,-0.2773888194536129,0.23901449731520497,0.040536770658762586,-0.11368734605480085,0.18431088984725785,-0.037589982195028425,0.20739585625885545,-0.3324343394292685,-0.0021624485189094115,0.002162448518546622],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.030885097305110548,0.15289677876073246,-0.09038160244422405,-0.023388429499091385,0.23947473112845621,0.11215555899442697,-0.004736983571315791,-0.36916766913506677,0.01403271307080107,-0.03912674681683557,0.03912674681707553],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04947784646988674,-0.1364171172048523,0.059831988143899,0.10173175867603151,0.16837019891579397,-0.0531914879688328,0.4818902702862823,0.10856537936438625,-0.7802588366824043,-0.0251466296158071,0.025146629614653505],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1464730303327867,-0.10894975292181731,0.3373176606037958,-0.21100119419304786,0.15049482694497204,-0.09971561515371055,-0.12043225344231645,-0.13016318862845716,0.328922547124056,-0.01736671349066606,0.017366713490719225],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13044117670733393,0.24215823691821295,-0.002112504770822733,-0.23440574733625977,-0.15121539940170747,0.2761333043881454,-0.23574332045095295,0.22045110506774668,-0.2457068511217621,-0.005639984810927006,0.005639984810173258],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.056344993235275705,-0.1216531565954594,0.057186312461227566,0.0235049935563614,0.04642848285242647,-0.1270778769631983,-0.019799609336928897,0.06588176665754776,0.1318740806028513,0.040961850578692435,-0.0409618505782529],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.045329054889221045,-0.23467407551958697,-0.17648806700417188,0.4542527366042926,0.15686223887547707,0.09786245135640019,-0.11438727538944472,-0.16909525310732468,0.030996299073527363,-0.0430905940792335,0.043090594078650964],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09441414516614534,0.18243286395396577,-0.0508723423527106,-0.1505510444634158,0.35495322987395306,-0.36064967029590744,-0.17285859557554983,-0.2525721331076731,0.5445318371331186,0.01899052286304774,-0.01899052286305675],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1547328108407063,-0.17598291548279668,-0.13123632093995338,0.26374949798834985,-0.15741698416947322,0.09178877098917462,-0.22618129496145897,-0.03733643343685291,0.5273484908533884,0.0434697384332628,-0.04346973843307136],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.32580955260009115,0.044913454476122945,0.010940094459087292,-0.04302121360388871,0.04622761811335297,0.09026808682266917,-0.28208033581064224,-0.14279547295559497,-0.050261784101210204,-0.012832335331068891,0.012832335331419947],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.03472651843996347,0.11323204350095474,0.1548400491020163,-0.31702884060621234,-0.4398305878817716,0.24179062530472684,-0.6115269804656804,0.3441756665305917,0.5490745429552972,0.048956748003290085,-0.04895674800301821],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07406423386172227,-0.0246788710574235,-0.021971584347813496,0.02931478373827673,-0.012607545606106853,-0.10260544246232983,-0.14933060929208153,-0.17086093277802292,0.5268044356665044,0.017335671666209706,-0.01733567166648847],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06051161316096899,0.25222946494231513,-0.1185391718472582,-0.07175270146944387,0.1540243450640055,-0.5952877829134047,0.5692717694371426,0.1307620847324386,-0.38121962110835095,-0.061937591624816574,0.06193759162659779],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08027325315069221,-0.11195044342308293,0.08101003979607387,0.0013888905651247032,-0.312339685330855,0.1696445694772941,0.1545446354998822,0.22307305022044574,-0.28564430995572215,0.02955151306151821,-0.02955151306107144],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14411213721797506,-0.10325232432282717,0.2950918048063182,-0.19833256252557283,-0.03166369413053807,-0.022040328822232835,-0.2157607713889506,0.07831805822052225,0.053527680944633844,0.0064930820408530595,-0.0064930820414074285],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.04282353818173415,-0.044584814395299585,0.0814654652878998,-0.03498953307244303,0.31949551567150997,-0.2866734889387828,-0.21913630958755018,-0.20451839549813455,0.4317650987148173,-0.001891117820563634,0.0018911178208176462],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05001013796938605,0.11639941571479394,-0.2133471629314893,0.0733024842746365,0.10121912319344978,-0.22259853527481005,-0.25462479700188906,-0.16678295520898456,0.5164222892647451,0.02364526294296919,-0.02364526294280825],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.24253932140198625,0.20906999342607074,-0.19176461724347166,0.03183503813906834,0.015346987103161227,-0.3402580224120091,0.08691690147024612,-0.15154444744781811,0.5829374883662308,-0.04914041432177906,0.04914041432063551],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.005356673690417222,-0.22196252786066292,0.16549008489806624,0.09411431547888276,0.37157956168258294,-0.13429055006862464,0.29831983300351234,-0.18169741859110083,-0.3861966248516958,-0.03764187251611022,0.03764187251663324],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14972995570407674,0.1071974176721283,0.06982368332979498,-0.1486831837356986,-0.16512316886992406,0.04842611218215493,-0.012353652350101106,0.11874904510359952,0.1316937023715382,-0.02833791726679066,0.028337917266678506],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11861857450639776,-0.12827338129053367,0.16885410055597505,-0.027411030352924016,-0.11527364864768852,0.11484719915676563,-0.27083872120992475,0.1262857236500599,0.25042833264432357,-0.013169688914598878,0.013169688913901516],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08376458947771101,-0.008041250926871442,0.030504755110489626,-0.07081166058756325,0.08022101279824496,-0.11960766319963821,-0.12825923560884261,0.1512919404544719,0.14846669143878716,0.04834815640541468,-0.048348156405427285],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.015894517833892164,-0.015988276299233457,0.04159752367957799,-0.05942058278216578,0.041949285051592435,-0.0925899111817423,-0.13576433538471433,-0.17922861148413113,0.3835503905672855,0.03381133540189853,-0.03381133540196665],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13512736678972043,-0.14036550843397338,0.004690593283835532,0.1587959649194195,-0.2305859504288375,0.17971727182233158,0.09432448147718922,0.04766063037690343,-0.24936484980639262,-0.023121049768889543,0.02312104976865904],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.31994758148704017,-0.3846603789608277,0.28461502977886705,0.07713330232858084,0.1454724643523891,0.1545836404147571,0.07750983367075424,0.2749228504410151,-0.30962916053835055,0.022912046853869383,-0.02291204685389348],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07088791509634636,0.08092813029327456,0.2212980539088264,-0.3356620247905611,-0.08613412604630132,0.08581336835459162,-0.09354050368946112,-0.051776724367897924,0.2499617414342513,0.03343584058808027,-0.03343584058856339],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.04619707062220432,0.16129815262863886,-0.13312110684276515,-0.008127063369644546,-0.246918020583173,0.14643369993646463,0.024905388843220133,0.1856742634363066,-0.08394824342621773,-0.02004998241495998,0.020049982414031255],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11075421296013438,0.029271162275625647,-0.07079981783195612,0.03949730530864365,0.17628886069793265,-0.16403764971479962,0.2871357578172568,0.0057981828515243925,-0.1923995884435715,0.0020313502480035807,-0.002031350247627334],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.04454849017009673,-0.06962298798130986,0.24005679903475446,-0.1690821023560759,-0.10336281272548396,0.2753680759762066,0.35007412298372065,0.11283957891960851,-0.591722183681339,-0.0013517086978665532,0.0013517086975413913],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04770622334322453,-0.11207537908754334,-0.24631808617295248,0.3637544985655227,-0.010905575437846994,-0.23266681447186813,-0.11462069435753987,0.22891252032582893,0.07621330729205864,-0.0053610333073598635,0.00536103330708058],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09943348428869432,-0.16593581483738212,0.17427484793737288,-0.024914899309301547,-0.14509866170571695,-0.1875713734864947,-0.29537772171258425,0.026073079272118563,0.5191170595532716,0.016575866209407552,-0.016575866209636036],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06441127371210206,0.08984445511148471,-0.09398778339160066,0.01281072540101781,0.08708720255371716,-0.13054421212038345,0.008353693046758216,0.01872502143268461,0.0721221716790479,-0.008667397120848307,0.008667397120425692],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1875855566345455,0.09449950379576598,0.08519676163184794,-0.1709676928575877,0.061538893648343314,0.050357673913652264,0.08831352288170197,0.09604929712635603,-0.11740240350606128,-0.008728572569286506,0.00872857256975708],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4797573942198264,-0.030047912591606912,0.3484199500313463,-0.37097415003332757,0.14123272660565875,-0.1655187181539227,-0.011195127512279092,0.06450917814101224,-0.4561833407076757,0.052602112592710845,-0.05260211259330783],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1581186220856748,-0.03451392335130531,-0.1470326346224814,0.22424215312849882,-0.0737233382982765,0.1729697190666438,-0.016444965883812952,0.04177350364360478,-0.009151891596989021,-0.042695595153568376,0.04269559515410985],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17300353373535346,-0.10300487480137828,0.06696654239055497,0.01410854366060821,0.2698405946106677,-0.3492071926345766,0.27760720427799246,-0.1087151040641157,0.10540782029587525,0.021929788748940242,-0.021929788749523088],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24409480430107033,0.12149815303779561,-0.06589085737719523,-0.07324559948126697,0.20689962700589773,0.007760143665142321,-0.1878033284445571,-0.2842704965724265,0.03095755386646809,0.01763830381936306,-0.01763830381990894],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.28090965112703803,-0.09158749198219203,0.007835363673816053,0.09488338908747056,0.1722621158884588,-0.23205122930264777,0.5574264017105752,0.07093248026599554,-0.29879137821481827,-0.011131260779429665,0.011131260779757422],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07580440741561993,-0.25782275864703436,0.15328100716313256,0.12974081497048062,0.00016126334012048622,0.33063529532816227,0.15619790080646756,-0.1518538336246192,-0.4361440967523779,-0.025199063486565892,0.025199063486652375],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06233814934990835,-0.18360678374965336,0.02156784006779088,0.15333396801424332,0.020893294283755904,0.1808062069782198,-0.17221750239835282,-0.21581417493149388,0.1326990023852054,0.008704975668550993,-0.008704975668369239],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2446972754223699,0.1762287222145379,-0.22267685417812014,0.06464534267495363,-0.1678184389349926,0.24445613562239663,-0.0765048452192922,0.02035937774416671,0.20600783549925533,-0.018197210710910523,0.01819721071128957],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.027968265928704647,-0.09783469835347047,0.15024576726034297,-0.02678687228305838,0.13620374376185757,0.042782415372939545,-0.007084283925367855,-0.2720450474983488,0.10248724159362535,-0.02562419662393769,0.0256241966237418],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04173730980421481,-0.12471567337596112,-0.02662108109639868,0.16707453271585324,0.3051295726222322,-0.14916094797545046,0.18413858503501204,-0.0428830520321216,-0.35469924569709815,-0.015737778242676578,0.01573777824199347],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4845921076662931,-0.05076545281413879,0.06912300062567876,-0.04593279669447136,0.136618734207208,0.0029153069371798436,0.37311544641970446,0.0037543060114489813,-0.9734206523580621,0.027575248883668836,-0.027575248884302416],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.010092300834531423,-0.06485588219385667,-0.05767219182165735,0.09740915533813763,0.33955331439872866,-0.3541943086335002,0.3161820789813355,-0.04232194354627278,-0.22400792168860775,0.025118918674962257,-0.02511891867504383],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.086622778539423,0.03468507374951235,-0.04249606184552629,0.02233956179588369,0.15733370157297327,-0.1837236130858335,-0.028490146783967333,-0.04848800099886421,0.0022167070560756234,-0.01452857370081072,0.014528573700790023],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.20194600041186447,-0.2199632360381662,0.12252806597986562,0.1276481013177613,0.3131597910271501,-0.3291557922514611,0.5247182811701889,0.11097843060992338,-0.4479676414039757,-0.0302129312624799,0.030212931261230366],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06964752662457054,-0.06652808665609529,0.026851102710099696,0.004623294204451779,-0.050936460931816814,-0.007877047739369945,0.09903574585504482,0.12318234273659588,-0.058703363553878354,0.03505368974118911,-0.03505368974011329],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2620576875433416,0.3627930401209659,-0.11688598741565216,-0.2283800368151978,-0.026474657131590487,-0.044589846369188245,0.26367239455525815,0.19689809257917998,-0.14497531198060867,-0.01752701588954106,0.017527015889312495],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1061573906914579,0.2850995249345605,0.004616521655646778,-0.28341798945933977,0.034389287745376265,-0.10553508703793063,0.26385852590542475,0.018096983975600323,-0.11095037702774366,-0.006298057130917913,0.006298057130954962],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08995755127045085,-0.3160127560682123,0.17517319101427312,0.10670612149164996,-0.16313970694342333,0.31207454755675296,-0.5251882872075,0.03780904162464874,0.282620297260905,0.034133443561505945,-0.03413344356136004],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.043452087907875116,0.2596730651676511,0.07599198303045983,-0.34081493424125964,0.22620201424957787,-0.209951183916595,0.3180307413202426,0.032118249034856904,-0.4047020225528737,0.005149886043279668,-0.0051498860432097],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.01964271503844091,0.12997936089539425,-0.11434725246214743,-0.01790574645004791,-0.06246640889311018,0.03512926615057963,0.04224442543008452,0.20643570722444363,-0.23871206693315153,0.0022736380177702906,-0.002273638017969121],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.19298849300366266,0.09285654397679076,-0.05933046702886726,-0.03208088968978529,0.06980085726528464,-0.2622867429034403,0.07353208229346041,0.011924052716774892,-0.08740392963387243,-0.0014451872583640633,0.0014451872580705932],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.26496867145305525,0.13864083638467353,-0.1980375039662943,0.08140385668395034,0.2541399602727942,-0.2538445494229392,0.06385390774818335,-0.13973690037614883,0.31854906412861445,-0.02200718910223946,0.022007189101966796],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.17590357088667427,-0.04714660997450936,0.11296697885685215,-0.02163604462259798,-0.08245791721818994,0.11995459996707625,0.09242257634174747,-0.1818161123061725,-0.16819104193050644,-0.044184324258774534,0.04418432425789655],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.12089627952626757,0.32530769445415486,-0.35230174740548764,0.07877919709783919,0.2768091671454781,-0.5728491321163726,0.7138626238672848,0.14551671097038119,-0.49422823448593495,-0.05178514414447268,0.05178514414598732],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.27447523131128637,-0.2369523716682464,0.18955190924073315,0.0194904783898003,0.4735417486916699,-0.568790468540651,0.3767002737663999,0.019576560735937467,0.0013571006957765134,0.02790998403830625,-0.027909984038366545],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17780332350200082,0.15547337364118347,0.038558157183072594,-0.19996013838082122,-0.27376225857182196,0.04909516108648801,-0.18001009524882353,0.041892593390404465,0.5465165304025988,0.005928607556662948,-0.005928607556780466],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0014889820146443032,0.09900030697705575,0.007578759315462057,-0.08298303357999771,-0.14016268859518152,0.2646441041222196,-0.22391346483105712,0.05528492373714935,0.022040074870093546,-0.023596032712460652,0.02359603271392207],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15830529292381412,0.3709586918543146,0.2231181379973555,-0.5607804609489575,0.12725490892685673,-0.15391853271106148,-0.2399527638787256,-0.1792748711954696,0.25428959703170045,-0.033296368903095376,0.03329636890316996],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06859137647035621,0.16283125859538508,-0.03348683233018786,-0.13119374625492447,0.1612694607190868,-0.42860813333509395,0.3391317797160971,-0.039393489780141386,0.0380410791401401,0.0018493199900748937,-0.001849319989802636],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3056259549630108,-0.2197388881727269,0.3170652191161275,-0.040423273351280875,-0.19550373419983863,0.2888131775170008,-0.376137808301343,-0.02913409295853492,-0.05056655461245952,-0.05690305759023916,0.05690305759112625],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.013767122769753512,0.07996793087866032,-0.1470904197130441,0.08599969055442924,0.10906244938882449,0.0836752449203811,-0.11188549522012649,-0.08840355498731078,0.0024412769475552322,-0.018877201720262308,0.018877201720943197],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.008505714485139882,-0.02734563744194804,0.08286674937417085,-0.04251931666170831,0.010718958375450382,-0.3607247646133399,0.00942574290732911,0.049193946655886285,0.2698786069179417,-0.013001795271342138,0.01300179527127091],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06964933005823008,0.158608337985518,0.0906248963185722,-0.2581349230533222,-0.06475991855246162,0.13064240339225336,-0.38422688092922547,-0.20084982833428774,0.5977452432310026,0.008901688749215694,-0.008901688749601787],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05852563373998538,-0.3622525509415378,0.10441570651902846,0.2630521452701578,-0.11557125184308012,0.36675707069465263,0.23650631077527418,0.04570460112669826,-0.5971376653417697,-0.0052153008487414425,0.005215300848536473],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1123237347661146,0.1374051097897236,-0.25876152093626115,0.06940436123904675,0.013648299945253413,-0.30074414003496286,0.23956508608743754,0.05650640266769356,0.1553001360085408,0.05195204990725716,-0.05195204990841257],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11437176146554055,-0.1462580988925799,-0.09126393319526625,0.20436715759550203,0.008265816853757288,0.01165579899501668,0.2261652849931527,0.3464562244875257,-0.6737600123031147,0.033154874491714253,-0.03315487449195902],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0675343995407472,-0.2738117552322969,0.24353861525122525,-0.03252896591336494,-0.02623472746102208,-0.045207550772588985,0.4323139015345557,0.23139970106382338,-0.5970036180110075,0.0628021058952509,-0.06280210589680177],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11152294127028828,-0.07045199470814471,0.047909184437466425,-0.02275345902612667,0.21745995122421125,-0.28835882583163636,0.026006216907179937,0.003593119933214117,-0.024927134205500575,0.04529626929813681,-0.045296269297920654],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07799839310784505,0.14260212598140395,-0.21038774408142596,0.0807291423356455,-0.02398741804337719,-0.14385650606749023,0.3637121737572768,0.0037753674700348122,-0.29058553445999513,-0.01294352423561244,0.012943524235027922],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07447024815898905,-0.19041480711036338,0.09373795611197401,0.1315794533966215,0.1543291227269879,-0.24568533122464187,-0.05832204720474453,-0.10088444086234716,0.29013034232462914,-0.03490260239859812,0.03490260239861469],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.20247164771958406,0.10773469089420415,-0.020529257864050174,-0.09870663352870819,0.22931795146595282,0.008311317102304514,-0.05921922705277044,0.008524402307967208,-0.3779048910446125,0.011501200498486056,-0.01150120049835487],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08958104019450255,0.12005167937702171,-0.2795997215549646,0.14484099806115416,0.007965203079109162,0.20044132018672106,-0.03390053614652924,0.1288032626947828,-0.1990211655025994,0.01470704411753113,-0.01470704411713696],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.10418594228348174,-0.028204512966048534,0.03202800981903436,0.013767172939057921,0.10547917472165416,0.1747493814269921,0.12923637375782743,0.032254204686186144,-0.355123862100947,-0.017590669791669917,0.01759066979173246],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.4590378363358593,0.023172476021144424,-0.32400290491225553,0.3133392234862548,0.03996761557212651,-0.11788149594708672,-0.4720794541212011,-0.015086321388085812,1.0116086976248577,-0.012508794594465435,0.01250879459460304],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07650258028597731,-0.29463691721293644,0.256036721266184,0.00452984795216018,-0.16681859460039503,0.31096864609408936,-0.19517274567825357,-0.13809724701354723,0.14668770890590394,0.034070347995252125,-0.0340703479949784],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.04584181950689589,0.024190903064126062,-0.14162266214468183,0.11102714087753093,0.09931589045744453,-0.09893040037302213,-0.03483970154226854,-0.27896020263038523,0.36566085179723934,0.006404618202505727,-0.006404618202809006],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.05556599273577687,-0.15433365587998515,0.138196566101522,-0.004680267732659599,0.2303201984890143,-0.21631991760746555,-0.07912444193263027,-0.03287415852161059,0.17438166981968722,0.020817357510766785,-0.02081735751083382],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11471936276831231,-0.09320244471436911,0.11347247136650745,-0.022987911525003353,-0.007262402444558891,-0.1885070745308413,0.19431270578394402,-0.12403733525396846,0.013492628549771369,0.0027178848729045154,-0.0027178848724871262],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10889411660029633,-0.12072289803098235,0.05888055325453063,0.08347363113927299,0.2814869031683615,-0.36574427470328563,0.09676348019781013,-0.1411573900168428,-0.0018741216093954751,-0.021631286362739772,0.02163128636342275],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013460649369652302,-0.027921379853102776,-0.08403564912171724,0.07732491613621188,0.11887312729759439,-0.024927635086209834,-0.010974035638459835,-0.0033486205988653484,-0.05845137250529021,0.034632112838684115,-0.034632112838950166],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.28926170980281213,-0.07991502971028418,-0.04078502856822043,0.10245276574837402,0.12512169692317474,-0.3272830647622945,-0.03871717567212121,0.003178505274559774,0.545209040569133,0.018247292529643407,-0.018247292529733557],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2533382736104543,0.2502048548274706,0.000821462513272557,-0.24514122093495003,-0.0795858621858766,0.12897999556583137,-0.13230624182596532,0.03039838553440171,-0.2067096471042474,-0.0058850964055953345,0.0058850964054875665],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05943164360487008,-0.1381922898000032,0.08332903381013575,0.06528438501373678,-0.09708030363383957,0.08059719034767342,-0.13117618786965138,0.09052534847473435,-0.012718819946725442,-0.010421129023741591,0.010421129022994406],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.048195985494641665,-0.2765839948069756,0.20053074970713256,0.08458181472786346,-0.09056872073484537,-0.1180400359094585,-0.14809155942751903,-0.23796096288410815,0.6343286948227136,-0.008528569626862447,0.008528569627168834],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.16565158574477212,-0.19424860717661746,0.015187524794528076,0.2030167436786261,-0.43606403735908617,0.5808920564306743,-0.20872994038684703,0.17580236080570205,-0.30150768653051435,-0.023955661295038497,0.023955661294557028],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0036488693064187414,-0.0998278152206873,-0.09772942451912021,0.21707542489002313,-0.129915877287179,0.24700855413460795,-0.23581877804641024,-0.10469085942357591,0.20024990616603908,-0.019518185149782707,0.01951818514973534],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1760804497619344,0.12066540988583448,0.11666427786503863,-0.20790116485290633,0.048129939864902146,0.0892226186862864,-0.3071507774977882,-0.09526568107973397,0.05955492736686313,-0.029428522898668246,0.029428522898595242],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.16006045177377823,0.19620876645656932,-0.12166863778336516,-0.03912784502733581,0.08788959440515069,-0.07856548603354746,0.046647427281616964,-0.01900325397492758,-0.23244101709784848,-0.035412283645000736,0.035412283644779274],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21781063040264118,-0.18113084544433508,0.13051293901896038,0.013884613117764207,0.02304770181756125,0.1054757522912452,0.04401077905130933,0.011681689375728173,-0.3652932596312309,0.03673329330765752,-0.036733293307311204],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0773442594736463,-0.11023543158590823,0.08692702100984409,-0.015443142222843759,-0.09912252266593369,0.25558915280441424,-0.46600995752754226,-0.13204202893835126,0.557681168599875,0.03875155280051716,-0.0387515527984984],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.032077552883894585,0.1704233142572984,-0.1378352193456953,-0.008816248450096329,0.10110293159591284,0.0035648805172044007,-0.03427494748247484,-0.058403521076925084,-0.06783874289972681,-0.023771846462368896,0.02377184646218396],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.036374097993218654,0.07993261134901553,-0.06432750861559886,-0.01903456096106337,-0.38610566029081106,0.24461264024786103,-0.14154476583034845,0.16175881725319988,0.16108252484083804,0.003429458227110172,-0.003429458227123037],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10568009499551721,-0.1261125042097881,0.11699202200471269,0.030113499955682146,-0.23846515361342993,0.28768335256915367,0.016300327447002636,0.2138513382897845,-0.40604297743950185,-0.020993017750724277,0.020993017751221248],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.18227102976009377,0.1137460811029659,-0.13928289300076352,0.04225287126654991,-0.25370436741029656,0.40593325654561063,-0.08785941741868812,0.1260704209346583,-0.02488492225939718,-0.016716059368833063,0.01671605936884185],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11080569546771019,-0.2910456155652683,0.25560282626831415,0.05163306594160596,0.24179956648149492,0.02461927356964324,0.05427011097587154,-0.008698814906361096,-0.2173747172978985,-0.016190276645755765,0.016190276646160042],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13499392386473355,0.011561863748288697,-0.03266179487272975,0.023007177259501986,0.20528757739560713,-0.13056221885992328,-0.27709475233335984,-0.279328125209475,0.344796349007743,-0.0019072461352440965,0.00190724613519431],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14199785452436933,-0.3039243310736732,0.021329625514362554,0.25504311144330954,-0.036132582177464505,-0.010363049532855401,0.10671658687693998,-0.19649200439767653,0.3058204978714471,0.027551594116564868,-0.0275515941158139],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.20471997250233542,0.03971019865910376,-0.043142652556782644,0.02863229210514619,0.03734077167769119,-0.002287883926429042,-0.14532622261768052,-0.08628207681771795,0.37607554597860604,-0.02519983820778565,0.025199838207072844],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.27973909972602234,0.47241025581833573,-0.1883194723646142,-0.24202267950066852,0.02326177976808825,0.0004909918950662024,-0.17538007844476267,-0.1074150499517439,0.49671335250605225,-0.04206810395341728,0.04206810395311108],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1594244768395728,0.09551722605744326,0.027047462309039226,-0.12316304033534335,0.1540202159603709,-0.31257899226950386,0.10676579578272496,-0.1144907814184051,0.007457637074496758,0.0005983519692872917,-0.0005983519693196302],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2691011695869603,0.1766302374885946,-0.23630236261572865,0.08508115997300526,0.15163036696690496,-0.10529464313616888,0.04139961027768564,-0.053286401560982896,0.2092432021928945,-0.02540903484788307,0.02540903484785518],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.20302987093780742,-0.01837132827581947,-0.07781891906143779,0.1193713095701247,-0.016364221108306976,-0.07483645852170223,-0.045210023187875634,-0.003237172637492793,-0.0865630577144934,-0.02318106223211246,0.02318106223220981],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.02867275141766102,-0.0995725149004787,-0.03918158618332551,0.15902002674582538,-0.0043666951005195175,0.1842575957580652,-0.20157828492084517,-0.20910780913070254,0.23920201914944791,-0.0202659256625526,0.020265925662320966],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0680204211581504,0.22259943644400107,0.11285498710974344,-0.3337283869140123,-0.22126969592775167,0.19325754121440303,-0.11606419421343714,0.0805767198799861,0.1297940135651944,-0.0017260366397419348,0.0017260366399903524],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14559869359711125,-0.019224537219633752,0.04977945066157359,0.007352254623145882,-0.038489018434207635,0.12140523014841267,0.4283011928589965,0.027938458188209427,-0.7226617244239593,-0.03790716806541797,0.03790716806521967],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.30685393007039213,0.05168559263682211,-0.07235098223234081,0.013060367978642825,-0.1291810059997021,0.07628854697691052,0.12828863176593572,0.18604231328076848,-0.5606873944775668,0.00760502161618697,-0.00760502161603666],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11819534841029429,-0.08779718935109367,0.1831019833441267,-0.09698923485838037,-0.052825940298137815,-0.21871972734589737,-0.1800079298827144,-0.05083384539492243,0.6222672321972421,0.001684440864609215,-0.0016844408652318002],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12210969338616677,0.1290543356388657,-0.12874191913708408,-0.022543031747155155,0.021115837458428165,-0.12434073591486453,-0.14964481855996356,-0.02127240780785049,0.1742630466833373,0.02223061524424074,-0.022230615243553006],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04699919422232865,0.2117966281152069,0.15749155195530887,-0.4038011914090675,0.04947940151205267,0.01407398296165681,-0.5722715575349703,-0.001098344145836926,0.49733033432307006,0.034513011338580854,-0.03451301133871298],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17278507462411477,-0.1299201444769861,0.07796912746848488,0.05306315380719359,-0.06383760792945947,0.2819961873301685,-0.05942405459422338,-0.10830436719998487,0.12124278021954302,-0.0011121367990526018,0.0011121367989976232],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0775300721213523,0.26424203274435354,-0.023981702684769228,-0.30855532649221623,-0.11492605536120114,-0.035402106565559054,0.13160568403778303,0.15799393037188073,0.006553616070493148,0.06829499642939846,-0.06829499643003835],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06262022302691417,0.2245310229575847,0.013300715737101234,-0.27076054277857586,-0.14115497396256507,0.07201051576646751,-0.11592165230969004,0.2407951684235538,-0.0854204768615654,0.03292880408357719,-0.03292880408371735],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14177267009249572,-0.06756266952103018,0.07409994060465548,-0.025225532340805233,-0.10332048133230048,0.2082985388737309,-0.12400429243137519,-0.05514269697594996,0.234629863215943,0.01868826125844861,-0.018688261258998192],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.047898905505811475,0.49482744000633705,-0.3412646016038006,-0.1255743340163437,-0.07147952547355697,-0.07494545825346294,0.20536736885090248,0.028561956024696532,-0.06759394002875262,-0.027988504386906747,0.027988504387053567],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.17973568528823572,-0.20974671571751916,0.04299743020729461,0.14915136754640115,0.10360071216010462,-0.12146559176422914,0.14145022670235988,0.024388025442553293,-0.3101111398654968,0.017597917962916224,-0.017597917962977334],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06832868160440891,-0.16441682720343617,0.09372581511725925,0.0677382441735318,-0.010975937876142107,0.057435116991406444,-0.3027416640816941,-0.14562390137366749,0.33653047264869057,0.0029527679125189786,-0.002952767912806975],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10247400605736721,-0.01803809972473952,-0.22193317896553583,0.22040259680823118,-0.19775823239296159,0.1818830412215121,0.16026986847462715,0.0632868884615623,-0.2905868899392402,0.01956868188358185,-0.019568681884391478],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.36171243608565556,0.05157400388238809,0.07793473089185655,-0.10716806433453338,-0.27208043071629123,0.3366723100727974,-0.5473847568465332,-0.27820503632513843,1.1003696794615545,-0.022340670438993872,0.022340670438997373],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21479075604878842,0.06092905886919163,0.10479600902872423,-0.17711900038849784,0.2183170323618573,-0.3169038291788332,0.16311987412614565,-0.1141880610692636,-0.1537418397980534,0.011393932490879083,-0.011393932490122872],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007729158500663534,0.2717020780483213,-0.11849545086715198,-0.1324445804448405,-0.18479128940828887,0.08470973291115141,-0.2118069642026643,-0.09293508621294985,0.37633240167623494,-0.02076204673614579,0.020762046736647322],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06906712801993752,0.3055020266524819,-0.37311461824797154,0.10498849568014738,0.04181126521436019,0.00025973164984153917,0.3878198975561505,-0.07022262304800607,-0.46611130347656343,-0.03737590408380784,0.03737590408418888],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17437000874458625,-0.10756015301487652,-0.15881973281076522,0.2722867417035548,-0.03923920875945626,0.030227033549496008,0.12485418326401337,-0.15775321885580876,0.21037436366828016,-0.005906855877699695,0.005906855876282589],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.249894001191623,-0.49908144257897674,0.14567647441219891,0.3868245461582053,0.15405702618371303,0.17949520119278234,0.13033587575347372,0.05795671928718874,-0.3053703992169608,-0.03341957799127882,0.03341957799098671],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08960464730219188,0.08727512943766115,-0.09240019948832418,0.015299597447193851,-0.21914339783172546,0.2530543956051493,-0.3986759668345934,-0.010895854996972869,0.2758816493595079,-0.010174527396276304,0.010174527396488173],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05938627672758278,0.1310161656133993,0.041758562176169196,-0.18991859879242,-0.10019402649904782,0.26673235115283817,-0.3405590611718584,0.11037631340043494,0.021402017392727627,0.01714387100252007,-0.017143871002300963],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11365825993709867,-0.04793042398601581,0.13778316146758754,-0.10716312696214939,0.06161151869493308,-0.026769839702262193,-0.11561600037690625,0.18145751542020594,-0.1970310644917466,0.017310389480363807,-0.017310389481023872],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1491369203261885,-0.04430242377779758,-0.07100278262894442,0.14560996299505488,-0.21417441634883755,0.2504800456490515,0.09250072381524078,-0.12595043298400588,0.11597624360630893,-0.030304756588642102,0.030304756588717636],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.02489178358964337,0.22421154377981659,-0.007915790936101385,-0.21087573180035768,0.429690393457729,-0.5300242818272968,0.39574953203900454,-0.23479017955206233,-0.041153701571084625,-0.005420021043438476,0.005420021043466006],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1426802254313955,-0.09357301466440571,0.34338724729510967,-0.24827260050577787,0.08680995828052919,0.058047270880248934,-0.24454331604131763,-0.1831124267099094,0.13857665603452798,-0.0015416321242574384,0.0015416321246491528],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.4608463116120565,0.015247803329972501,-0.022196710364914708,0.06530836917822591,-0.08392012179852118,0.07428160758086054,0.1663193405643191,-0.36235015075510674,0.6081561738764139,-0.058359462142862396,0.05835946214272949],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.044550663346299424,0.12192889051655549,0.1384244236411009,-0.310951298739525,0.02553430771368946,-0.2352138797210994,0.01612752270014044,0.060757525461440594,0.22794317177377557,0.05059798458163497,-0.05059798458170195],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09345539668225565,0.25352194493202196,-0.1925413870214005,-0.06050534046434169,-0.06541748528075984,0.03292412876311548,-0.07310952648850494,0.021656739681298273,0.17692632256063634,-0.00047521744570894686,0.0004752174458180913],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007841803867707105,0.16542597587397903,0.022038579836848586,-0.21013418273837303,0.10226421931301218,-0.17411447583935089,-0.44107952130009487,-0.18261976037420696,0.7103773613594985,0.022669627026499793,-0.022669627026444105],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.15838661906631374,-0.2210831665299653,-0.013710774921660398,0.23288378846178243,-0.00015609443170985814,0.1198893153975872,-0.1280208951803638,-0.010813452671713996,0.17939789894187003,0.0019101529887945825,-0.0019101529894511172],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09735912058452748,0.35409347231882693,-0.12267976626135324,-0.19851592535236823,0.04110953961061278,0.013546636373431287,0.006888595233776138,-0.12440389724312827,-0.06739777526374426,-0.03289778070455205,0.03289778070534816],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24436154707291727,-0.22826707503515672,0.1320086202330894,0.1451909392934681,0.16641605023232525,-0.26205575165506106,-0.0054372706334820785,-0.5411893766141102,0.34897231710676696,-0.048932484489253913,0.048932484488899],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09862953954821886,-0.10705988918393984,-0.08177545916804008,0.15987084516410274,-0.27277708304512605,0.19207203779600157,-0.12539044168681465,0.46119239617574137,-0.12750286650326279,0.028964503188932726,-0.028964503188846375],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03234545886178675,0.085127607381164,0.06737418127679917,-0.14977697432642662,-0.09312588051464181,0.12243900206743291,-0.1012584419267047,0.08741104910805861,-0.050536001927920106,-0.0027248143328711654,0.0027248143325884766],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1922333717315159,0.1900023270656974,-0.23118260617790037,0.06662010043879406,-0.3731561052026286,0.07293428513411963,-0.3287748679885396,-0.054853031290256746,0.46617652628878786,-0.02543982132765358,0.025439821327241496],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2627033522159944,0.10578663531120151,-0.12992175428212477,0.053977604922212534,-0.006100062373142442,-0.1845613730961867,0.10013780148430282,0.04958084263272513,-0.25160304681601325,-0.02984248595154912,0.029842485951789868],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06841531776432415,-0.4773720341470206,0.4047696638956778,0.09157165135339423,0.3191585024619332,-0.026537106723311783,-0.20253899024516875,-0.26883561798420713,0.09136861362445559,-0.018969281101790716,0.018969281102285896],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.36560338407133935,-0.20543921285142563,-0.014631405717381698,0.21970000022347183,-0.23114274864192527,0.4412717566966566,-0.010265452257952272,0.03215749201710614,-0.5972538135397276,0.0003706183451909574,-0.00037061834576318715],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06808695033769045,0.2028360483243764,-0.15102172428990157,-0.037697076283233044,0.0888533029718507,-0.4000891951051952,0.48212962221115063,0.25332266280380883,-0.506420590969837,-0.014117247750867513,0.014117247750591028],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08915569825139319,-0.023748350979121455,-0.08761620950255981,0.07080400479962957,-0.21474627729993667,0.4837905786625128,-0.22061327863327043,0.07097629316008867,-0.16800245845739506,0.04056055568339861,-0.04056055568172858],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.3370291714976244,0.2237023306370688,0.09664934554218475,-0.297559571551562,-0.040964164393788194,0.014896959235677095,-0.2135775049939989,0.08093073645923012,0.4729510405623699,-0.022792104625165958,0.02279210462473278],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14965662842184504,-0.007062075513033449,-0.06030866897378845,0.041228108565325314,0.26905405160123225,-0.3726775277577673,0.311905198793983,-0.03386524093613889,0.001382782642492198,0.026142635921981287,-0.02614263592131514],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.17537129264870235,-0.19056809003183278,0.1425043647236212,0.10335458611926315,-0.28712874089628704,0.2777530160669919,-0.2202176844387179,0.055382804183831215,-0.0564515483765807,-0.05529086081087996,0.05529086081090986],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.027589556962112727,-0.06092680061380776,0.1940190078538957,-0.15129996480907412,0.14104319690456543,-0.05790807232022759,0.10207638606622522,0.04870174314783553,-0.18811593926714673,0.018207757568843873,-0.018207757569017293],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.012251079979070312,0.14063947761312032,-0.1852834896974119,0.0431546739889939,-0.03621106926492428,-0.1863219840042508,0.08001912650425122,0.06044302612606613,0.09581131871338157,0.0014893380958679245,-0.0014893380960040573],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.18022899631441808,-0.047883657662852686,-0.13560942025237233,0.1508149610579483,0.08635061711668951,-0.057819509013520384,0.5597767889450771,0.24972326540129827,-0.6251240492769597,0.032678116856995613,-0.032678116857999456],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.22422671785739992,0.2492597262303647,-0.03662210137844256,-0.2403392407869985,0.14039489717246556,-0.23739934867374404,0.4212188157760907,0.03216755439940254,-0.1044535848809636,0.027701615935495787,-0.027701615936598072],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0677259394804674,-0.25194391503937863,0.08432840480183582,0.2263126420963801,0.2538850223421713,-0.14591391623401428,0.3721114724090938,-0.1560773831174531,-0.31497638777807047,-0.05869713185947408,0.0586971318589291],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.030170657140096643,0.026606527541323935,0.08198666554001,-0.06422566848857036,0.17883010338914168,-0.028956488332930776,0.111934829629832,-0.2321402638067384,-0.10420636261261143,-0.044367524593305785,0.04436752459345979],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05951556228962284,-0.08500543187706223,0.19788739328709828,-0.12680602618132758,-0.015779806665808055,-0.06591704064152909,0.09864696537684632,0.27365799127224816,-0.3361996068599475,0.013924064771885371,-0.01392406477160998],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.10144276641350598,0.25145399818163977,-0.11188989826273414,-0.2098428202534995,-0.11462857579689227,0.05009878812087077,-0.1505710701949528,0.09632387508884722,0.2904984695312526,0.07027872033498433,-0.07027872033609202],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2923926411246739,-0.018988584877343586,0.05777742822156538,-0.05688262964726792,0.06619579493312754,-0.0960157208153325,-0.33709982014234274,-0.315455418558071,0.9928615920108487,0.018093786303369604,-0.018093786303610644],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.25922362112386366,0.0726275250345404,0.0424839141102318,-0.07996515448711342,0.06965963578025357,-0.1780169874368448,0.45675324942875983,-0.15568779621948248,-0.48707800733440726,-0.035146284658187844,0.03514628465856079],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.22615552904907846,0.09359593960254743,-0.13085469933823424,0.02378289108630362,0.044261807126357494,-0.15115178214055383,-0.13290648974780228,-0.11299663814006346,0.14011344250228094,0.013475868648999552,-0.01347586864831898],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2523031051771365,-0.002389473466027828,0.029521110599157366,-0.09406452393950739,-0.018250641957815828,0.12809490735448514,-0.0960265119175048,-0.0888119855399517,-0.11037598630842312,0.06693288680970205,-0.06693288680870886],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.019746458616108502,-0.11160666465955367,-0.0021231919517962165,0.12511672724111697,0.14027782778789238,-0.07845472428106011,0.13322412136790698,0.014857350380591878,-0.24103790450095222,-0.011386870629742467,0.011386870629730962],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05108598220659512,-0.20872316262354446,0.08465243559369633,0.17743015166554943,0.04639866417808535,-0.0027092843369471947,0.06351759827437176,-0.16793019683061336,-0.04372218812794356,-0.05335942463626727,0.053359424635552814],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18222446506667433,0.10119028974239017,0.12234967661992946,-0.20018230463444478,-0.04022669042080617,-0.13191773235237372,0.09546657898266127,0.0600361129900892,-0.18894039599257467,-0.02335766172744329,0.023357661727583936],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.15834144862064845,-0.2785381126753097,-0.05271861321602639,0.3407373131890583,0.0008541014708973755,0.4319080719788084,-0.16526620529891922,-0.005425928184543363,-0.11320917864364058,-0.009480587297845108,0.009480587297396549],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.005721527660204836,-0.12883454793464547,0.1745828620510858,-0.08779756771388392,0.1884407293818497,-0.3367261024307647,0.12943482258918682,0.10956361741136089,-0.04294228569397424,0.04204925359823051,-0.042049253598188174],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.22892068404565075,-0.1826435800863031,0.08567103535371019,0.09942403346133817,0.07115544837537327,0.2532286067249687,0.08818296830993183,-0.12054883483865875,-0.06554899325482706,-0.002451488729140271,0.0024514887288978747],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11468771336479401,-0.05365275556200979,0.09769716801467745,-0.07207550180648536,0.13414929820268368,-0.09366235841831733,0.18711440754300385,0.05816158831038597,-0.14304413291930365,0.02803108935360553,-0.02803108935346312],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.03212869741910861,-0.010065838834308958,0.07355916606864182,-0.11790469437636102,-0.28986155367806654,0.21229934594910957,-0.25250333189001406,0.1961045439689406,0.220501060210436,0.05441136714352387,-0.054411367143009925],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08124383212293561,0.0815013800016427,0.022320796857269343,-0.139967838616429,-0.2357607820417618,0.2523215704402973,0.11258798558852817,0.2862736408665748,-0.29803292097156564,0.036145661757596766,-0.0361456617567991],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11993989361909184,-0.28346324798223854,0.01745484901348718,0.28705032087578897,-0.13581420007325862,0.06583927305495879,-0.059081160199306364,0.13695329126879474,-0.14887901957685562,-0.021041921906903124,0.021041921906713872],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09643233389971387,-0.011639427140468086,-0.03979494440788942,0.10537504626739644,-0.1260338171722624,0.1010250222286054,0.3710914941134938,-0.10590276339302876,-0.39055294439654975,-0.053940674720153126,0.05394067471989712],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.035091975987134545,-0.01281141070460868,0.038093266996649,-0.06114008975929082,0.3307953734034035,-0.08326382545448151,0.13763369346972168,0.2311255440799167,-0.6155245280185175,0.03585823346697994,-0.03585823346648258],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.034462010503835155,0.3294153503934535,-0.3031248021850494,0.014167169638688193,-0.10411554802166517,-0.01368554200023935,-0.059169751032442326,-0.19488033186807344,0.2969314445720935,-0.040457717846099306,0.040457717846808315],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.10525507636214688,-0.17396035125595702,-0.03822963058065917,0.24130786498047146,-0.30150158344211886,0.5208223126541515,-0.4744481863869724,-0.08709178663260599,0.4183564370258028,-0.029117883143113928,0.029117883143219697],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.057519860760457835,-0.1467528035054574,0.1332343162589702,0.006607836327209665,0.009351821805149114,-0.2361256686599087,-0.023194330010479783,-0.24516265723474467,0.5595613457796615,0.006910650918319728,-0.006910650918509729],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.05227692409077902,0.013013779970989285,-0.17204244550055028,0.16864952784679685,0.006732474172834953,0.2613874115157532,-0.39782322420775273,-0.1344595347421142,0.3068189350346498,-0.009620862317309211,0.00962086231766596],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.029641580963616496,-0.2516645856300609,0.1420021215440896,0.09486647730044338,0.3003895993710917,-0.03634888222597073,0.10222007118643284,-0.2091541650303049,-0.11266905555129313,0.014795986785066367,-0.014795986786268518],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11632170773188726,-0.02286409119782576,-0.017264851836256298,0.06317142059863179,-0.09283829488742691,0.14300862176647408,-0.279909871555213,-0.26754022027459895,0.5905589951184377,-0.023042477564915478,0.023042477564845964],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.10960452095813765,0.11303323310043777,-0.030037823475350365,-0.041858671417062655,-0.18834839037872922,0.25362342837759744,-0.02496907052043457,-0.15905906735807535,0.1872208826291261,-0.041136738208150204,0.041136738208328],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.4015208334067551,0.1717968953175298,0.18441493936241368,-0.3324952565572346,0.41511685267696335,-0.5840498960114009,0.6250908813332127,0.04968312865632178,-0.9310783781834606,-0.023716578121187267,0.0237165781211342],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06268399884138127,0.0026403580375063246,-0.026315826357372663,-0.002195819414639522,-0.20012397698956527,0.06539187189340954,-0.062447722763735634,0.1439366517919538,0.14179846264421317,0.02587128773381681,-0.025871287733283968],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.016338174555305802,-0.1673947982436316,0.09756298657175515,0.09036429633565242,0.6712085512999496,-0.8355126262535973,0.6089801044301711,-0.14338542524509978,-0.3054849143384876,-0.020532484663220666,0.020532484663347287],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08693895221779617,-0.16927840162658336,0.1679021223078578,-0.010687647904786232,0.09849416119692596,0.002873657798723228,-0.35014542167871354,-0.25814834315554924,0.4320509208439733,0.012063927223718886,-0.012063927223180318],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.20422225215165798,-0.29303754919450087,-0.10511754405004231,0.44365984959618465,0.06781885220581049,0.028556904147020775,0.24959337428595044,-0.07012785390326717,-0.11712378093532898,-0.04550475635137936,0.04550475635128759],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.384203336712356,0.1084151557231558,-0.07282408983064544,0.012468690786375643,-0.2964934479295102,0.2676560758381755,-0.24590362104166497,-0.08895902251027864,0.6998435956749833,-0.04805975667945404,0.04805975667922607],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11724712363974196,-0.25991799023927764,0.09769548502732364,0.22194303358174294,-0.12125795148258695,0.15014678859588196,-0.3046239618480628,-0.012248902984952573,0.3455106229903626,-0.05972052836838756,0.05972052836865309],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0914898034949769,-0.3891327373994528,0.21552362149890628,0.14622432366023175,0.021106022891707082,0.025865170777907964,0.14293191261788368,0.26085852774600676,-0.33188703829846583,0.027384792240078202,-0.027384792240098606],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07167173119600406,0.2929136180576532,-0.03242322310688315,-0.2630489353768158,-0.07164466862469537,0.32655266037862696,-4.0679100345501285e-05,0.01721558209855799,-0.341196085521821,0.0025585404260500466,-0.002558540426073618],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.22236564102396386,-0.11073970194907619,0.289988013130222,-0.22118136388632295,-0.1191767827158938,0.09516669458782155,-0.6323758343514964,0.03844275495665957,0.8822418612526146,0.041933052706574915,-0.04193305270638309],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12047275558402001,0.03688365087505105,0.30964751241428773,-0.36771643274074256,-0.04500994779859543,-0.20431305984801712,0.09850625043179041,0.3529850138722623,-0.3014557427896024,0.0211852694504834,-0.02118526945085123],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14093415054067127,-0.4809786694909871,0.16283606349778265,0.3300023665814985,-0.30357258100317674,0.4545240734070882,-0.3208255927123109,0.08085353407451644,0.21809495618587216,-0.01185976058924299,0.011859760589062398],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0886498590565258,-0.04917394653725083,0.013830067256551792,0.02389340443699267,0.13174924969320922,0.09392476854513547,-0.1641284878404252,-0.35700485853255315,0.2182599439210177,0.0114504748426032,-0.011450474842685873],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.22297156494140724,0.14638888750626328,-0.011333945743759627,-0.09306605588297327,0.08411520748780349,-0.3512108742755753,0.778438366652869,0.0685952074460724,-0.3989552282490569,-0.041988885878426224,0.04198888587847712],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.23385918590610974,-0.20428792088868364,-0.039615226019615854,0.22099442009672587,0.08173417245688627,-0.1523031143615885,0.05907865273805281,-0.04980025179298342,-0.1496599181336202,0.02290872681231981,-0.02290872681289111],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.06547726247187162,0.05804091973132326,-0.1895763494702104,0.08992493133856423,-0.04348875350961813,-0.09508335337087996,-0.12498513629367113,0.061098520015129665,0.3095464840328871,0.04161049840126368,-0.04161049840148511],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18871042260364057,0.15615389409078964,0.051074418697603714,-0.18202808505848367,0.061399661458408354,-0.22070591935669132,-0.05525967289933181,-0.025313513377835512,0.025968793840971886,-0.025200227729533415,0.025200227730705068],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07611522456522091,-0.31699030092498365,0.15864784812651353,0.15686987335380165,-0.13895174817143702,0.19613241757483654,-0.32444171795231386,0.1177216930410667,0.0748967103869371,0.0014725794436574028,-0.0014725794436221983],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.16722110809871743,0.02360496659709872,0.05133339820528426,-0.09374648379280794,0.07812571161925921,-0.1134520656708046,0.08416411200608924,0.10486410682221603,-0.3021148538855803,0.018808118989812436,-0.01880811899007113],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.24659948955183522,0.12875634415310855,0.02784052347705192,-0.17386580686871878,-0.026847362952187873,0.060910300744587975,-0.21341198627332894,0.11226025248109137,-0.16224175431409094,0.01726893923824586,-0.017268939238083193],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1345374978880685,0.23499393139452854,-0.18997403967581383,-0.018792763527328223,-0.09199478667538041,0.202012662909704,-0.03768277912358975,-0.21213313505028467,-0.020966588140321495,-0.026227128192326102,0.026227128192142575],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2992071712695841,-0.05138891487796661,0.04511671632342727,0.00036196540223158296,-0.02515989994842701,-0.03691183551197906,0.0923010273887116,-0.13355219815710026,-0.18997403188852321,0.005910233152074235,-0.0059102331520078195],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.21537367829958534,0.11411684331810193,0.07287180164449339,-0.22023717607812895,0.11898702847158601,-0.03293717095801423,0.02190168876403803,-0.035616077985429775,0.1762867411221299,0.03324853111613001,-0.03324853111478958],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14684847491490657,0.15902761469354482,-0.15490464510135807,0.014207294340492976,-0.12356165628080555,-0.008972769703834824,0.32229125945887477,0.2332828525800663,-0.5882184249024497,-0.01833026393288048,0.01833026393291107],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.07325271815443347,0.04593411742759491,0.07704378336454991,-0.11684517745910947,-0.008493978956931996,-0.37035753674832017,0.4478629194692459,0.15781197836730695,-0.1597033873101848,-0.0061327233328778005,0.006132723333201137],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.020427747285514983,0.1023230353572212,0.01713300733741046,-0.13918646730651238,-0.0997099477980072,0.0734562869052774,-0.11690572005627772,0.16793157232364217,-0.0254695140483662,0.019730424611360552,-0.019730424611596395],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15962283241801095,0.22526538863857398,-0.2780994175375749,0.04634901661638101,0.1527598176752523,-0.1925664822623346,0.4644765337333717,0.11738405262066143,-0.695191741901954,0.006485012282651249,-0.006485012282883988],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.3435691148699196,0.2391143240117772,-0.2266863668186479,0.0016739273252759153,-0.02294790628276151,-0.20260411628981873,0.22598364466961177,-0.015696887882708246,0.34473249613709284,-0.014101884518136099,0.01410188451755984],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1556119570229274,-0.05574680502073164,-0.02386656986654048,0.08928525742768739,0.13833963045768957,0.10239496226224239,-0.20280120636032242,-0.3059337967143338,0.10271657079100097,-0.009671882540643667,0.009671882540807532],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12874702874068936,-0.09988529072693778,-0.1081049445587366,0.22500383205398475,0.06374097235615359,-0.15280666418693925,0.3579786754835748,0.13716919912610148,-0.5518428082877219,-0.017013596767055276,0.017013596767151622],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0663496716051937,-0.374760064268623,0.22288049263236548,0.1445952815958478,-0.0616771720600197,-0.011143386306967684,-0.13299280190341922,0.13522802981507218,0.14421929210043485,0.007284290040780369,-0.0072842900403859105],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0027567944026025953,0.0349554023795755,-0.16564102982632356,0.12601660285782215,-0.14312060579740055,0.12952669468171005,-0.15172712161662735,-0.06423201703553633,0.2369788687598227,0.004669024588394788,-0.004669024587943015],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09417801902665913,0.14142977264504955,-0.016845480463979493,-0.13414560284580868,0.2258039642302591,-0.19182896389367746,0.10229938183887663,-0.0665901411722001,-0.15430094936525582,0.009561310665156718,-0.00956131066536145],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.20964970089735738,0.2870805136981968,-0.11849993926944836,-0.15102790282929748,-0.025746340247223512,-0.034395888193595195,-0.0315759266025163,0.2922034400790956,-0.008388255736823346,-0.017552671599594147,0.017552671599453423],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.061220357804869036,-0.04631029424120095,-0.12353206853225064,0.14883966183735262,0.09182301423361093,-0.07656189406158637,0.3084159832115433,0.24096275214952492,-0.48241679679196264,0.02100270093667073,-0.02100270093654301],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.013107708282312882,0.20471875139763815,-0.1549148694145145,-0.02357119383831525,0.004792313182459291,-0.018425381811140763,0.3591961775131299,0.248186342229703,-0.6330898475409678,-0.026232688144946035,0.026232688145234648],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10981510335450438,0.344016878044459,0.05107677746396914,-0.3874315915071293,-0.04859527564157588,0.21425914679844096,0.18877470990153175,0.18278699543137503,-0.6547027438450038,-0.0076620640012745045,0.007662064001667642],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1081078582075457,-0.015190838103402632,0.03418591095882667,-0.046568602024959126,0.17476483511342655,-0.3386410119007448,0.3360544396515046,0.08575355292207584,-0.1222504284085632,0.027573529170086108,-0.02757352917042626],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09816706624281883,0.0173032464242834,0.18620121992938382,-0.21890175522151298,-0.25267492964604843,0.4945683559947237,-0.2947896418788284,0.031090808773959894,-0.06096437061906363,0.015397288866914867,-0.015397288867821324],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.037717959243635774,0.2700093914872593,-0.1196477735677578,-0.1541642535105525,0.09006472712178105,-0.18276524199018443,-0.07067351144903522,0.03503343580064204,0.16986118535095568,0.003802635590678697,-0.0038026355906671696],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.019308577555054066,-0.0545896821544705,-0.08010495739358779,0.12404818617761958,-0.014839596518784649,-0.1554425739784665,0.015866708557491088,0.11432030617494654,0.07005018669060668,0.010646453370451562,-0.010646453370693925],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14728708238163885,-0.08299054540289381,0.2463735361872405,-0.15396740933916409,-0.26096505022988487,0.3862067786724255,0.07130323276678883,0.1598788717519957,-0.5131264967888426,-0.009415581446579736,0.009415581444926425],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.19725388311954437,-0.19780080411259204,0.06437414149890903,0.08162388755599444,-0.15018351211106032,0.38918117794925755,0.38573867667494893,0.31239783571076474,-0.6880775200474404,0.0518027750586225,-0.05180277505849289],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.010685388376349655,0.07371091017137898,0.04110916779809697,-0.1417247582324575,-0.1883685404806763,0.10165505905956071,0.12545634870115693,0.2046580921100039,-0.22718166750320135,0.026904680263892186,-0.026904680263480786],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.029539273138027154,-0.255177802188694,-0.007290687987084752,0.17334567115296104,-0.3403779898198642,0.5329983580284601,-0.12334600055721615,0.4506148376333105,-0.4012271131249644,0.08912281902142821,-0.08912281902099113],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2036466904913914,-0.2983153758455638,0.10564461097983983,0.15691651494685488,-0.10455698693304565,0.08013158444845583,0.007161009981272563,0.010160145121786906,-0.16078819318889034,0.03575424992092344,-0.03575424992141786],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14931791622934693,-0.3258955007256776,0.263528338936776,0.0316859450912464,0.1745540723165902,-0.059601567664034606,0.22468340789231517,0.10249549529115813,-0.2621322749085185,0.030681216697906747,-0.030681216697453082],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.05335829677934415,-0.2844058625427657,0.1832507459034086,0.0879989038559088,0.03480791836032492,-0.02029626662766854,-0.27991376294489084,-0.01692628075644282,0.3488429015311852,0.013156212782714236,-0.013156212782821199],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.006644138610035576,-0.1898460581382706,0.16598607842773794,-0.013063026410177545,0.04166046110053471,-0.04819463028420685,0.3411788987742889,0.21971933674550934,-0.5107969216059534,0.03692300611953562,-0.03692300611948101],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15320224058449278,0.1220361982853726,-0.03657901681055362,-0.09037843818766972,0.025343247950704417,-0.11959002635301068,0.18067752702117035,-0.06304170468342457,-0.17167002780716736,0.0049212567129507615,-0.004921256712733855],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10035784049795872,0.02832706929480525,0.03233672239898846,-0.05273468468248004,0.2222340857564138,-0.16315720385697252,0.19648719804516837,-0.16196741848155954,-0.20188360897193888,-0.007929107011161616,0.007929107011457617],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05699687080613495,-0.02640998589741138,-0.09844629064140185,0.1604779240463225,0.4121089872168734,0.021885702458463684,0.07004680870916337,-0.23888153750714977,-0.3577784791922385,-0.035621647507286504,0.035621647507371186],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04133516385098375,-0.22353253757350103,0.06398288078991328,0.17312075837584254,0.08088845215715731,-0.18715355367261508,-0.059919114576136225,-0.34832143376511293,0.45959938441332726,-0.01357110159287114,0.013571101592557928],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03761566806787214,-0.03205100244186767,0.11412299823525959,-0.09867028202078472,0.2414559927908121,-0.27683627429054797,0.16379421907642291,-0.05321539280235031,-0.09621592661481931,0.016598286227166525,-0.01659828622717454],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.08866342007224179,0.09798862954742797,-0.21727644018937597,0.12674615416819726,-0.5454178931637014,0.45349721829888706,-0.39691363734630714,-0.012559951910308287,0.5825993406682712,-0.007458343526491832,0.007458343525980668],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.26332585065393294,0.06782043697498542,-0.05009182599494099,-0.04518908310136024,-0.07142929085834092,0.18920788739969877,-0.06844269122932715,-0.08575914401801946,0.3272095614815802,0.027460472121274494,-0.02746047212122558],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.13380905132265755,0.17176650374975738,-0.1376454832121241,-0.04357006407112536,-0.22216835210727068,-0.12882519805737166,0.08475763140006631,0.11507351714604223,0.026802393829342488,0.00944904353372393,-0.0094490435337647],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014655826782988763,-0.007694339552171461,0.03818758551031285,-0.0363407147451947,0.3537530330945884,-0.24011827650154552,0.13560005257566493,-0.06096313837348832,-0.19708002879090392,0.005847468787559233,-0.005847468787180027],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10949591287724904,0.008074692835793321,-0.11462169218829274,0.14622213941246967,-0.22540723537318427,0.2240515101616187,-0.10483778626356538,-0.08092816936356473,0.037950627902102914,-0.03967514005933306,0.0396751400605554],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.27333013499691705,0.05142651769120087,-0.03634067364250438,0.036726719570988366,0.1356780187483299,-0.22752259330373686,-0.28697364898496874,-0.3457136922202403,0.9460494871371118,-0.0518125636214366,0.05181256362050513],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1611319169906431,-0.10108662326676786,-0.013695903173517847,0.12969695856360874,-0.04069927347740713,0.14269718775202372,-0.04851335098481979,-0.29002684298079423,0.060495930576568276,-0.014914432123897413,0.014914432123780472],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.009538387126395959,-0.02374072881098181,-0.28079766578807325,0.45503808233993404,-0.4015975134825519,0.45787138933916305,0.23053661207627021,0.011794025743799655,-0.458642588544287,-0.15049968774100686,0.15049968774145225],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0642791620014049,0.3302999948403609,-0.2865338924453211,-0.02560850983473244,-0.1531908178965719,-0.003442408037974908,-0.09687403325199617,0.039642578096805256,0.2599862505302426,-0.018157592560507717,0.01815759256019822],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15285978722116744,-0.16504733818587683,0.16560843745150589,-0.04244431188520179,-0.2126539894119088,0.34890390331067667,0.19414660506148618,0.29964669091703616,-0.7410197844799583,0.04188321261844644,-0.04188321261893481],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.022648097549723748,0.24086082802448638,-0.1348586948363224,-0.08924123104969088,-0.12477154334287846,0.29024377367464,-0.20810693762501578,-0.030668335446053078,0.033894043050869835,-0.01676090213893856,0.01676090213892047],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18491000431334714,-0.20009644170002067,0.2595853039062683,-0.0704731335515262,-0.20138520517220057,0.23249769331578427,-0.027179219592105352,0.02661313531459095,-0.2044721368342573,0.010984271344996504,-0.010984271345243936],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.19313377381033928,0.32680642383934716,-0.24522585525696444,-0.08375223848189912,-0.33575473225176333,0.20827791139782184,0.09151887559112068,0.2826928447778551,-0.05142945580557116,0.0021716698982115323,-0.0021716698980298837],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.14791359877256074,-0.10624315716891597,0.0948717518761958,-0.008209394536949416,-0.17833633386777947,0.25609212409843474,0.06113217528183795,0.30343717361023054,-0.5706579380660504,0.019580799829129643,-0.019580799829072293],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.029383672214383174,-0.46558046906862277,0.23996966851443946,0.23134377726847152,-0.1287872484754098,0.23235072621820957,-0.10522992141576865,-0.1836098198725528,0.15015961461681193,-0.005732976714600291,0.005732976714143892],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09760434242067569,0.009731004572299945,0.04217245554092009,-0.1343144205483148,-0.21246295520896066,0.20422020845548555,0.0510120641364673,0.19610185922421433,-0.2540645585915705,0.08241096043745344,-0.08241096043689428],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.020030801406709983,-0.18695619944872294,0.030819970197452893,0.15081624650515144,0.21940201228591477,0.06539798001321026,-0.10038719881130774,-0.008275579785425523,-0.1908480323633114,0.005319982746386394,-0.005319982746530867],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05924875137625036,-0.08576082424095843,-0.10505209981102309,0.19192907690996824,0.02631525921129658,0.24071670936961737,-0.38085153119404025,-0.3296563981701594,0.383111056549366,-0.0011161528578809785,0.0011161528572257145],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3680172177603933,-0.07449792130079436,0.119660627324492,-0.04995276310646615,-0.07536486488977523,-0.009631969929453569,-0.2817980743968153,-0.08258351371511838,0.08615126225368114,0.004790057082707807,-0.004790057082450931],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.2754544294542067,0.2737738210142394,-0.10463671480625693,-0.13568102311287064,-0.03152839691273608,-0.3889335854542021,0.013069196271555632,0.22838127829648247,-0.12989900475029956,-0.03345608309556644,0.03345608309344694],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.07728930332470947,0.0010872900032566721,-0.11832298202927602,0.09928067380453123,0.22136878043587063,-0.13449844222665477,0.22059032710210166,-0.08280134351604371,-0.2839936068983784,0.017955018221510705,-0.01795501822131914],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.005584207533625956,0.1465835465783959,0.01830090085823477,-0.19282504322994012,0.2603821336159057,-0.15339858139723328,0.49766823271152805,0.19161717971234687,-0.7739125763833017,0.0279405957933255,-0.02794059579419392],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.18474452390182694,0.08892640857783765,-0.028252181360514283,-0.13140326663138488,0.15242984212037622,-0.4665031585000882,0.40986756717644357,0.07603774358415095,-0.2858474788697632,0.07072903941229874,-0.0707290394122082],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.28976325463628316,-0.13295468391443482,-0.16084072239748015,0.3103516426615422,-0.32692258325293533,0.2668300961043627,-0.805448098368376,-0.10280997624976983,0.6620310707796934,-0.016556236350841167,0.016556236350684542],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.01682638316544973,0.05122886156264558,0.0468767446475894,-0.10568440124977792,0.14348856622307354,-0.29552219705916727,0.21401093457888132,0.1410885047943923,-0.17866063033193957,0.0075787950403000985,-0.007578795039756797],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0105994189665264,0.20279316741464287,-0.27862955492625363,0.074107002129461,0.23520101131784238,-0.1479973229939111,-0.2665738202926185,-0.24466596012153907,0.4151660585058161,0.0017293853814452722,-0.0017293853822563318],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0892166633339707,0.26314267285659393,-0.04866340136476056,-0.23611259194679915,0.29365742129265443,-0.28502568193686645,0.18249086965532377,0.1044468917336677,-0.18471951695579045,0.02163332045443801,-0.021633320455122063],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11863144876204017,-0.09314529889710375,0.043286081647756075,0.012074914672177844,0.035206711299685785,0.02247943271279209,0.165511163828176,0.42136662884722664,-0.7254110828727174,0.03778430257767749,-0.037784302577501705],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.026352764982541486,0.1393324110567955,0.0929853252036244,-0.2360724035024648,0.061219272721017126,-0.09485259792453074,-0.030402565326615543,0.08033821364020313,-0.0389004208505837,0.0037546672422880934,-0.0037546672420676794],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04950347565593044,-0.0912414538003514,0.2658727218622977,-0.16483370566855834,-0.28286637248683216,0.30265582806080765,-0.3857257161290925,-0.1290876182673998,0.4357228407731788,-0.009797562392491795,0.009797562392444684],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.01903809078694221,-0.21012550061093763,0.11022667853714388,0.10625402892486281,-0.21478614425981465,0.30783974059385405,0.12435037305789519,0.25856455021147656,-0.5013618172411805,-0.006355206851174625,0.006355206851793097],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.1808754036135995,0.0531044416816556,-0.12867005243231025,0.09219852516990991,-0.23229902749228132,-0.14688560183564586,0.2633876899578512,-0.028402539480829714,0.30844196804589363,-0.016632914418428377,0.0166329144184615],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.3143513114163006,0.05010619641841517,-0.020629750193545696,-0.04118610142726664,0.0687814720691319,0.1646607799356155,-0.12929567609377607,-0.05238870505913628,-0.3543995270658835,0.011709655201735036,-0.011709655201944492],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.19018463820905115,-0.31829805832969765,0.13430256135692156,0.17276186146393857,-0.090181540037426,0.2385823238780963,-0.18576605586130263,-0.14986492824082462,0.008279197560460201,0.011233635509217325,-0.011233635508968783],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09963665925137433,-0.0011748630361196786,-0.016009388078655432,0.024276374029657197,-0.24939826958472597,0.0755866004253076,-0.13955588609116626,-0.12606292652742715,0.3327016996122008,-0.007092122914790763,0.007092122915086648],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08844463383773757,0.018385680903885874,0.17353891568241273,-0.17623550634380344,0.10608707431071648,0.09034040448836257,-0.056859380673344694,-0.15005302287406702,-0.09364879933125035,-0.01568909024121078,0.015689090241382434],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.174790071959552,0.245824512235291,-0.03008212205235105,-0.205091974659694,0.2745605205199838,-0.2755257186816398,0.23883054741365753,0.008340337558575264,-0.4316461742927663,-0.01065041552280654,0.010650415522950344],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.12760616977850636,0.4824499309633261,-0.05978445156468277,-0.45543143885700976,-0.21979855155090752,0.1600618534630295,-0.14410791758757976,0.17692910340861331,0.18728764150342855,0.03276595945833967,-0.03276595945788299],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.01250074979775156,-0.12003885609226685,-0.03835070303475528,0.1446173090610957,0.14130306202894974,0.0610832927749284,-0.11675042927159143,-0.03136415051230977,-0.027998775156398436,0.013772250065790114,-0.013772250066352324],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.009544369872957733,-0.05515934056647095,0.13234372715333215,-0.12113341984654662,-0.023694967542153052,-0.279534356729954,0.13943484870984912,0.11552049000447794,0.10176738869129667,0.04394903326040343,-0.04394903326042896],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.026558688654016997,-0.00013432263887092912,0.029246246270710187,-0.04713213189407281,0.33119989571856356,-0.3201482325978621,0.21680968560405386,0.16522115082500077,-0.401620979941459,0.018020208262134844,-0.018020208262342498],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.027428185594706247,-0.031009212099635277,0.10386842304591502,-0.08778516948897913,-0.15688435201023906,0.06655649571762978,0.1892965916319843,0.22105729819820064,-0.3325282605894503,0.014925958542825274,-0.014925958543183269],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0038275617838292152,0.07698265852854683,-0.05606513125457471,0.00019825967056078144,0.1525279644295672,-0.053973320920453274,-0.44936743897533243,-0.6019562566265901,0.9278257033650671,-0.021115786943803002,0.02111578694329434],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.005835866659351711,0.3150691186988222,0.09572560836235766,-0.37612840034324513,0.10743098415236793,-0.2526610991764641,0.5226302828660485,0.09814656594391032,-0.5043771938443163,-0.034666326718951854,0.03466632671819052],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17417801163776428,-0.31733322031954697,0.09073017445085603,0.20797890389550977,-0.23582663104850154,0.2007465541442536,0.04653134913933284,0.025519343123854406,0.15583153825244803,0.018624141972721116,-0.018624141972315593],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.12159442815333915,0.22375684488626454,-0.17461658462090698,-0.07111513031256667,0.1457105061742782,-0.4645936378354433,0.17343112866387178,0.06038950134356001,0.22863179985454268,0.021974870048015443,-0.02197487004758417],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2276773407295069,-0.06165280955935439,0.009761134712401932,0.06460438970516459,0.1882191800454531,-0.12054424182630055,-0.08794681286048735,-0.22854173912431802,0.4637782396376758,-0.012712714857007298,0.012712714857098139],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.33471622499244336,-0.1258453590239489,0.18897856626215026,-0.041313782411053164,-0.1686942982409364,0.1843928448751935,0.31432836318124674,0.020484851991191835,-0.037614961641141816,-0.021819424825988556,0.021819424826466156],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.25336091524770954,-0.028537636955390477,-0.06909452722589214,0.10474711182933534,-0.1905499654018022,0.1833893222075142,-0.030933019772300695,0.1978972343675701,0.08644239619894255,-0.007114947648379553,0.007114947648314787],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.01939453589683927,0.10256675497705603,-0.19132068544762745,0.10928100560614391,0.061036430829448395,0.04262160910111976,0.3285660431857228,0.14582832791321543,-0.6179740220620823,-0.020527075135674252,0.020527075135990853],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08545841924090533,-0.22869223378301762,0.41278288426575505,-0.19467931876952355,-0.19234628466547896,0.46865491803440606,-0.15964340159403406,0.3671690955270805,-0.5587040782562716,0.010588668286513522,-0.010588668286331577],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15703328845229286,-0.007290898160340105,-0.08064285596055967,0.0960933963643065,-0.20760609554488707,0.43107910345928546,-0.30462929054661847,0.13328910607717367,-0.21732575414088204,-0.00815964224424223,0.008159642244041523],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05407961046929687,0.1511313046233284,0.16104801231310464,-0.3274853731308109,0.18364329379103628,-0.20981561449009717,0.11811927113175615,-0.003675084103715,-0.12704542060373272,0.0153060561943671,-0.015306056194558229],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11932023258800059,0.045034852675083434,0.12565635377415177,-0.1806769095437432,-0.03873577447405348,0.04850238136356194,-0.03433757569985009,-0.00209168545865685,-0.0826718752247571,0.009985703094380684,-0.009985703094259777],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.25351682527497726,-0.31041371298875725,0.06830315875042894,0.2759102729675941,0.0746065159254495,-0.15058170589042072,-0.07815674135799101,-0.256526747553954,0.6303757854220802,-0.03379971872937965,0.033799718730257514],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.16312886454213113,-0.24884434362539073,-0.03235205391934413,0.2968018265148549,0.2351964870629539,-0.21467786958882532,0.2922899047863269,0.08902581066765396,-0.2543108973560233,-0.015605428970740671,0.015605428970201408],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.25251987834451656,-0.1228692540361623,0.13087988827500338,-0.007208402585097979,-0.07571213235673141,0.06037961544180695,-0.2943987595007246,-0.11545802996886982,0.6769069530754447,-0.0008022316532447773,0.0008022316536206876],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.21696947481950485,0.1823535354441113,-0.09024639003845039,-0.03310116449347057,0.021256620093334917,-0.24775291424736245,0.3242803567348771,-0.12338331322710523,0.18356274455356708,-0.059005980913265664,0.05900598091319802],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05956000858230727,-0.0329165446439147,0.052137629483972936,-0.008078247071841054,0.030975537125735857,0.1281483617759686,0.11322180059796982,-0.00796013451890867,-0.33508841133082373,-0.011142837768224152,0.01114283776796374],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02977394926482825,-0.06958571703584135,-0.19216284903466677,0.2742196597076143,0.01452957123250497,0.2874151603888865,0.03339842483276828,-0.13891336628628936,-0.23867483307112947,-0.01247109363826492,0.012471093638302375],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.21741953010068163,-0.26162464682223063,0.05407071961025388,0.18290090887379568,0.13746501830682709,-0.16417316219009828,0.12306673912721085,0.017861165655085155,-0.3069862726618025,0.024653018337631758,-0.024653018337735304],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0194115680944835,-0.07697355744207154,0.1091777620961047,-0.05902172496681224,0.19757801846203402,-0.17412456854449934,-0.2199702712913316,-0.3160549644678232,0.5588008742495079,0.026817520311598144,-0.026817520311502554],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09870978182017985,-0.3609511361178468,-0.21202898022079478,0.6078485452036295,0.0933753007090331,0.28910186887593964,0.06346809220688102,-0.15829512990592765,-0.22380877893030712,-0.03486842886487229,0.03486842886472546],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.1951552661996081,-0.09047991962781567,0.12105240557661602,-0.029191611564128497,0.034742160299427595,0.18071480208854476,-0.7021079388130935,-0.2091073684014045,0.4992222042420138,-0.0013808743850477333,0.001380874384661131],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.33140119980701044,-0.09349080542161319,0.09056495049768859,-0.018503669149219457,-0.1713610216264231,0.4693937486520276,-0.3816981892697399,-0.022440598780360494,-0.20386561470918024,0.021429524072304532,-0.021429524073039937],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0744679715936519,0.13538580345841397,-0.3062308092484793,0.1770452443208498,-0.13591202488409776,0.0143986405850292,-0.09470953287082556,-0.003744198664842182,0.1392989057110172,-0.006200238529967156,0.006200238529795873],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0026084545122161224,-0.06503401253644675,0.14136191277619234,-0.05988299322415881,0.011071638361410337,0.01705695481023357,0.16597944896519742,0.06673371365693632,-0.27989511732114003,-0.016444907015442965,0.01644490701554982],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.09462200792837143,0.28738504753412103,0.02264980057751183,-0.32463985068585827,0.19159255290026778,-0.1442011511069084,0.4366540591968713,0.03214295157265656,-0.40696140206081355,0.014605002573675061,-0.014605002573358648],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.026970735066382177,0.08365962912051159,-0.03825573913920206,-0.024685159399900923,-0.19657094748784323,0.16017865594543493,0.17939961125627832,-0.16701077769175143,-0.023686007670185832,-0.020718730582465174,0.02071873058209108],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.16189525471209076,0.07590529272573639,-0.026861553877667692,-0.059762322601025666,0.2568324475369343,-0.14748782909896543,-0.2457090846172499,-0.06687531522312505,0.052063110442898575,0.010718583753089478,-0.01071858375298983],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09127520506379347,0.14252739759217112,0.005285183776711827,-0.13805274477055904,0.046714735532405856,0.00755230468260422,-0.08964728110089192,0.10188904513045074,-0.167543845906274,-0.009759836599285528,0.009759836599105093],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10014291799093095,-0.3415915385972053,-0.25481410664438503,0.5979120711383172,0.1495702435528777,-0.06572091365215298,0.11016933976818148,0.04373421121880909,-0.3394022247750564,-0.0015064258959440232,0.001506425896563035],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.12204838570698605,0.17854476301893063,-0.09325974284169282,-0.1081297000672577,-0.001999435781170914,-0.1765779028376844,-0.06220358986220506,0.22484388906498817,-0.08326666640084752,0.022844679890260226,-0.02284467989007882],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14398506767875482,-0.025179659746456057,-0.07588913125637237,0.12734749569808687,-0.14679584832413992,0.23609817286896823,-0.3771345798745807,-0.012500916942888648,0.4180395352560184,-0.02627870469406147,0.026278704692934397],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.20095176687680735,-0.07639892333812863,0.0516010810076471,0.028448908121215238,-0.059716804773165294,0.009145178788118638,0.08151067263773336,0.043308421250401984,-0.27885030057164534,-0.0036510657917799274,0.0036510657919795763],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.14532068206632012,0.2700489934631426,-0.35857699641149904,0.1264076849118812,-0.06403820469583081,-0.015042486350544408,0.08526026830661025,0.08423264137574972,0.017028781467432873,-0.037879681963608934,0.0378796819629786],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.17891119422886229,-0.037582768963428194,-0.03891518515755232,0.08251209245688054,0.1071099907975269,0.13278967012939377,-0.3810455105973708,-0.31774290082054574,0.6317858063843761,-0.006014138335566227,0.006014138335037411],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06126079795471056,0.18065673676152427,-0.19928008028245586,0.014766315105506087,0.11396462280607221,-0.44978441225600757,0.3702346741862577,0.12969516609876836,-0.22151382037400869,0.003857028415677596,-0.0038570284153013916],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.06335442220736559,-0.15507045744910516,0.15894718395484514,-0.04466458118107275,0.05938537326789556,0.31801006933229936,0.013985577063304182,0.03365161856432405,-0.44759920575969075,0.040787854676039036,-0.04078785467566706],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.008255629852008875,0.10148067638494543,-0.04575129069055613,-0.051399639937357355,-0.058072177781161326,-0.06623210454441861,-0.2031828272406023,-0.09014205585596945,0.4215550495170952,-0.004329745756972219,0.004329745757258219]]},"implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"input_transform":{"mean":[-0.12547253294940458,-0.12519237300420374,0.06467994315025918,-0.04034071215610934,0.04819844647706765,0.09253622908258914,0.15059205650297097,-0.05296831521415001,0.04507195510292621,-0.08775018503919241,-0.03587795870150662,-0.1899832570135324,0.005101500588777929,0.06303156341278393,-0.021757061985694725,0.009686033770956448,0.010560238690470755,0.014029546201434465,-0.10982194881629997,-0.06266763838382688,0.16425091247322618,-0.11861508903476471,0.05334845469963792,-0.05681506562257261,0.04339869148229021,0.08007494002599987,-0.06356304022677983,0.048422464248283205,-0.005930253889781809,-0.39371024248164327,-0.06257580679713146,-0.08393999849511774,0.14512607839283242,-0.15335238123459308,0.0023855168477425652,-0.08353651095346709,-0.07920038078099509,-0.09295760559235328,0.08824421544611866,-0.007297110266209975,0.057244074915475784,0.14195831631686703,-0.06679503924027705,-0.12586548537601086,0.018668222303001886,-0.1146680571720813,-0.16095568187762968,0.04652606114486124,-0.015628635306531014,-0.06705847850219702,0.06047413057943762,0.007899719154785045,0.08503159990567555,0.04476795714631014,-0.004282743478684875,0.004537049632143963,0.07041518723088831,0.09408129762566556,-0.009408344165655395,0.024223442045202666,-0.1026079846615355,0.08897551806446406,-0.3975825101138589,-0.16482907454940737,0.05434606744924465,0.039906862242934396,-0.1524048628396059,-0.0747996486200543,-0.19588920058831133,0.08620407028854177,-0.038981078676883274,0.04968468809829348,0.05492993894260667,0.006415341074092543,0.1508180343324678,-0.09323941654375628,0.07748166894004349,0.08373229210143363,0.07638648456445021,-0.02663387084959308,-0.024466263718947036,-0.18876059735321693,-0.02859076169602349,-0.0008467808947489486,0.06841095458307632,-0.05171522787322863,0.11773119582872657,-0.025374813983917457,0.05816103334437788,0.018833412076692087,0.02995781916569662,0.11610452669897073,-0.16660325436452103,-0.033572110356725235,-0.08930927545211148,-0.15726576136120085,0.03634409610038237,-0.034038361672315456,-0.18156799509171825,0.348718067798157,-0.05273003239155552,-0.07963801827737654,0.10350200576889436,-0.018973962575013117,0.05370675516312889,-0.03559666770653874,0.051985328427126984,-0.04249942540942877,0.017493862652431892,-0.1334239713686789,-0.015375984182455928,-0.0676979509436209,0.17091067613321506,0.012979838090159852,-0.061767421170974036,0.17107150130500945,0.0019160120630428556,-0.03639263514811185,-0.10848326329861539,0.04574246108568374,-0.04999392447516294,-0.03282020171425396,0.04807743172638609,-0.0027240844230719302,-0.014839312917348422,0.0017157077020286456,0.0947374699027904,0.11118158264348689,-0.10449635185343521,-0.035705170687855434,0.047709237507359996,-0.14202212624973554,-0.07022646027178572,-0.10418808177055972,0.03888495202611633,-0.009360438547431585,0.026515628881252022,0.04729604422338364,0.06321250422893407,-0.01573063063859415,0.06559118232058753,-0.12692208342322073,0.09252889946758815,-0.17034103570935685,-0.12633477413763644,0.2591048176493568,0.017434469799829752,0.0434226798027126,-0.02256289525904309,-0.1392656039121353,0.05859079298419453,-0.016250237997744266,0.09718172934821356,-0.238642886573378,-0.011328078911290396,0.08634942264763779,-0.0038442880740323197,0.08182424542113163,-0.15788065901663187,0.006650493585027768,-0.021373581784190375,0.01799438808609304,-0.21003399357731392,0.03364226826194142,0.005283642520572836,-0.09569617440119355,-0.04712789164240925,0.0008673595077004085,0.10364961640099693,-0.05486415133397329,-0.06386073529605976,0.07272297239314326,-0.07415927790097732,-0.0761982435163366,0.2806813393019232,-0.037699630962032,-0.1849466758342843,-0.01886823951673396,0.11019587048346934,0.11192337089379108,-0.02872063428599725,-0.0268042644426799,-0.010073240451076812,-0.06537021644377397,0.07656596562890017,-0.06330045398724089,0.027207652841952135,-0.08299917289508414,0.05129816541392417,0.22244559217282941,-0.067903832032976,-0.0754732827341687,-0.1302442564851825,0.05649355770185229,0.10886838483920973,-0.04404818294506854,-0.04475432067450833,-0.09067424570759018,-0.0071007472217421,0.08928673531865322,0.013443887181016231,-0.06797963084446035,-0.06840829572825438,0.048985536718690055,0.11941898720546784,0.2185142607828362,-0.16285766897374387,-0.023812078120090056,-0.018550094039706814,0.15330451899304062,-0.06671018555070468,-0.06450379992943475,0.18611686721841425,-0.019222277394597444,-0.14057515898253561,-0.014892292330744468,-0.027771542021772143,0.10539703569476586,0.01054673296366572,0.0694295475593982,0.038562069573695235,-0.06577011421458019,0.11311307132585334,-0.2685864299043202,-0.04054163686717351,-0.01841340343774464,-0.13284106564187206,0.10022194214721188,-0.1803468006139941,0.0007141161536195102,-0.04244504044698798,0.015197204103263138,0.019531153581902626,0.026181777517072836,0.09664033424586409,-0.018947973394640858,0.1631520696872379,0.04173978010007703,-0.051167760394009776,0.08412899672675309,0.09004681762817342,-0.04701136319778367,-0.0258773712192565,-0.012839080215467818,0.07263107155502387,0.04368891288009268,-0.11677654991098066,0.02130113409919661,-0.15220095638844647,0.24925962642110358,-0.1446032386019204,0.09928191157797818,-0.07957509495751605,0.09535296534066244,0.0655685626594644,-0.043353171207890534,-0.12794482927572862,0.03427717279053413,-0.01036385885027679,-0.034084348551369985,0.10484683933932462,-0.03246812535670095,0.014520164447638442,-0.036823218548482674,0.19869618201072667,0.065615889961707,-0.1521780502044554,-0.08166514879291908,-0.04051328154518124,-0.033400274312365086,0.14220136896335397,-0.1263766188667852,-0.005680825405725025,0.023198253980568545,-0.07241979675584409,0.0022985133861535578,0.08055960563494785,0.120880722674577,-0.023357273976743746,-0.13827183376822902,0.10294785437391356,-0.05288520783628493,0.001592955191921111,-0.05157710879912427,-0.04653080643974682,-0.061219312833356646,-0.16122028724115417,0.035551842107592574,0.07015443398129438,0.00897452413916247,-0.09566036508414374,-0.055215144343046446,-0.11335295456070794,-0.013926431439911595,0.12181067013355054,0.18338504137537182,-0.0075555036261994194,0.02481468658730584,0.07336773257538111,0.15600399960936479,0.0003326172637362037,-0.028637830415961917,-0.02185104238188843,0.16694509449388878,-0.1336142329556849,-0.05194336204913849,-0.004061702520413158,0.08403746489751258,-0.01994855776343868,0.11789197079293369,0.008542734421885958,-0.08834501190128856,-0.05415998700402376,-0.054138629668226614,-0.027621537756091226,-0.04050349792601532,-0.17173859935594765,-0.10363411030975453,0.3022421552820134,-0.4491776246271843,0.07674262704136195,0.04621526463568878,0.10975385653826716,-0.013976654114873234,0.11150702345436363,0.05154781548507729,0.11908456664669184,-0.04387448228225522,0.04457450243542588,0.09367080987212303,-0.013212822358509662,0.10402829236851253,0.05110572584938816,-0.07344065966680079,-0.0056009541237006764,0.016504258548856187,-0.1263853305681157,0.16398966705909165,-0.0157663385565091,0.07870411171238242,-0.2469697576705636,0.16338618052082687,-0.013487987732851859,0.08614334843710535,0.12035932833922446,-0.07291341236105583,-0.015376722407990366,0.058184253225556835,-0.14424883188722426,0.042480672150145976,0.003337195206748651,0.11898598924463916,-0.10234221523650379,0.1223925864416487,0.015051495027525648,-0.02108603610094533,-0.04562369742764067,0.05812859333868154,0.16107711361488067,0.0711436977079916,-0.0724568820952717,-0.0650810909049091,-0.12862088513967002,0.13638976648703893,-0.01659578574656792,-0.0019951744361863203,-0.021183590316926168,-0.018498828659405483,0.09643961035772011,-0.05039885207508015,0.05594008921287489,-0.0856160127770821,-0.1089243849831921,0.060677653701964845,0.09019728380523874,0.12977101737807586,0.08218667652570745,-0.11986458058686125,-0.12171036238207268,-0.11786803754441308,-0.05709050215898868,0.015448163062823742,0.07065613692345096,0.07917772011531998],"origin":"training_projected_embeddings_only","scale":0.1097110066637632},"lineage":{"parent_encoder_frozen":true,"parent_modified":false,"projection_tensors_inherited_exactly":["projection_down.weight","projection_down.bias","projection_up.weight","projection_up.bias"],"random_parameters_used":false},"parent_binding":{"core_sha256":"bec522e21c4efcfa763b965f655e86cc5afca80c8e1449be7d9b8fac144c646c","dimension":384,"domain":"legal_ir","lineage_id":"current_legal_v2","runtime_profile":"modal-latent-joint-formula/v1"},"parent_sha256":"969461ab82a2806e54ad33ba242a1eb62d032fa1b3cfc808b77c66dcc965aa62","projection_sha256":"4e90ec5a3ff3978d3f6d40fb366ea01f2a056fe6c59b3fddcf7c50f66366afd7","projection_state":{"projection_down.bias":[0.02702881209552288,0.02693955972790718,-0.012335220351815224,0.045837923884391785,0.06817162036895752,0.0021782617550343275,-0.03774780407547951,-0.040577247738838196],"projection_down.weight":[[0.06466898322105408,-0.09810582548379898,-0.08683871477842331,-0.056220073252916336,-0.0718034878373146,-0.17768777906894684,-0.0874454453587532,0.049600016325712204,-0.14642980694770813,-0.005087248515337706,0.07333462685346603,-0.12209892272949219,-0.01653285138309002,-0.22467169165611267,-0.35406479239463806,0.06926660984754562,-0.07348794490098953,0.3798016905784607,-0.15367431938648224,0.0836157575249672,0.2697937786579132,-0.006180059630423784,0.0551716648042202,0.026255082339048386,0.040723878890275955,0.06303787976503372,0.08765852451324463,-0.05247742310166359,-0.014035237021744251,-0.015224271453917027,0.0016324706375598907,0.0046084290370345116,0.0687558501958847,-0.06524475663900375,0.06944269686937332,-0.12278956174850464,0.10279528796672821,0.043851591646671295,0.009433931671082973,0.10735991597175598,0.12102844566106796,0.1468384861946106,0.035822149366140366,-0.058550599962472916,0.0155038395896554,-0.07205735892057419,-0.06583081185817719,-0.07233728468418121,0.007059164345264435,-0.0607648566365242,0.050392527133226395,0.05634329095482826,-0.031303465366363525,0.06692103296518326,0.07897941023111343,-0.15733376145362854,-0.16421440243721008,-0.012805888429284096,0.05053570121526718,0.03401434049010277,-0.016022125259041786,-0.25826528668403625,-1.946112206496764e-05,0.02268487773835659,-0.05589814856648445,0.05426473170518875,-0.10372669249773026,-0.11930686235427856,0.041233841329813004,-0.08523052930831909,0.08626450598239899,0.0056181917898356915,0.05149395391345024,0.0900464579463005,0.025795498862862587,-0.005110628437250853,-0.028782188892364502,-0.16010616719722748,-0.1766773760318756,0.013848550617694855,-0.13297197222709656,-0.039708174765110016,-0.10323145985603333,-0.2874380350112915,-0.031415071338415146,0.19995266199111938,-0.09355652332305908,0.08492478728294373,-0.10533872246742249,0.07008779048919678,-0.12816382944583893,0.02131389081478119,0.05438694357872009,-0.20297396183013916,0.02150452882051468,0.03760765120387077,0.014484723098576069,0.02008679322898388,0.0454871691763401,0.04226844757795334,0.02650018222630024,-0.10980898886919022,0.053241536021232605,0.06340913474559784,-0.13214093446731567,-0.006212824955582619,0.09577438235282898,0.2725502550601959,-0.023708755150437355,-0.03188098594546318,0.06707213819026947,0.22559556365013123,0.005754335783421993,-0.06073545664548874,0.023132605478167534,-0.024956800043582916,0.0042699468322098255,-0.023926924914121628,-0.0009504166664555669,-0.07223442196846008,0.11041976511478424,-0.044763170182704926,0.30728429555892944,0.033525045961141586,0.0008791099535301328,0.1728850156068802,0.01056746393442154,0.06927864253520966,0.044119711965322495,0.15222090482711792,-0.09899165481328964,-0.11714576184749603,-0.07174886018037796,-0.12524062395095825,0.13308820128440857,-0.03580915927886963,0.1554003357887268,0.14406071603298187,0.04963205009698868,0.004079387057572603,-0.006076662801206112,-0.10364627093076706,0.029676387086510658,-0.09849150478839874,0.02328908070921898,0.0019853150006383657,0.2570028305053711,-0.038419704884290695,0.007904252968728542,0.15323689579963684,-0.08715542405843735,0.0958588719367981,0.028619514778256416,-0.14201869070529938,-0.03893861174583435,0.05215120315551758,0.052754007279872894,-0.07623912394046783,0.029864422976970673,0.10368738323450089,-0.150884747505188,0.10997458547353745,0.0407584011554718,-0.007883618585765362,-0.04071173071861267,0.15556217730045319,0.08756168186664581,0.004087366629391909,-0.0129695488139987,-0.08228509873151779,-0.04885030537843704,-0.05857379734516144,0.10003947466611862,0.04348079860210419,-0.058894891291856766,-0.07227800041437149,0.0885881632566452,-0.24420464038848877,0.046209294348955154,0.2387552410364151,-0.1099063903093338,0.011613654904067516,-0.04471627622842789,-0.10445969551801682,0.1409701555967331,0.03951752930879593,0.011706627905368805,0.08400789648294449,0.01686403527855873,0.03835729882121086,-0.019930444657802582,-0.028756672516465187,-0.049762170761823654,-0.12574227154254913,-0.0845496878027916,-0.06923612952232361,-0.005972685292363167,0.14868131279945374,-0.03600412607192993,-0.05713707581162453,0.04001905769109726,-0.08150073885917664,-0.06715108454227448,-0.021329687908291817,0.03875979036092758,0.03522132709622383,-0.12918005883693695,-0.05278089642524719,0.1453598141670227,0.027192372828722,-0.12696228921413422,0.09372665733098984,-0.16076496243476868,0.05841439589858055,0.06256449222564697,0.04715799540281296,0.005334134213626385,-0.2553449869155884,0.04112226516008377,-0.08125029504299164,0.016947897151112556,0.011871556751430035,-0.023987526074051857,0.031199192628264427,-0.18905006349086761,0.0022048712708055973,-0.17840057611465454,0.034600526094436646,-0.005879097152501345,-0.15274693071842194,0.21577617526054382,-0.0452951155602932,0.034261491149663925,-0.009627770632505417,-0.051685404032468796,0.20583079755306244,-0.1309507042169571,-0.14567582309246063,0.0013324787141755223,-0.02613411657512188,-0.201371967792511,-0.014737110584974289,0.3391685485839844,0.3181505501270294,-0.2529599070549011,-0.06706078350543976,0.015207115560770035,0.05933918058872223,-0.007083524018526077,-0.02091269940137863,0.05997391417622566,-0.00867418758571148,-0.03825237974524498,0.1415933519601822,0.09511056542396545,-0.02778354473412037,0.298974871635437,-0.03184689208865166,0.0646226778626442,0.04758336395025253,0.03733786940574646,0.43914473056793213,-0.3089257776737213,0.06945810467004776,-0.08679316192865372,0.03400104492902756,-0.07637541741132736,0.06452962756156921,-0.0414334200322628,-0.01524137333035469,0.005225845612585545,-0.26235806941986084,0.13590577244758606,0.2637728154659271,0.05307285860180855,-0.1251746118068695,0.13591839373111725,0.06165159493684769,-0.0026493407785892487,-0.007757463958114386,-0.009625515900552273,-0.03680594265460968,-0.11328509449958801,0.04547548666596413,0.12245618551969528,0.1545453518629074,-0.018479807302355766,-0.07516943663358688,0.1498684138059616,0.11813843995332718,6.86059138388373e-06,0.09467394649982452,-0.05514898896217346,0.051523804664611816,0.05596762150526047,-0.032835185527801514,-0.16589827835559845,-0.06814224272966385,0.03001543879508972,0.11916596442461014,-0.07411770522594452,0.05333150550723076,0.09588763117790222,0.019747890532016754,0.05948232114315033,0.07816340029239655,-0.019118087366223335,0.16499143838882446,-0.03079262375831604,0.13268686830997467,-0.1978655755519867,0.004088857211172581,0.09152495115995407,-0.16557061672210693,0.01983088068664074,-0.06268690526485443,0.03534739837050438,-0.06886456161737442,0.03598440811038017,-0.03493037447333336,-0.17899693548679352,-0.10916488617658615,-0.0813538208603859,-0.11286366730928421,-0.19177769124507904,-0.3215395212173462,-0.012636900879442692,-0.009525598958134651,-0.08799821883440018,-0.07306486368179321,-0.08930588513612747,-0.019991975277662277,-0.008874517865478992,0.022238794714212418,0.0863051787018776,-0.05484628304839134,-0.059125807136297226,-0.10620251297950745,-0.006726310588419437,0.015362540259957314,0.00889296643435955,0.1280638873577118,-0.09959903359413147,-0.08785704523324966,-0.18805231153964996,0.0338701568543911,0.03775198012590408,-0.05605702102184296,-0.033092744648456573,-0.04990406334400177,-0.04833279177546501,0.023162618279457092,0.09343845397233963,-0.0077048796229064465,0.10559744387865067,0.11362972110509872,0.14299219846725464,0.011766393668949604,-0.13342054188251495,-0.04893044754862785,0.08401224762201309,0.06348008662462234,-0.0017764490330591798,-0.0730203241109848,-0.06945507228374481,0.25991055369377136,0.08892032504081726,-0.027479784563183784,-0.032292019575834274,0.0872960016131401,0.05216998606920242,0.1147531047463417,0.08249574899673462,-0.060320813208818436,-0.21971386671066284,-0.07523728907108307,-0.22238127887248993,0.17408426105976105,0.47354963421821594,-0.11678649485111237,-0.10366073250770569,0.007599695585668087,-0.11054562777280807,-0.06695777922868729],[0.11039596050977707,-0.003987835254520178,-0.10558447986841202,0.07433242350816727,0.049587052315473557,0.005532191134989262,0.030920064076781273,0.0737958624958992,-0.053712427616119385,-0.035911887884140015,0.03573450818657875,-0.04365658015012741,-0.002313191769644618,-0.16236327588558197,0.15248557925224304,-0.007318252697587013,-0.06325284391641617,-0.16780541837215424,-0.029064884409308434,0.12146035581827164,-0.048118509352207184,-0.011823765933513641,0.12941117584705353,0.16462917625904083,0.09503278136253357,0.05106807500123978,-0.14319893717765808,0.01825905591249466,0.035642292350530624,-0.03504320606589317,0.03827446326613426,-0.005956773646175861,0.007787466049194336,0.044646188616752625,-0.03345119580626488,0.026973051950335503,0.14264579117298126,-0.008468901738524437,-0.005590455140918493,-0.04171143099665642,0.05375247821211815,0.08311547338962555,-0.09355100989341736,-0.05202066898345947,-0.06436332315206528,0.03491557389497757,-0.00627107871696353,0.07500989735126495,0.07459324598312378,-0.0027224894147366285,-0.0061435392126441,0.15855073928833008,0.014725716784596443,0.031369879841804504,0.06907831877470016,-0.086220882833004,0.018037984147667885,0.02362913265824318,0.0757046714425087,-0.043044548481702805,-0.03233623877167702,-0.01807938516139984,-0.01974506489932537,-0.0031703109852969646,0.03160133585333824,0.05946539714932442,-0.04114968329668045,-0.028014453127980232,-0.0991436317563057,-0.22326385974884033,0.14426705241203308,-0.027559395879507065,0.10876470804214478,-0.0993817076086998,0.15644381940364838,0.10979625582695007,0.0434671975672245,-0.13743284344673157,-0.41094425320625305,-0.00411094119772315,0.14038610458374023,-0.036262303590774536,0.2529579699039459,0.0693611204624176,-0.025216734036803246,0.036369193345308304,0.013299929909408092,-0.12493967264890671,0.05393379181623459,0.04921090230345726,-0.14203521609306335,-0.12442753463983536,0.11904226243495941,-0.2822363078594208,-0.00042492648935876787,-0.02919890359044075,0.021740075200796127,-0.1459665447473526,-0.03868092969059944,-0.05183250084519386,0.04418206959962845,0.017005275934934616,0.03730745613574982,0.13380436599254608,-0.2633800208568573,-0.01408273633569479,-0.027009086683392525,-0.36257311701774597,-0.05541312322020531,-0.0849509984254837,0.16607077419757843,0.14237742125988007,-0.027144622057676315,0.0704866573214531,0.004542055539786816,0.07285917550325394,0.01552023645490408,0.1119653657078743,-0.0840984433889389,-0.009752700105309486,-0.00011709771206369624,0.02720024809241295,0.12402103841304779,-0.0405232198536396,-0.0186417568475008,-0.10632633417844772,0.0030158981680870056,-0.04539959877729416,0.05798180773854256,0.010882118716835976,-0.0058792331255972385,-0.0045494926162064075,0.015265666879713535,-0.07943280786275864,-0.08090663701295853,0.09836547821760178,-0.1218763217329979,-0.03273128718137741,-0.14311626553535461,0.044664204120635986,0.06360020488500595,-0.04951087757945061,0.008644312620162964,0.0075047253631055355,0.06007348373532295,0.09433973580598831,0.05589013919234276,0.003315453650429845,0.0892605111002922,-0.07360514998435974,0.014310418628156185,-0.021042346954345703,-0.03098602592945099,-0.09878819435834885,-0.020074384286999702,-0.009279485791921616,-0.014132429845631123,0.20821602642536163,0.06432877480983734,-0.029629213735461235,-0.021641703322529793,0.020823268219828606,0.07276448607444763,0.09174901247024536,-0.004598531872034073,-0.12311296910047531,0.014357048086822033,0.010043655522167683,0.10217885673046112,-0.07242397218942642,0.08262859284877777,-0.022960610687732697,-0.06814312934875488,-0.16868074238300323,-0.011546977795660496,0.02764146588742733,0.18758156895637512,-0.1952211558818817,-0.01722608506679535,0.051288679242134094,0.09558892250061035,-0.09641150385141373,0.104819156229496,0.05787746235728264,0.10638036578893661,-0.03282266482710838,-0.04244851693511009,0.14756660163402557,-0.011703161522746086,-0.06333962082862854,-0.15799283981323242,0.08406048268079758,0.16107240319252014,-0.1091603934764862,-0.022256283089518547,0.05371236801147461,0.05359639227390289,0.07648152858018875,0.008177687413990498,0.20216338336467743,0.053570978343486786,-0.03135316073894501,0.057409413158893585,0.08226784318685532,-0.052448760718107224,-0.04357348382472992,0.1349848210811615,-0.09353958815336227,0.018594039604067802,0.01682569459080696,-0.01769370213150978,-0.01659630797803402,-0.3135836124420166,-0.04098564013838768,0.02204638533294201,0.04747968912124634,0.0007805405766703188,0.05600223317742348,0.03588664531707764,-0.006611078977584839,-0.13605916500091553,0.02952110581099987,-0.0005345146055333316,-0.07527689635753632,0.01747954450547695,0.12840516865253448,0.03285789489746094,-0.017221132293343544,-0.03196672722697258,-0.01614423841238022,-0.05900881811976433,-0.056349147111177444,0.04216337949037552,0.045301735401153564,-0.04174097999930382,-0.07812243700027466,-0.15361987054347992,0.02764403447508812,0.05943042412400246,-0.038072675466537476,-0.17263934016227722,0.08305730670690536,0.09423348307609558,0.009913219138979912,-0.11923247575759888,-0.03908422216773033,-0.007066576275974512,0.13293251395225525,0.024283451959490776,-0.09423656016588211,0.0784173235297203,0.14040109515190125,-0.004621632397174835,0.048900824040174484,0.039669468998909,0.06466297060251236,0.09063631296157837,0.003828782122582197,0.033015962690114975,0.01926300674676895,-0.03016785718500614,0.28467845916748047,-0.103823222219944,0.006551047321408987,0.12215113639831543,0.0016721527790650725,0.05814468115568161,0.1490580439567566,-0.13099047541618347,0.04031367972493172,-0.06708891689777374,-0.19738180935382843,0.18602168560028076,0.05361562594771385,-0.08169014006853104,0.029956039041280746,0.05770406872034073,-0.0442277230322361,-0.026647206395864487,-0.03657446801662445,-0.034842509776353836,0.05511854588985443,0.0008728174725547433,0.03671637549996376,0.038506507873535156,-0.15610232949256897,0.08913261443376541,-0.00212967861443758,0.04831939935684204,-0.11227033287286758,0.07580426335334778,-0.49161258339881897,0.023735411465168,0.13241428136825562,-0.33445918560028076,-0.047347646206617355,-0.0667942687869072,0.0775749534368515,-0.005839108023792505,0.07257573306560516,-0.012149418704211712,-0.0015170089900493622,0.040924519300460815,0.03371375799179077,-0.04177430272102356,-0.054193802177906036,0.05297119542956352,0.18359218537807465,-0.075749471783638,0.01153374370187521,-0.050120338797569275,-0.05348170921206474,0.12200789898633957,-0.13302156329154968,-0.03206042945384979,-0.05057531222701073,0.10201261192560196,-0.09989513456821442,-0.04466308653354645,-0.013923856429755688,-0.13482879102230072,0.04431057721376419,-0.34077900648117065,0.05240066349506378,0.11453621089458466,0.11019905656576157,-0.011373840272426605,-0.025841861963272095,-0.023294055834412575,-0.04269050061702728,0.13472355902194977,-0.0656917616724968,-0.08416244387626648,-0.08263972401618958,0.047422800213098526,-0.01185581088066101,-0.03786872699856758,-0.06637134402990341,0.03224959596991539,0.008046913892030716,-0.010765498504042625,0.030029254034161568,-0.035445425659418106,-0.021325338631868362,-0.23459646105766296,0.032412536442279816,-0.05001283437013626,-0.013909325934946537,-0.03236215189099312,0.04697404056787491,-0.030198441818356514,-0.04309637099504471,-0.04976455494761467,-0.018298987299203873,0.08869247138500214,0.01026668306440115,-0.017311755567789078,0.03918415680527687,-0.05080864951014519,0.11325941979885101,0.3195253014564514,0.39185357093811035,-0.012740332633256912,0.004511895123869181,0.025380892679095268,0.11614066362380981,0.06780901551246643,-0.040710821747779846,0.07673945277929306,0.010780838318169117,-0.08674713969230652,0.06282426416873932,-0.06647172570228577,0.07428067177534103,0.026245364919304848,0.006982302758842707,-0.10956363379955292,0.04337773099541664,0.3205046057701111,0.02156561054289341,0.04658721759915352,-0.0200355127453804,-0.0934760794043541,-0.012133311480283737],[0.04437157139182091,-0.03664742410182953,0.2166830599308014,-0.09191350638866425,-0.012359010986983776,-0.10979858040809631,-0.04851726442575455,-0.09677731245756149,0.26006844639778137,0.001513054477982223,0.13940727710723877,0.05297386646270752,0.08085552603006363,0.06420488655567169,0.06110629066824913,0.2974865436553955,0.048754047602415085,0.005741364788264036,0.07990702241659164,-0.05680489540100098,-0.15730857849121094,-0.03881991654634476,-0.10315308719873428,-0.2846973240375519,-0.02432161569595337,-0.019279127940535545,0.18454387784004211,-0.05058421194553375,0.0005419568624347448,0.08014906942844391,-0.024275733157992363,-0.04085336998105049,-0.01431996375322342,0.16661344468593597,-0.06848901510238647,-0.24006956815719604,-0.15167787671089172,-0.02455701120197773,0.09370729327201843,-0.010384987108409405,-0.14148291945457458,-0.10831725597381592,0.17013876140117645,-0.08182097226381302,-0.032036226242780685,0.0008550320053473115,0.14148277044296265,-0.25592681765556335,-0.15418168902397156,-0.1297406405210495,0.12975525856018066,-0.2999146580696106,0.06643269211053848,-0.0660712718963623,-0.07204678654670715,-0.14157900214195251,-0.07982116937637329,-0.00042196610593236983,-0.060585230588912964,-0.04899364709854126,0.03997848182916641,0.3058514893054962,-0.20155954360961914,0.035299018025398254,-0.03156709298491478,-0.10623093694448471,0.05941116437315941,0.0882994532585144,-0.050962094217538834,0.19102078676223755,0.07873120158910751,0.05492018535733223,-0.07229814678430557,-0.28131812810897827,-0.15626075863838196,-0.153062641620636,-0.008001218549907207,0.22700285911560059,0.5302014350891113,0.014102960005402565,0.07328593730926514,-0.11993660032749176,0.15356197953224182,0.19233226776123047,-0.20134349167346954,0.0502038337290287,0.03892942890524864,0.12291029095649719,-0.045205842703580856,0.061881713569164276,0.14502055943012238,0.07504376769065857,0.17642046511173248,0.0987786278128624,0.07204561680555344,-0.021347928792238235,0.015093519352376461,0.3565380275249481,-0.05838179215788841,0.027781112119555473,-0.10414042323827744,-0.018616434186697006,-0.1866043210029602,-0.02957898937165737,-0.06666067987680435,0.09481985867023468,-0.09116954356431961,0.4620509445667267,-0.24954243004322052,0.22213083505630493,-0.6884070038795471,-0.4917708933353424,-0.029186561703681946,-0.05357437580823898,-0.027590297162532806,-0.2408071607351303,-0.07597194612026215,-0.15550711750984192,-0.024634569883346558,0.274557888507843,-0.1798991858959198,0.2852739691734314,-0.030024966225028038,-0.0015297463396564126,-0.03817149996757507,0.06357914954423904,0.016056960448622704,-0.006378668360412121,-0.07903008908033371,-0.13584527373313904,-0.12282519787549973,-0.12035495042800903,0.028612863272428513,0.15484380722045898,-0.12947428226470947,0.18602697551250458,0.4484577178955078,-0.160552978515625,0.14427116513252258,-0.05980324000120163,-0.010811610147356987,0.044340793043375015,-0.03396276384592056,0.21420620381832123,-0.04753909632563591,-0.019971635192632675,-0.009563450701534748,-0.06527258455753326,0.013390874490141869,-0.05461133271455765,-0.06714338809251785,0.03343566134572029,-0.0632530078291893,-0.10684643685817719,0.09640040248632431,0.05312748998403549,-0.01025212649255991,-0.1595524102449417,-0.14934790134429932,0.07507685571908951,-0.041182782500982285,-0.18405532836914062,-0.08897404372692108,-0.15193524956703186,-0.007676498964428902,-0.0476982519030571,-0.15764178335666656,0.23472335934638977,-0.06105160340666771,-0.07612030953168869,-0.14551883935928345,0.1496880054473877,0.15748587250709534,0.02622019685804844,-0.2473151832818985,-0.07782656699419022,-0.2625753879547119,0.006729894317686558,0.431136816740036,-0.09751290827989578,-0.11956542730331421,0.10324957221746445,0.03511182963848114,-0.018553515896201134,-0.05618961900472641,-0.00435613514855504,0.1802271008491516,0.018702968955039978,0.07626332342624664,0.14769072830677032,0.011118016205728054,-0.06839993596076965,-0.18428780138492584,0.0317879393696785,-0.12347786128520966,-0.08366601914167404,0.04211623966693878,-0.23645201325416565,-0.0013385036727413535,0.2960221469402313,-0.14819559454917908,-0.028880568221211433,-0.05474570021033287,-0.09329470247030258,-0.03184540569782257,-0.053566597402095795,-0.08395933359861374,0.33214741945266724,-0.17525963485240936,0.08025413006544113,0.17605742812156677,-0.09370440989732742,0.03444482386112213,-0.01106971874833107,-0.010170836932957172,-0.0036777982022613287,0.12027545273303986,0.1442728340625763,0.03894561901688576,0.013577645644545555,0.0870441123843193,-0.03798392787575722,0.02136797271668911,0.1574466973543167,-0.01308856438845396,-0.07683996856212616,-0.0970548689365387,-0.00402299128472805,0.08526251465082169,0.04128699377179146,0.42914748191833496,-0.12731391191482544,-0.06280214339494705,-0.17475788295269012,-0.027686230838298798,0.325743168592453,-0.1424502432346344,0.05518313869833946,0.18395139276981354,-0.0265226848423481,0.17208120226860046,0.006739155389368534,-0.06483983993530273,-0.2706139385700226,0.15065665543079376,0.2136654108762741,-0.016945544630289078,-0.03201775252819061,0.031709615141153336,-0.03620357811450958,0.2359302043914795,0.08514294773340225,-0.01995537243783474,-0.031024852767586708,-0.2836182415485382,-0.24278803169727325,-0.13085252046585083,-0.05157089605927467,-0.08219240605831146,0.03811643645167351,0.009703561663627625,-0.17700737714767456,-0.006438883952796459,0.00012935152335558087,0.18328239023685455,-0.06825265288352966,0.10456135123968124,-0.005081575829535723,0.1212240681052208,-0.06825286895036697,-0.07972460985183716,0.579132616519928,-0.10359034687280655,0.06594941020011902,-0.13175760209560394,-0.0200133565813303,-0.11295425891876221,0.011712846346199512,0.06476142257452011,-0.1153518408536911,0.03601449728012085,-0.05667131394147873,-0.1359441727399826,-0.04245651140809059,-0.10682360827922821,0.07492339611053467,-0.18678799271583557,-0.0634375736117363,-0.023644333705306053,0.03741375356912613,-0.13593384623527527,0.7620850205421448,0.15099099278450012,-0.14195674657821655,0.44593656063079834,-0.04063498228788376,0.45563918352127075,-0.06309303641319275,-0.12177729606628418,-0.29449358582496643,-0.19575557112693787,-0.09646444767713547,0.023606151342391968,-0.048450812697410583,0.15280532836914062,0.06530822068452835,-0.03912670537829399,-0.178686261177063,0.1303430050611496,-0.004223158583045006,0.1229126900434494,-0.13307160139083862,0.2833004593849182,0.1094379648566246,0.05849382281303406,0.0561244897544384,0.10178032517433167,-0.11756713688373566,0.030610933899879456,-0.08185332268476486,-0.057553187012672424,0.048019889742136,0.5654394030570984,0.012838502414524555,0.17446255683898926,-0.11056429147720337,0.039740853011608124,0.042576588690280914,0.08403663337230682,-0.12098981440067291,-0.21016354858875275,0.03775421530008316,-0.16765369474887848,-0.20762279629707336,-0.06030987948179245,-0.11796487122774124,0.05062047764658928,0.15421290695667267,-0.4522850811481476,-0.05390166491270065,0.009588601998984814,0.10278221219778061,-0.1840745359659195,-0.19776397943496704,0.5594706535339355,-0.12637662887573242,0.011417314410209656,-0.14727380871772766,-0.03269709646701813,0.06648693233728409,-0.07991372048854828,0.059435829520225525,0.08551733940839767,-0.03221232816576958,-0.19942468404769897,0.000787768978625536,-0.09339485317468643,-0.11715178191661835,-0.0122686130926013,0.29719480872154236,0.025439927354454994,0.10837941616773605,0.004427620675414801,0.10446096211671829,0.1457393616437912,-0.2350919246673584,0.09729157388210297,0.22399967908859253,-0.06627409905195236,0.01133618876338005,-0.07261406630277634,-0.057084329426288605,0.0023324694484472275,-0.21192289888858795,0.21351920068264008,0.0375724695622921,0.03223290666937828,-0.21086853742599487,-0.21573811769485474,-0.12376514822244644,-0.3901374340057373,0.036515507847070694,-0.024302219972014427,0.0685979500412941],[0.051224347203969955,0.01310925092548132,0.0988563522696495,0.03442506119608879,-0.033325448632240295,-0.19643262028694153,0.024541085585951805,0.041271697729825974,0.03680294007062912,-0.15541616082191467,0.017095481976866722,-0.19137521088123322,0.03180345147848129,-0.004182363394647837,0.06615392118692398,0.3969586491584778,0.10500864684581757,-0.006067011505365372,0.015275919809937477,0.03381234034895897,-0.14946532249450684,0.06965354084968567,-0.06677073985338211,0.12010089308023453,0.04575277864933014,0.026680780574679375,-0.10473741590976715,0.03050367534160614,0.001632868079468608,-0.12488406896591187,-0.05854973569512367,-0.019868988543748856,-0.07300595194101334,0.19601154327392578,-0.0495443269610405,0.08328888565301895,-0.08452306687831879,-0.04269396886229515,0.11118464171886444,-0.12616026401519775,0.04171847552061081,-0.007457859348505735,-0.0006164666847325861,0.009632846340537071,0.08621841669082642,0.0322413332760334,0.012878958135843277,-0.04928511381149292,-0.0014656797284260392,-0.16341015696525574,-0.013541512191295624,0.03677702695131302,0.16869671642780304,-0.09888272732496262,0.015727655962109566,0.09309595078229904,-0.11858170479536057,0.009331855922937393,-0.009675378911197186,0.003640207229182124,-0.014627502299845219,0.060313113033771515,-0.11122281104326248,0.04876448214054108,0.05117219313979149,-0.1330503523349762,0.09348997473716736,0.010920069180428982,-0.14373131096363068,0.0729498639702797,0.0039248112589120865,-0.007558015640825033,-0.007516178302466869,-0.2328653782606125,0.19869303703308105,0.006913548801094294,-0.06343909353017807,0.19734416902065277,0.13246484100818634,0.005610202439129353,-0.19984549283981323,-0.017537981271743774,0.1372043490409851,0.37507930397987366,-0.058410294353961945,0.11157290637493134,-0.11572332680225372,-0.04419674351811409,0.03959367796778679,0.05479598417878151,0.08188749104738235,-0.01732194796204567,-0.12981367111206055,-0.10013648122549057,-0.05250680446624756,-0.03542371094226837,0.16531577706336975,0.08725682646036148,0.004139691591262817,-0.05306372418999672,0.019404465332627296,0.052512072026729584,-0.01223236694931984,-0.1652260422706604,0.05440293997526169,-0.05550125986337662,-0.012529611587524414,0.02886345610022545,-0.3166309595108032,-0.03343125805258751,0.045554183423519135,0.008218147791922092,-0.033327825367450714,-0.022962026298046112,-0.014037725515663624,0.027011556550860405,-0.06674747914075851,0.03405297175049782,0.0907849594950676,0.012038146145641804,0.012153951451182365,-0.07453028112649918,-0.01747368462383747,0.1423410326242447,0.033297546207904816,-0.002516843844205141,-0.025156447663903236,-0.013637230731546879,0.07239390909671783,-0.07945417612791061,-0.08084721863269806,0.025163019075989723,0.08736801147460938,0.04989048093557358,-0.014501356519758701,0.27738767862319946,0.1313827633857727,-0.07822516560554504,-0.023927928879857063,-0.06683864444494247,0.032209284603595734,-0.05348506197333336,0.06997446715831757,0.28252437710762024,0.042478036135435104,0.09821166098117828,-0.007431195117533207,0.05328742042183876,0.11044100672006607,-0.10019376128911972,0.021985726431012154,0.07241273671388626,-0.024800864979624748,-0.023567866533994675,0.052200499922037125,0.10440937429666519,-0.042126815766096115,-0.13272488117218018,-0.06404948234558105,-0.07700283825397491,0.005395302549004555,-0.08039243519306183,-0.05335955694317818,0.04227536544203758,0.024552244693040848,-0.23461991548538208,0.026338927447795868,0.18364734947681427,0.12698140740394592,0.004108659457415342,-0.019097356125712395,0.11693413555622101,0.06800477206707001,-0.03778337314724922,-0.1344669908285141,-0.0552922859787941,-0.09707234054803848,0.10430677235126495,0.3997359573841095,0.043023984879255295,-0.018431467935442924,0.01609671674668789,0.04427504912018776,0.08407540619373322,0.26401394605636597,0.047883763909339905,0.056359510868787766,-0.06493460386991501,0.009671906009316444,0.1426127851009369,-0.14881755411624908,0.03301562741398811,-0.15718872845172882,0.08300838619470596,0.011032718233764172,0.015039280988276005,-0.021746933460235596,-0.010763142257928848,0.18363147974014282,-0.05833663418889046,-0.08050175756216049,-0.1152195930480957,0.10534262657165527,-0.057057470083236694,-0.0505802184343338,-0.03357468545436859,-0.037298060953617096,-0.02962842956185341,-0.15853384137153625,0.04592230170965195,-0.024455906823277473,-0.04173576831817627,-0.001370734185911715,0.011130737140774727,-0.010687949135899544,0.06999493390321732,-0.029246238991618156,0.2132548838853836,0.041499584913253784,0.016881629824638367,-0.131117045879364,0.02152692712843418,-0.02894413471221924,0.03456587344408035,0.0005373596795834601,0.044356659054756165,0.07610774040222168,-0.10469148308038712,-0.005787958391010761,0.09895322471857071,-0.04868638142943382,-0.03406708687543869,-0.07023515552282333,-0.09860166907310486,-0.0913415178656578,0.0202887412160635,-0.23602931201457977,0.31413376331329346,0.1003793403506279,-0.027842456474900246,0.2599426507949829,0.07474590837955475,0.005049633327871561,-0.12142501026391983,-0.05712193250656128,0.04119597375392914,0.06850878149271011,0.09782595932483673,-0.041274990886449814,0.007697856519371271,-0.06459224969148636,0.05456359684467316,-0.028233245015144348,-0.0040281168185174465,-0.22852997481822968,-0.008597219362854958,0.16276119649410248,-0.03602812811732292,-0.038215551525354385,0.01429769303649664,-0.0066948928870260715,0.03466438874602318,0.03125936537981033,-0.04101366549730301,0.038554251194000244,0.02377793937921524,0.034348130226135254,-0.05417891591787338,-0.04066651314496994,-0.1839306503534317,0.01251798216253519,0.2691349983215332,0.12880408763885498,-0.01719891093671322,-0.22638024389743805,0.035251617431640625,-0.11655394732952118,-0.12943556904792786,-0.003916201181709766,0.04772787541151047,0.05898868665099144,0.0006843177252449095,-0.1496945023536682,0.0495796874165535,-0.09675206243991852,-0.01446955744177103,0.0470283217728138,-0.06491359323263168,-0.0711802989244461,-0.1024506688117981,-0.008861462585628033,-0.13115595281124115,0.09582876414060593,-0.005076614674180746,-0.03858070820569992,-0.06393283605575562,0.18395212292671204,0.021105341613292694,0.004907439462840557,-0.20279979705810547,-0.08679458498954773,-0.056578975170850754,0.0014584147138521075,0.014384227804839611,-0.10573470592498779,0.01971333846449852,-0.10096719861030579,-0.151702418923378,0.10200828313827515,-0.0775267481803894,0.05674033984541893,0.053868431597948074,0.02465026266872883,-0.059475257992744446,-0.028797365725040436,-0.06970133632421494,0.11502096801996231,0.15306606888771057,0.019360419362783432,-0.005335626192390919,-0.02347511053085327,0.15605972707271576,0.024902930483222008,0.08794856816530228,0.34427791833877563,0.16701729595661163,-0.005222484469413757,-0.01799353025853634,0.128475159406662,-0.07141108810901642,0.10710080713033676,0.03107813186943531,-0.1151958703994751,0.029456334188580513,0.06612624228000641,0.012921544723212719,-0.03083801083266735,-0.020771095529198647,-0.16002216935157776,-0.07217864692211151,0.04843323677778244,0.14941342175006866,-0.016166821122169495,0.06323036551475525,-0.22150453925132751,0.12939029932022095,0.047674842178821564,0.03040696680545807,-0.042768798768520355,-0.005898444913327694,0.031049469485878944,-0.10943713039159775,-0.08393184095621109,-0.085483118891716,-0.02157461829483509,-0.028240425512194633,-0.10475204885005951,0.01665210723876953,-0.0012003195006400347,0.1530577391386032,-0.027891207486391068,0.45793429017066956,-0.048537954688072205,0.04419232904911041,0.013018406927585602,-0.135554701089859,0.12372887134552002,0.02811148762702942,0.032177165150642395,0.07745371013879776,-0.13046349585056305,-0.10653477162122726,0.057321999222040176,-0.08484005182981491,-0.051017940044403076,-0.11366388201713562,0.038773853331804276,-0.14100947976112366,0.2420346885919571,0.05662556365132332,-0.27366191148757935,-0.05510161817073822,-0.0612778514623642,-0.0845383033156395],[0.10858312994241714,-0.0493447370827198,0.02630051225423813,0.022177409380674362,-0.12040536850690842,-0.4366576373577118,0.012382881715893745,0.047102827578783035,-0.06261800229549408,-0.11922325193881989,0.08175303786993027,-0.08907268941402435,-0.07212776690721512,-0.038432396948337555,-0.3431885242462158,0.288202166557312,-0.035791054368019104,0.36195018887519836,-0.12363219261169434,-0.006294907536357641,0.2765241861343384,0.0410754419863224,-0.11434847861528397,0.06383408606052399,0.14968286454677582,0.0968698188662529,0.036831874400377274,0.016463343054056168,-0.05839536711573601,-0.0861668810248375,-0.020651116967201233,-0.014891973696649075,0.051453087478876114,-0.0016935677267611027,-0.019450867548584938,-0.03499428927898407,0.059226397424936295,0.0536503866314888,0.007934154942631721,-0.14105048775672913,0.08728110045194626,0.017947763204574585,-0.14176732301712036,-0.10528062283992767,0.06842558085918427,0.11177810281515121,-0.062250807881355286,-0.012971481308341026,-0.019120527431368828,-0.15069438517093658,-0.08483338356018066,0.19733284413814545,0.05862971022725105,0.07121007144451141,0.10072119534015656,-0.016441363841295242,-0.19730660319328308,-0.012700345367193222,0.014113345183432102,-0.0018929552752524614,-0.07553616911172867,-0.3711014688014984,-0.1368226259946823,0.047910723835229874,-0.07482703030109406,-0.008824887685477734,0.0008026964496821165,0.06120007857680321,0.02067318744957447,0.03551582619547844,-0.12887628376483917,0.14550410211086273,0.00171575543936342,0.07026588916778564,0.11802279949188232,-0.07139571756124496,-0.10436511784791946,0.16120372712612152,0.09924210608005524,0.1607450693845749,-0.32912465929985046,0.01277026254683733,-0.13382698595523834,0.24364686012268066,-0.057106394320726395,0.18238113820552826,-0.07374052703380585,-0.10944931954145432,-0.039666615426540375,-0.026031453162431717,0.008982960134744644,-0.09866568446159363,-0.20770922303199768,-0.12816122174263,-0.06277940422296524,-0.05206147953867912,0.15667742490768433,-0.029690667986869812,-0.016043126583099365,0.029726935550570488,0.14135116338729858,0.04205337539315224,-0.014457570388913155,-0.03333935886621475,-0.1377958357334137,-0.05966247618198395,0.13201206922531128,0.049790702760219574,-0.20520366728305817,-0.08734937012195587,0.26609233021736145,0.15451432764530182,-0.05923253297805786,0.013981178402900696,0.03441956266760826,-0.27807021141052246,0.06091270595788956,-0.06231125816702843,0.05652023106813431,-0.08633752167224884,0.18512873351573944,-0.22740137577056885,0.21923138201236725,0.003163994522765279,-0.0625230073928833,0.03268327936530113,-0.008695787750184536,0.1226421594619751,0.05014386028051376,0.033173657953739166,-0.15240556001663208,-0.1212950199842453,-0.07878713309764862,-0.13420072197914124,0.08113591372966766,0.14326560497283936,0.1741558462381363,-0.08683755248785019,-0.03348816558718681,-0.07147928327322006,-0.0847451239824295,-0.17659911513328552,-0.007475853897631168,0.2340194284915924,0.041642650961875916,0.07579705864191055,0.13694149255752563,-0.02410774677991867,-0.14897602796554565,0.11234022676944733,0.06070082262158394,0.17115184664726257,0.034552864730358124,0.04103490710258484,0.12167660146951675,-0.034761689603328705,-0.01695866324007511,-0.2288912832736969,0.14943382143974304,0.08279316127300262,-0.07157465070486069,0.1734984964132309,-0.01359119825065136,0.0328529067337513,-0.05085661634802818,-0.07605312019586563,0.22693175077438354,0.01056172139942646,0.08166493475437164,-0.05601700395345688,-0.10130905359983444,0.04853637143969536,-0.019490737468004227,-0.019548621028661728,-0.04999791830778122,-0.014351243153214455,0.12497900426387787,-0.147399440407753,0.32922640442848206,0.2933647036552429,-0.034995123744010925,-0.005432717502117157,0.09550159424543381,0.03341418132185936,0.32722121477127075,-0.010476035065948963,0.05769602954387665,-0.10351311415433884,0.102671317756176,0.0074578262865543365,-0.08584532886743546,-0.01697513461112976,-0.04198892414569855,-0.04664997756481171,-0.01240906585007906,0.06124309077858925,0.07649081200361252,0.14529789984226227,0.03300075605511665,0.05625838413834572,0.09117734432220459,-0.14943015575408936,0.07304146885871887,-0.03414132818579674,-0.008992210030555725,-0.08952666819095612,-0.07545456290245056,-0.13168758153915405,0.06041177362203598,0.1020164042711258,-0.14939537644386292,0.06608972698450089,0.08296038210391998,-0.014633319340646267,0.01242948230355978,0.04032967984676361,0.06801820546388626,0.020978031679987907,-0.0349033921957016,-0.04119979217648506,-0.10413973778486252,0.10459741950035095,0.008712845854461193,0.06843562424182892,0.013987259939312935,-0.11766829341650009,-0.030876589938998222,-0.09558535367250443,-0.10871061682701111,-0.04172881692647934,-0.09335467219352722,-0.08687200397253036,0.07075170427560806,-0.04920677840709686,-0.10045887529850006,-0.0683281421661377,-0.23270513117313385,0.11320272833108902,0.061235710978507996,-0.050294868648052216,-0.2392408847808838,-0.05682849884033203,0.46950411796569824,0.33612868189811707,-0.1841774433851242,-0.0547366701066494,0.10225965827703476,0.04831664264202118,0.02140919119119644,0.006994316354393959,0.013078134506940842,0.0018711513839662075,-0.07460497319698334,0.1328151524066925,0.002604942535981536,0.009462323039770126,0.3421171009540558,0.0851789191365242,-0.038042910397052765,-0.02388220839202404,0.019975336268544197,0.431469202041626,-0.2413545697927475,0.052272990345954895,-0.039633430540561676,-0.02165411226451397,-0.04402848333120346,-0.03043602593243122,-0.1335456818342209,-0.18176567554473877,-0.1068110316991806,-0.04017293080687523,0.06645361334085464,0.1734292209148407,0.003136926330626011,0.011812190525233746,0.027794750407338142,0.006087104324251413,-0.02282409742474556,0.09020590037107468,-0.04045800492167473,-0.0194268599152565,-0.05723000690340996,0.1507609486579895,0.06685342639684677,0.09513499587774277,0.12506473064422607,-0.06441739201545715,0.008908587507903576,0.02722911350429058,-0.019773123785853386,-0.1847289353609085,-0.03850311040878296,-0.059251900762319565,-0.02200550027191639,-0.07492756843566895,-0.08713091909885406,0.13559189438819885,0.05612531304359436,-0.18223166465759277,-0.15519148111343384,0.057420700788497925,0.09473399072885513,0.022342678159475327,0.0036037571262568235,0.05595984309911728,-0.09898821264505386,-0.2150467336177826,0.0177591685205698,0.03563564270734787,-0.046416766941547394,0.14807458221912384,0.03116598352789879,-0.0776221826672554,-0.01550918910652399,-0.08195236325263977,0.19925852119922638,0.3376622200012207,0.017358727753162384,-0.08139049261808395,-0.181508406996727,0.026261450722813606,-0.16071045398712158,-0.0800776258111,-0.01810215786099434,0.0033565727062523365,-0.016771918162703514,0.013506194576621056,-0.05189834535121918,-0.033492863178253174,-0.09671870619058609,0.0591704398393631,0.0019252138445153832,-0.00593954510986805,0.15019440650939941,-0.06071389093995094,0.04913083091378212,-0.050680868327617645,-0.006959717255085707,-0.018815767019987106,0.034998223185539246,0.14665672183036804,0.10147790610790253,-0.05206314101815224,-0.15516839921474457,0.23356299102306366,0.004018761683255434,-0.021843818947672844,0.004761698190122843,0.0024947745259851217,0.01248927041888237,0.00781978014856577,0.0873899981379509,-0.015746118500828743,0.09470651298761368,-0.01731819659471512,0.1621459275484085,-0.03278574347496033,-0.07675475627183914,-0.2550058960914612,0.015511492267251015,0.21068325638771057,0.01927652209997177,-0.020633162930607796,-0.06297888606786728,0.0471203438937664,0.09323367476463318,0.022988127544522285,0.08251732587814331,0.0748506709933281,0.10373564809560776,0.008058145642280579,0.10945658385753632,-0.08440577238798141,-0.3271293640136719,-0.12243510037660599,-0.13838821649551392,-0.12783581018447876,0.5660580992698669,-0.024891477078199387,0.01564081944525242,0.033084698021411896,-0.10507915914058685,-0.07490497827529907],[0.12825362384319305,-0.10885591059923172,-0.02441994473338127,-0.060126278549432755,0.03321058303117752,0.012254828587174416,0.0028076337184756994,0.014853790402412415,0.06225442886352539,0.22205497324466705,-0.04824068769812584,0.256928950548172,-0.018755847588181496,-0.09969504922628403,-0.02439996786415577,-0.4937824308872223,-0.08403246104717255,0.25874093174934387,-0.18977896869182587,-0.045785024762153625,0.07713672518730164,-0.06651876866817474,0.18707653880119324,-0.11268752068281174,-0.036548979580402374,0.11468363553285599,0.11779895424842834,-0.020022118464112282,0.026750316843390465,0.10960935801267624,0.0685402899980545,0.11280018091201782,-0.11596552282571793,-0.24187475442886353,0.033253274857997894,-0.0782935842871666,0.03643596172332764,0.02065098099410534,-0.18664157390594482,0.18363051116466522,-0.141277477145195,-0.09209414571523666,0.02981634810566902,-0.03820614889264107,-0.01363019272685051,-0.11862201243638992,0.11871851980686188,-0.12136810272932053,-0.13476234674453735,0.14639824628829956,0.0371210053563118,-0.2017781138420105,-0.09317532926797867,-0.006556754931807518,0.031936995685100555,-0.15348389744758606,-0.048002198338508606,0.022961130365729332,0.06225355714559555,0.007268921472132206,0.09149082005023956,-0.2674036920070648,0.04432036727666855,-0.038682375103235245,0.01521089393645525,0.19077305495738983,-0.0491146482527256,-0.05693446099758148,0.0365915410220623,0.021827097982168198,-0.09746737778186798,-0.026252271607518196,0.03791707754135132,-0.0017543702851980925,-0.09965118020772934,0.02744344435632229,0.012460549362003803,-0.0365842767059803,-0.23007550835609436,-0.10138175636529922,0.3176586329936981,-0.0034423184115439653,0.2475205510854721,-0.17147023975849152,-0.1289401799440384,-0.045883696526288986,0.04905393347144127,0.06160694360733032,-0.09486108273267746,0.03380117565393448,-0.11214705556631088,-0.03934497386217117,0.4111681878566742,0.19924330711364746,0.03835698217153549,0.00012283105752430856,-0.23568567633628845,0.04445638880133629,0.00850929506123066,0.02403571829199791,0.04379177838563919,-0.03125907480716705,0.04580315947532654,0.13523632287979126,-0.183187335729599,0.07952886819839478,-0.014015458524227142,-0.044804852455854416,0.02849900722503662,0.08258657902479172,-0.3091634511947632,0.07474604994058609,0.008083155378699303,0.022396164014935493,0.03250753879547119,0.011955169960856438,0.014073350466787815,-0.020325763151049614,-0.24391698837280273,0.003137524938210845,-0.1374535858631134,-0.013154903426766396,0.20566418766975403,-0.0658821165561676,-0.009754839353263378,0.03693744167685509,0.02125283144414425,-0.014850177802145481,-0.05005520582199097,0.0604185126721859,0.06399836391210556,-0.0005727015668526292,-0.007092480082064867,0.0954345092177391,-0.09818291664123535,-0.075276680290699,-0.01588989980518818,-0.27872785925865173,0.10574325174093246,0.07009901851415634,0.0029762890189886093,0.055059440433979034,-0.025966394692659378,-0.19289034605026245,0.07134898006916046,-0.013884340412914753,0.02753036841750145,-0.011905352585017681,0.09868281334638596,0.055058617144823074,-0.02053901180624962,-0.0010679335100576282,-0.01702064648270607,-0.07073118537664413,-0.08110804855823517,0.179429829120636,0.09511788934469223,0.2465342879295349,0.0313311368227005,0.10833791643381119,0.01033126562833786,-0.07435847818851471,-0.015079211443662643,-0.033535465598106384,-0.1529371589422226,0.16884945333003998,-0.14466652274131775,0.1167902871966362,-0.08959389477968216,-0.04807324334979057,0.11139518767595291,-0.04945404455065727,0.04757979139685631,-0.02201935648918152,0.018997518345713615,0.04833297058939934,0.29752248525619507,-0.46866562962532043,-0.020210521295666695,0.09594111889600754,0.11604923009872437,-0.06885191798210144,0.018178265541791916,-0.13140155375003815,-0.2353409081697464,-0.07281671464443207,0.032766472548246384,0.5077434778213501,-0.07466109842061996,-0.048113711178302765,0.13528379797935486,0.016306376084685326,0.0706678032875061,-0.1999007910490036,-0.007680471520870924,-0.19518832862377167,0.12704840302467346,-0.0026963273994624615,-0.17763404548168182,0.2756390869617462,0.09306995570659637,0.04401770606637001,-0.0952850803732872,0.11607982218265533,-0.1257721185684204,0.047765154391527176,0.3433457314968109,0.10330235213041306,0.015338873490691185,-0.04334993287920952,0.06087520718574524,0.02983536571264267,-0.096396803855896,-0.1105717197060585,-0.08864708989858627,0.010869275778532028,0.1747284233570099,-0.1293601393699646,0.06429310142993927,-0.02825387753546238,0.24678544700145721,-0.023714130744338036,0.026959149166941643,-0.09934135526418686,0.05789867416024208,0.15124808251857758,-0.16366678476333618,0.16577769815921783,0.12810289859771729,-0.19318093359470367,0.07115884870290756,-0.03243279829621315,0.06806562840938568,0.017154335975646973,-0.0018167563248425722,0.11916276812553406,0.22730015218257904,-0.19083821773529053,0.018808944150805473,-0.10956361144781113,-0.4449343979358673,0.14689373970031738,0.1270042508840561,0.10501086711883545,0.13226045668125153,0.05780670791864395,-0.2084013968706131,-0.023881949484348297,0.01394468080252409,0.028269972652196884,0.3282580077648163,-0.09065039455890656,-0.045220132917165756,0.09555163979530334,0.2647062838077545,-0.034387845546007156,0.10900981724262238,-0.02811407670378685,0.08852118998765945,-0.06809680908918381,0.03596844896674156,0.027386421337723732,-0.3175492286682129,0.01919967494904995,-0.0178484208881855,-0.08401066064834595,0.09938044100999832,0.07529862970113754,-0.030629556626081467,0.25037357211112976,-0.10792627930641174,-0.12001735717058182,-0.16373424232006073,-0.007090294733643532,0.0018392398487776518,0.011624393984675407,0.020688578486442566,-0.0312099177390337,-0.013997993431985378,-0.2094573676586151,-0.0355401337146759,0.07567136734724045,0.11361152678728104,0.05818743258714676,0.14930416643619537,0.06316879391670227,-0.08758927881717682,0.05377527326345444,0.10846873372793198,-0.10747500509023666,0.2069471776485443,0.22957055270671844,-0.03068196214735508,0.09636499732732773,-0.11658560484647751,-0.028481630608439445,0.07931125909090042,-0.2282884567975998,0.0432499535381794,-0.1335010677576065,0.03202373906970024,0.10962998121976852,0.09996441751718521,-0.04307904839515686,0.12352292239665985,0.02842702716588974,0.1896573007106781,0.32673248648643494,-0.17403623461723328,0.06278007477521896,-0.01685870997607708,-0.140843465924263,0.1531667560338974,-0.00035678778658621013,-0.012393779121339321,0.059384532272815704,-0.19194307923316956,-0.4619032144546509,-0.02180003747344017,-0.032463498413562775,-0.1854551136493683,-0.11433631181716919,0.02880292572081089,-0.16930803656578064,-0.17670276761054993,-0.121517114341259,0.023802967742085457,0.027975207194685936,-0.03150712698698044,-0.046919338405132294,-0.22286713123321533,-0.005181480199098587,-0.16434575617313385,-0.1162373498082161,0.02240840718150139,-0.06307961791753769,-0.04717279598116875,-0.00509622460231185,-0.31442195177078247,0.02709035575389862,-0.0018956325948238373,-0.03435656800866127,-0.18778583407402039,-0.16926920413970947,0.4602821469306946,-0.06110904738306999,-0.13975700736045837,0.0389678068459034,0.028815312311053276,-0.01449674367904663,-0.03654928877949715,0.20898212492465973,0.12259063124656677,-0.022541413083672523,0.1398572027683258,-0.05728811025619507,-0.08198336511850357,-0.025578513741493225,-0.11284720152616501,0.08482874929904938,0.26136457920074463,-0.1580824851989746,0.06522427499294281,-0.018367361277341843,0.03887956961989403,-0.10626745223999023,-0.17470495402812958,0.07870783656835556,-0.15920326113700867,0.06685908883810043,0.19516123831272125,0.09142579883337021,-0.16143295168876648,-0.005496280733495951,0.13726632297039032,0.04558892548084259,-0.20130646228790283,0.26836085319519043,-0.24610698223114014,-0.13724884390830994,0.1654234379529953,0.13820283114910126,0.010965765453875065,-0.021886905655264854],[0.028765900060534477,-0.026909196749329567,0.13570627570152283,0.046106573194265366,0.04664880782365799,-0.04311294108629227,0.024200135841965675,-0.024871380999684334,0.08397383987903595,0.05823345482349396,-0.01344529539346695,-0.044608257710933685,-0.007997711189091206,0.03341129794716835,0.20622074604034424,0.06096985936164856,0.11418315768241882,-0.15202662348747253,-0.01568176969885826,0.08483540266752243,-0.2693660259246826,0.09397981315851212,-0.03219391778111458,0.06418918073177338,-0.023691775277256966,0.1437893807888031,0.037026457488536835,0.0403931550681591,-0.013716969639062881,0.11096513271331787,0.027327917516231537,0.22990500926971436,-0.04333458095788956,-0.06169458478689194,-0.06656653434038162,0.020543787628412247,-0.10135241597890854,0.04241011291742325,0.034263961017131805,-0.02635904587805271,0.03430246561765671,-0.029341096058487892,0.08274855464696884,0.006387932691723108,0.10253741592168808,-0.05675880238413811,0.041268255561590195,-0.1395980268716812,-0.12449691444635391,0.023511681705713272,0.03506998345255852,-0.1747201383113861,0.0746825635433197,0.048110850155353546,-0.016199598088860512,0.14841778576374054,-0.024678664281964302,-0.07143080979585648,0.040976785123348236,0.061274126172065735,0.07246268540620804,0.0690704956650734,0.050048474222421646,-0.004158864263445139,0.009215027093887329,0.025446107611060143,0.016351988539099693,0.0170728899538517,0.007709088269621134,0.0521501861512661,-0.10410525649785995,-0.00327693996950984,-0.07726187258958817,-0.3351602554321289,0.04584469273686409,0.049926113337278366,0.06082821264863014,0.00487144710496068,-0.07679521292448044,-0.08596508204936981,-0.17291297018527985,0.015646498650312424,-0.09486181288957596,0.14590781927108765,-0.018930891528725624,0.028657451272010803,-0.03398585692048073,0.01710539124906063,0.2512986958026886,0.10132037848234177,0.05145292356610298,-0.03558473289012909,-0.0481320321559906,0.05901147797703743,-0.033221226185560226,0.005481105297803879,0.032586291432380676,0.15626348555088043,-0.036805398762226105,0.009881007485091686,-0.02462048828601837,-0.022232573479413986,0.09522667527198792,-0.05816495046019554,0.38815924525260925,-0.025537988170981407,-0.007863933220505714,-0.27513447403907776,-0.06942081451416016,0.025775419548153877,-0.16597603261470795,0.021323153749108315,-0.010986979119479656,-0.06243012472987175,-0.05212072283029556,-0.007586287334561348,-0.06799324601888657,-0.02495480887591839,-0.05509321764111519,0.006404319778084755,-0.10128051787614822,0.003574030939489603,-0.08660372346639633,0.03916788101196289,0.01811586506664753,0.13639812171459198,-0.040813665837049484,0.00938458926975727,-0.06304360181093216,-0.08714403212070465,-0.04988757148385048,0.10571247339248657,0.08204267919063568,0.07198955118656158,0.032504353672266006,0.08001071214675903,-0.21972641348838806,-0.07275859266519547,0.039034053683280945,-0.009644159115850925,-0.061159271746873856,0.09393704682588577,0.014972821809351444,-0.02484525926411152,-0.04588509723544121,-0.02367556467652321,-0.2060759961605072,-0.11551060527563095,0.18786488473415375,-0.01647545024752617,-0.027739929035305977,-0.06976768374443054,-0.05820799618959427,-0.25365498661994934,-0.0501847006380558,-0.052596405148506165,-0.06593191623687744,0.02873222902417183,-0.06791660189628601,-0.04727210849523544,0.04308689758181572,-0.1615253984928131,-0.010240531526505947,0.020881973206996918,0.03954446688294411,-0.12863396108150482,-0.08523443341255188,0.034756146371364594,-0.24701012670993805,-0.06173501908779144,-0.0011513803619891405,0.15288065373897552,0.04363621026277542,0.03415437042713165,0.10915913432836533,0.055900938808918,-0.05456197261810303,0.12529349327087402,0.0046956478618085384,-0.02287324145436287,-0.02669999562203884,-0.010527409613132477,-0.0509861595928669,-0.021135548129677773,-0.03052869439125061,0.0363520048558712,-0.02536863088607788,-0.04963725805282593,0.020226528868079185,0.18016265332698822,-0.005882000084966421,-0.026139220222830772,-0.11956989765167236,-0.009838576428592205,0.055241961032152176,-0.2361512929201126,-0.05379677936434746,-0.10581700503826141,0.09608403593301773,-0.09882073849439621,-0.06335103511810303,0.07962872833013535,-0.003427128540351987,-0.09687113016843796,0.006811246741563082,0.20390504598617554,-0.05520937591791153,0.05640367418527603,-0.07855045795440674,0.024291763082146645,0.03622334823012352,-0.04169122502207756,-0.03391065448522568,0.0002986828039865941,-0.066014364361763,-0.03702825307846069,0.04629142954945564,0.13879206776618958,0.06546993553638458,0.019470451399683952,0.15468361973762512,-0.007422503083944321,0.041942182928323746,-0.009864496998488903,0.03867778927087784,0.002174963476136327,-0.024677792564034462,-0.23144765198230743,0.005599428433924913,0.014481293968856335,-0.08219508826732635,0.22248153388500214,-0.02300364151597023,-0.008294286206364632,0.022844964638352394,0.10248345136642456,-0.0034253490157425404,0.04831376299262047,-0.008293548598885536,0.030608970671892166,0.17934328317642212,0.018257124349474907,-0.2768051326274872,-0.054129134863615036,0.12753117084503174,0.09053916484117508,-0.011554062366485596,0.0858767181634903,-0.05032873526215553,0.10401538759469986,-0.03354160860180855,-0.10632514953613281,0.07182047516107559,-0.0484921857714653,-0.043779563158750534,0.048588838428258896,-0.05467290058732033,-0.06399936974048615,-0.00365658407099545,-0.025740493088960648,0.06557221710681915,-0.005212981253862381,0.11558133363723755,0.06262798607349396,-0.09140141308307648,-0.01847553625702858,0.07293539494276047,-0.06186521798372269,0.14629293978214264,-0.1669449359178543,0.07872980087995529,-0.03804923593997955,-0.11666945368051529,-0.07084260135889053,0.005368827376514673,-0.022003376856446266,-0.0553019642829895,-0.06403708457946777,0.029784156009554863,0.009391014464199543,0.15148426592350006,-0.04032512754201889,-0.14101749658584595,-0.043042004108428955,0.004531859885901213,0.02863878384232521,0.03521532937884331,0.029062587767839432,-0.14503704011440277,0.09527464956045151,0.0019224485149607062,-0.15010112524032593,0.1324472874403,0.013183539733290672,0.19351860880851746,0.05249838903546333,0.2755104601383209,0.0012806137092411518,-0.0004276649560779333,-0.20261071622371674,-0.06989605724811554,0.030307138338685036,-0.08434111624956131,-0.06486330926418304,-0.020436156541109085,-0.07231455296278,-0.061503294855356216,-0.18394587934017181,0.09050485491752625,-0.029719995334744453,0.08864527940750122,-0.005264636129140854,-0.11952362954616547,0.04830017685890198,0.0017157678958028555,0.034639257937669754,-0.06224052608013153,0.2208193987607956,0.0029483973048627377,-0.04434901848435402,-0.15468691289424896,-0.037476636469364166,0.24515245854854584,0.09687475115060806,0.07150226831436157,0.2007073014974594,-0.02675868570804596,-0.048540860414505005,0.10507381707429886,-0.02789296768605709,0.032781489193439484,0.08474276959896088,0.11056944727897644,-0.05566467344760895,-0.09340959787368774,0.017957819625735283,-0.005333594512194395,0.027432313188910484,-0.1821964532136917,-0.010664792731404305,0.021439844742417336,-0.0004154653288424015,0.03838704526424408,-0.07382900267839432,-0.1050216555595398,-0.11502781510353088,-0.07069825381040573,0.021997861564159393,-0.024243570864200592,-0.04252288490533829,-0.0445418506860733,-0.0816895067691803,-0.1076190248131752,-0.018783848732709885,-0.033708613365888596,-0.05170121043920517,-0.09057651460170746,-0.0022543377708643675,0.12421301007270813,0.18591973185539246,-0.1742856353521347,-0.08567588776350021,-0.0031576238106936216,0.04696781933307648,0.07712075114250183,0.044788651168346405,0.022833049297332764,-0.022073643282055855,-0.10714544355869293,-0.022296488285064697,-0.1348373293876648,-0.1261391043663025,0.15104450285434723,0.16680586338043213,0.3495108187198639,-0.04497731849551201,0.17701861262321472,0.09477824717760086,0.06743299216032028,-0.011174799874424934,0.006341179367154837,-0.0488211028277874,0.11101606488227844,0.02194533869624138],[0.006430154200643301,0.020064733922481537,0.16093705594539642,0.03102181665599346,-0.005110489670187235,-0.22336973249912262,0.022097459062933922,0.003861169796437025,0.11722864955663681,0.0720188245177269,0.019293202087283134,0.0957903042435646,0.00810534693300724,0.06822539865970612,0.26896563172340393,0.08709367364645004,0.05870531126856804,-0.05813070759177208,0.03710173815488815,0.017163919284939766,-0.3093337118625641,0.04223993048071861,-0.04230981692671776,-0.04007613658905029,0.0014917365042492747,0.3013788163661957,-0.01840454712510109,0.008274925872683525,0.014659430831670761,0.13699907064437866,0.02795955166220665,0.2684355676174164,-0.009831349365413189,-0.06804127991199493,-0.09341025352478027,0.012398443184792995,-0.17843376100063324,-0.03901099041104317,-0.03368239849805832,-0.007864450104534626,0.0007535114418715239,-0.11595592647790909,0.09736815840005875,-0.04657231271266937,0.1354570984840393,-0.06070896238088608,-0.03830369561910629,-0.13514643907546997,-0.13933300971984863,0.043554335832595825,0.05661424249410629,-0.12467104941606522,0.05303964018821716,0.0017339448677375913,-0.012757586315274239,0.12431740015745163,-0.07814472913742065,-0.046096306294202805,0.0031090944539755583,-0.00852539949119091,0.053011517971754074,0.03857126832008362,-0.03151194378733635,-0.002433524467051029,-0.0039018529932945967,0.018981629982590675,0.06270303577184677,0.06155918166041374,-0.04863801226019859,0.07651430368423462,-0.2721535563468933,0.044513873755931854,-0.022823233157396317,-0.4720706343650818,0.06578880548477173,0.014167443849146366,-0.00479025486856699,0.1839112639427185,0.10001054406166077,-0.05446196720004082,-0.16563530266284943,0.013337275013327599,-0.11511261016130447,0.3661494553089142,-0.09271503239870071,-0.07845531404018402,0.08730683475732803,-0.07973388582468033,0.21806271374225616,0.07180968672037125,0.07857145369052887,-0.03873049095273018,-0.13944731652736664,0.1793602555990219,0.01960877887904644,-0.013389858417212963,0.036477893590927124,0.22553929686546326,-0.033132508397102356,-0.032241079956293106,-0.004044394474476576,0.03006133809685707,0.07600647211074829,-0.08292097598314285,0.34021541476249695,0.06136950105428696,-0.021091800183057785,-0.4033288359642029,-0.13295601308345795,0.025855492800474167,-0.23585043847560883,0.06884502619504929,0.029629124328494072,-0.04037315770983696,-0.004569875076413155,-0.10774191468954086,0.025497278198599815,-0.10371331125497818,-0.039315562695264816,0.010093869641423225,-0.10397642850875854,-0.038595542311668396,-0.10039333999156952,-0.01578693278133869,0.03013450652360916,0.11084938794374466,-0.0302287470549345,0.021718602627515793,-0.043139904737472534,-0.12891675531864166,-0.009215888567268848,0.08024028688669205,0.12103940546512604,0.11693938076496124,0.06331019848585129,0.2088184356689453,-0.23178744316101074,-0.2532137632369995,0.04524791240692139,-0.06552477180957794,-0.030005784705281258,0.10178539156913757,-0.022190315648913383,-0.07969982922077179,-0.01453003566712141,-0.030709896236658096,-0.22021830081939697,-0.06902332603931427,0.18307837843894958,0.030125414952635765,0.008717307820916176,-0.02439408004283905,-0.074720598757267,-0.22686409950256348,-0.01458959560841322,-0.034854479134082794,-0.07266230136156082,-0.013095641508698463,-0.0009890816872939467,-0.06438770145177841,0.08282315731048584,-0.21393072605133057,-0.006823123898357153,0.003328432096168399,0.02993478812277317,-0.05983049422502518,-0.07804494351148605,0.0354585163295269,-0.24692821502685547,-0.09283825755119324,-0.00384991685859859,0.1276269108057022,0.012349138036370277,-0.04289694130420685,0.03699371963739395,0.05600355938076973,-0.08373436331748962,0.10119850933551788,0.08998512476682663,0.0317031554877758,0.06304632127285004,0.003683958202600479,-0.05137772485613823,0.0021835414227098227,-0.0012555606663227081,-0.011193229816854,0.07175736874341965,0.04541977494955063,0.015463738702237606,0.20723778009414673,-0.09679403901100159,-0.006338027305901051,-0.18268342316150665,-0.017711030319333076,0.11359592527151108,-0.35778021812438965,-0.038364529609680176,-0.11395222693681717,0.08498984575271606,-0.0017738464521244168,-0.02714611031115055,0.025511818006634712,0.055313147604465485,-0.04198552295565605,-0.06954652816057205,0.1319207102060318,-0.030372461304068565,0.06595227122306824,-0.05732334032654762,0.10601861029863358,-0.0649213194847107,-0.08995594829320908,0.013989784754812717,-0.011819025501608849,-0.04276347905397415,-0.08575444668531418,0.0008075729128904641,0.2430090308189392,-0.06627322733402252,0.03290674462914467,0.2954005300998688,0.06743920594453812,-0.024213775992393494,0.06835521012544632,0.09896493703126907,-0.04026355594396591,0.022292131558060646,-0.23091475665569305,-0.008442973718047142,0.010478240437805653,-0.14417071640491486,0.17150434851646423,-0.053850024938583374,-0.0006580041372217238,0.0497591607272625,0.06473243236541748,0.04322853684425354,0.11306145042181015,-0.004558738321065903,0.12818658351898193,0.06176025792956352,0.025425825268030167,-0.23992757499217987,0.010408279486000538,0.12512998282909393,0.14833930134773254,-0.05109435319900513,0.046667106449604034,0.028769884258508682,0.12227466702461243,-0.040654122829437256,-0.04830733686685562,0.014100578613579273,-0.06854557991027832,-0.08756307512521744,-0.008484017103910446,-0.060271911323070526,-0.07885657995939255,0.008925029076635838,-0.02575194276869297,0.08500751107931137,0.003367653815075755,0.04818706586956978,0.06167508289217949,0.0036870967596769333,0.0008902374538592994,0.08164476603269577,-0.09018698334693909,0.08279361575841904,-0.19811466336250305,0.029346324503421783,-0.042823951691389084,-0.16071373224258423,-0.13839766383171082,-0.1469702124595642,0.014825871214270592,-0.06499224901199341,0.027780722826719284,0.06546234339475632,-0.015929032117128372,0.14670424163341522,-0.02245212160050869,-0.18702958524227142,0.03686142712831497,-0.012321972288191319,-0.028237635269761086,0.05457497760653496,0.035517387092113495,-0.06702608615159988,0.08823245018720627,0.011315843090415001,-0.10867873579263687,0.1629856526851654,0.003103440860286355,0.16196919977664948,0.01586586982011795,0.3728707432746887,0.008671248331665993,-0.10009405761957169,-0.40109512209892273,-0.08519961684942245,-0.040327806025743484,-0.054299820214509964,-0.0765349417924881,-0.016325904056429863,-0.02403922937810421,-0.07854929566383362,-0.22759371995925903,0.01741492934525013,0.033182062208652496,0.24876649677753448,0.050681982189416885,-0.03738284483551979,0.027637751772999763,0.0586821585893631,0.06577444076538086,0.04542944207787514,0.18536341190338135,0.01944795809686184,-0.013478389009833336,-0.18149790167808533,0.024149885401129723,0.22774763405323029,0.07108219712972641,0.09619197249412537,0.21249325573444366,0.06501248478889465,-0.05288969352841377,0.02139013074338436,-0.016301777213811874,-0.1339527815580368,0.13042768836021423,0.06983954459428787,-0.1644386351108551,-0.09364710003137589,0.060232218354940414,-0.05841268599033356,0.0315450057387352,-0.30008378624916077,-0.03153807669878006,-0.058375027030706406,-0.006300115026533604,0.022711127996444702,-0.015477553941309452,-0.009389660321176052,-0.11792058497667313,-0.15111827850341797,0.06686652451753616,-0.038111016154289246,-0.05255497992038727,-0.07485411316156387,-0.08713997155427933,-0.010734555311501026,-0.05975782498717308,-0.05600997433066368,-0.19004827737808228,-0.10420749336481094,0.002223987365141511,0.05960676446557045,0.1511525958776474,-0.08910619467496872,-0.11804568022489548,0.04477754607796669,0.10341776907444,0.015084152109920979,0.0032403485383838415,-0.054017458111047745,0.041544463485479355,-0.09201612323522568,0.08617087453603745,0.06092430278658867,-0.15943223237991333,0.04842425137758255,0.09498926252126694,0.3624526560306549,0.0700015127658844,0.08036923408508301,0.044957954436540604,0.09583576768636703,0.01533292606472969,0.020038500428199768,-0.04521280527114868,0.11059749871492386,0.004672891926020384]],"projection_up.bias":[-0.06358232349157333,-0.04367072507739067,0.02041577361524105,-0.020960712805390358,0.04763839393854141,0.06633716821670532,0.044036127626895905,-0.06739610433578491,-0.030115028843283653,-0.0712677463889122,-0.06061502546072006,-0.12382811307907104,-0.034156303852796555,-0.0009037578711286187,-0.034769292920827866,-0.010787874460220337,-0.015962883830070496,0.014685855247080326,-0.033365700393915176,-0.07185810059309006,0.07150813192129135,-0.08439197391271591,0.08624884486198425,-0.01741454005241394,0.0495757982134819,0.061351288110017776,-0.012007330544292927,0.0316179096698761,0.029557425528764725,-0.15405865013599396,-0.06016594171524048,-0.05194903910160065,0.07628469914197922,-0.09630488604307175,0.015350881963968277,-0.02123640850186348,-0.06629228591918945,-0.08749043196439743,0.10320728272199631,-0.05372773855924606,0.039611123502254486,0.10941505432128906,-0.024133050814270973,-0.09976907819509506,0.11134226620197296,-0.07240422815084457,-0.11584608256816864,0.04675576090812683,-0.03125797212123871,-0.08792935311794281,0.020163463428616524,-0.029297256842255592,0.0067353625781834126,0.029410531744360924,0.030353490263223648,-0.013665713369846344,0.007674486376345158,0.023650115355849266,-0.07207394391298294,-0.01151839829981327,-0.10247684270143509,0.021583115682005882,-0.21448740363121033,-0.17868438363075256,0.032766517251729965,0.021956127136945724,-0.049500107765197754,-0.055237215012311935,-0.14153122901916504,0.011291547678411007,-0.015414885245263577,0.013868802227079868,0.0772891715168953,-0.023934319615364075,0.11631420254707336,-0.08087631314992905,0.1353081911802292,0.07201816886663437,0.041836630553007126,-0.04698222130537033,-0.018489733338356018,-0.11612769961357117,-0.03287495672702789,0.01143436785787344,0.0924844965338707,0.003964934032410383,0.13458101451396942,-0.01833346113562584,0.011915599927306175,0.004215769935399294,0.04295289143919945,0.10466932505369186,-0.10133626312017441,-0.006014594808220863,-0.05931614339351654,-0.17590315639972687,0.025637825950980186,-0.03549153357744217,-0.17148357629776,0.1472238302230835,-0.07971818745136261,-0.05914514511823654,0.0945403128862381,0.008347093127667904,0.05906457081437111,0.03794300928711891,0.05613849312067032,-0.06365734338760376,0.03696901723742485,-0.14565013349056244,0.019664213061332703,-0.01062654796987772,0.10360784083604813,0.04095827043056488,-0.10344366729259491,0.1054564118385315,0.0022590633016079664,-0.05250296741724014,-0.07656919211149216,0.002364168409258127,-0.02950027771294117,-0.03021211363375187,0.0064426907338202,0.040404245257377625,0.025506651028990746,-0.009528469294309616,0.05286901444196701,0.042356938123703,-0.0893491804599762,-0.006606129463762045,0.011473803780972958,-0.12453893572092056,-0.03199673071503639,-0.058020349591970444,0.04563354700803757,-0.012971811927855015,-0.010768178850412369,0.021162236109375954,0.027612006291747093,-0.02473103441298008,0.061524566262960434,-0.02823701500892639,0.06792974472045898,-0.11333538591861725,-0.10676552355289459,0.1298844814300537,-0.0017391558503732085,0.008117799647152424,0.019384466111660004,-0.07496391981840134,0.07445530593395233,-0.038029663264751434,0.10427015274763107,-0.14641381800174713,-0.013640745542943478,0.10090630501508713,-0.07287213951349258,0.04366597160696983,-0.09853315353393555,-0.01396581158041954,0.0029615690000355244,0.055935606360435486,-0.1731296330690384,-0.048134833574295044,-0.04888493940234184,-0.0638776645064354,-0.045400768518447876,0.04928118363022804,0.09147422015666962,0.042703356593847275,-0.09567172080278397,0.06634654104709625,-0.01029776968061924,-0.08352702856063843,0.16212718188762665,-0.035305965691804886,-0.10444656759500504,-0.07344293594360352,0.10449700057506561,0.07375911623239517,-0.010278546251356602,-0.019415199756622314,0.024237561970949173,-0.09882999211549759,0.07726850360631943,-0.0597996823489666,0.0023007539566606283,-0.025792045518755913,-0.02591266669332981,0.1284894496202469,-0.014961537905037403,-0.07792700082063675,-0.07265516370534897,0.059217669069767,0.10018312931060791,-0.03468552976846695,-0.06906598061323166,-0.05247912183403969,-0.022891538217663765,0.12825243175029755,-0.031342003494501114,-0.021229451522231102,-0.0004416628507897258,0.02865091897547245,0.09915834665298462,0.1733662635087967,-0.09417178481817245,0.020457256585359573,-0.06344863772392273,0.04268898442387581,-0.061824310570955276,-0.04842478781938553,0.15118275582790375,-0.018267272040247917,-0.08820575475692749,-0.03585486859083176,-0.05413109436631203,0.08805929124355316,0.0336855985224247,0.027736041694879532,0.00574461929500103,0.03702962026000023,0.19370010495185852,-0.023497750982642174,0.015390947461128235,-0.04890264570713043,-0.11152103543281555,0.05855438485741615,-0.14108899235725403,-0.044705335050821304,-0.003697255626320839,0.02660738304257393,0.04453355073928833,-0.02889101579785347,0.11472238600254059,-0.008594336919486523,0.11286698281764984,0.0729316771030426,-0.08469156920909882,0.016710525378584862,0.07568910717964172,-0.01266503520309925,-0.012368369847536087,-0.029642585664987564,0.00936196744441986,0.09467899054288864,-0.0815281867980957,0.011823559179902077,-0.10288818180561066,0.04919871687889099,-0.08398035913705826,0.0075913406908512115,-0.01801447570323944,0.0924418643116951,0.07329440861940384,0.039640627801418304,-0.08031556010246277,-0.03526948392391205,-0.029282258823513985,-0.020895028486847878,0.053654491901397705,-0.019125210121273994,0.036504004150629044,-0.00876628328114748,0.11475202441215515,0.08705629408359528,-0.03026001900434494,-0.0391368567943573,-0.04396656155586243,-0.01809932105243206,0.10880943387746811,-0.0611225925385952,0.029095321893692017,-0.014164197258651257,-0.037228070199489594,-0.04884904995560646,0.012092581018805504,0.04996784031391144,0.040949996560811996,-0.046577222645282745,0.05703875422477722,-0.047692522406578064,-0.012728041037917137,0.007910098880529404,-0.029164986684918404,-0.05970079451799393,-0.15257176756858826,0.02097201719880104,0.07262329012155533,0.014762694016098976,-0.055355243384838104,-0.03567550331354141,-0.1149660125374794,-0.05030326917767525,-0.0021052288357168436,0.13900907337665558,-0.023130204528570175,-0.04112131893634796,0.07826894521713257,0.0790533497929573,-0.025083404034376144,0.002027232199907303,0.04319190979003906,0.1177230104804039,-0.11860954016447067,-0.06982363760471344,-0.029971418902277946,0.07537422329187393,-0.022050965577363968,0.07891994714736938,-0.023717572912573814,-0.09760923683643341,-0.04842345789074898,-0.05273717641830444,-0.02494802139699459,-0.04929250106215477,-0.18360038101673126,-0.08589516580104828,0.2909405529499054,-0.1787879765033722,0.048851046711206436,0.06352568417787552,0.10564390569925308,-0.02880479022860527,0.1029747948050499,-0.015812717378139496,0.08193979412317276,0.051061101257801056,0.02200199104845524,0.08857601881027222,-0.011729409918189049,0.05264139547944069,0.03749265521764755,-0.06295228004455566,-0.01627650298178196,-0.005532753653824329,-0.07455433160066605,0.13656842708587646,0.009582976810634136,0.0018323528347536922,-0.25658130645751953,-0.011275780387222767,0.006304263602942228,0.04491150379180908,0.0653136819601059,-0.09883710741996765,0.02509123459458351,0.0016499615740031004,-0.14455905556678772,0.04370046779513359,0.022866684943437576,0.05761157348752022,-0.08551522344350815,0.07377468794584274,-0.034884076565504074,0.00018489178910385817,-0.045382142066955566,0.030236197635531425,0.17960095405578613,6.101969484006986e-05,-0.005294651258736849,-0.0339217372238636,-0.1488042026758194,-0.006386857014149427,0.027784928679466248,0.040410447865724564,0.006993954069912434,-0.01665244624018669,0.03000844642519951,0.0016952083678916097,0.0006142233032733202,-0.07705817371606827,-0.08986519277095795,-0.001804469502530992,0.03027167171239853,0.14893482625484467,0.07791560143232346,-0.07497934997081757,-0.08667333424091339,-0.14553040266036987,-0.013843085616827011,0.014494084753096104,0.038642965257167816,0.07371596992015839],"projection_up.weight":[[0.04313176870346069,0.10107730329036713,0.08706186711788177,0.07028323411941528,0.12059178203344345,0.11283253878355026,-0.18741115927696228,0.1952020674943924],[0.03457597643136978,0.12743306159973145,-0.09729824215173721,-0.00970698706805706,-0.2175496369600296,-0.08168891072273254,-0.12096167355775833,-0.1821616291999817],[0.12589368224143982,0.04308771714568138,0.05452899634838104,0.03664641082286835,-0.11660447716712952,-0.024410750716924667,-0.22474274039268494,-0.025252817198634148],[-0.04804667457938194,-0.03507154807448387,0.030462007969617844,0.065208300948143,0.0357363298535347,0.04247770830988884,-0.04916248098015785,-0.08676347881555557],[0.0010028554825112224,-0.006516492925584316,-0.13942427933216095,0.20311327278614044,-0.026144037023186684,0.005129847209900618,0.2985880672931671,0.015445508062839508],[0.0738249197602272,0.16296222805976868,0.14296139776706696,-0.3398820161819458,-0.00870850682258606,-0.1831483691930771,0.22983132302761078,-0.027171185240149498],[-0.08426261693239212,0.0649082288146019,-0.03774741664528847,-0.05351446941494942,0.04407135769724846,-0.00372291705571115,-0.07923250645399094,0.20935657620429993],[-0.32256442308425903,0.18802747130393982,-0.10838000476360321,-0.0020320776384323835,0.2352367341518402,0.10458657145500183,-0.2863079011440277,-0.032724980264902115],[0.02930101938545704,0.09707166999578476,0.10919516533613205,-0.1539502888917923,0.08891709893941879,-0.028690872713923454,-0.06691106408834457,0.058122146874666214],[-0.10594761371612549,-0.061941079795360565,-0.023816285654902458,0.12528206408023834,0.17594990134239197,0.12407800555229187,0.01433583628386259,0.006649685092270374],[-0.08670222759246826,0.10987337678670883,0.04690948873758316,-0.03222430497407913,0.10220176726579666,-0.012770513072609901,-0.10723014920949936,-0.09894443303346634],[-0.19193734228610992,-0.03933406248688698,0.0481816828250885,-0.05418360233306885,0.24956466257572174,-0.024861561134457588,0.11953911930322647,-0.23188547790050507],[0.22727403044700623,0.22993411123752594,0.13989847898483276,0.027022873982787132,-0.09339746832847595,-0.010972404852509499,-0.1228354200720787,0.08857929706573486],[-0.14289316534996033,0.12889063358306885,0.07614071667194366,-0.20281046628952026,0.16124849021434784,-0.04134996980428696,0.0824938490986824,-0.12227834016084671],[-0.05342767760157585,-0.1369323432445526,0.005527275614440441,-0.04321352392435074,0.1597764492034912,0.004555373452603817,-0.08600201457738876,0.05289807543158531],[-0.00972222164273262,-0.005262152291834354,0.08462248742580414,-0.07623717188835144,-0.044845450669527054,-0.07932496070861816,-0.08015408366918564,0.01636197417974472],[-0.016789304092526436,-0.21158044040203094,-0.057641491293907166,0.1516961008310318,0.07828748226165771,-0.035437896847724915,0.27480340003967285,-0.15219800174236298],[0.0012514031259343028,0.04027784615755081,-0.041147179901599884,0.04185307025909424,0.02783273532986641,0.04793323576450348,0.1418834775686264,-0.019552895799279213],[-0.21771961450576782,-0.012751434929668903,0.11488452553749084,-0.23013898730278015,0.04049400985240936,-0.11332639306783676,-0.03774535283446312,-0.04208401218056679],[-0.008700461126863956,0.07023968547582626,0.11032750457525253,-0.17910802364349365,0.22350789606571198,0.04588640108704567,0.24262607097625732,-0.3104628622531891],[0.19860483705997467,-0.025509551167488098,-0.08065567165613174,0.129411980509758,-0.08291573822498322,-0.022089069709181786,-0.0851365327835083,0.07935263961553574],[-0.14478576183319092,0.02319576032459736,-0.02930236980319023,-0.15975721180438995,0.3828256130218506,0.11627347022294998,0.1687726378440857,-0.28147053718566895],[0.10065388679504395,-0.02773311547935009,0.03242677450180054,0.08960160613059998,-0.21135026216506958,-0.017328796908259392,-0.08139178156852722,0.13014310598373413],[0.06160151958465576,-0.004622271750122309,-0.061575356870889664,0.1412346065044403,-0.08806487917900085,0.09427814930677414,0.06379256397485733,0.004153361544013023],[-0.04773012921214104,-0.11195696145296097,-0.15849438309669495,0.039908308535814285,-0.17990775406360626,0.08065004646778107,-0.22010646760463715,0.15488457679748535],[0.09251284599304199,0.09839965403079987,0.11683157831430435,-0.0047719161957502365,-0.16663488745689392,-0.05932626873254776,0.11769381910562515,-0.19324812293052673],[-0.0283469520509243,-0.1530589908361435,0.10711437463760376,-0.021681170910596848,0.14168956875801086,0.2728379964828491,0.07866040617227554,0.0028194717597216368],[-0.02314971201121807,-0.26946768164634705,0.0683765709400177,0.052569158375263214,-0.10637851804494858,-0.11304328590631485,-0.12489572912454605,0.2986721098423004],[-0.2838970124721527,0.12900720536708832,0.12403522431850433,-0.2669990658760071,0.26463526487350464,-0.202114537358284,0.20547930896282196,-0.3486400544643402],[0.07401381433010101,0.10034302622079849,0.056725721806287766,-0.3106096386909485,3.1093273719307035e-05,-0.05498126894235611,0.3733662962913513,-0.1223258376121521],[-0.2416299730539322,0.06135182827711105,0.13428421318531036,-0.276031494140625,0.3030568063259125,-0.17026802897453308,-0.1935652792453766,-0.15908211469650269],[0.04421195387840271,-0.13198235630989075,-0.08601351827383041,-0.056372858583927155,0.028719164431095123,0.020189406350255013,-0.2833521366119385,0.24711591005325317],[0.15333333611488342,0.10110177099704742,0.14321370422840118,-0.285604864358902,-0.11421913653612137,-0.14175578951835632,0.15327167510986328,-0.043415557593107224],[-0.16824105381965637,-0.0011776243336498737,0.16095244884490967,-0.06865765154361725,0.08506835997104645,-0.07821323722600937,-0.14408963918685913,-0.24593272805213928],[-0.02672034688293934,-0.15085211396217346,-0.04388434439897537,0.4017459750175476,-0.14204411208629608,0.07101358473300934,-0.09114012867212296,-0.27101290225982666],[0.05815616250038147,-0.11134879291057587,-0.05259224399924278,0.2768658697605133,-0.06012440472841263,0.1367550492286682,0.07066769152879715,-0.08596573770046234],[-0.0476420633494854,0.035041213035583496,-0.014127764850854874,0.01659764163196087,0.018318144604563713,-0.02376559190452099,-0.03330666571855545,0.06802858412265778],[0.02680390141904354,0.07724699378013611,-0.017575204372406006,0.10864119231700897,-0.04462650790810585,0.13049118220806122,-0.07777627557516098,-0.23124131560325623],[0.24955984950065613,-0.1624583899974823,0.050380367785692215,0.1920003443956375,-0.3711707293987274,-0.04339084401726723,0.23041510581970215,-0.06914205849170685],[0.08839888870716095,0.03184645622968674,-0.10246971249580383,0.2029958814382553,-0.038945138454437256,0.12256322056055069,-0.12318095564842224,-0.045933425426483154],[-0.012385256588459015,0.02794521115720272,-0.0020073624327778816,-0.15919682383537292,-0.014005073346197605,0.05148548260331154,0.24019983410835266,-0.03561190143227577],[-0.0037867818027734756,-0.05997225642204285,0.06627243757247925,-0.2181236296892166,-0.048917096108198166,-0.22618314623832703,0.09996923804283142,-0.007369670085608959],[-0.10147523134946823,0.008057021535933018,-0.023492710664868355,0.21340596675872803,0.10985200852155685,0.17597877979278564,0.027862919494509697,-0.2186345010995865],[-0.19226527214050293,-0.08204125612974167,-0.04295272007584572,0.12150692939758301,0.21019861102104187,0.16463571786880493,0.11019740998744965,-0.13469718396663666],[-0.020833691582083702,-0.19002842903137207,-0.08166136592626572,0.0755784884095192,-0.04254597797989845,0.0868765264749527,-0.07823869585990906,0.3076857924461365],[0.14107760787010193,0.15899106860160828,0.09654773026704788,-0.09599698334932327,-0.05489329621195793,-0.054849740117788315,-0.16600821912288666,0.10405151546001434],[-0.18264754116535187,-0.22311758995056152,-0.00547799002379179,0.1806521713733673,0.23709312081336975,0.10751675069332123,-0.15208056569099426,-0.18971632421016693],[0.19152942299842834,0.014116864651441574,0.15778854489326477,-0.07944519072771072,-0.27393290400505066,-0.07241240888834,0.19700808823108673,-0.1462491899728775],[-0.1355128139257431,0.0781974270939827,-0.08292696624994278,0.08920043706893921,0.08327654004096985,-0.12060443311929703,-0.2258974313735962,0.0375157855451107],[-0.12322019785642624,-0.10797934979200363,-0.047794777899980545,0.15572836995124817,0.12832242250442505,-0.030588602647185326,0.18015407025814056,-0.3303303122520447],[-0.2109789401292801,0.14623893797397614,0.02057829685509205,-0.17884336411952972,0.2003505676984787,0.049017924815416336,0.08741606026887894,0.03033176250755787],[-0.12179722636938095,-0.3031352460384369,0.14335882663726807,-0.2073269635438919,-0.0020277416333556175,-0.2669861614704132,-0.24551177024841309,-0.04059277102351189],[-0.14998260140419006,-0.11042375862598419,0.1770809441804886,-0.09509382396936417,0.03641919046640396,-0.22662736475467682,-0.03747576102614403,0.012115229852497578],[0.012419016100466251,0.02743106335401535,-0.01907270774245262,0.11336395144462585,0.07407370954751968,0.1778315007686615,0.13698448240756989,-0.04137039929628372],[0.008581923320889473,-0.06929479539394379,0.018244991078972816,0.3511897623538971,-0.29470008611679077,0.13671937584877014,0.10748833417892456,-0.20537492632865906],[-0.03220421448349953,-0.02617531456053257,-0.09907568246126175,0.1610976904630661,0.11234302073717117,0.008192815817892551,-0.18933342397212982,0.11184666305780411],[-0.16172254085540771,-0.031356003135442734,0.007765672635287046,0.030430641025304794,0.12495281547307968,0.04083086922764778,0.1499652862548828,-0.16064999997615814],[-0.04858444258570671,0.13761112093925476,0.13244833052158356,-0.0893196389079094,0.03619571030139923,-0.10287704318761826,0.19818682968616486,-0.29306045174598694],[-0.07265019416809082,0.2769775390625,-0.08705291897058487,-0.041359517723321915,0.2763681411743164,-0.1045818030834198,0.10356568545103073,0.08503301441669464],[0.06654369831085205,0.12353669852018356,-0.10338893532752991,-0.11959262192249298,0.2529822587966919,0.12688784301280975,-0.021153133362531662,0.1221277266740799],[-0.16099539399147034,-0.0034137147013098,-0.07456748187541962,-0.03316306695342064,0.11553157866001129,0.11222003400325775,-0.13242115080356598,-0.1432281881570816],[0.0696830227971077,0.14837493002414703,-0.008869717828929424,-0.022076569497585297,0.053983330726623535,-0.03720807284116745,0.02988901361823082,0.026329858228564262],[0.020875487476587296,-0.1827917844057083,0.02189541794359684,0.0016638207016512752,0.027997879311442375,-0.09297601133584976,-0.1246112808585167,0.11543121933937073],[0.13448801636695862,0.07663904130458832,-0.09541356563568115,-0.15633586049079895,-0.044080186635255814,-0.05075262859463692,-0.16974525153636932,0.3014155328273773],[0.07584846019744873,0.059952154755592346,0.16891877353191376,-0.24536259472370148,-0.08649499714374542,-0.08953922986984253,0.09177744388580322,-0.0923994705080986],[-0.19498246908187866,0.18719762563705444,0.22559593617916107,-0.3855145573616028,0.20808030664920807,-0.24498127400875092,0.22186414897441864,-0.19519326090812683],[0.045350637286901474,0.2126452624797821,0.00940017495304346,0.07109815627336502,-0.03774837777018547,-0.011019369587302208,-0.3340691328048706,0.15716512501239777],[-0.2714567482471466,-0.10640698671340942,0.08660934120416641,0.07362763583660126,0.07496844977140427,-0.2349228709936142,-0.19857846200466156,0.171900674700737],[-0.2057671695947647,0.0694374367594719,-0.07574243098497391,-0.05667455494403839,0.25652316212654114,-0.03782951459288597,-0.3176380395889282,-0.03781125321984291],[0.07726632058620453,-0.320807546377182,0.009087221696972847,0.10044869780540466,0.16690556704998016,0.15414057672023773,-0.1187501773238182,0.14492560923099518],[0.06168737635016441,-0.09283450990915298,-0.12042882293462753,0.2947379946708679,-0.19589191675186157,0.1573724001646042,-0.2412905991077423,0.08070895820856094],[-0.0412772037088871,0.04317322373390198,-0.11005986481904984,-0.017538748681545258,0.07570677995681763,0.06450637429952621,0.1408301144838333,0.12352979183197021],[0.05420880764722824,-0.17016930878162384,-0.22270093858242035,0.13124139606952667,-0.1547437608242035,0.12202738225460052,-0.14481669664382935,0.39515769481658936],[-0.09098239988088608,0.019646842032670975,-0.06094851717352867,-0.12667201459407806,0.22398033738136292,0.017100224271416664,-0.2125600129365921,0.2575364112854004],[-0.10737469792366028,-0.2355588972568512,-0.052352868020534515,0.2471066117286682,-0.2440495491027832,-0.056867364794015884,-0.19135308265686035,0.03821816295385361],[-0.3327016532421112,0.10139688849449158,0.04409044235944748,-0.3281683623790741,0.32223525643348694,-0.19685760140419006,0.19034890830516815,-0.19983886182308197],[-0.10521072894334793,0.19303828477859497,-0.04731959477066994,-0.13062982261180878,-0.266863614320755,-0.08606330305337906,0.13345199823379517,0.006776240188628435],[0.2115766853094101,-0.08345366269350052,0.12182750552892685,-0.0983290746808052,-0.2395913302898407,-0.17337290942668915,-0.04187960922718048,0.06424018740653992],[0.014234259724617004,-0.15576665103435516,0.1065826267004013,-0.2996217608451843,0.017160335555672646,0.006650165189057589,-0.026182113215327263,0.14712965488433838],[-0.16896267235279083,-0.07013565301895142,-0.041735947132110596,0.08491362631320953,0.14495499432086945,0.06025794520974159,0.0521455816924572,-0.01708686724305153],[0.056193623691797256,-0.04002458602190018,0.02223651483654976,0.09687140583992004,-0.06720194965600967,-0.04841751977801323,-0.2632828950881958,0.13673926889896393],[-0.16348911821842194,0.06380238384008408,-0.015327916480600834,0.21151474118232727,0.10099046677350998,0.1731884479522705,-0.019795697182416916,-0.13267670571804047],[-0.13707315921783447,-0.11020856350660324,0.015785494819283485,-0.147813618183136,0.23856723308563232,-0.1014033779501915,-0.25255662202835083,0.23715360462665558],[-0.29409894347190857,-0.13562443852424622,-0.12557674944400787,-0.03536978363990784,0.15333051979541779,0.1339680701494217,0.02490999549627304,0.04156479239463806],[0.03591812402009964,-0.12041015923023224,0.08452418446540833,-0.165191188454628,-0.25157612562179565,-0.08477026224136353,0.2150147408246994,-0.2480856329202652],[-0.062042951583862305,0.05434219539165497,0.1366805136203766,-0.1403622329235077,-0.2669887840747833,-0.20719099044799805,-0.23924247920513153,0.04131016507744789],[0.06596881151199341,0.13976940512657166,-0.0604790635406971,0.11954513937234879,-0.24703902006149292,-0.016077693551778793,-0.08746176958084106,0.15559843182563782],[-0.08179254829883575,-0.11353575438261032,-0.12976309657096863,0.1944049745798111,0.062019232660532,0.16990846395492554,0.03511017560958862,0.002087076660245657],[0.13067331910133362,-0.21301396191120148,-0.14498722553253174,0.1394018679857254,0.09677847474813461,-0.00921978335827589,0.1030949130654335,0.06751871109008789],[0.012713693082332611,-0.13450539112091064,-0.10279157757759094,0.28400400280952454,0.13669054210186005,0.1489706039428711,0.24383112788200378,-0.14875689148902893],[-0.07236071676015854,0.21132411062717438,0.02406170964241028,0.11054101586341858,0.014060615561902523,0.03537760674953461,0.13565783202648163,-0.009996481239795685],[0.20268550515174866,-0.005626169964671135,0.1615592986345291,-0.07701637595891953,-0.3493300676345825,-0.18628515303134918,0.10160253942012787,-0.10727089643478394],[-0.08329004049301147,-0.14859768748283386,-0.038645125925540924,0.2808736562728882,0.11672089993953705,0.18346843123435974,-0.06599173694849014,-0.17109908163547516],[-0.196085587143898,-0.10526259988546371,-0.17664141952991486,0.15756776928901672,0.16703452169895172,0.1734345704317093,-0.23599115014076233,0.28337711095809937],[-0.10641350597143173,-0.13291162252426147,0.08034195750951767,-0.08875666558742523,0.0337752141058445,-0.027324184775352478,-0.16315756738185883,-0.10417920351028442],[-0.05454139783978462,-0.05131949856877327,-0.01950676739215851,-0.0786566212773323,0.27053844928741455,0.1602565348148346,0.015915637835860252,0.009637193754315376],[0.05492283031344414,0.11600195616483688,0.004428590647876263,-0.05929718539118767,-0.11946891248226166,-0.06669171899557114,-0.13819241523742676,0.19144552946090698],[0.06729808449745178,-0.15239757299423218,-0.1068841740489006,0.05773176625370979,0.28352513909339905,0.04430433362722397,-0.1572735756635666,0.18996615707874298],[-0.019932975992560387,-0.3362119793891907,-0.04340032860636711,-0.008625977672636509,-0.02110271342098713,-0.05947545915842056,0.2855103313922882,0.054124440997838974],[-0.03545652702450752,0.008350386284291744,0.021361926570534706,0.08179690688848495,-0.13669323921203613,0.007345974445343018,0.30651041865348816,-0.3355218768119812],[-0.17774222791194916,-0.1854970008134842,0.0354267880320549,-0.17523989081382751,0.07655566930770874,-0.09435681998729706,-0.012240086682140827,-0.09300867468118668],[-0.06218210607767105,0.20164354145526886,-0.04672804847359657,0.13480420410633087,0.15256153047084808,0.0967104360461235,-0.02003188617527485,0.16834497451782227],[0.16329075396060944,-0.1379963755607605,0.00014001879026181996,-0.10811585187911987,-0.012003316543996334,-0.022591527551412582,0.24111638963222504,0.05936126038432121],[0.2623274326324463,-0.2071179896593094,-0.26349419355392456,0.29484274983406067,-0.09799604117870331,0.23664015531539917,0.24079999327659607,-0.14356164634227753],[0.13052810728549957,0.17561426758766174,0.1111202985048294,0.13121281564235687,-0.28219524025917053,-0.08592589199542999,0.04005942493677139,-0.22929765284061432],[0.15055060386657715,0.08208506554365158,0.18587049841880798,0.019738100469112396,-0.2887052297592163,-0.08606310933828354,-0.050777602940797806,-0.23360714316368103],[-0.1357237994670868,0.011649721302092075,-0.2852058708667755,0.30872753262519836,0.050575703382492065,-0.04251260682940483,0.044202130287885666,0.2238599807024002],[0.21627037227153778,-0.19420339167118073,-0.006664273329079151,0.07595507055521011,0.11548587679862976,0.1666867434978485,-0.18285821378231049,0.1751568466424942],[0.16386619210243225,-0.028706887736916542,0.06443055719137192,-0.12043842673301697,-0.16966885328292847,-0.18734745681285858,-0.21543093025684357,0.20136073231697083],[-0.08098888397216797,0.004169315565377474,-0.04621975123882294,-0.04141118749976158,0.20708312094211578,0.018657317385077477,-0.011801027692854404,-0.20167472958564758],[-0.01073406171053648,-0.11290308088064194,-0.1021803468465805,0.09410068392753601,-0.2516973912715912,-0.08334895968437195,-0.07667046785354614,-0.24035823345184326],[-0.24605493247509003,0.10908117890357971,-0.024037117138504982,-0.15587283670902252,0.14133909344673157,0.033291518688201904,0.35356515645980835,-0.21205061674118042],[-0.044786591082811356,-0.1439836621284485,0.1637374609708786,-0.25716632604599,-0.0794050395488739,-0.1952044814825058,-0.0791892483830452,-0.12492795288562775],[-0.15456177294254303,0.1327587515115738,0.0669650286436081,0.09221334755420685,-0.12825679779052734,-0.02857910841703415,-0.03562858700752258,-0.016102591529488564],[-0.08668060600757599,0.0621117502450943,0.015376156195998192,-0.08655675500631332,0.19420279562473297,0.011135723441839218,0.12584011256694794,-0.060220975428819656],[-0.014280120842158794,-0.0871875137090683,-0.12723971903324127,0.03744397684931755,0.1642407774925232,0.11236336082220078,0.20230095088481903,0.09995414316654205],[-0.04736379161477089,0.11407960206270218,0.0545867383480072,-0.08115775138139725,0.13087192177772522,0.059910040348768234,0.23134484887123108,-0.004719886463135481],[-0.2336825579404831,0.010492207482457161,-0.1654777228832245,-0.03115471825003624,0.41243118047714233,0.16753657162189484,-0.22928281128406525,0.163072407245636],[-0.10867646336555481,0.19490039348602295,-0.037058331072330475,0.0021136924624443054,0.03578275069594383,-0.04577542841434479,-0.1987428218126297,0.019601944833993912],[0.04675266146659851,-0.2494492083787918,0.055628061294555664,-0.21685928106307983,0.03494477644562721,-0.2098701000213623,-0.06164044886827469,0.19621562957763672],[-0.03108210302889347,-0.1188950464129448,-0.04846363887190819,0.020375311374664307,0.04829566180706024,0.03848240152001381,0.19550614058971405,-0.13316558301448822],[-0.006505003198981285,0.005962863564491272,-0.1341465413570404,0.07016272842884064,0.17972734570503235,0.08226121962070465,0.059141382575035095,-0.04815763980150223],[-0.02917722798883915,-0.06523893773555756,0.050262726843357086,0.056824591010808945,-0.06484328955411911,-0.002675618976354599,0.20311838388442993,-0.3656364679336548],[-0.011763135902583599,0.10399679839611053,-0.05042603984475136,0.15829424560070038,-0.14952054619789124,0.032132796943187714,0.22953294217586517,-0.2171628773212433],[0.06256058067083359,-0.23362046480178833,-0.17136934399604797,0.10191109776496887,-0.03783201426267624,0.25134801864624023,0.0007910631247796118,-0.2405369132757187],[-0.20579776167869568,-0.041279930621385574,-0.12179256230592728,-0.1745442897081375,0.18645408749580383,0.012932864017784595,0.07766793668270111,0.16267257928848267],[0.19275352358818054,-0.10237805545330048,-0.14895527064800262,0.18681691586971283,-0.16580989956855774,0.08161921054124832,0.16886958479881287,0.16945675015449524],[-0.20548340678215027,-0.04664858803153038,0.012492289766669273,0.05493948981165886,0.12919758260250092,0.06957720965147018,0.0014012468745931983,-0.24482852220535278],[-0.09122797101736069,-0.0028554676100611687,-0.13975895941257477,0.13287368416786194,0.1513454020023346,0.03212634474039078,-0.2770645022392273,0.20752649009227753],[-0.1485399305820465,0.2718448340892792,-0.0025588329881429672,0.0006864011520519853,-0.01280051190406084,-0.002877389080822468,-0.03894268721342087,-0.22266723215579987],[-0.1791900247335434,0.12467128783464432,0.08575425297021866,0.07434425503015518,0.07721056789159775,-0.09230422228574753,0.20695316791534424,-0.3372182548046112],[-0.03484746813774109,-0.12291847169399261,-0.10024465620517731,0.13430579006671906,0.18434597551822662,0.02720574475824833,-0.24975770711898804,0.015532211400568485],[0.07046575844287872,-0.0020766286179423332,0.10321518033742905,-0.0854790136218071,-0.07682178914546967,-0.1741763949394226,0.11512816697359085,-0.29048049449920654],[-0.2114754617214203,0.2208472639322281,-0.0022288556210696697,0.2570488452911377,0.0004391457187011838,0.09673003107309341,0.3131384253501892,-0.09811314940452576],[0.1326862871646881,0.06798200309276581,0.02461051195859909,-0.11679303646087646,-0.18250039219856262,-0.08008138835430145,-0.29305320978164673,0.2486819475889206],[0.1716204732656479,-0.21267476677894592,-0.11426704376935959,0.302877813577652,-0.04588127136230469,0.08008504658937454,0.03670063242316246,-0.16024036705493927],[-0.05275719612836838,0.11573848128318787,0.23270130157470703,-0.2010679841041565,0.1037469208240509,-0.021761663258075714,0.2532464265823364,-0.18671409785747528],[0.19671356678009033,-0.19654586911201477,0.12516865134239197,-0.16707515716552734,0.06408539414405823,0.001242562080733478,0.29536449909210205,-0.14210118353366852],[-0.03363749012351036,-0.2761513292789459,0.10276883095502853,0.2105388641357422,0.156197652220726,0.007728430442512035,-0.3249477744102478,0.17947852611541748],[-0.14691568911075592,-0.025376979261636734,0.12425494939088821,-0.19772930443286896,0.12637698650360107,-0.017846740782260895,0.25146833062171936,-0.25652122497558594],[-0.04774213209748268,-0.06262840330600739,0.08563453704118729,-0.08029044419527054,0.09391726553440094,-0.012413420714437962,0.0046107955276966095,-0.09520760178565979],[0.1591210812330246,-0.03582974150776863,-0.15389809012413025,0.21496786177158356,-0.15411312878131866,0.08958031982183456,0.13431891798973083,0.19054917991161346],[-0.12330662459135056,0.11442379653453827,-0.03239280730485916,-0.13828282058238983,-0.0212141964584589,-0.13788549602031708,-0.0839814692735672,0.055589478462934494],[-0.038861583918333054,-0.1195492148399353,0.06262512505054474,-0.1644924432039261,0.07191745936870575,-0.16640913486480713,-0.23206932842731476,0.057280343025922775],[-0.024132326245307922,0.04665280878543854,-0.06129376217722893,0.125553160905838,-0.060823120176792145,0.056320469826459885,-0.021501757204532623,0.10758578777313232],[0.06349707394838333,0.1664288341999054,0.036392197012901306,-0.10823507606983185,-0.13077156245708466,-0.06956695020198822,-0.12042516469955444,0.17771753668785095],[0.015190208330750465,-0.0005885954014956951,0.08119427412748337,-0.1357329934835434,-0.04309895262122154,-0.132517471909523,0.12598498165607452,-8.292795973829925e-05],[0.16638757288455963,-0.010720442980527878,0.11865641921758652,-0.023190287873148918,-0.17665605247020721,0.020690755918622017,0.15863630175590515,-0.2348150759935379],[-0.2391861081123352,-0.2683561146259308,-0.1862681806087494,0.2177722305059433,-0.06994331628084183,0.1453990787267685,-0.03518204763531685,0.011875868774950504],[0.08669479191303253,0.18591314554214478,-0.08051395416259766,0.17146287858486176,0.0007891025743447244,0.14395485818386078,-0.039025940001010895,0.05335293710231781],[0.33168402314186096,0.06913039833307266,-0.08661660552024841,0.2003893107175827,-0.3562999367713928,0.08306947350502014,0.20343729853630066,0.16336287558078766],[-0.05839981138706207,0.14297722280025482,0.17131082713603973,-0.2330489307641983,0.0010852109408006072,-0.19024039804935455,-0.05170974135398865,-0.14680767059326172],[0.022288303822278976,0.17773206532001495,0.057202789932489395,-0.1639757603406906,-0.02723618596792221,-0.06877503544092178,0.20210514962673187,0.10447598248720169],[-0.15626490116119385,-0.011903549544513226,0.0009333240450359881,-0.10433345288038254,0.1315016746520996,0.0023505007848143578,-0.2613430619239807,-0.04028385877609253],[-0.05992210656404495,0.01875201426446438,-0.01187875960022211,0.11112518608570099,0.11230851709842682,0.08435411751270294,-0.03522111475467682,0.15632660686969757],[0.15793946385383606,0.02310764044523239,0.0330057367682457,0.14779122173786163,-0.2007327824831009,0.02922203205525875,-0.03236174210906029,0.10177380591630936],[0.110721156001091,-0.0013066186802461743,-0.10600759834051132,-0.004099524579942226,0.13996316492557526,0.05512107536196709,-0.1100560873746872,0.2628995180130005],[-0.06375894695520401,-0.13915123045444489,-0.05115635693073273,0.07389962673187256,0.11832503229379654,0.05992584675550461,-0.08008109033107758,0.046694185584783554],[-0.05260222777724266,-0.14793793857097626,-0.11828458309173584,-0.2178521603345871,0.04789116978645325,0.07351121306419373,-0.0817481279373169,-0.1389482617378235],[-0.0997251644730568,-0.12009980529546738,-0.07719079405069351,0.0656432956457138,-0.003793545765802264,0.017763571813702583,0.07058240473270416,-0.13445571064949036],[-0.19668366014957428,-0.11372467130422592,0.22697234153747559,-0.05239569768309593,0.07912629842758179,-0.08565942943096161,-0.23019635677337646,-0.002843041205778718],[0.03877042979001999,0.004104848951101303,0.060196224600076675,-0.10084804147481918,-0.10224264115095139,0.01774469204246998,0.034605320543050766,0.13208672404289246],[0.03391244262456894,0.06610793620347977,-0.06441657990217209,-0.14694684743881226,0.14707712829113007,0.2076943963766098,0.18349555134773254,-0.1896834671497345],[-0.03692853823304176,0.013858839869499207,0.04261663183569908,-0.013985343277454376,0.16524773836135864,0.034020278602838516,-0.058259058743715286,-0.19517743587493896],[0.1568676382303238,-0.10101767629384995,0.09248020499944687,0.128239706158638,0.26507291197776794,-0.16368530690670013,0.015598831698298454,-0.08620660752058029],[0.03503822535276413,-0.13283821940422058,-0.17502059042453766,0.44807547330856323,0.03169185668230057,0.2173788696527481,0.18280580639839172,-0.07545363157987595],[-0.005131916143000126,-0.0676303580403328,-0.12992028892040253,-0.07192825525999069,0.09689471870660782,-0.005315639078617096,0.1820831298828125,-0.10835948586463928],[-0.19458895921707153,-0.04457109421491623,0.14946720004081726,-0.17270176112651825,-0.19372066855430603,0.17268788814544678,0.01705298013985157,-0.2656986713409424],[0.1734382063150406,0.010644331574440002,0.023691780865192413,0.11791079491376877,-0.189560204744339,-0.046077899634838104,-0.026908760890364647,0.07540501654148102],[-0.0655292272567749,0.07675439119338989,-0.12263419479131699,0.1404334008693695,-0.2282768338918686,-0.08050238341093063,0.1128610372543335,-0.24282725155353546],[-0.25015637278556824,0.2653707265853882,-0.014279698021709919,-0.17383213341236115,0.22065265476703644,-0.05695105344057083,-0.24427419900894165,0.07887168228626251],[-0.22050675749778748,-0.26183512806892395,-0.13296395540237427,0.2268729954957962,-0.22037293016910553,0.01136188767850399,-0.11202695965766907,-0.16967730224132538],[0.05775514990091324,0.14767813682556152,0.14398963749408722,-0.13777610659599304,-0.05479174479842186,-0.06393700838088989,-0.023565223440527916,-0.005978654604405165],[-0.054746635258197784,-0.09639610350131989,-0.006570231169462204,-0.09380016475915909,0.11254239082336426,0.1292080134153366,0.25790733098983765,-0.2888897955417633],[0.24154210090637207,0.016662251204252243,0.06138753890991211,-0.11022643744945526,-0.23674631118774414,-0.11772339046001434,0.027462715283036232,0.11273954063653946],[-0.24567511677742004,-0.08018861711025238,-0.07603099942207336,0.1190696507692337,0.1602223813533783,0.021481366828083992,-0.34275946021080017,-0.037892524152994156],[0.2695072293281555,-0.040611088275909424,-0.021932655945420265,0.1168113648891449,0.12715978920459747,0.21382221579551697,-0.07042288035154343,-0.11599390208721161],[-0.12813623249530792,-0.21338780224323273,0.1519678831100464,-0.18231438100337982,0.20777347683906555,-0.0503506138920784,-0.21607889235019684,-0.13542313873767853],[0.13608159124851227,0.13087835907936096,-0.02552068792283535,-0.029010416939854622,-0.25463294982910156,-0.08299615979194641,-0.14043645560741425,0.3515528440475464],[0.12354627251625061,0.19872742891311646,0.1568705141544342,-0.07187460362911224,-0.2127390205860138,-0.019957367330789566,0.33059635758399963,-0.1509072631597519],[-0.28594353795051575,0.27033233642578125,-0.030726268887519836,-0.08774025738239288,0.2410694658756256,0.09525074809789658,-0.06106945872306824,0.047368984669446945],[-0.12074975669384003,0.0208287313580513,-0.0827701985836029,0.20568418502807617,0.054493144154548645,0.1594323217868805,-0.07408798485994339,-0.005945533514022827],[0.05496085062623024,-0.012326166033744812,0.10893335193395615,-0.21393948793411255,-0.06706064939498901,-0.0951228141784668,-0.040764689445495605,0.29506441950798035],[-0.3188391625881195,0.24797794222831726,-0.0031637479551136494,-0.03789563849568367,0.3237752914428711,0.033628933131694794,0.030625710263848305,0.01600293256342411],[0.028606178238987923,0.021537713706493378,0.020141568034887314,-0.07626507431268692,-0.04377729818224907,-0.01839589513838291,0.01831982284784317,0.009455396793782711],[-0.07897135615348816,0.06356516480445862,0.0955723449587822,0.09178254008293152,0.024877706542611122,-0.07048498839139938,-0.13872140645980835,-0.18943439424037933],[-0.07620958983898163,0.05203869938850403,0.2228623628616333,0.10208145529031754,0.09219066053628922,-0.03693114221096039,0.22946467995643616,-0.17390210926532745],[0.08387819677591324,-0.10191050171852112,0.10564438253641129,0.16842903196811676,-0.19718922674655914,0.016623996198177338,0.0962962955236435,-0.2918068766593933],[0.31286633014678955,-0.09568554162979126,0.184171661734581,0.050714246928691864,-0.06140174716711044,-0.21010039746761322,0.08654570579528809,-0.10324663668870926],[0.12226371467113495,-0.07564260810613632,-0.07017572969198227,0.08313263952732086,-0.1724914163351059,-0.03518688678741455,-0.29433128237724304,0.3037615716457367],[0.16689559817314148,0.13742563128471375,0.053956665098667145,0.12521663308143616,-0.28508827090263367,0.04100186750292778,-0.12106876820325851,0.14413726329803467],[-0.04638996347784996,0.191045880317688,0.05383468419313431,-0.10568408668041229,0.018214499577879906,-0.09390590339899063,0.14704065024852753,-0.2309969663619995],[-0.006037761457264423,0.18772761523723602,0.08052856475114822,-0.16237576305866241,0.16976329684257507,-0.022194357588887215,0.11125561594963074,-0.05934372544288635],[0.2810041010379791,-0.18396447598934174,0.05226200446486473,0.04608157277107239,-0.40536126494407654,-0.04061635583639145,-0.006039716303348541,-0.034965213388204575],[0.04138718917965889,-0.1812421828508377,-0.23215937614440918,0.3088361918926239,-0.032615192234516144,0.10621118545532227,0.22353264689445496,0.0985528826713562],[0.07078065723180771,-0.014481364749372005,0.03936570882797241,-0.2125846892595291,0.010209075175225735,-0.0696936547756195,0.04637781158089638,0.029457101598381996],[0.01150842197239399,0.01662837713956833,0.05170772597193718,-0.1177966296672821,0.18881338834762573,-0.0935460552573204,0.1103513315320015,-0.13221997022628784],[-0.20773138105869293,0.04551462084054947,-0.01987336203455925,-0.05697878450155258,0.12758615612983704,0.03152894228696823,-0.13698440790176392,0.1717333197593689],[-0.03353571519255638,-0.11787690222263336,0.025762028992176056,0.1830296814441681,-0.02811935544013977,-0.02241923287510872,-0.2509438395500183,-0.05468573421239853],[0.2543896436691284,0.1354442834854126,-0.026546228677034378,0.15243291854858398,-0.34296107292175293,0.01124406699091196,0.04952375590801239,0.2945236563682556],[0.05575157329440117,0.25029993057250977,0.039909906685352325,0.17955772578716278,-0.023893313482403755,-0.004139013588428497,-0.07265876233577728,0.00691280048340559],[0.057363782078027725,0.06252249330282211,-0.0734722688794136,0.2813430428504944,-0.0856909230351448,0.19494473934173584,-0.056891828775405884,-0.21954505145549774],[0.06885886937379837,0.06342894583940506,0.013384096324443817,-0.07014010101556778,-0.15949881076812744,-0.001770639093592763,0.3621647357940674,-0.15024998784065247],[-0.046072617173194885,0.2298324853181839,0.03374811261892319,-0.28079405426979065,0.12473198026418686,-0.11482942849397659,0.1351340115070343,0.19008338451385498],[-0.11287108808755875,-0.019456492736935616,0.00467791547998786,-0.14605535566806793,-0.18980751931667328,-0.16604377329349518,-0.017988745123147964,0.04052295908331871],[0.2801361680030823,0.005506167653948069,-0.1324230432510376,0.036267753690481186,-0.14673882722854614,0.08151426166296005,0.05981878191232681,0.3544926345348358],[-0.23215064406394958,0.2048085629940033,-0.03397699445486069,-0.15648123621940613,0.11359775811433792,0.009793977253139019,-0.043601036071777344,-0.18654930591583252],[-0.07514165341854095,-0.2121860682964325,0.03818752244114876,0.26714715361595154,-0.31655511260032654,0.24399517476558685,-0.2701629400253296,-0.11325564235448837],[-0.21696139872074127,0.04034457728266716,-0.06164726987481117,0.07261339575052261,0.22123827040195465,0.008052172139286995,0.15150189399719238,-0.13664624094963074],[0.01706036366522312,-0.15642599761486053,-0.06478428095579147,-0.10772401839494705,0.10428908467292786,-0.014477758668363094,0.10226605087518692,-0.023573454469442368],[0.006500585936009884,0.1495458334684372,0.108114093542099,-0.08139297366142273,-0.0807209238409996,-0.1360403150320053,-0.16248200833797455,0.02514525316655636],[-0.1214638352394104,-0.03969600796699524,0.02598658949136734,0.031151466071605682,0.02901483327150345,0.06006551906466484,0.17335627973079681,-0.2844047248363495],[0.19168998301029205,-0.09969580173492432,-0.038515377789735794,0.037317611277103424,-0.3002732992172241,-0.011223290115594864,-0.17150048911571503,0.1652984619140625],[0.23541805148124695,-0.26099643111228943,0.19561956822872162,-0.049292441457509995,0.1068304181098938,0.09960522502660751,0.0774378851056099,-0.1993493139743805],[-0.06153927743434906,-0.0810922309756279,0.015763187780976295,0.10629841685295105,-0.004572890233248472,0.04711556062102318,0.1600259691476822,-0.23860010504722595],[0.10573938488960266,-0.05863719806075096,0.057855479419231415,-0.018440382555127144,-0.09427117556333542,0.11507324129343033,-0.2979239523410797,-0.018721360713243484],[-0.1676318645477295,0.02373342216014862,-0.2616289556026459,0.11839330196380615,0.18089914321899414,0.23698948323726654,-0.006457706913352013,0.18830156326293945],[-0.11786262691020966,0.20666444301605225,0.056353867053985596,-0.14555951952934265,-0.0038359020836651325,-0.007056958042085171,0.09844149649143219,0.06782310456037521],[-0.06133618205785751,-0.13124588131904602,-0.19559992849826813,0.018729906529188156,0.22091597318649292,0.17452505230903625,0.2580002248287201,0.1450122892856598],[-0.19834774732589722,0.052733033895492554,0.015846796333789825,-0.06196001544594765,0.1146659180521965,0.03422550857067108,-0.2878704071044922,0.14317502081394196],[-0.1488114893436432,0.12183249741792679,0.026440339162945747,-0.10532975196838379,0.12607349455356598,0.025892747566103935,0.11857274919748306,-0.09216707944869995],[-0.062207095324993134,0.058225199580192566,0.07957898825407028,-0.09459695965051651,0.02431313507258892,-0.0055220481008291245,0.1742989718914032,-0.09863542020320892],[-0.0835849791765213,0.1120385229587555,-0.05403340980410576,0.017370035871863365,-0.05311897024512291,-0.06697991490364075,-0.3191290497779846,0.11548963934183121],[0.28455883264541626,-0.09039805084466934,-0.112394779920578,0.2755647897720337,-0.3267458379268646,0.11126257479190826,0.07767900079488754,0.13999797403812408],[0.23521341383457184,0.25233110785484314,-0.07058246433734894,0.05033951625227928,-0.14631149172782898,0.06542594730854034,0.028882242739200592,-0.06567863374948502],[-0.003911865875124931,0.19221387803554535,-0.047247570008039474,0.05174485594034195,0.2512143850326538,0.19772297143936157,0.06231788173317909,0.17357930541038513],[-0.14119386672973633,-0.09230739623308182,0.15513011813163757,0.08481615781784058,-0.09859240055084229,-0.19940321147441864,-0.330660343170166,-0.23536057770252228],[-0.19432833790779114,-0.14568889141082764,-0.04914397373795509,0.016564780846238136,-0.18940754234790802,-0.06496834754943848,-0.21793417632579803,-0.01933782920241356],[-0.07647282630205154,-0.211232528090477,-0.019004758447408676,0.025546103715896606,0.09994712471961975,0.061456795781850815,-0.07370460778474808,-0.18106745183467865],[-0.05859266594052315,-0.01529755350202322,0.20032164454460144,-0.09457527101039886,-0.10964702814817429,-0.09422851353883743,0.0350516140460968,-0.3898477554321289],[-0.029928678646683693,0.05906512588262558,0.17549313604831696,-0.06304943561553955,-0.18966078758239746,-0.10156269371509552,-0.07143384218215942,-0.12448534369468689],[0.036508709192276,-0.1516413390636444,-0.045216381549835205,-0.03418039530515671,0.11186670511960983,0.14687834680080414,-0.09540418535470963,0.3216383755207062],[0.26758599281311035,0.0817839577794075,-0.029166826978325844,0.20204049348831177,-0.23661334812641144,0.10271250456571579,0.010673806071281433,0.15436315536499023],[-0.23731085658073425,-0.055949609726667404,-0.06342747062444687,-0.06991128623485565,0.3353305160999298,0.12189049273729324,-0.09565969556570053,-0.08898356556892395],[0.18269433081150055,-0.2027807980775833,-0.18349561095237732,-0.030664773657917976,-0.03707895055413246,0.12270373106002808,0.02749696560204029,0.2040509581565857],[-0.1981017142534256,0.058287668973207474,-0.015531939454376698,-0.22162795066833496,0.19080892205238342,-0.05719756335020065,0.014341001398861408,0.22550813853740692],[0.29261624813079834,-0.2548806369304657,0.027172645553946495,-0.11445128172636032,-0.29508572816848755,-0.11799925565719604,-0.17216573655605316,0.12518033385276794],[-0.11793383210897446,-0.09629286825656891,-0.08987832814455032,0.05461545288562775,-0.16438652575016022,0.14965808391571045,-0.16058363020420074,0.08519405871629715],[-0.09029405564069748,0.1923617273569107,0.33211076259613037,-0.30266404151916504,0.22431789338588715,0.03659205138683319,-0.22375361621379852,0.0064613716676831245],[0.17270857095718384,-0.22358113527297974,0.12125954777002335,-0.11945543438196182,0.27585405111312866,-0.2247951626777649,0.14743134379386902,0.0009700673981569707],[0.15969045460224152,0.1239592432975769,0.03111625835299492,0.14336204528808594,0.0037228912115097046,0.008945192210376263,0.19306674599647522,0.18166828155517578],[0.02856992743909359,-0.09604517370462418,0.03129757568240166,0.12904320657253265,0.06702744215726852,0.2087819129228592,0.19396047294139862,-0.1908443719148636],[0.1101880669593811,0.03852173686027527,-0.05003645643591881,-0.17215496301651,0.009711709804832935,-0.15511924028396606,-0.09415315091609955,0.1002289205789566],[0.2164931744337082,0.20286643505096436,0.20013855397701263,-0.1506684571504593,-0.1451864093542099,-0.06221133470535278,-0.14243842661380768,-0.0579134039580822],[0.10992264747619629,-0.0035627447068691254,0.06189451739192009,-0.16833636164665222,0.13561221957206726,-0.12588107585906982,-0.07441747933626175,0.0873546227812767],[-0.08707063645124435,-0.021768944337964058,0.11477679759263992,-0.07953803986310959,-0.28408995270729065,-0.027382267639040947,-0.07668978720903397,-0.02658037841320038],[-0.08195734024047852,0.007270005531609058,0.05409920960664749,-0.18263517320156097,0.03927060589194298,-0.06832300871610641,0.007076452020555735,-0.056567225605249405],[-0.09491711854934692,0.029746243730187416,-0.008506938815116882,0.20137494802474976,-0.16392222046852112,-0.07828917354345322,-0.003346026409417391,-0.19669318199157715],[0.15644270181655884,-0.01888258568942547,-0.10169091820716858,-0.03459008410573006,-0.18431797623634338,0.14676910638809204,-0.27163803577423096,0.31887954473495483],[-0.10660618543624878,0.17005765438079834,0.09433083236217499,0.10543470084667206,0.019160056486725807,0.040426529943943024,-0.10202606767416,-0.16852378845214844],[-0.1257709264755249,-0.14561641216278076,-0.23569658398628235,0.09599363058805466,0.3163367509841919,0.35245925188064575,0.2464328110218048,-0.2108449786901474],[0.19729472696781158,0.14448046684265137,0.12189999967813492,0.10612988471984863,0.11695000529289246,0.04408007115125656,0.31056082248687744,0.01531432569026947],[-0.3572540879249573,-0.03261961415410042,-0.33613675832748413,0.1531754434108734,-0.027712946757674217,0.1224353238940239,0.2631447911262512,-0.14153167605400085],[0.04179494455456734,0.07996369898319244,-0.0392041951417923,0.11157546192407608,-0.28980910778045654,-0.026010187342762947,-0.2546160817146301,0.25026530027389526],[0.21130800247192383,-0.015541241504251957,-0.029537077993154526,0.1433606743812561,-0.14401787519454956,0.059351369738578796,0.1972537487745285,-0.05282214283943176],[0.1982804387807846,0.21458925306797028,-0.15524519979953766,-0.15144139528274536,0.06706023961305618,0.17765061557292938,0.06639691442251205,0.31243982911109924],[0.015224713832139969,0.12770411372184753,-0.013262559659779072,-0.1582358330488205,0.12317553907632828,-0.02321135625243187,0.2302694022655487,0.24200069904327393],[0.1124395951628685,-0.11633242666721344,-0.11207400262355804,0.02319788560271263,0.04701342061161995,0.08929990977048874,0.16227924823760986,0.3249099850654602],[-0.1283726543188095,0.056195881217718124,-0.03888260945677757,-0.1381450742483139,0.1817629337310791,0.14003680646419525,-0.22000940144062042,-0.0475531741976738],[0.10047844797372818,-0.0014784781960770488,0.015057014301419258,0.06471766531467438,-0.08058122545480728,0.026597587391734123,-0.15313291549682617,0.05600864812731743],[0.010086435824632645,-0.0007024430087767541,-0.07842543721199036,-0.08478672057390213,0.2100449800491333,0.06873742491006851,0.16272397339344025,0.2449743151664734],[-0.0039646620862185955,-0.15594719350337982,-0.15604999661445618,0.36763831973075867,0.02613666281104088,0.24157339334487915,-0.023011935874819756,0.1467163860797882],[0.23037320375442505,-0.05353483557701111,0.10852887481451035,-0.18821649253368378,-0.32991477847099304,-0.25478896498680115,-0.06998564302921295,-0.13983434438705444],[0.15274131298065186,-0.19519861042499542,-0.17130576074123383,0.07758816331624985,0.0881725549697876,0.13079465925693512,-0.05404791980981827,0.32311978936195374],[0.0817255973815918,0.10249833017587662,0.18395894765853882,-0.2775459587574005,-0.1207992434501648,-0.21046411991119385,0.09694357961416245,0.08713588863611221],[-0.20767967402935028,-0.15929560363292694,0.10382392257452011,-0.12285182625055313,-0.2039184719324112,-0.2969234883785248,-0.24933581054210663,-0.12400269508361816],[0.07104936987161636,0.16796231269836426,-0.10691004246473312,-0.09581610560417175,-0.028529400005936623,0.1022614911198616,0.08948764950037003,-0.0677042007446289],[0.093778096139431,0.07538828998804092,0.0190703347325325,0.14499928057193756,0.0379641130566597,0.10495254397392273,0.330204576253891,-0.02919871173799038],[-0.18860779702663422,-0.046988170593976974,0.04419087618589401,-0.1208360493183136,0.2605745196342468,-0.030562197789549828,0.14639431238174438,-0.13860376179218292],[-0.0060913716442883015,-0.012959165498614311,-0.0432065911591053,-0.11639384925365448,0.044867802411317825,-0.027978388592600822,0.0912880077958107,0.04148685559630394],[0.2488163858652115,-0.2237977683544159,-0.13676992058753967,-0.10156527161598206,-0.2600793242454529,-0.14869359135627747,0.06088585779070854,-0.18114107847213745],[-0.023729218170046806,-0.1134020984172821,0.10388045012950897,0.1355510950088501,-0.1689176857471466,-0.17515398561954498,-0.14307881891727448,-0.24515636265277863],[-0.0787297859787941,0.1092873215675354,-0.0904306173324585,0.0601099357008934,-0.10740210860967636,0.04766812175512314,-0.20831076800823212,0.1935933530330658],[0.16746237874031067,-0.0080148009583354,0.05740853026509285,-0.12545055150985718,0.09688376635313034,-0.032429397106170654,0.0625353679060936,-0.04805494472384453],[0.16470016539096832,-0.10645294934511185,-0.05775509029626846,0.1454811841249466,-0.11610078811645508,0.04183114320039749,-0.11989258974790573,0.08138874173164368],[-0.2063152939081192,-0.1929733157157898,0.07701147347688675,-0.26090601086616516,0.13385573029518127,-0.1977117955684662,-0.1705266535282135,-0.019215654581785202],[-0.014978732913732529,0.12354278564453125,0.012021251022815704,-0.21610938012599945,0.08607368171215057,-0.07828618586063385,-0.1621079295873642,0.2431756556034088],[-0.17065714299678802,0.09029486775398254,-0.10126186907291412,-0.08156342059373856,0.23349809646606445,-0.02894514612853527,0.22605670988559723,0.06365368515253067],[0.0071568419225513935,0.04809560626745224,0.05925702676177025,-0.07429011166095734,-0.09957427531480789,-0.055445898324251175,-0.037335652858018875,-0.060118455439805984],[-0.12857769429683685,-0.13074515759944916,-0.039405833929777145,0.12192679196596146,-0.002840357832610607,0.027646485716104507,-0.05562987178564072,0.14042825996875763],[-0.09831362217664719,-0.17732666432857513,-0.03242143616080284,0.22695554792881012,0.06645174324512482,0.06830157339572906,0.02023162692785263,0.09071680903434753],[0.04553048685193062,0.0894722267985344,0.14097218215465546,-0.029556242749094963,0.020049607381224632,-0.14753609895706177,0.08188080042600632,-0.15623588860034943],[0.03647041320800781,0.09640711545944214,0.05513259023427963,-0.06089988723397255,0.03109532967209816,-0.006876417901366949,-0.01833515614271164,-0.05605488270521164],[-0.08951842039823532,0.22173498570919037,-0.22422705590724945,-0.2029448300600052,0.2874816358089447,0.09923910349607468,0.21314014494419098,0.21303875744342804],[0.02422206662595272,-0.10356500744819641,-0.057078950107097626,-0.04451454058289528,0.11675302684307098,1.4334284060169011e-05,0.013588710688054562,0.15814465284347534],[-0.11378632485866547,0.025414537638425827,-0.1358836144208908,-0.20583531260490417,0.27578282356262207,-0.029966242611408234,-0.07034546136856079,0.18063989281654358],[-0.03331293910741806,-0.031101839616894722,-0.13261446356773376,-0.23216551542282104,0.3555631637573242,-0.031490668654441833,-0.20059938728809357,0.2284572571516037],[-0.1027061864733696,-0.023731835186481476,-0.15104222297668457,0.08035758882761002,-0.04970155656337738,-0.13167685270309448,-0.1944013386964798,0.20740187168121338],[0.10283663868904114,0.014996500685811043,-0.08365418016910553,0.07011191546916962,-0.060660358518362045,0.08707449585199356,-0.06938619911670685,0.2105274647474289],[0.030243385583162308,0.09783922135829926,-0.0022412631660699844,-0.2443387359380722,0.03815656155347824,0.018142251297831535,0.18655967712402344,-0.00042361783562228084],[-0.18155449628829956,0.10294122993946075,0.06916967779397964,-0.3201538920402527,0.22808778285980225,-0.17337018251419067,0.26049312949180603,-0.15594802796840668],[0.31475600600242615,-0.09431242197751999,-0.05404786020517349,0.03680216148495674,0.12301904708147049,0.27287423610687256,0.03327137231826782,-0.013935873284935951],[-0.010034571401774883,-0.17997443675994873,-0.018563834950327873,0.21012301743030548,0.16139326989650726,0.04654376581311226,-0.18141937255859375,-0.027551952749490738],[-0.0581301748752594,-0.03607622906565666,0.043738044798374176,-0.19768382608890533,0.17050473392009735,-0.12302659451961517,-0.1446610987186432,0.22456809878349304],[-0.1662970334291458,0.008337575010955334,-0.09322844445705414,0.12305041402578354,0.18260422348976135,0.1500622183084488,-0.19117456674575806,0.1386767327785492],[0.21822407841682434,-0.12655530869960785,0.22093017399311066,-0.06618012487888336,-0.2580205500125885,-0.2108631134033203,-0.2203322798013687,0.202370285987854],[0.21319220960140228,0.024911586195230484,-0.07206723839044571,0.24013371765613556,-0.11925126612186432,0.16192418336868286,-0.024182520806789398,0.16942857205867767],[0.053164925426244736,0.007487081922590733,-0.0829700157046318,0.23737162351608276,0.00546776968985796,-0.01274172030389309,0.0624396838247776,0.03928535059094429],[0.1455281376838684,-0.1905653178691864,-0.05925917997956276,-0.21919527649879456,0.04887563735246658,0.05518938601016998,-0.012031885795295238,0.3688960671424866],[0.19045552611351013,-0.17610080540180206,0.10860346257686615,-0.042089611291885376,-0.25403955578804016,-0.16604328155517578,-0.092194564640522,-0.07582215964794159],[-0.09599943459033966,-0.15362238883972168,-0.018130244687199593,0.017158444970846176,-0.03703472763299942,-0.2325674593448639,-0.25772878527641296,0.005493714939802885],[0.0996781513094902,-0.11432231217622757,-0.1370805948972702,-0.05226296931505203,-0.22404475510120392,0.05986356362700462,-0.14339762926101685,0.05587971583008766],[-0.026279529556632042,0.11098813265562057,-0.028463637456297874,0.0569026805460453,-0.24699118733406067,0.24816948175430298,0.24428686499595642,-0.07587762922048569],[0.13393740355968475,0.12030355632305145,0.05414019525051117,0.0715775340795517,-0.3250789940357208,-0.0784265473484993,-0.02201506868004799,0.1916460394859314],[0.10946774482727051,-0.16560333967208862,0.14614500105381012,-0.110862135887146,0.04637047275900841,-0.13247458636760712,-0.21174222230911255,-0.10650819540023804],[-0.0669577345252037,0.16162309050559998,0.09898313879966736,-0.2850019037723541,0.18433968722820282,-0.07712372392416,0.06469081342220306,-0.07493352890014648],[-0.11277732253074646,-0.040743790566921234,0.05142431706190109,0.02428799867630005,0.0689946785569191,-0.037011537700891495,0.10463432222604752,-0.17090564966201782],[-0.21693381667137146,0.002080187201499939,-0.05343210697174072,-0.24506889283657074,0.13686200976371765,0.0002700088080018759,0.2932974100112915,-0.05662255361676216],[-6.135180592536926e-05,-0.11831942945718765,-0.14013706147670746,0.18382294476032257,0.023840660229325294,0.17270416021347046,-0.028426291421055794,-0.004192392807453871],[0.09085364639759064,0.20608189702033997,0.0628150999546051,0.04501606523990631,-0.1471371054649353,-0.053391166031360626,-0.04581567645072937,0.023409711197018623],[-0.038493622094392776,0.04147188365459442,0.002165587153285742,0.016512377187609673,-0.031445249915122986,0.08347216248512268,-0.1958257257938385,-0.014947189949452877],[-0.09026291966438293,-0.17114336788654327,-0.0630609542131424,0.23541846871376038,0.24762052297592163,0.13264866173267365,-0.08095397800207138,-0.21063144505023956],[-0.02532634511590004,0.11804185062646866,0.04877118021249771,-0.157271146774292,0.07992798089981079,-0.10057312995195389,-0.03161660581827164,0.0014782773796468973],[0.025112541392445564,-0.2064698338508606,0.019380873069167137,0.1713520884513855,0.03527846187353134,-0.05250898376107216,-0.36997106671333313,0.14371678233146667],[-0.02880413830280304,0.1610165685415268,0.15686823427677155,-0.11300309747457504,0.11636441200971603,-0.10057071596384048,-0.24539437890052795,-0.05167821794748306],[0.016952885314822197,0.040012773126363754,-0.041762709617614746,0.2447366565465927,-0.06916191428899765,0.026454055681824684,-0.30622586607933044,0.1444653570652008],[-0.054609909653663635,0.18522004783153534,0.05623144656419754,-0.09613393247127533,0.22408045828342438,-0.042343541979789734,-0.15870828926563263,-0.12916362285614014],[-0.17216190695762634,-0.1357700526714325,-0.0503469817340374,0.12483491748571396,0.28754451870918274,0.159885972738266,0.23464661836624146,-0.2953020930290222],[0.24538767337799072,-0.2490827888250351,0.1610550731420517,0.1566830277442932,-0.0734764114022255,0.0972486212849617,-0.014676986262202263,-0.17917568981647491],[0.257667601108551,-0.1188298761844635,-0.04603000357747078,0.12593890726566315,-0.1481124311685562,-0.010235542431473732,-0.17116309702396393,0.26712489128112793],[0.06282200664281845,0.04047270119190216,-0.01903601922094822,-0.06339242309331894,-0.041549164801836014,-0.045591242611408234,0.09980706870555878,0.07401790469884872],[0.0019292848883196712,0.08380033820867538,0.05836261063814163,-0.06953158974647522,-0.22769752144813538,-0.08598857372999191,0.09910038113594055,-0.20420964062213898],[0.24633720517158508,-0.01391199417412281,-0.0759505182504654,-0.0645524188876152,-0.15390996634960175,0.01748417504131794,0.02311832644045353,0.15122994780540466],[-0.3195197284221649,-0.04967866092920303,-0.13598476350307465,0.14758911728858948,0.232894629240036,0.13492421805858612,-0.1622408926486969,0.12419087439775467],[0.003544856561347842,0.08915875107049942,0.15272177755832672,-0.18196074664592743,-0.132248654961586,-0.18402333557605743,0.11193113774061203,0.11714914441108704],[0.027675509452819824,0.04702647775411606,0.049357715994119644,0.08799903839826584,0.020085928961634636,-0.016630422323942184,-0.1517413854598999,0.04311009868979454],[-0.13974180817604065,-0.14140170812606812,0.06754302233457565,-0.02613263577222824,-0.004793833941221237,-0.05692978948354721,-0.019415678456425667,-0.1514202505350113],[0.16129644215106964,0.03551299124956131,0.030415410175919533,0.0768153965473175,-0.21693862974643707,-0.04715026915073395,0.13348877429962158,-0.030067166313529015],[-0.09403868019580841,-0.17277374863624573,-0.15516702830791473,-0.0478719025850296,0.21961934864521027,0.0972338616847992,0.17130634188652039,0.14373569190502167],[-0.15400688350200653,-0.23586343228816986,-0.011414900422096252,-0.0027774174232035875,-0.07125120609998703,-0.04875825718045235,-0.0010381242027506232,-0.10721632093191147],[-0.12709327042102814,0.28026100993156433,0.020140474662184715,0.17416690289974213,-0.018923046067357063,-0.0641542449593544,0.1416538804769516,-0.18193991482257843],[-0.006657600402832031,-0.22508680820465088,-0.11199058592319489,0.1322588473558426,0.09863347560167313,0.07379292696714401,0.07908657938241959,0.08004200458526611],[-0.14250034093856812,-0.06704012304544449,-0.08848173916339874,-0.10304809361696243,0.0936269536614418,0.08865819126367569,-0.1158166155219078,0.3369789719581604],[0.10133510828018188,0.1619870513677597,0.025633884593844414,-0.14487306773662567,0.14415758848190308,-0.0007150854798965156,-0.032475244253873825,0.08862969279289246],[-0.11838151514530182,0.033240750432014465,-0.03800977021455765,0.03323976323008537,0.19955505430698395,0.08569388091564178,0.17498429119586945,0.04175256937742233],[0.013994337990880013,0.20244534313678741,0.057898424565792084,0.09633089601993561,0.010287079028785229,-0.019339537248015404,-0.19067344069480896,-0.020676447078585625],[0.19614890217781067,0.23031646013259888,0.10879221558570862,-0.12130700796842575,-0.1528511494398117,-0.14952515065670013,0.09816236793994904,-0.18760068714618683],[0.30092722177505493,-0.20901252329349518,0.012948291376233101,0.08991247415542603,-0.31657570600509644,0.027190156280994415,0.16954174637794495,0.05944659933447838],[0.28013893961906433,-0.23045895993709564,0.15302971005439758,0.16425029933452606,-0.28274083137512207,-0.011168831028044224,-0.1542074829339981,0.023538578301668167],[0.10257340967655182,-0.2426450550556183,-0.19839999079704285,0.06353640556335449,-0.2452458292245865,-0.19817659258842468,-0.18123501539230347,-0.006735624745488167],[-0.1709689497947693,0.02249881625175476,0.06230170652270317,-0.19598786532878876,0.16329918801784515,-0.07588580250740051,0.04782085493206978,-0.16491343080997467],[-0.3795205354690552,0.10206924378871918,0.004882193170487881,0.03486834838986397,0.32676151394844055,0.1377391815185547,-0.1321668177843094,-0.29006141424179077],[0.0006166632520034909,-0.08737704157829285,0.08473600447177887,-0.15168191492557526,-0.04623127728700638,-0.09834522008895874,-0.1752677857875824,0.1613718420267105],[0.07424315065145493,-0.13405030965805054,0.05111510679125786,-0.23814387619495392,-0.026994766667485237,-0.16229933500289917,0.02418092079460621,0.049941644072532654],[-0.08626987040042877,-0.07576596736907959,-0.09170763194561005,-0.12469177693128586,0.07563730329275131,0.024069273844361305,0.1908464878797531,0.046276602894067764],[-0.16629523038864136,0.0712699443101883,0.055652569979429245,0.03528406471014023,0.31884071230888367,0.10835849493741989,0.0395076721906662,-0.09456067532300949],[0.07529575377702713,0.28523507714271545,-0.03138604760169983,-0.2121003419160843,-0.35870954394340515,0.030750269070267677,0.02876155637204647,-0.29882699251174927],[-0.1982506364583969,-0.006694813724607229,-0.14388783276081085,0.21279899775981903,0.17367996275424957,0.05717748403549194,-0.08759407699108124,0.04628206789493561],[-0.1264384537935257,-0.15656815469264984,0.16326679289340973,-0.10808826982975006,0.11768529564142227,-0.1479731947183609,-0.04884390905499458,-0.12922251224517822],[-0.14381884038448334,-0.2458653301000595,-0.028301149606704712,0.109492726624012,-0.19795158505439758,-0.07961171865463257,-0.04711489751935005,-0.21290208399295807],[0.11616530269384384,0.18533611297607422,-0.15393978357315063,0.040880825370550156,-0.28094664216041565,-0.11969318985939026,0.09969786554574966,0.225230410695076],[-0.013909339904785156,-0.17441923916339874,-0.1617373526096344,0.15315598249435425,0.028679724782705307,0.04191618412733078,0.18787844479084015,-0.13644151389598846],[0.022408805787563324,-0.11026214808225632,-0.08376018702983856,0.06873250007629395,0.14248314499855042,0.12710514664649963,-0.05496463179588318,0.16273516416549683],[0.25158512592315674,-0.16080601513385773,-0.06923511624336243,-0.06116536632180214,-0.05920657515525818,0.04766376316547394,0.10942665487527847,0.18273182213306427],[-0.1361154168844223,-0.2147543877363205,-0.1633094847202301,0.09452620893716812,0.33898717164993286,0.04521556198596954,-0.25034576654434204,0.19666297733783722],[0.2653874456882477,0.10638714581727982,-0.090297169983387,0.0039057449903339148,0.043089352548122406,0.12076549977064133,0.09209331125020981,0.16484592854976654],[-0.0462772361934185,0.0693167895078659,-0.025217555463314056,0.27327844500541687,0.02272168919444084,0.18268750607967377,0.013041813857853413,-0.2404707670211792],[0.16199891269207,0.10413505136966705,-0.10005209594964981,0.16739094257354736,-0.041974760591983795,0.052783846855163574,-0.13645130395889282,0.05714385583996773],[0.22455845773220062,0.035619836300611496,-0.07656575739383698,0.013167984783649445,-0.1212916150689125,-0.00472992705181241,0.12407326698303223,0.33208638429641724],[-0.03782762214541435,-0.2232016772031784,-0.1695234179496765,0.1753881275653839,0.010851473547518253,0.0800381526350975,0.053278204053640366,0.14190012216567993],[-0.11231144517660141,-0.005791893694549799,-0.10082519054412842,0.3474167585372925,-0.011625220067799091,0.11094475537538528,0.2315385490655899,-0.22886426746845245],[0.08107132464647293,-0.15235160291194916,0.06793726235628128,-0.08353874087333679,0.13861198723316193,0.13798493146896362,0.14627772569656372,-0.0838356539607048],[0.17721688747406006,-0.0090482821688056,-0.023069515824317932,0.0007617230876348913,0.11781293153762817,0.10764910280704498,-0.147812157869339,0.15749506652355194],[-0.06918443739414215,-0.04757082462310791,0.04721442610025406,-0.025092029944062233,0.05130098760128021,-0.056676097214221954,-0.04306657612323761,-0.13292497396469116],[0.1499476581811905,0.12103884667158127,0.09961909800767899,0.1768595576286316,-0.03889469802379608,0.28259921073913574,0.26807448267936707,-0.23871006071567535],[0.12891890108585358,0.22622963786125183,0.04687142372131348,-0.14136844873428345,-0.24846036732196808,-0.0480356328189373,-0.07287754863500595,0.21214903891086578],[0.3161563277244568,0.14754001796245575,0.13265587389469147,-0.03787964954972267,-0.2051268070936203,-0.2891486883163452,0.2636648118495941,-0.19928568601608276],[-0.02135511115193367,0.20849446952342987,0.07174060493707657,-0.08329511433839798,-0.2108406126499176,-0.12035452574491501,-0.04767141491174698,-0.12026052176952362],[0.06556154787540436,-0.2983722686767578,0.050855666399002075,0.10836029797792435,-0.1592739075422287,-0.06368963420391083,-0.18465295433998108,-0.27572721242904663],[0.14563941955566406,0.16589221358299255,0.22444100677967072,-0.23679213225841522,0.015121002681553364,-0.06605558097362518,0.31807857751846313,-0.22307518124580383],[-0.09593059122562408,-0.13202089071273804,-0.09908302128314972,0.031856462359428406,0.15614071488380432,0.055311743170022964,0.15799598395824432,0.057585883885622025],[-0.10102105885744095,0.13948863744735718,-0.009149987250566483,-0.16936855018138885,0.09528262168169022,0.043596260249614716,-0.08082704991102219,-0.02638041228055954],[-0.04769238829612732,0.1488262414932251,0.12008283287286758,-0.047045934945344925,0.07565739750862122,-0.023962896317243576,-0.293316513299942,-0.008619815111160278],[-0.07264360040426254,0.1212499812245369,-0.01026585791260004,0.09446298331022263,-0.10283246636390686,-0.06685354560613632,-0.061422500759363174,-0.22580598294734955],[-0.09999535977840424,-0.13416121900081635,-0.10973387956619263,0.006596025079488754,0.11101660877466202,-0.08020922541618347,-0.2127389758825302,0.20379763841629028],[0.06307332217693329,-0.2047949880361557,0.08702526241540909,0.12426968663930893,-0.3063911497592926,-0.04697348549962044,0.1917879432439804,-0.06206131353974342],[-0.054222386330366135,-0.21939419209957123,-0.04400978982448578,-0.16861175000667572,0.051717620342969894,-0.029986251145601273,-0.02903994731605053,0.21668744087219238],[-0.13623124361038208,0.14160923659801483,-0.10836216807365417,-0.01240620668977499,0.09897249191999435,0.019720813259482384,-0.18615035712718964,0.12733209133148193],[0.06870587915182114,0.05119270458817482,0.016495659947395325,0.18145474791526794,-0.03068213351070881,0.19064615666866302,0.18564967811107635,-0.2467147707939148],[-0.11106971651315689,-0.017306474968791008,0.041425954550504684,-0.07471613585948944,0.2391401082277298,-0.0027320771478116512,0.03440423682332039,-0.18649108707904816],[-0.037257369607686996,-0.20968464016914368,-0.1753799021244049,0.2970544993877411,-0.24967753887176514,0.03458230569958687,-0.1872854381799698,-0.07976572960615158],[-0.06637628376483917,0.024340368807315826,-0.014698815532028675,-0.07690302282571793,-0.21262498199939728,-0.06108446791768074,-0.023270420730113983,-0.07646600902080536],[0.24044111371040344,-0.13765880465507507,-0.08789538592100143,0.019144318997859955,-0.07291901856660843,-0.11308132112026215,-0.17155814170837402,0.22413882613182068],[0.03210354223847389,-0.006320569664239883,-0.07879267632961273,0.2432411015033722,-0.1535019427537918,0.0636231005191803,0.10193558037281036,-0.11511441320180893]]},"projection_width":8,"proof_authority":false,"publication_performed":false,"qualified":false,"schema":"structured-source-384-autoencoder/v1","source_semantics_verified":false,"target_schema":{"origin":"training_only","schema":"fixed-typed-json-consensus/v1","shape":{"fields":[["document",{"fields":[["attributes",{"fields":[],"kind":"object"}],["evaluation_order",{"items":[{"kind":"string"},{"kind":"string"}],"kind":"array"}],["expression_id",{"kind":"string"}],["kind",{"kind":"string"}],["operand_ids",{"items":[{"kind":"string"},{"kind":"string"}],"kind":"array"}],["operator",{"kind":"string"}],["source_ref_ids",{"items":[{"kind":"string"}],"kind":"array"}],["span_ids",{"items":[],"kind":"array"}],["symbol_ids",{"items":[],"kind":"array"}],["type_ref",{"kind":"string"}]],"kind":"object"}],["kind",{"kind":"string"}]],"kind":"object"},"slots":[{"classes":["expr:capacity","expr:length","expr:position","expr:quantity","expr:volume"],"path":["document","evaluation_order",0]},{"classes":["expr:capacity","expr:length","expr:position","expr:quantity","expr:volume"],"path":["document","operand_ids",0]},{"classes":["!=","*","+","-","<","<=","==",">",">="],"path":["document","operator"]},{"classes":["boolean","integer"],"path":["document","type_ref"]}],"template":{"document":{"attributes":{},"evaluation_order":[null,"expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":[null,"expr:threshold"],"operator":null,"source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":null},"kind":"program_expression"},"whole_target_memory":false},"training":{"base_checkpoint_sha256":"e077986eecdcdc4eb5f244a95a8591bc759a89af31e2a18adff1a20935ff2d7f","centering":"two_pass_global_training_mean_then_add_centered_shard_statistics","gradient_training_used":false,"head_weights_averaged":false,"history":[{"classifier_slot_accuracy":0.3611111111111111,"classifier_slot_correct":13,"count":9,"exact_targets":0,"ridge":0.0001,"selected_at_step":true,"semantic_leaf_accuracy":0.3611111111111111,"semantic_leaf_correct":13,"semantic_leaf_count":36,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":9},{"classifier_slot_accuracy":0.3611111111111111,"classifier_slot_correct":13,"count":9,"exact_targets":0,"ridge":0.001,"selected_at_step":false,"semantic_leaf_accuracy":0.3611111111111111,"semantic_leaf_correct":13,"semantic_leaf_count":36,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":9},{"classifier_slot_accuracy":0.3611111111111111,"classifier_slot_correct":13,"count":9,"exact_targets":0,"ridge":0.01,"selected_at_step":false,"semantic_leaf_accuracy":0.3611111111111111,"semantic_leaf_correct":13,"semantic_leaf_count":36,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":9},{"classifier_slot_accuracy":0.3333333333333333,"classifier_slot_correct":12,"count":9,"exact_targets":0,"ridge":0.1,"selected_at_step":false,"semantic_leaf_accuracy":0.3333333333333333,"semantic_leaf_correct":12,"semantic_leaf_count":36,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":9}],"optimizer_steps":0,"plan_id":"05ab2726616e4632b9d13d93eaea9bf0d1313176789567c37ee33ab377ca4741","prior_training_statistics_recovered_from_weights":false,"recipe_sha256":"bf3d31edf9d0eeaae2445dc970b6ea220f7190e7c402d8c79892bf3e70bb398f","selected_ridge":0.0001,"selected_validation":{"classifier_slot_accuracy":0.3611111111111111,"classifier_slot_correct":13,"count":9,"exact_targets":0,"semantic_leaf_accuracy":0.3611111111111111,"semantic_leaf_correct":13,"semantic_leaf_count":36,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":9},"statistical_merge":"sum unique declared shards before global centering and solve","test_used_for_selection":false,"trainer_id":"global-centered-ridge-sufficient-statistics/v1","unique_training_examples":9},"training_manifest":[{"embedding_sha256":"bd1d716eedb76496e466eb142a1db74471b38b57d85206268dbf5def8e140109","id":"cb7fa7405cc7e251a39a902ce700a5bc3bda59315f81dc890d04cf335a1fd3a2","normalized_source_sha256":"1f5522ac85c72da747b39248672d4b5be82f33a1149740dd5f685804a83dabe2","source_sha256":"764ed184dc7724aa170a38fb0a97856fdaebcf119d18bfaffcc28d60a69c194b","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"3ba46f588c61f384dadcb5e8fec81334cdb15fcfc5d6e23676d2683f71d270f4","id":"61e31b2f3c0172b6b4cb92ff6327ddc5a96f04eae5ee31ad44333f5b99502a7c","normalized_source_sha256":"024af1d7bfc30fd8ab947e6ed131a1924544c8c3b8678cbf2cb09482e4eacbd8","source_sha256":"181375e26822109916e3189665d6f031c99b73a456a1949e777c14992b3b1473","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"c85ea44e6ea83ae319841760bbc57345828bda60d23bc6b3b0aaa43c3ad8ba29","id":"587efa859b12027b60c18935a14ffd5d3d05e8a11e70f15b4ec3b0e8c3cf9ac1","normalized_source_sha256":"1cfeef728467feca4f5670c7d03c2e9f719f36d291f25aae8cce9aa0c82ac391","source_sha256":"e01284d2257aa5afc0781456bd437d9f1417af966b180680e34e8bedff524175","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"38f2ba0c34f38bb7fe29280405f52768e3387e23046b1c31df7dc2700a38931f","id":"933e57e14e640a1e3d7cdf38f766c11e4d44b48af0c98d6eae4b8235684e2e92","normalized_source_sha256":"29b165c756b1edd9c9280ddc33596a4efc58405ff32e055c46caff2dacf9c088","source_sha256":"3b98db667f67e70e4bfff5301a579f457773d1c39e0bcb42a485fdf20403017e","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"ce01bcf1fd104711f798910779e68b5213680bbff640b70bcb1161f429eb8fe9","id":"1d9b7a05b1d0c7862499d7488f01ebabb7257c31052e05ac882373af86cbe654","normalized_source_sha256":"9ccae829b5f0ae9b2b2a89787ee663b26094d0b24fb74b05cb5fa2fac3c656d1","source_sha256":"ea9eabfbe555efdad4a5adc42f58f2576b8790f5085cf15a27f35a8d6cece329","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"41d5378f2e3d100c70e7455fcbfaa6d5ab9988cbd17dc6666240be9530668fa9","id":"00e3a0c6c2c8f60fe909f34b73812b9946825508490e4e4ce6b264ad262d7fc5","normalized_source_sha256":"a4b329e2a9a48cf2ce46b547ad5be2a01219be572df132bf5d4ed74e3b2f23b3","source_sha256":"3eeb988dbacd8fc7d60cbb9f4c2e367184b9f53d074e18702c52c61c320967e4","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"4a6ad595ad9e3fb24633bb69b7c60b0a9700d3a257c5352ee5fd4fff9d149e0e","id":"e3a9c92ffbf5dd3d73cbad54964699905ba40e5f50aca23fb3b60a098d04a731","normalized_source_sha256":"bf87aad258f18e0c21b24c588d205dab9673ecdd42a868dad4cfc9efcfb6fbb6","source_sha256":"b12bd625f9800e1bc5184abacbf67b09515e2b5a6346c110a7671d312f2d8cd7","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"918bc403beb40749336bd1774ab2ccc817a6d7571643776bb60113dfd175c270","id":"27354627d799c01fa251c7d98ec4b105186b3adc7cd1156f73cf566fc0d60955","normalized_source_sha256":"bf985d9a599d523ca8104651702d17079f9edff6971c2fe1411419df468021f3","source_sha256":"f085d811d5978808c27296a60aaf5019d83c4024b72a6433bbb68fedb73fbfc4","target_sha256":"5147e45a0cd9f862614ef00b7071de6e6775f3278e403bf14835e903f3f08f2a"},{"embedding_sha256":"9c97928beff060772f2941e711305ae6d56ae257ba434e8011ab3164bb5ea588","id":"afde36d46124f83ba724ec79ca516279462e60eebef8906c0fd369b27d81b5e0","normalized_source_sha256":"14cb5aac1e3c5d4cb7872b411e9b762cab437a18dbaf01294cd4f75e346060bc","source_sha256":"8d5afa6b0fe960d7fd65c2ab0907047ba89aba29a223733611fe6f275a764238","target_sha256":"cd4e53d41213bda5f48255bc6cd0a31e4c0ecd19cd9b21213b9022d583c10faf"}],"validation_manifest":[{"embedding_sha256":"4dd712444fb3fffd1c631ce534cb996ca092ca23638988c9b5d0b5d5ecda45da","id":"03f95bf113133a9f66438d919f94c90baa3a385a302f06e3c077080e3c22cbe6","normalized_source_sha256":"97cd115ad8113bf48504f7524bda9282ab603894519c635407e4d027e231fb8e","source_sha256":"1d43373b566fddac1b7208cc79bc91dbc43fefafea03b3fc13a66d1d0ced5163","target_sha256":"c4b486aa76a253a49c24b1bc6350694c04ef4d00bf73c86782c1b1c5dcd75237"},{"embedding_sha256":"995d3f4eb0d68610b8fce40a72ef772a7772d1f05ea389f00763a2c5ee229390","id":"d63b94747d73dc537d055c4aad77280a8baa763791b176b87a8331da3e03d543","normalized_source_sha256":"785908267d6aae3ff1adaddfa1d02c4a1958e3d937982823c37c42c8cd91c71f","source_sha256":"a3ff5937cc9f6f540b3746509f294bc25eff42e93b034087cb3c7e2e5fd2dbbb","target_sha256":"4dca6ad68602421d375dcdc4d8699fc0a9caa61f20e53a736dcaf322a37f4d9b"},{"embedding_sha256":"2302d2a980b4814815f3c579eb7e8355f19cc9c59fbed75dcdaac52ff71d766e","id":"95c550080c4345130ad57a286eb383b89da596e6615f01f95195d4cd8ab24fb5","normalized_source_sha256":"b622a87765c4203420f8b7fed5784d87f1f5231e3271ada546b75cdca444d147","source_sha256":"bb1bad3e90f6c96478aff6791c0620c821a747df1c905f60468b5d4d9149d373","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"5ebb57a2ae5694838ca5da79c5d7001c15e9889caf0399a3e268c8c7fcfcd915","id":"1883ce37459a983f1291a62a56ea029225eeb1a7cfb0f7fca561bed4576f98b9","normalized_source_sha256":"b6ece31e35e93e9d085117ee58b08d60af91289cf8be7e161fb4a512f6b1d149","source_sha256":"0be7c34545d319da9039bcff3743d549e223ccd346c10fbf9a8f3eb01b0ea8a7","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"ca7b0f1b7cb263956e2868c897c101fc4cec02b19555536664529ca6fcd062f2","id":"5c2b0a05e58794a37ec9a9a061f56291c7bb2b1a281067451ce79729b79401ec","normalized_source_sha256":"9e5aa1871ebdfcbb5781c12359f51fcaeb709ae9430abc7830266c7e93a1153d","source_sha256":"e459966dc8ebf9acf08367696f5cd2c218872c350a42bcc93f9c3fb54160b644","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"750078e69836e9e9a4a0d3326f71e1991ca338ff20ee66b03b6786943ea4273a","id":"141895f493026a38e0dad56ac7a74bda8b428c4018c2b1d6f72a11e6a4cc70e1","normalized_source_sha256":"890fb75ce12ca1eabcc8f9001fa6b5914d5dd5971671f43202eb2fd531e09205","source_sha256":"bf0c2754934901f8d82da09044b8e05576637bdf45d98436d174409c34f6bf54","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"bc2911006a5982ab04a0cd1e4dbe374086d4ab0aa40c5b69a5fda58fcba53573","id":"40ef6c5abe53434e2d55e1d30dc69019eabd3f3d9b068ea6ba99e56e64d4d50f","normalized_source_sha256":"d4c94ad0a3d1323824d7e009004160d53a138f978fdacb7c607de9abbc4421f6","source_sha256":"0c711ee092da185a20658290d11df8b383529f3ab27b37f1646acd5e69a05557","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"efe99db4e2d9a45d1ee1f93b2ce9e76ceb684bf827a8b01dccf605897be6822b","id":"0d5870afa9f28503bebf2ffad9a611cf11b502799155ae7a150f867dce2324b8","normalized_source_sha256":"b746c81d2cf1403f778821aa7fff47cc90775695200a13acbde3204a02867904","source_sha256":"573eaf0e89b8a5dc6f9bba5496ccc0ef9a1325ab528233299079c7aa9b86e5ff","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"3ca6879d28f679edd4cce07daf040bcd3896a383a7f5cf4ef192a352a21f9a94","id":"f9036387650b8ea66cfae69f65b75f3e6a0ceb971d2e2fe301059ac622785c0f","normalized_source_sha256":"0888889c7e7e7aa06dc7f310c09c29ad4d991a77d246b8f1329e0996458c63a7","source_sha256":"fe9f9fe04f6a1c7b71a7cf745e5cf3148df8fa44b9fa2f5015694ae78e5fdfdf","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"}]},"corpus":{"admitted":false,"behavioral_satisfaction":false,"clone_policy":"AST_without_locations_and_function_name; parameter_alpha_clones_not_detected","desired_intent_used_as_label":false,"head":{"ast_revision_id":"rev:repository:384fixture:snapshot:baguqeera5hgysysrjium5f5qohtqevxbpocdcre47ppbxzgqwpwqdhez5oga","generation":1,"manifest_cid":"baguqeera57otlmwg766fxrro6g2teyfu7yx5fi2e2h3r36dbcmww4pm3ilsa","receipt_cid":"baguqeeraremj3xp42onpan2xplrb74los4ez7nw55exigedopbyaorwjhxxa","repository_id":"repository:384fixture","schema":"codebase-head@1","snapshot_cid":"baguqeera5hgysysrjium5f5qohtqevxbpocdcre47ppbxzgqwpwqdhez5oga"},"holdout_used_for_selection":false,"inventory_coverage":{"ast_failed":0,"ast_ok":27,"ast_partial":0,"captured_entries":27,"checked_properties":0,"formalized_properties":0,"inventory_entries":27,"opaque_entries":0,"semantic_symbols":54,"unindexed_entries":0},"labels":"independent_reviewed_source_AST_and_native_ProgramIR_alignment","profile":"codebase_ir/source_conditioned_384_v1","promotion_performed":false,"proof_authority":false,"rows":[{"clone_sha256":"0ac123d6859845bc3f965521e9a9d2da194071b4fd2a10bd4d8ebc440553d4ab","group_id":"holdout_0.py","id":"1adca33ab0be984bd6329f938915dec6d62d7aae4e8b3686f28f906259f2c465","path":"holdout_0.py","role":"holdout","source_cid":"bafkreie7peflfql64uteytlw2p7revsyp26khgzvfp3qoc4h4hp7qv632a","source_sha256":"9f790ab2c17ee5264c4d76d3ff1256587ebca39b352bf7070b87e1dff857dbd0","source_text":"def calculate(quantity: int, threshold: int) -> int:\n return quantity + threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"+","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"clone_sha256":"7f73c95f40e0b9b750564a3b5d62944161a2b70a4609de6204288b41c5b573ed","group_id":"holdout_1.py","id":"a8427408e66424ca1fff02dfb7c8567b77c714e02a0283bf967d0dfaffd7a4cf","path":"holdout_1.py","role":"holdout","source_cid":"bafkreihhummnjrhfmu6susy6alb73rv6pndexa5gqmadmbrlibcvn6tow4","source_sha256":"e7a318d4c4e5653d2a4b1e02c3fdc6be7b464b83a6830036062b404556fa6eb7","source_text":"def calculate(quantity: int, threshold: int) -> int:\n return quantity - threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"-","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"clone_sha256":"ad03da1488f6def5119207b772361827cbdfd719d847dea2082598c994e1e000","group_id":"holdout_2.py","id":"f4e5671c77d2a597be9d7e47985a1bfdad7c731ce62c8c7843cffc015af6e3de","path":"holdout_2.py","role":"holdout","source_cid":"bafkreibncix2wccbz637nmbcmwookjbbrov56ghv3cwepwfvmgofijbyfq","source_sha256":"2d122fab0841cfb7f6b022659ce524218babdf18f5d8ac47d8b5619c5424382c","source_text":"def calculate(quantity: int, threshold: int) -> int:\n return quantity * threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"*","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"clone_sha256":"caece91da5145793904f72930fb9bb43573120327f6b3a0fa412e6be3829de08","group_id":"holdout_3.py","id":"909a92cbe9ac9debeead71ad95c9b831cf563ea35bafaa7aea58a31c3df489c9","path":"holdout_3.py","role":"holdout","source_cid":"bafkreiaut5xvy5b2ni3cfo5yv5zx234d3fxco3rnnz5yh6eftr4rkqbw3u","source_sha256":"149f6f5c743a6a3622bbb8af737d6f83d96e276e2d6e7b83f8859c79154036dd","source_text":"def calculate(quantity: int, threshold: int) -> bool:\n return quantity < threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"<","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"clone_sha256":"2936023a37a2143e57a220afc377e11147787d97d2802554daa995cb63a08466","group_id":"holdout_4.py","id":"b24ca77ce950f926438e59311279891b75239c5c73bb2bf39349e7d0e215dacf","path":"holdout_4.py","role":"holdout","source_cid":"bafkreib5dp7kthpp4jsun62yyxvfzuzpphuf7ujq5pdk2m6hsvbsnlfeuu","source_sha256":"3d1bfea99defe26546fb58c5ea5cd32f79e85fd130ebc6ad33c7954326aca4a5","source_text":"def calculate(quantity: int, threshold: int) -> bool:\n return quantity <= threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"<=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"clone_sha256":"98e9c579c6355d447d7604bbb4d6ef75de2864f2fc890aaeaa637422280de8f9","group_id":"holdout_5.py","id":"d33f2a386ba6bebb34d19df6c0ebb6b8d559f86cd3020f35c0d67cfd092caf2b","path":"holdout_5.py","role":"holdout","source_cid":"bafkreibytacgh5bjchjpwd7dn2a3uuwe2qsdjap3x5dtnatikaadvnwonm","source_sha256":"38980463f42911d2fb0fe36e81ba52c4d4243481fbbf4736826850003ab6ce6b","source_text":"def calculate(quantity: int, threshold: int) -> bool:\n return quantity > threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":">","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"0847a5079433ffa6c2479d66a374c4dc2e283596758e2449391086893cfa5f92"},{"clone_sha256":"2135c886626a9902224f79f95f93756874d9c49976eb7cb89a58c4d0ad5b1137","group_id":"holdout_6.py","id":"4db29a77947ef67cea69c650c8ad4fd37fa521701f151b9ddca0b294a33dd949","path":"holdout_6.py","role":"holdout","source_cid":"bafkreigjupy46tnstdpvn7qkmn5qdyjhqd6rm2v3obou6zfwttuevkc5le","source_sha256":"c9a3f1cf4db298df56fe0a637b01e12780fd166abb705d4f64b69ce84aa85d59","source_text":"def calculate(quantity: int, threshold: int) -> bool:\n return quantity >= threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":">=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"b9d133433f58dbb4f5a093aea51c7779606e6189638d88a9f246c5cbe4f9d6e3"},{"clone_sha256":"358d0a9a58eaffebfb1b3ad5a2a538dd263b3d9c6245ca79094a43e0d3c4406d","group_id":"holdout_7.py","id":"4e701234fbabe213d247fe9dc791108b05a5b7d57a4b1941e7ed9ada05da44ca","path":"holdout_7.py","role":"holdout","source_cid":"bafkreiaytjbtcnxd2mishz34w3vndycc4natpydx3qqkddjupshzob2ztq","source_sha256":"189a433136e3d31123e77cb6ead1e042e34137e077dc20a18d347c8f9707599c","source_text":"def calculate(quantity: int, threshold: int) -> bool:\n return quantity == threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"==","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"clone_sha256":"5b52eeaaf6a8bd90315a0a34eaabf5d9dec70514e51cbb7a82daac881c9cfa99","group_id":"holdout_8.py","id":"bbf54e6010dfaadb6fa399b2d9345d1452627353f81e8c44220a628ec5ee1283","path":"holdout_8.py","role":"holdout","source_cid":"bafkreiampx2f3va3scnjgconrkl7xzofcjqfpynbfhczspbnu7umg2rw2e","source_sha256":"0c7df45dd41b909a9309cd8a97fbe5c5126057e1a129c5993c2da7e8c36a36d1","source_text":"def calculate(quantity: int, threshold: int) -> bool:\n return quantity != threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:quantity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:quantity","expr:threshold"],"operator":"!=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"clone_sha256":"ea211a3fa1e06fdbbabcfa5ebde2c8df1cbef6f7950b8ca5e77c8475e84c5bde","group_id":"train_0.py","id":"cb7fa7405cc7e251a39a902ce700a5bc3bda59315f81dc890d04cf335a1fd3a2","path":"train_0.py","role":"train","source_cid":"bafkreidwj3iyjxdxesvbocry7mfjpblp3lv46em5dc7277gcrvqknhazjm","source_sha256":"764ed184dc7724aa170a38fb0a97856fdaebcf119d18bfaffcc28d60a69c194b","source_text":"def calculate(capacity: int, threshold: int) -> int:\n return capacity + threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"+","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"clone_sha256":"2de8f681e76ff4799f57a0184e82297c035e05015b7c0039e0207496f435375d","group_id":"train_1.py","id":"61e31b2f3c0172b6b4cb92ff6327ddc5a96f04eae5ee31ad44333f5b99502a7c","path":"train_1.py","role":"train","source_cid":"bafkreiaycn26e2bcccmrnyyyszs5n4brzgnxhjcwugkj4534csmswoyuom","source_sha256":"181375e26822109916e3189665d6f031c99b73a456a1949e777c14992b3b1473","source_text":"def calculate(capacity: int, threshold: int) -> int:\n return capacity - threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"-","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"clone_sha256":"dbf9c4d40429de868d38d2cf7060aec245adfa2b7fd057abeff29af377556ace","group_id":"train_2.py","id":"587efa859b12027b60c18935a14ffd5d3d05e8a11e70f15b4ec3b0e8c3cf9ac1","path":"train_2.py","role":"train","source_cid":"bafkreihackcnejl2uwx4a6auk26ug7m7cql27ftldadiby2orpw76usbou","source_sha256":"e01284d2257aa5afc0781456bd437d9f1417af966b180680e34e8bedff524175","source_text":"def calculate(capacity: int, threshold: int) -> int:\n return capacity * threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"*","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"clone_sha256":"9cf76f6248271f63b8cef817815544e5949168fd16232dc8adc62c3d45033a2b","group_id":"train_3.py","id":"933e57e14e640a1e3d7cdf38f766c11e4d44b48af0c98d6eae4b8235684e2e92","path":"train_3.py","role":"train","source_cid":"bafkreib3tdnwm73h44hex77vganfph2fo5z5dq46bpfufjef7xzaiaybpy","source_sha256":"3b98db667f67e70e4bfff5301a579f457773d1c39e0bcb42a485fdf20403017e","source_text":"def calculate(capacity: int, threshold: int) -> bool:\n return capacity < threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"<","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"clone_sha256":"af9a3ef8c839f4fd46bdf1a04d5141a3a9f605b8af75071b43808bb6d0475dfa","group_id":"train_4.py","id":"1d9b7a05b1d0c7862499d7488f01ebabb7257c31052e05ac882373af86cbe654","path":"train_4.py","role":"train","source_cid":"bafkreihkt2v7xzkv57nnjjnnyqxvr4sxnodzb5iiltyvuj7tlkgwz3hdfe","source_sha256":"ea9eabfbe555efdad4a5adc42f58f2576b8790f5085cf15a27f35a8d6cece329","source_text":"def calculate(capacity: int, threshold: int) -> bool:\n return capacity <= threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"<=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"clone_sha256":"e51bbde91fdffe11322eccd554471d2da7ca3d3ee146ca6fc7147d314bbe8f32","group_id":"train_5.py","id":"00e3a0c6c2c8f60fe909f34b73812b9946825508490e4e4ce6b264ad262d7fc5","path":"train_5.py","role":"train","source_cid":"bafkreib65omi3ownr7d5mdf3t5gc4ntrqs47kpihjymhalcsyyodeclh4q","source_sha256":"3eeb988dbacd8fc7d60cbb9f4c2e367184b9f53d074e18702c52c61c320967e4","source_text":"def calculate(capacity: int, threshold: int) -> bool:\n return capacity > threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":">","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"clone_sha256":"8050aa28d96fd30875a6e748e49fbda0f3f1169282793855ce81a2a6f30bc442","group_id":"train_6.py","id":"e3a9c92ffbf5dd3d73cbad54964699905ba40e5f50aca23fb3b60a098d04a731","path":"train_6.py","role":"train","source_cid":"bafkreifrfplcl6mabyn4kgckxlf7m6yjkfpcwwtdi3arbj3hduys6lmm24","source_sha256":"b12bd625f9800e1bc5184abacbf67b09515e2b5a6346c110a7671d312f2d8cd7","source_text":"def calculate(capacity: int, threshold: int) -> bool:\n return capacity >= threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":">=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"clone_sha256":"dea8af57ace27b5b4d536c99fca7294e7bfabf2b28f7c663e17cd35a0ac4eb72","group_id":"train_7.py","id":"27354627d799c01fa251c7d98ec4b105186b3adc7cd1156f73cf566fc0d60955","path":"train_7.py","role":"train","source_cid":"bafkreihqqxmbdvmxraeme4uwuyfk6uaz3a6eajfxfjsdho5wr7w3op57yq","source_sha256":"f085d811d5978808c27296a60aaf5019d83c4024b72a6433bbb68fedb73fbfc4","source_text":"def calculate(capacity: int, threshold: int) -> bool:\n return capacity == threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"==","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"5147e45a0cd9f862614ef00b7071de6e6775f3278e403bf14835e903f3f08f2a"},{"clone_sha256":"cd26f6c98582801c18b84460607ce40727036288eaefc4e4c4a8486c5e73dc46","group_id":"train_8.py","id":"afde36d46124f83ba724ec79ca516279462e60eebef8906c0fd369b27d81b5e0","path":"train_8.py","role":"train","source_cid":"bafkreienll5gwd7jmdl72zocvmeqobd3vcnlukncenztmep6n4tvu5scha","source_sha256":"8d5afa6b0fe960d7fd65c2ab0907047ba89aba29a223733611fe6f275a764238","source_text":"def calculate(capacity: int, threshold: int) -> bool:\n return capacity != threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:capacity","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:capacity","expr:threshold"],"operator":"!=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"cd4e53d41213bda5f48255bc6cd0a31e4c0ecd19cd9b21213b9022d583c10faf"},{"clone_sha256":"87c165b8642bd15fcd73d18879734a3435168a688334104f9184cecb5bbc4947","group_id":"validation_0.py","id":"03f95bf113133a9f66438d919f94c90baa3a385a302f06e3c077080e3c22cbe6","path":"validation_0.py","role":"validation","source_cid":"bafkreia5im3twvtp3wwbw4qizr43zeo3yq767l7kaoz7ye5gnuoqz3krmm","source_sha256":"1d43373b566fddac1b7208cc79bc91dbc43fefafea03b3fc13a66d1d0ced5163","source_text":"def calculate(volume: int, threshold: int) -> int:\n return volume + threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"+","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"c4b486aa76a253a49c24b1bc6350694c04ef4d00bf73c86782c1b1c5dcd75237"},{"clone_sha256":"669f5f43804c472f2b067822182c7c1d5c209c93eefb99c78d5c06c3181e116c","group_id":"validation_1.py","id":"d63b94747d73dc537d055c4aad77280a8baa763791b176b87a8331da3e03d543","path":"validation_1.py","role":"validation","source_cid":"bafkreifd75mtpte7n5kawn2gkcpsss6cl37uf2j3anaipsz4pyxf7uw3xm","source_sha256":"a3ff5937cc9f6f540b3746509f294bc25eff42e93b034087cb3c7e2e5fd2dbbb","source_text":"def calculate(volume: int, threshold: int) -> int:\n return volume - threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"-","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"4dca6ad68602421d375dcdc4d8699fc0a9caa61f20e53a736dcaf322a37f4d9b"},{"clone_sha256":"b77e0956a84782fc5829ea7523a8c82e5b2ceb8f96db62eb0154762c312324a4","group_id":"validation_2.py","id":"95c550080c4345130ad57a286eb383b89da596e6615f01f95195d4cd8ab24fb5","path":"validation_2.py","role":"validation","source_cid":"bafkreif3dowt5ehwzfshrl7wpeoamigiegtupxy4sbpwarullvgzcsotom","source_sha256":"bb1bad3e90f6c96478aff6791c0620c821a747df1c905f60468b5d4d9149d373","source_text":"def calculate(volume: int, threshold: int) -> int:\n return volume * threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"*","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"integer"},"kind":"program_expression"},"target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"clone_sha256":"37846694e0611bbe0b0750536fc42daf6202cf7a2d2d98bb9ef03380ef44351e","group_id":"validation_3.py","id":"1883ce37459a983f1291a62a56ea029225eeb1a7cfb0f7fca561bed4576f98b9","path":"validation_3.py","role":"validation","source_cid":"bafkreial47bukrotdhnjaon4743uhvkj4ir4zu2gyeh37guph2ybwdviu4","source_sha256":"0be7c34545d319da9039bcff3743d549e223ccd346c10fbf9a8f3eb01b0ea8a7","source_text":"def calculate(volume: int, threshold: int) -> bool:\n return volume < threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"<","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"clone_sha256":"c54f0990c406297b86499639ce1d5cc8e25454666001283218c325509f7e2dcd","group_id":"validation_4.py","id":"5c2b0a05e58794a37ec9a9a061f56291c7bb2b1a281067451ce79729b79401ec","path":"validation_4.py","role":"validation","source_cid":"bafkreihelglg3shl7gwpba3hnfxvzuwcdcdsynikik6msp44h62ucyfwiq","source_sha256":"e459966dc8ebf9acf08367696f5cd2c218872c350a42bcc93f9c3fb54160b644","source_text":"def calculate(volume: int, threshold: int) -> bool:\n return volume <= threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"<=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"clone_sha256":"6c9cfbff4c190fde33977164ce6bbace36dc8309e2917acd4b18ad2fc2ee42a1","group_id":"validation_5.py","id":"141895f493026a38e0dad56ac7a74bda8b428c4018c2b1d6f72a11e6a4cc70e1","path":"validation_5.py","role":"validation","source_cid":"bafkreif7bqtvje2jah4nqlnasbclrycvozrxxx2f3gcdnuluicodj5v7kq","source_sha256":"bf0c2754934901f8d82da09044b8e05576637bdf45d98436d174409c34f6bf54","source_text":"def calculate(volume: int, threshold: int) -> bool:\n return volume > threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":">","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"clone_sha256":"11b03ef2d7cb357ad641dc8744981908e94ab4d2aa13b595f691b9116d01f630","group_id":"validation_6.py","id":"40ef6c5abe53434e2d55e1d30dc69019eabd3f3d9b068ea6ba99e56e64d4d50f","path":"validation_6.py","role":"validation","source_cid":"bafkreiamoepobew2dbncazmcsdir36ftqnjj6ovspm37czdkzvpgticvk4","source_sha256":"0c711ee092da185a20658290d11df8b383529f3ab27b37f1646acd5e69a05557","source_text":"def calculate(volume: int, threshold: int) -> bool:\n return volume >= threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":">=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"clone_sha256":"bc075e6c570242165955f4f6bc7473bbc739680afe2c709d9f237fcae736c3d7","group_id":"validation_7.py","id":"0d5870afa9f28503bebf2ffad9a611cf11b502799155ae7a150f867dce2324b8","path":"validation_7.py","role":"validation","source_cid":"bafkreicxh2xq5cnyuxog7g52kslmzqhptijslk2sqizstedzy6vjxbxf74","source_sha256":"573eaf0e89b8a5dc6f9bba5496ccc0ef9a1325ab528233299079c7aa9b86e5ff","source_text":"def calculate(volume: int, threshold: int) -> bool:\n return volume == threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"==","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"clone_sha256":"fcea5856939f531c4cb9fdd208d5c87ddf89a6004cbb8636a913d243a6a86a73","group_id":"validation_8.py","id":"f9036387650b8ea66cfae69f65b75f3e6a0ceb971d2e2fe301059ac622785c0f","path":"validation_8.py","role":"validation","source_cid":"bafkreih6t6p6at3kdr5xdj6porpfz4yurx4purfz7ixvafljjlty4x6734","source_sha256":"fe9f9fe04f6a1c7b71a7cf745e5cf3148df8fa44b9fa2f5015694ae78e5fdfdf","source_text":"def calculate(volume: int, threshold: int) -> bool:\n return volume != threshold\n","target":{"document":{"attributes":{},"evaluation_order":["expr:volume","expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":["expr:volume","expr:threshold"],"operator":"!=","source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":"boolean"},"kind":"program_expression"},"target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"}],"schema":"codebase-source-384-corpus@1","selection_coverage":{"holdout":9,"train":9,"validation":9},"selections":[{"group_id":"holdout_0.py","path":"holdout_0.py","role":"holdout"},{"group_id":"holdout_1.py","path":"holdout_1.py","role":"holdout"},{"group_id":"holdout_2.py","path":"holdout_2.py","role":"holdout"},{"group_id":"holdout_3.py","path":"holdout_3.py","role":"holdout"},{"group_id":"holdout_4.py","path":"holdout_4.py","role":"holdout"},{"group_id":"holdout_5.py","path":"holdout_5.py","role":"holdout"},{"group_id":"holdout_6.py","path":"holdout_6.py","role":"holdout"},{"group_id":"holdout_7.py","path":"holdout_7.py","role":"holdout"},{"group_id":"holdout_8.py","path":"holdout_8.py","role":"holdout"},{"group_id":"train_0.py","path":"train_0.py","role":"train"},{"group_id":"train_1.py","path":"train_1.py","role":"train"},{"group_id":"train_2.py","path":"train_2.py","role":"train"},{"group_id":"train_3.py","path":"train_3.py","role":"train"},{"group_id":"train_4.py","path":"train_4.py","role":"train"},{"group_id":"train_5.py","path":"train_5.py","role":"train"},{"group_id":"train_6.py","path":"train_6.py","role":"train"},{"group_id":"train_7.py","path":"train_7.py","role":"train"},{"group_id":"train_8.py","path":"train_8.py","role":"train"},{"group_id":"validation_0.py","path":"validation_0.py","role":"validation"},{"group_id":"validation_1.py","path":"validation_1.py","role":"validation"},{"group_id":"validation_2.py","path":"validation_2.py","role":"validation"},{"group_id":"validation_3.py","path":"validation_3.py","role":"validation"},{"group_id":"validation_4.py","path":"validation_4.py","role":"validation"},{"group_id":"validation_5.py","path":"validation_5.py","role":"validation"},{"group_id":"validation_6.py","path":"validation_6.py","role":"validation"},{"group_id":"validation_7.py","path":"validation_7.py","role":"validation"},{"group_id":"validation_8.py","path":"validation_8.py","role":"validation"}],"source_runtime_semantics_verified":false},"embedding_assets":[{"bytes":190,"name":"1_Pooling/config.json","sha256":"4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23"},{"bytes":583,"name":"config.json","sha256":"00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59"},{"bytes":66746168,"name":"model.safetensors","sha256":"9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2"},{"bytes":385,"name":"modules.json","sha256":"73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e"},{"bytes":57,"name":"sentence_bert_config.json","sha256":"948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529"},{"bytes":125,"name":"special_tokens_map.json","sha256":"b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3"},{"bytes":711661,"name":"tokenizer.json","sha256":"da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0"},{"bytes":394,"name":"tokenizer_config.json","sha256":"e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7"},{"bytes":231508,"name":"vocab.txt","sha256":"07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3"}],"evaluation":{"child_holdout":{"count":9,"exact_targets":0,"outside_training_coverage":0,"semantic_leaf_correct":10,"semantic_leaf_count":36,"valid_candidates":9,"within_training_coverage":9},"holdout_used_for_selection":false,"parent_holdout":{"count":9,"exact_targets":9,"outside_training_coverage":0,"semantic_leaf_correct":36,"semantic_leaf_count":36,"valid_candidates":9,"within_training_coverage":9},"scope":"fixed_schema_source_target_reconstruction","zero_head_holdout":{"count":9,"exact_targets":0,"outside_training_coverage":0,"semantic_leaf_correct":7,"semantic_leaf_count":36,"valid_candidates":9,"within_training_coverage":9}},"fit":{"admitted":false,"base_checkpoint_sha256":"e077986eecdcdc4eb5f244a95a8591bc759a89af31e2a18adff1a20935ff2d7f","baseline_validation":{"count":9,"exact_targets":7,"semantic_leaf_correct":34},"checkpoint_bytes":262569,"dataset_sha256":"3add17c9a17f6d2511c9de87a76add24776965f2a1289cf6e6e608b77fa34fca","domain_id":"security_ir","frozen_legal_projection_unchanged":true,"plan_id":"05ab2726616e4632b9d13d93eaea9bf0d1313176789567c37ee33ab377ca4741","promotion_performed":false,"proof_authority":false,"qualified":false,"recipe_sha256":"bf3d31edf9d0eeaae2445dc970b6ea220f7190e7c402d8c79892bf3e70bb398f","remote_numerical_computation_proven":false,"schema":"distributed-structured-384-merge/v1","selected_validation":{"classifier_slot_accuracy":0.3611111111111111,"classifier_slot_correct":13,"count":9,"exact_targets":0,"semantic_leaf_accuracy":0.3611111111111111,"semantic_leaf_correct":13,"semantic_leaf_count":36,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":9},"shards":1,"source_semantics_verified":false,"statistics_are_factored_updates":true,"training_rows":9,"update_bytes":72440,"update_ids":["0bd17b43cbcf1bff62632406e16d1b62fa6fc7b576ccfaf3ebd7a7c5ef11baf7"],"validation_not_regressed":false},"kind":"repository_child","parent_version_id":"sha256:b8b5b6d7289bd571b8ddf9ee723b7e718b5064954647591f277d74fab17a1421","producer":{"decoder":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"files":{"ipfs_datasets_py.logic.backends.codebase_process":"5c569b34afd75e1942f11fcb9ecf20d57799d2762927d9379813ce94aca437e1","ipfs_datasets_py.logic.formalization.autoencoder.security.source_program_binding_384":"956666bac015713e1b292d563a8224a71e547ad50e4e13d04299f1056893f283","ipfs_datasets_py.logic.formalization.autoencoder.security.source_program_binding_384_v2":"fce62d147c82612cf5c59f1bbbbc56516b93e02e4440cc1ada3c5f27071c9a66","ipfs_datasets_py.logic.formalization.autoencoder.source_embeddings_384":"fb3a5aa8ec005e98a2c62dc1d7e3e807a75820fedc156a8080c1f18063d17da7","ipfs_datasets_py.logic.formalization.autoencoder.source_program_runtime_384_v2":"3c133913082b1f8d9683e4934e8bc2537b7e4bc2f6a9e373f5a2e99dc612eef8","ipfs_datasets_py.logic.software_contracts.codebase_source_384":"7f0c148bdc1ff0cc01a8cc0bfd115417118eaa2f4f2db0f0d2f2ad23198b95e8","ipfs_datasets_py.logic.software_contracts.codebase_source_384_worker":"81304aa208c4f849a3a187ce95e4fa2554918cb6c73a94f0982dd99350249428"},"numerics":{"grouped_recipe":{"decoder_implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"public_api_sha256":"3237d133cf9c67c616e6cc9420e263534dfc4ba4bc1c2b866f3948fdcdcd417a","recipe_sha256":"c6dda0f85937f7ece993cf0bc82aebc72144457507db218cf83f9c9b495994a4","scope":"recipe_public_api_named_ui_semantics_and_decoder_declared_modules","ui_semantic_contracts":{"ui_flogic":"2671912bf789bf3c8ea6412023006c0436a3fd838b7e787a41f9743e102a6909","ui_semantic_components":"72567a0e24bae8d2c0cac70bd06e4b7249016de271c35be6d215bccd054018c5","ui_source_contract_384":"09fe94c4cc04cc6df1d302d5fbeb87141d5dbda5aec33d12bb626201dc01790a"}},"numerics_sha256":"3b811e6b271c6389bdd4e790daf8b442ce4c62a6c63f5f615900f175110afe28"}},"profile":"codebase_ir/source_conditioned_384_v1","request":{"corpus_sha256":"81034720d54663818bc87f4dc802fedaa3e836ec8bcf9470e3e571685e06dc2e","embedding_snapshot":"/home/barberb/.cache/huggingface/hub/models--thenlper--gte-small/snapshots/17e1f347d17fe144873b1201da91788898c639cd","parent_version_id":"sha256:b8b5b6d7289bd571b8ddf9ee723b7e718b5064954647591f277d74fab17a1421","producer":{"decoder":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"files":{"ipfs_datasets_py.logic.backends.codebase_process":"5c569b34afd75e1942f11fcb9ecf20d57799d2762927d9379813ce94aca437e1","ipfs_datasets_py.logic.formalization.autoencoder.security.source_program_binding_384":"956666bac015713e1b292d563a8224a71e547ad50e4e13d04299f1056893f283","ipfs_datasets_py.logic.formalization.autoencoder.security.source_program_binding_384_v2":"fce62d147c82612cf5c59f1bbbbc56516b93e02e4440cc1ada3c5f27071c9a66","ipfs_datasets_py.logic.formalization.autoencoder.source_embeddings_384":"fb3a5aa8ec005e98a2c62dc1d7e3e807a75820fedc156a8080c1f18063d17da7","ipfs_datasets_py.logic.formalization.autoencoder.source_program_runtime_384_v2":"3c133913082b1f8d9683e4934e8bc2537b7e4bc2f6a9e373f5a2e99dc612eef8","ipfs_datasets_py.logic.software_contracts.codebase_source_384":"7f0c148bdc1ff0cc01a8cc0bfd115417118eaa2f4f2db0f0d2f2ad23198b95e8","ipfs_datasets_py.logic.software_contracts.codebase_source_384_worker":"81304aa208c4f849a3a187ce95e4fa2554918cb6c73a94f0982dd99350249428"},"numerics":{"grouped_recipe":{"decoder_implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"public_api_sha256":"3237d133cf9c67c616e6cc9420e263534dfc4ba4bc1c2b866f3948fdcdcd417a","recipe_sha256":"c6dda0f85937f7ece993cf0bc82aebc72144457507db218cf83f9c9b495994a4","scope":"recipe_public_api_named_ui_semantics_and_decoder_declared_modules","ui_semantic_contracts":{"ui_flogic":"2671912bf789bf3c8ea6412023006c0436a3fd838b7e787a41f9743e102a6909","ui_semantic_components":"72567a0e24bae8d2c0cac70bd06e4b7249016de271c35be6d215bccd054018c5","ui_source_contract_384":"09fe94c4cc04cc6df1d302d5fbeb87141d5dbda5aec33d12bb626201dc01790a"}},"numerics_sha256":"3b811e6b271c6389bdd4e790daf8b442ce4c62a6c63f5f615900f175110afe28"}},"profile":"codebase_ir/source_conditioned_384_v1"},"schema":"codebase-source-384-generation@1","worker_receipt":{"device":"cpu","elapsed_ms":5183,"input_sha256":"782061c28abc3f04589333a1a1a67f3cb2c43388093268f8d3a79041c2986daa","memory_enforcement":"sampled_process_tree_RSS_may_overshoot","memory_mb":4096,"output_sha256":"317acaaf1252757ca0dbd0fa4486026c63a00b78ab88afd11238019190659d4c","provider_calls":0,"returncode":0,"workspace_cleaned":true}} \ No newline at end of file diff --git a/releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/asset-manifest.json b/releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/asset-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..c340e5b4abc0ec45364f7dcd986779702011cedb --- /dev/null +++ b/releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/asset-manifest.json @@ -0,0 +1,306 @@ +{ + "checkpoint": { + "bytes": 1009515, + "path_in_repo": "releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/checkpoint.json", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "codec": null, + "companion_assets": [], + "config": { + "embedding_provenance": { + "assets": [ + { + "bytes": 190, + "name": "1_Pooling/config.json", + "sha256": "4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23" + }, + { + "bytes": 583, + "name": "config.json", + "sha256": "00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59" + }, + { + "bytes": 66746168, + "name": "model.safetensors", + "sha256": "9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2" + }, + { + "bytes": 385, + "name": "modules.json", + "sha256": "73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e" + }, + { + "bytes": 57, + "name": "sentence_bert_config.json", + "sha256": "948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529" + }, + { + "bytes": 125, + "name": "special_tokens_map.json", + "sha256": "b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3" + }, + { + "bytes": 711661, + "name": "tokenizer.json", + "sha256": "da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0" + }, + { + "bytes": 394, + "name": "tokenizer_config.json", + "sha256": "e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7" + }, + { + "bytes": 231508, + "name": "vocab.txt", + "sha256": "07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3" + } + ], + "batch_size": 32, + "device": "cuda", + "dimension": 384, + "dtype": "float32", + "encode_rows_per_second": 2155.864994796075, + "encode_seconds": 0.890593800926581, + "load_seconds": 0.6136547059286386, + "max_tokens_observed": 34, + "model_id": "thenlper/gte-small", + "normalized": true, + "revision": "17e1f347d17fe144873b1201da91788898c639cd", + "rows": 1920, + "truncated": false + }, + "ridges": [ + 0.0001, + 0.001, + 0.01, + 0.1 + ] + }, + "contract": null, + "declaration": { + "decoder_kind": "frozen projection and fixed-tree ridge readout", + "dimension_role": "input_embedding", + "input_width": 384, + "native_codebase_decoder_complete": false, + "owning_ir_family": "codebase_ir", + "payload_ir_family": "security_ir", + "receipt": { + "bytes": 1009515, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/cc/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "role": "registered shared parent envelope" + }, + "full_runtime_closure_verified": false, + "identity": { + "checkpoint_schema": "codebase-source-384-generation@1", + "dimension": 384, + "dimension_role": "input_embedding", + "donor": null, + "donor_pins": null, + "embedded_decoder_schema": "structured-source-384-autoencoder/v1", + "format_id": null, + "initialization_only": false, + "ir_family_id": "codebase_ir", + "legacy_profile": "codebase_ir/source_conditioned_384_v1", + "native_codebase_decoder_complete": false, + "original_checkpoint_pin": { + "bytes": 1009515, + "path": "/home/barberb/lift_coding/artifacts/codebase-source384-20261002/qualified-02/test_real_fit_registry_replay_current/models/cc/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f", + "sha256": "cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f" + }, + "payload_ir_family": "security_ir", + "profile_id": null, + "proof_authority": false, + "record_id": "ir-model-asset-binding/v1:40237a9b6a4dd5723f36fcd80a37ba4d4cadb59067bc2de399c72ea9f96a99d2", + "retained_status": "borrowed_security_payload_unpromoted", + "role": "registered shared parent envelope", + "runtime_ready": false, + "schema_version": null, + "source_profile_id": null, + "task_id": null, + "teacher_qualified": false, + "trained": null + }, + "license_scope": { + "repository_source": "AGPL-3.0, see SOURCE-LICENSE", + "weights_and_companions": "Original provenance retained; this release supplies no new blanket license grant." + }, + "numerical_execution_performed": false, + "original_package": null, + "schema": "retained-ir-checkpoint-release/v1", + "source_binding_scope": "listed checkpoint implementation hashes only, not full import/native closure", + "source_map": [ + { + "declaration_pointer": "/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "original_pin": { + "bytes": 27328, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py", + "sha256": "3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7/ipfs_datasets_py/logic/formalization/autoencoder/structured_source_384.py" + }, + { + "declaration_pointer": "/shared_runtime/legal_codec_sha256", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/decoder.py", + "original_pin": { + "bytes": 24220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/decoder.py", + "sha256": "7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257/ipfs_datasets_py/logic/intent_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "original_pin": { + "bytes": 11527, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py", + "sha256": "6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b/ipfs_datasets_py/logic/intent_ir/formalize/rich_grammar.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.intent_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/intent_ir/schema.py", + "original_pin": { + "bytes": 27163, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/intent_ir/schema.py", + "sha256": "93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56/ipfs_datasets_py/logic/intent_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.security_ir.model", + "expected_relative_path": "ipfs_datasets_py/logic/security_ir/model.py", + "original_pin": { + "bytes": 37220, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/security_ir/model.py", + "sha256": "abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39/ipfs_datasets_py/logic/security_ir/model.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.software_verification.program", + "expected_relative_path": "ipfs_datasets_py/logic/software_verification/program.py", + "original_pin": { + "bytes": 58065, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/software_verification/program.py", + "sha256": "f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91/ipfs_datasets_py/logic/software_verification/program.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.decoder", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "original_pin": { + "bytes": 8008, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/ui_ux_ir/decoder.py", + "sha256": "d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57/ipfs_datasets_py/logic/ui_ux_ir/decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.logic.ui_ux_ir.schema", + "expected_relative_path": "ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "original_pin": { + "bytes": 120714, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/ui_ux_ir/schema.py", + "sha256": "8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855/ipfs_datasets_py/logic/ui_ux_ir/schema.py" + }, + { + "declaration_pointer": "/shared_runtime/native/dependencies/ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/native/runtime", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "original_pin": { + "bytes": 34679, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py", + "sha256": "66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6/ipfs_datasets_py/optimizers/logic_theorem_optimizer/domain_384_autoencoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/canonical_contracts.py", + "expected_relative_path": "ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "original_pin": { + "bytes": 109257, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py", + "sha256": "d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b/ipfs_datasets_py/logic/legal_ir/canonical_contracts.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_formula_codec.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "original_pin": { + "bytes": 14622, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py", + "sha256": "f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_formula_codec.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/legal_ir_grammar_decoder.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "original_pin": { + "bytes": 146870, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py", + "sha256": "0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd/ipfs_datasets_py/optimizers/logic_theorem_optimizer/legal_ir_grammar_decoder.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/modal_latent_formula.py", + "expected_relative_path": "ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "original_pin": { + "bytes": 35427, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py", + "sha256": "ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36/ipfs_datasets_py/optimizers/logic_theorem_optimizer/modal_latent_formula.py" + }, + { + "declaration_pointer": "/shared_runtime/numerical/files/tree_pin.py", + "expected_relative_path": "ipfs_datasets_py/logic/autoformal/tree_pin.py", + "original_pin": { + "bytes": 1948, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/autoformal/tree_pin.py", + "sha256": "587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d/ipfs_datasets_py/logic/autoformal/tree_pin.py" + }, + { + "declaration_pointer": "/shared_runtime/runtime_sha256", + "expected_relative_path": "ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "original_pin": { + "bytes": 31851, + "path": "/home/barberb/lift_coding/artifacts/legal-ir-inference-speed-review/audit/baseline_tree/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py", + "sha256": "8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4" + }, + "path_in_repo": "releases/20261004-retained-checkpoints-v1/source/8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4/ipfs_datasets_py/logic/formalization/autoencoder/source_training_v2.py" + } + ], + "unknown_schema_task_profile_policy": "Unknown fields remain null; no family-only alias or default serving route." +} diff --git a/releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/checkpoint.json b/releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/checkpoint.json new file mode 100644 index 0000000000000000000000000000000000000000..4d92123da5775054b917f3c897a64e1d3f3bf545 --- /dev/null +++ b/releases/retained-checkpoints/cc025fbc017849b806d60f191397fa03759f732a8406cbdcb3558ba3871b2a6f/checkpoint.json @@ -0,0 +1 @@ +{"authority":{"admitted":false,"behavioral_satisfaction":false,"promotion_performed":false,"proof_authority":false,"source_runtime_semantics_verified":false},"checkpoint":{"admitted":false,"config":{"embedding_provenance":{"assets":[{"bytes":190,"name":"1_Pooling/config.json","sha256":"4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23"},{"bytes":583,"name":"config.json","sha256":"00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59"},{"bytes":66746168,"name":"model.safetensors","sha256":"9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2"},{"bytes":385,"name":"modules.json","sha256":"73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e"},{"bytes":57,"name":"sentence_bert_config.json","sha256":"948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529"},{"bytes":125,"name":"special_tokens_map.json","sha256":"b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3"},{"bytes":711661,"name":"tokenizer.json","sha256":"da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0"},{"bytes":394,"name":"tokenizer_config.json","sha256":"e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7"},{"bytes":231508,"name":"vocab.txt","sha256":"07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3"}],"batch_size":32,"device":"cuda","dimension":384,"dtype":"float32","encode_rows_per_second":2155.864994796075,"encode_seconds":0.890593800926581,"load_seconds":0.6136547059286386,"max_tokens_observed":34,"model_id":"thenlper/gte-small","normalized":true,"revision":"17e1f347d17fe144873b1201da91788898c639cd","rows":1920,"truncated":false},"ridges":[0.0001,0.001,0.01,0.1]},"dimension":384,"domain_id":"security_ir","head_sha256":"417c4e9008774d43b90079ebb3fb4ed77e2129c84ce2d4c236c9274e0902a50b","head_state":{"bias":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.1,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.6,0.4],"weights":[[0.6006566862392813,0.38770374586982587,-0.1665702252851927,-0.28953244513253507,-0.5322577617020563,0.6006566862392813,0.38770374586982587,-0.1665702252851927,-0.28953244513253507,-0.5322577617020563,0.9234618051425145,1.7092131635227525,-2.466716973522844,0.5081539302805205,-1.1919544810180027,0.3860126848863854,0.1276328229211774,3.086333325496494,-3.082136277711654,0.24934987970882286,-0.24934987970882286],[-0.30048457466774814,-0.32967379623264403,0.2953669575772439,0.5790275309686522,-0.24423611765183173,-0.30048457466774814,-0.32967379623264403,0.2953669575772439,0.5790275309686522,-0.24423611765183173,-4.8579086066505415,2.3006071706698994,-0.8186157455203238,-0.8209496173772984,1.8266580685467289,0.013333771470271427,-0.7268216905620073,-0.5078946710588426,3.5915913204811103,-0.6610418077764615,0.6610418077764615],[0.3545561958432767,-0.4706775257777238,0.650936626487587,-0.38219391517499085,-0.1526213813776794,0.3545561958432767,-0.4706775257777238,0.650936626487587,-0.38219391517499085,-0.1526213813776794,0.14057317404578207,-2.579833577948162,1.085239710149236,1.8738664345665088,-5.720261485683716,6.066429636444989,-0.7865767215559922,1.7659154727596713,-1.8453526427904632,-0.3792725667768488,0.3792725667768488],[0.16933009578926353,-0.4219901326580718,0.31995442506359256,-0.4000766258584434,0.3327822376661451,0.16933009578926353,-0.4219901326580718,0.31995442506359256,-0.4000766258584434,0.3327822376661451,0.4067725596878097,0.9159779747343478,0.306589549811191,-1.1435278108704996,-0.05784318884627759,-0.5600739691219965,4.004987881128105,2.196070735892465,-6.0689537324210505,-0.07903971367500635,0.07903971367500635],[0.14667781261415286,0.5620031496416408,0.5035501797330947,-0.885556175211307,-0.32667496676991215,0.14667781261415286,0.5620031496416408,0.5035501797330947,-0.885556175211307,-0.32667496676991215,1.1920113977137559,1.6157548130068011,-1.1687072266737593,0.3184647231378538,-0.41900412241641205,-1.2524198200105332,0.4989541997090875,1.281573697314467,-2.0666276617764705,-0.7655123094737447,0.7655123094737447],[0.2715728103971805,0.05415291110477758,-0.48635710064880566,0.32865864527970545,-0.16802726613735172,0.2715728103971805,0.05415291110477758,-0.48635710064880566,0.32865864527970545,-0.16802726613735172,3.9725693273229226,-2.190940211484007,1.340669075899849,0.5734632666373699,-4.056748943329941,3.5027760263602916,-2.5920854085389498,2.746087861749852,-3.295790994633543,0.27680786893416676,-0.27680786893416676],[0.5330180197056164,-0.605826270136096,0.2541724982498659,-0.2875241484774971,0.10615990064926137,0.5330180197056164,-0.605826270136096,0.2541724982498659,-0.2875241484774971,0.10615990064926137,4.766947394035933,0.4654665375710376,-2.9352450309879234,2.499820625368825,-3.2466711248767344,-3.328624585684442,0.8067198865508042,6.504594505738646,-5.53300820772037,-0.030042131959823012,0.030042131959823012],[-0.6125866290860877,0.5970804874703494,0.4612487272725668,-0.8463468927877598,0.4006043071301957,-0.6125866290860877,0.5970804874703494,0.4612487272725668,-0.8463468927877598,0.4006043071301957,0.5679281983787962,-1.3385634608533592,0.05239273833646241,2.0573902526145105,2.643649372199433,-0.06724691820091411,3.923812874321375,-5.592182543150716,-2.247180513649215,-0.7712195300921016,0.7712195300921016],[0.15440718517681679,-0.27580111917760497,0.570459099346381,-0.44447131143371477,-0.004593853898974043,0.15440718517681679,-0.27580111917760497,0.570459099346381,-0.44447131143371477,-0.004593853898974043,-0.3923156140902486,0.7559672756321687,-0.09587196911841589,-0.503587981649567,-0.7312195718623035,2.1560812067818906,3.75540771817474,6.223025064235873,-11.16748612810448,-0.15650732486119492,0.15650732486119492],[0.3055429628307909,0.5117518603812771,-0.15111166103187973,-0.38494903243325074,-0.28123412974164563,0.3055429628307909,0.5117518603812771,-0.15111166103187973,-0.38494903243325074,-0.28123412974164563,2.3745824232261974,-2.1634897256738634,3.7074872481885173,-2.5705845608007425,2.38052267240828,-1.6797319549353955,-1.7876170692867421,-4.173445332093696,3.9122762989657636,1.0265870383065172,-1.0265870383065172],[-0.07130203920139871,0.33101342053340904,-0.2138576400211972,-0.11929330472201674,0.07343956342467339,-0.07130203920139871,0.33101342053340904,-0.2138576400211972,-0.11929330472201674,0.07343956342467339,-3.297547646383311,1.8304736719330388,-2.3314494205273584,1.1744951439687548,-2.308700120940681,3.2696072016060675,0.16528715635809998,1.473064214136255,0.02476979984410832,-0.6735193953761566,0.6735193953761566],[0.5289451735104853,0.08500101192330536,-0.3023248045535609,-0.4384411514297408,0.12681977055089233,0.5289451735104853,0.08500101192330536,-0.3023248045535609,-0.4384411514297408,0.12681977055089233,-3.5996730529974563,3.717917767753227,0.6886155955689915,-4.6634151349059705,-0.44015388888969065,4.763057841485285,-2.608250779625408,2.5720938682271295,-0.43019221662872326,0.25688177158170045,-0.25688177158170045],[0.1969727779376123,-0.519513851786075,0.13075901391801165,0.18422076847466645,0.007561291435781159,0.1969727779376123,-0.519513851786075,0.13075901391801165,0.18422076847466645,0.007561291435781159,-2.0928196673773187,-1.907309562039047,3.3123042037447648,-0.7083262373317376,-4.081072282968762,6.86201927929847,-0.531635208715528,4.909584996116628,-5.762745520705452,-0.6966684043597003,0.6966684043597003],[-0.18140164283983118,-0.6153309478850945,0.396409392308969,0.49824856813523277,-0.0979253697052373,-0.18140164283983118,-0.6153309478850945,0.396409392308969,0.49824856813523277,-0.0979253697052373,0.21236781712473807,6.160525664711072,-4.908600187804349,-1.063847552239282,-1.18421138707654,-1.7298910261890499,4.17130692002816,-0.9366778183639223,-0.7209724302013492,-0.18807792466438594,0.18807792466438594],[-0.22457250845674892,-0.623546818049965,0.5303398732246764,0.5487319925140595,-0.23095253925373888,-0.22457250845674892,-0.623546818049965,0.5303398732246764,0.5487319925140595,-0.23095253925373888,-0.2047214322178908,-4.958314840444365,3.127598784373822,2.217614277946311,0.5804002901995708,-1.9834364051868494,-1.8916201169272042,-4.512676838978529,7.6251562812411375,-0.3868982218711018,0.3868982218711018],[-0.055980723224909226,0.3399679202298874,-0.34547820164582727,-0.03106164578332485,0.09255265043791137,-0.055980723224909226,0.3399679202298874,-0.34547820164582727,-0.03106164578332485,0.09255265043791137,2.1805364733833072,3.433104492850838,-2.006552863242399,-1.5265645639252527,-2.586476070343111,-0.4364795275304534,2.1733879850816913,-1.2389293001369481,0.007973373871664746,0.1000129343231986,-0.1000129343231986],[-0.2147040703653424,0.3997695017411996,-0.34313451857876237,-0.19955506465692185,0.3576241518739669,-0.2147040703653424,0.3997695017411996,-0.34313451857876237,-0.19955506465692185,0.3576241518739669,1.343879568244675,-0.025318260501663525,-1.1161130134209185,1.4479557281975075,-0.767061577335873,0.4335678615382342,-1.4143551309533182,0.6014920571931319,-0.5040472329544549,-0.30652445427520036,0.30652445427520036],[-0.2165117658519795,-0.28166973130709616,0.5931423840179104,0.15926701999410697,-0.2542279068442497,-0.2165117658519795,-0.28166973130709616,0.5931423840179104,0.15926701999410697,-0.2542279068442497,-0.4530821702943171,2.798593939124126,-3.3780148852446588,0.9929403676721631,-6.370024057332149,10.026618373350283,-2.1058586129300663,0.06765061057025523,-1.578823564912586,-0.4135194215488241,0.4135194215488241],[-0.030345416231820188,0.11629099257180955,-0.10806119171861309,0.1388827541962368,-0.11676713881926,-0.030345416231820188,0.11629099257180955,-0.10806119171861309,0.1388827541962368,-0.11676713881926,0.551341212840678,4.000772313697378,-1.5333532857655234,-2.9535319682937433,8.221141270986816,-9.502439162003196,-0.7322382981142416,-1.4237641189748602,3.3720720356209095,0.4861129403615695,-0.4861129403615695],[0.234536312070633,0.535411402087433,-0.13526517429635534,-0.8030012356135463,0.16831869575688013,0.234536312070633,0.535411402087433,-0.13526517429635534,-0.8030012356135463,0.16831869575688013,3.3116916373655667,-0.32494748360973513,0.618927698183586,-0.8203212803468248,-3.739621789749301,3.031725484912225,-2.533830962961887,0.36821307329978437,0.08816362290586222,0.5263410657811902,-0.5263410657811902],[0.20097048995315495,-0.3534624227003089,-0.1490045395428851,0.20433308393983313,0.09716338835533206,0.20097048995315495,-0.3534624227003089,-0.1490045395428851,0.20433308393983313,0.09716338835533206,1.6097650102755743,2.9147724525705674,-1.9124752259459372,-0.20719122374273535,-0.04215798169356777,1.3525799273926735,0.9924788820626518,0.5394424840458769,-5.247214324963656,-0.7951060028826846,0.7951060028826846],[0.19553749726890116,0.20006592964382938,-0.01209030803639255,-0.34068227192417533,-0.042830846949798704,0.19553749726890116,0.20006592964382938,-0.01209030803639255,-0.34068227192417533,-0.042830846949798704,3.0079338604452635,-2.8259455201567603,2.9216334791568452,-0.509468548091969,1.8825957240036217,-3.9303074246198637,-1.0769202386082495,-2.9797505122401495,3.5102291801214216,0.4137805890989448,-0.4137805890989448],[-0.4733223302311709,0.42878443212976025,0.03241208370628229,0.22800059704086728,-0.21587478263811793,-0.4733223302311709,0.42878443212976025,0.03241208370628229,0.22800059704086728,-0.21587478263811793,-0.23561214069264458,1.3385418787535648,-1.6041557485779527,-0.24868901766974139,2.4360762769404984,-3.7180641479768073,2.107433692555105,0.7208040655071137,-0.796334858830754,0.5143028874951782,-0.5143028874951782],[0.5899211586427857,-0.8842385655236409,0.5470445098672007,-0.19133789153602798,-0.0613892114389953,0.5899211586427857,-0.8842385655236409,0.5470445098672007,-0.19133789153602798,-0.0613892114389953,5.1547637585005175,-4.74388364622054,5.104857865570525,-0.22929996040133918,-0.9369382633170138,0.6093486158714191,-1.0320510674533963,-0.5986745549913188,-3.328122747551583,-0.13167425892821757,0.13167425892821757],[-0.3029971609756581,-0.35214025018819994,0.7601222106025346,0.017886096064992994,-0.12287089553516528,-0.3029971609756581,-0.35214025018819994,0.7601222106025346,0.017886096064992994,-0.12287089553516528,0.012878356772000554,-3.5543514305609554,-1.405018138932888,5.118981981302848,1.6078814236467704,2.4045877320272036,2.7448597141726534,-9.892520326013093,2.962700687587926,-0.1596124118148073,0.1596124118148073],[-0.4586712879604534,0.7864941666684757,-0.15516544154587,-0.23377184727062778,0.06111441010487566,-0.4586712879604534,0.7864941666684757,-0.15516544154587,-0.23377184727062778,0.06111441010487566,6.4865289204636545,0.30004330115999167,1.2839884434192639,-2.176936984855202,-0.12360021328288484,0.6850331810797852,-2.3491669127234536,0.5181289876506114,-4.624018722921024,0.5929052402735736,-0.5929052402735736],[-0.04811536452573656,0.2709872367409998,-0.09487609333860109,0.03391190365211471,-0.16190768251530982,-0.04811536452573656,0.2709872367409998,-0.09487609333860109,0.03391190365211471,-0.16190768251530982,-0.44995781754579495,-0.3472534213568075,-0.4466820781234144,1.067420542630119,-0.1760725433076351,-4.305820336892019,1.2216186975681789,-3.842570181120726,7.279317138142255,-0.27348504315681454,0.27348504315681454],[0.3443724531222558,0.24006405461514518,0.019327502251947376,-0.5388734556892335,-0.06489055431211123,0.3443724531222558,0.24006405461514518,0.019327502251947376,-0.5388734556892335,-0.06489055431211123,-3.2106729958865796,-0.7489105099848042,0.12640976571781004,0.4062786041838946,2.5630414281091256,-2.863158491996444,-1.003523924110803,1.9126788907999241,2.81785723317047,0.21622214007559024,-0.21622214007559024],[-0.2357375233856434,-0.44659709471322684,0.2369379181154751,0.6169454093102458,-0.17154870932186111,-0.2357375233856434,-0.44659709471322684,0.2369379181154751,0.6169454093102458,-0.17154870932186111,-2.415776855465973,-2.1930002921875418,2.6461543782113273,0.16709608613962318,1.64360386950295,-2.7043991302238606,3.289049636314793,1.2479753150729298,-1.6807030073624187,-0.6202501721489744,0.6202501721489744],[0.3616645806090924,0.5348372891367648,0.17721784424212994,-0.5033883137254636,-0.5703314002747853,0.3616645806090924,0.5348372891367648,0.17721784424212994,-0.5033883137254636,-0.5703314002747853,-2.0013088544053117,-1.2971500679512067,1.0334768068277078,0.08331700241589957,-5.504198590230397,3.6400650515842146,1.02683692436442,3.402723048900728,-0.38376132151429365,0.1803562587075217,-0.1803562587075217],[-0.34511854436982337,0.5955079606022341,-0.593959328060622,0.0054455774082489,0.33812433443967316,-0.34511854436982337,0.5955079606022341,-0.593959328060622,0.0054455774082489,0.33812433443967316,0.952805637838311,-0.8958961635475196,1.3510410274090794,-0.8779830567806113,-2.6595131724381087,2.7893742079900927,-0.5037658772410175,3.1090984872218543,-3.265161090456927,0.42283819290706715,-0.42283819290706715],[-0.37603429131991073,0.20058908676316275,-0.043699904559727776,-0.22434732851179792,0.4434924376182379,-0.37603429131991073,0.20058908676316275,-0.043699904559727776,-0.22434732851179792,0.4434924376182379,4.397680031916109,-1.9476837464429246,0.7206494559178607,1.9302595820308701,2.5686961792788385,0.2493612604677134,-2.7061609483626454,-4.628441662380961,-0.5843601524334576,-0.703225291506976,0.703225291506976],[0.43113506701643867,-1.1863936989265622,0.24229772855210208,0.635553356416962,-0.12259245306790656,0.43113506701643867,-1.1863936989265622,0.24229772855210208,0.635553356416962,-0.12259245306790656,-3.0383135321975687,0.6486419870473623,-2.6268471819668653,3.0573817840380526,-0.1694476258164379,-1.6006567674475969,3.1404970147095694,-3.439398131100635,4.028142452742594,-1.079176589117229,1.079176589117229],[-0.205258189175918,-0.15724302092358697,0.43630556351412086,-0.3115829482507537,0.23777859486399477,-0.205258189175918,-0.15724302092358697,0.43630556351412086,-0.3115829482507537,0.23777859486399477,-0.18222380944257166,1.392595934696578,-0.9515449390214215,-0.23291598295971322,3.0492390598307293,-4.136726650937479,-2.0364152083332154,-2.8170147832385743,5.915006379387042,-0.20813501272596097,0.20813501272596097],[0.06025652972218612,0.6105362769912337,-0.47345826140914227,-0.38271397019141484,0.18537942489313047,0.06025652972218612,0.6105362769912337,-0.47345826140914227,-0.38271397019141484,0.18537942489313047,-0.6641257065944206,-1.303502228913519,-0.3217474323267314,1.1762098119546658,-3.1419638636628537,4.215614706417122,0.11158415176539216,2.3334600718982905,-2.405529510532357,0.449039849278864,-0.449039849278864],[0.30882950276792914,-0.22695434177887447,0.32804967909112953,-0.17419756586573237,-0.23572727421893738,0.30882950276792914,-0.22695434177887447,0.32804967909112953,-0.17419756586573237,-0.23572727421893738,2.3791020315285083,-2.814958643359724,1.0767908255368714,1.805893413833737,3.6148095706562198,-2.233254192763532,-1.4432596351020712,-3.144289453475864,0.7591660831423432,-0.06772559599929306,0.06772559599929306],[0.11883876380468879,-0.26573087697769077,-0.3625945830086437,0.2052407254055531,0.3042459707667007,0.11883876380468879,-0.26573087697769077,-0.3625945830086437,0.2052407254055531,0.3042459707667007,0.4850384275289434,0.009672092137107069,0.1634193445729255,-0.79377073781534,-3.195598353184016,0.9496771074299697,-0.06834352667252952,5.509744157519592,-3.0598385115225937,0.6206793011117925,-0.6206793011117925],[0.13782990630414604,0.41083407496488833,0.03458705948326232,-0.4207780507562467,-0.16247298997810125,0.13782990630414604,0.41083407496488833,0.03458705948326232,-0.4207780507562467,-0.16247298997810125,-0.4910590606024716,-2.0749720035514656,1.556453229425947,0.409470719262148,-3.2656074756748383,7.443176131155953,-1.077107355523472,4.619279819767486,-7.1196340042535855,0.10904805486369323,-0.10904805486369323],[0.06117850774572382,-0.26418129207382085,-0.15337729613885945,0.10320976057613036,0.2531703198773374,0.06117850774572382,-0.26418129207382085,-0.15337729613885945,0.10320976057613036,0.2531703198773374,0.991072172342911,1.8183063428357689,2.6564048584965843,-4.882883426439023,2.9354611421738572,-1.8695721436585355,-1.5186204050446173,-2.467144445882555,2.336975905180316,0.4081722251129928,-0.4081722251129928],[-0.24864678656838687,0.29475027745824295,-0.2505211379671835,0.2842944455441677,-0.07987679844414819,-0.24864678656838687,0.29475027745824295,-0.2505211379671835,0.2842944455441677,-0.07987679844414819,1.3418087546835586,-0.7482069681875365,-1.1982205519257416,2.1878682414873323,1.7394996600328099,-1.749801495388088,-0.5886036207365433,-4.483072922657289,3.4987289026962864,-0.2414407213598834,0.2414407213598834],[-0.12659207572550168,-0.8145250876548866,0.43887009296796786,0.6598941393834378,-0.15764706896407843,-0.12659207572550168,-0.8145250876548866,0.43887009296796786,0.6598941393834378,-0.15764706896407843,-1.7454249435727025,-0.6634015596263063,-0.33546982802957215,1.762564552049228,4.904458857170818,-6.272719126495158,2.77050772372253,-4.18262643518863,3.7621107599598163,-0.7636931644062769,0.7636931644062769],[0.3145524682762692,-0.1953993594769337,-0.2031099381738815,0.2729098892279701,-0.18895305986146319,0.3145524682762692,-0.1953993594769337,-0.2031099381738815,0.2729098892279701,-0.18895305986146319,4.323353804786544,3.5539759362944507,-2.3490638180006025,-1.1385431233128422,0.479937633557075,-5.050436414705837,0.19967588394964025,-0.11197210495246429,0.09307220238146213,-0.06636899498811707,0.06636899498811707],[-0.34081242327650074,-0.04144603989143569,0.37659507476836945,0.1790772344748841,-0.17341384609493565,-0.34081242327650074,-0.04144603989143569,0.37659507476836945,0.1790772344748841,-0.17341384609493565,0.13485546237024804,-0.35553385031389917,0.053365353432491824,-0.4937947050166699,1.638569204865157,1.9548905614041214,0.46564211597531113,0.3699590020605461,-3.7679531447727843,0.7959632019005051,-0.7959632019005051],[-0.06470770834618976,-0.2588581025045541,-0.38254818600299506,0.4239746107752163,0.2821393860981465,-0.06470770834618976,-0.2588581025045541,-0.38254818600299506,0.4239746107752163,0.2821393860981465,-4.09307805312643,-0.367391593655243,1.2652975773388653,-1.2063639585728783,3.0989278642941445,-0.4649888362838268,2.259138161712728,-2.517038374588575,2.025497212876061,0.30845797489334414,-0.30845797489334414],[0.006887600721429962,0.20905051418681306,0.1506843918117048,0.09006585873214606,-0.4566883654537538,0.006887600721429962,0.20905051418681306,0.1506843918117048,0.09006585873214606,-0.4566883654537538,0.8759788075629475,-3.775635003144161,-1.0474223686872484,4.964341539867504,-0.7471797363652883,2.439542829106527,-0.15594436369302622,-0.2822445197686523,-2.2714371848648667,-0.14128416803724908,0.14128416803724908],[-0.06779825099324072,0.20498354097638502,-0.2845596790147593,0.04077560822981405,0.10659878080880034,-0.06779825099324072,0.20498354097638502,-0.2845596790147593,0.04077560822981405,0.10659878080880034,-2.018209171732076,0.7089707931869186,-0.969106701425855,0.18159887069145944,0.7721899170233935,-0.5098792975869035,4.89614966716997,0.9237184094895015,-3.985432486817034,0.07853703753616519,-0.07853703753616519],[0.06025803640027784,-1.0477824370961906,0.7451429024848262,-0.09916318356796258,0.3415446817590385,0.06025803640027784,-1.0477824370961906,0.7451429024848262,-0.09916318356796258,0.3415446817590385,2.1340839542676573,-4.504447257055293,2.030947164352772,2.9063447554497372,1.6218227850880127,-4.435788739482988,-2.294086066540693,0.2673380207563971,2.2737853831604933,-0.4328446627475915,0.4328446627475915],[0.4143139206388881,0.010714991502163998,-0.00782503943351133,-0.026860444713057405,-0.39034342799302146,0.4143139206388881,0.010714991502163998,-0.00782503943351133,-0.026860444713057405,-0.39034342799302146,-0.00352591294423521,1.7181841033674377,-4.173242501207083,2.8015005278904503,2.3092681785485794,-3.62816747388018,1.6750165422205976,-2.4083808352212874,1.7093473712201428,-0.3464421300554867,0.3464421300554867],[-0.31232180132164783,-0.0632579288859238,0.37117267692961986,0.25936870907251075,-0.254961655787591,-0.31232180132164783,-0.0632579288859238,0.37117267692961986,0.25936870907251075,-0.254961655787591,-1.530136208731145,-2.7625484068316344,0.6292969393286758,2.5177799236352003,-0.313235240411347,0.040645628617971497,-5.28445632443135,0.2948471221188248,6.407806566709141,-0.3845284561244461,0.3845284561244461],[-0.1357218131783003,-0.036997071610877175,-0.06177847376725593,0.5098802827311545,-0.27538292416402826,-0.1357218131783003,-0.036997071610877175,-0.06177847376725593,0.5098802827311545,-0.27538292416402826,-3.140020674444842,1.8853878041607082,-1.2899331846001703,-1.5402640897211382,-1.977754332423074,2.4019265989165715,5.770908890074447,2.6648947921700814,-4.7751458041278045,0.9448094701576274,-0.9448094701576274],[-0.19052213140372368,0.04419493592042467,0.040316371042785244,0.15970225496736407,-0.05369143051823702,-0.19052213140372368,0.04419493592042467,0.040316371042785244,0.15970225496736407,-0.05369143051823702,1.3194516306107678,2.3468900565090274,0.6168055808408602,-2.8122303915557234,3.1473056397843213,-3.2331780213249313,2.7170728257610297,-6.8025047701574,2.700387449541738,-0.15146524578228487,0.15146524578228487],[-0.2973685654802116,0.01967898920493255,0.40161645675813906,-0.5348907454007931,0.4109638649234513,-0.2973685654802116,0.01967898920493255,0.40161645675813906,-0.5348907454007931,0.4109638649234513,1.3462656297091098,-2.0689504799426963,3.11040834345414,-1.4636470584443035,4.083724869633998,-3.180582348444134,2.8431876239717093,-2.605827197513418,-2.0645793824225773,0.42218919492668205,-0.42218919492668205],[0.16114843565434783,0.45603913758244974,-0.15960101714650515,-0.39972937464699604,-0.0578571814245646,0.16114843565434783,0.45603913758244974,-0.15960101714650515,-0.39972937464699604,-0.0578571814245646,-1.176957047446256,-0.9978308835843814,-1.2894666736522273,1.857761729082073,0.08672425658111127,3.617113707208721,-5.181646470860054,2.597043244408316,0.48725813826251807,0.4295358281544708,-0.4295358281544708],[-0.4074881367847547,0.33434515618218275,-0.4068208845525181,0.07174096358029278,0.4082229015593411,-0.4074881367847547,0.33434515618218275,-0.4068208845525181,0.07174096358029278,0.4082229015593411,-1.4120326145479214,-1.0541605277432762,-1.9983550840969562,2.485416828549691,2.6433384373186426,-2.8830855379351124,-0.6051610522418794,-2.873408039184201,5.697447589875823,0.5670987832817859,-0.5670987832817859],[0.018152707254532767,-0.46234190244685014,0.17311068338975433,0.5106548130387789,-0.2395763012406889,0.018152707254532767,-0.46234190244685014,0.17311068338975433,0.5106548130387789,-0.2395763012406889,-0.8458350864739417,-2.210714053150768,1.3718810932367724,0.9673910514948345,1.6728471079664011,-0.5017772636259624,-2.4832467791701927,-3.8875560563731453,5.9170099860871375,-0.12855809158916512,0.12855809158916512],[0.11314141010450421,-0.4579271929933184,0.05692661704226723,0.3371006522848639,-0.04924148642598497,0.11314141010450421,-0.4579271929933184,0.05692661704226723,0.3371006522848639,-0.04924148642598497,-1.448579729037465,0.7946629406198877,-1.1127837031117815,-0.0337975415117166,2.9214907664242595,-6.129944645954984,4.66721508883213,0.015510410020299903,0.32622641372058536,0.35191830399490365,-0.35191830399490365],[0.2664175373449934,0.0023603892002885454,0.05154852003714132,-0.4873775244986658,0.16705107790766352,0.2664175373449934,0.0023603892002885454,0.05154852003714132,-0.4873775244986658,0.16705107790766352,3.441484906411053,-0.19100175481067516,-2.7762204033816893,3.0061997650676044,6.057064793067315,-10.055358122794036,-0.7762449197224991,-8.355993541703704,9.650069277866807,-0.03897760686432028,0.03897760686432028],[0.19376498649083038,-0.043947135462852005,-0.06913484373773737,-0.030534602627558687,-0.05014840465467073,0.19376498649083038,-0.043947135462852005,-0.06913484373773737,-0.030534602627558687,-0.05014840465467073,-1.1572735029291628,0.022634609051523258,0.32681782143204896,-1.1235824691733807,2.9958796330302775,-2.472473587427892,-2.274899683306042,0.6072641419685278,3.075633037357328,0.7741300386876226,-0.7741300386876226],[-0.2304812015856562,-0.006800038496237726,0.08223877959704573,-0.28009186128228525,0.4351343217676419,-0.2304812015856562,-0.006800038496237726,0.08223877959704573,-0.28009186128228525,0.4351343217676419,0.44051766537389,1.6826971403499693,-2.191651541306837,1.145686720857481,-1.8595230927812234,0.7148660598935042,-2.3193722148793765,-2.61680150824127,5.0035807707322455,-0.6367323198885794,0.6367323198885794],[-0.07164381848756862,-0.7555088111885471,0.04512938881269006,0.389376782759454,0.39264645810012416,-0.07164381848756862,-0.7555088111885471,0.04512938881269006,0.389376782759454,0.39264645810012416,-0.2412208926352446,1.3772175771871307,-2.522274141986251,0.8241665900095276,-4.6618768773305606,4.3073748786069475,2.226940254608741,7.252214500044314,-8.562541888508742,0.3208899747853346,-0.3208899747853346],[0.3980123480284708,-0.6257193592080565,0.5112851959591778,-0.6234831226631095,0.33990493787270537,0.3980123480284708,-0.6257193592080565,0.5112851959591778,-0.6234831226631095,0.33990493787270537,5.210081037607775,0.4001905167601548,0.0032976208346827685,-0.550047909857089,-1.1237177191067405,0.10477708390323048,-2.7031602314569625,-0.8791742492782788,-0.4622461494048382,0.14655977226059486,-0.14655977226059486],[-0.16298288952241666,0.1778164134155554,-0.35532624195223056,0.1310620825971146,0.2094306354583864,-0.16298288952241666,0.1778164134155554,-0.35532624195223056,0.1310620825971146,0.2094306354583864,-1.8282494303934027,-2.0767681096508497,-0.4012545274125452,1.8395888931642208,5.248717696241373,-1.8742588638548612,-1.7124122372138615,-4.26033363576868,5.064970214891423,0.6384337438991265,-0.6384337438991265],[0.15561153977448403,-0.21501777422990434,-0.3134525557320077,0.2740862204745192,0.09877256969379639,0.15561153977448403,-0.21501777422990434,-0.3134525557320077,0.2740862204745192,0.09877256969379639,1.959606831810281,2.526758121605442,0.8785280978355952,-2.8186468418067223,-1.0120479754484464,-3.6327949887127122,2.9273219014144094,0.30815649056325234,-1.1368816372521207,-0.5866393776257428,0.5866393776257428],[0.10755086145550152,-0.21667760159487393,-0.2088546953285783,0.7262171986947137,-0.4082357632254886,0.10755086145550152,-0.21667760159487393,-0.2088546953285783,0.7262171986947137,-0.4082357632254886,3.8935886669908792,2.3264706896687657,-0.9726980470411647,-1.7275731166294699,3.6397988869617395,-8.270222024556114,5.307306432525988,-1.317324487608731,-2.8793470003168875,0.37380047400089944,-0.37380047400089944],[-0.22579512484265374,0.11539968711472894,0.11701007611763103,0.41305125784326047,-0.41966589624537165,-0.22579512484265374,0.11539968711472894,0.11701007611763103,0.41305125784326047,-0.41966589624537165,-2.9238446174609685,5.305689815612463,-3.2912304167031565,-2.6087333129589756,0.9655440942972229,0.08240672609797839,-0.9319878768950338,-3.9998202675820576,7.401975855581173,0.5942739140573188,-0.5942739140573188],[-1.044168917980048,0.27319443783354547,0.27103333819858205,-0.08029011910149794,0.5802312610452703,-1.044168917980048,0.27319443783354547,0.27103333819858205,-0.08029011910149794,0.5802312610452703,-0.16755030500030807,-0.2549503784060142,-0.5640073583572487,1.1108260295700385,-2.1357625739546124,7.32077385396218,1.2591193593173824,0.8522367959920008,-7.4206854231322135,-0.2918682928151476,0.2918682928151476],[0.23064111553908628,-0.6326454798918352,0.33291835721482976,-0.2268177231123306,0.2959037302463504,0.23064111553908628,-0.6326454798918352,0.33291835721482976,-0.2268177231123306,0.2959037302463504,2.9847150180654167,0.3454987621546747,-2.778856551820728,2.0507750202665886,1.529309758990193,-1.9819454226002087,0.23200391819980237,0.9119307212716152,-3.2934312245313846,0.3825827693975408,-0.3825827693975408],[-0.4174321792027099,-0.28475942392671233,0.15660141041002593,0.3350641685466381,0.21052602416272442,-0.4174321792027099,-0.28475942392671233,0.15660141041002593,0.3350641685466381,0.21052602416272442,1.6827799282620912,-0.017416465486688848,1.472068474296353,-1.1582101830480125,2.956949514471825,-1.2747488220117562,-3.5060871865306504,-1.2781833112127972,1.122848051253484,-0.2964418257626273,0.2964418257626273],[-0.3214626578213997,-0.8126813015747324,0.3942490263835652,0.567592465881919,0.17230246715656744,-0.3214626578213997,-0.8126813015747324,0.3942490263835652,0.567592465881919,0.17230246715656744,-4.734989459455862,-0.8648042582358968,0.7040207283681506,-0.6686563396559264,1.8043734891761511,-1.2307339507319681,-1.081842263342711,-1.927476157386966,8.000108211254503,0.8294398695231184,-0.8294398695231184],[-0.004514310477602923,-0.06773023085991892,-0.31623933781457264,0.061244234001050474,0.3272396451627845,-0.004514310477602923,-0.06773023085991892,-0.31623933781457264,0.061244234001050474,0.3272396451627845,-2.5352225063163254,-1.2179346965519589,1.8606012542851853,-0.7965015710601819,-5.138184343548829,4.472942876954119,-4.668539670877736,2.61038836039098,5.412450296737536,0.15383501332024546,-0.15383501332024546],[0.25137945540863993,0.36994890350319704,-0.009413269137773655,-0.7781477959039991,0.1662327061262544,0.25137945540863993,0.36994890350319704,-0.009413269137773655,-0.7781477959039991,0.1662327061262544,3.624096706022281,0.8525004863513699,-1.5125736346693976,0.6661561623498391,-4.0334996873207025,2.0446092596202323,0.8276332867915662,-2.659283536435367,0.19036095728740188,-0.00608301404212222,0.00608301404212222],[-0.10813644055408847,-0.1279701139678351,0.0034553081257372165,0.155023047737483,0.07762819865642649,-0.10813644055408847,-0.1279701139678351,0.0034553081257372165,0.155023047737483,0.07762819865642649,-0.046888003363959596,-0.5388599269966132,-0.5424053793981682,1.2756635156555827,-1.4154413314320864,2.3780317620360445,2.7260702096693996,0.3772324423046598,-4.213403288466074,-0.19439820926202275,0.19439820926202275],[0.12046587761739874,-0.13556496660520853,0.4197082663667843,-0.22533239271475286,-0.17927678464083632,0.12046587761739874,-0.13556496660520853,0.4197082663667843,-0.22533239271475286,-0.17927678464083632,-1.7593362528818792,0.9824594032161211,-0.03715408369540507,-0.750523457933134,0.2769787760514988,-2.1059307296525365,6.2108845159351596,-0.6674019054700934,-2.149976265561778,-0.19478186158470764,0.19478186158470764],[0.16294759648961415,-0.854374599227967,0.27223126361735817,0.36951678534681603,0.04967895375691611,0.16294759648961415,-0.854374599227967,0.27223126361735817,0.36951678534681603,0.04967895375691611,-0.0938997329211636,0.4389642225358408,2.4768642767345446,-3.0823835155078174,3.4780420644029664,-3.829323861867009,2.361502087194308,-2.9564552067820644,1.206689666214971,0.1665550162367304,-0.1665550162367304],[0.5108112392022425,0.5529446985875442,-0.1497391224235814,-0.6956489076137606,-0.21836790776633225,0.5108112392022425,0.5529446985875442,-0.1497391224235814,-0.6956489076137606,-0.21836790776633225,1.4790540690766512,1.7571927122851296,-1.0943843365291628,-0.9691957643858025,-1.9384024599319645,1.7217804062272093,-1.4203630504252998,2.3459099056570727,-1.881591481974599,0.30638738861871556,-0.30638738861871556],[0.2229771969908762,-0.059046172650358886,0.08479738987444946,-0.15801107409625592,-0.09071734011273602,0.2229771969908762,-0.059046172650358886,0.08479738987444946,-0.15801107409625592,-0.09071734011273602,-0.5241125179757433,-1.7453858021227195,1.3889485199340421,0.055909620007731364,-0.6768064814169881,-2.3988510231903546,-1.665102130958546,-5.192811008917384,10.758210824651025,0.3005276621824885,-0.3005276621824885],[-0.005479250513157289,-0.15034903130149468,-0.09484925520296883,0.4058720700674636,-0.15519453304653946,-0.005479250513157289,-0.15034903130149468,-0.09484925520296883,0.4058720700674636,-0.15519453304653946,-1.1711429145808738,-3.008288770727448,3.2344014957790423,0.09383731343073126,4.446375668404416,-1.8688170227721022,1.0190880873237882,-4.596995257526237,1.8515414006688413,-0.3199500384885672,0.3199500384885672],[-0.2113747120306327,-0.22734350199185432,0.40438959120240386,-0.4015294203443511,0.4358580431646485,-0.2113747120306327,-0.22734350199185432,0.40438959120240386,-0.4015294203443511,0.4358580431646485,-1.5032355751656234,-4.1427634642873,-0.025531678821766768,3.7925360131346553,-7.333139800200554,8.103589957760379,3.6717632038312864,5.007663772503097,-7.570882428748158,0.3757591299649057,-0.3757591299649057],[0.14264760739509594,0.2700061052262275,-0.22491378424654157,-0.40262116004518267,0.21488123169823825,0.14264760739509594,0.2700061052262275,-0.22491378424654157,-0.40262116004518267,0.21488123169823825,1.0230121309877591,-1.5478478351096852,1.2528071398091178,0.44514886407151455,-1.4722409158842,2.3211612011271763,-2.8862626274037892,-0.16580180897005192,1.0300238513765985,-0.15010816874729307,0.15010816874729307],[0.5511959005510779,-0.7397862977960957,0.03385487269124922,0.1050539786872706,0.04968154586367378,0.5511959005510779,-0.7397862977960957,0.03385487269124922,0.1050539786872706,0.04968154586367378,0.3301253448000192,1.5384874506147683,1.7633426176574085,-3.1515752671714004,-2.3196468609300007,-1.0417712817862705,-2.9814349328156604,7.1531489864575235,-1.2906760568339193,-0.150254801108559,0.150254801108559],[0.2504257723517723,-0.34545499956803116,-0.4668659300181993,0.8244605574633059,-0.2625654002330953,0.2504257723517723,-0.34545499956803116,-0.4668659300181993,0.8244605574633059,-0.2625654002330953,-1.4634777883666295,-0.9960626671212081,-1.6121627106363914,2.386948525845898,1.5400009212014691,-1.6858952815769843,-0.4556641904890637,-2.6264800313290224,4.912793222464156,0.22127685190531116,-0.22127685190531116],[-0.22829772450670296,0.1480583473750909,-0.1162093619123844,-0.03940744738398265,0.23585618641650674,-0.22829772450670296,0.1480583473750909,-0.1162093619123844,-0.03940744738398265,0.23585618641650674,-2.2885189160228885,2.626980033162243,-4.842799669457602,2.2593240856881684,4.676816377852415,-7.063259457179468,1.4899215465813318,-3.308252421252911,6.449788420633771,-0.04350444938384923,0.04350444938384923],[0.16111626492588577,-0.005811040511422325,0.15311842030469774,-0.018864197350133893,-0.2895594473693976,0.16111626492588577,-0.005811040511422325,0.15311842030469774,-0.018864197350133893,-0.2895594473693976,2.7581879470249766,-3.980682362465581,0.08123163187560234,3.699835415387591,-1.2377406929744132,0.5004487203550374,1.231329095150481,-3.4964748965874954,0.4438651422348816,0.19961531519172515,-0.19961531519172515],[0.25605091959754167,-0.1291903070264194,0.4083259247047215,-0.38794752715078107,-0.14723901011370702,0.25605091959754167,-0.1291903070264194,0.4083259247047215,-0.38794752715078107,-0.14723901011370702,2.9152486905383403,2.5384630311105694,1.4659506996619176,-4.048623620030777,-2.523245785082379,-0.3883809478962379,2.8609738555940263,3.4399703103796684,-6.260356234279014,0.044209889263306955,-0.044209889263306955],[-0.1976689221438321,0.6210156292127941,-0.20672624038957071,-0.2904380444698385,0.07381757779053465,-0.1976689221438321,0.6210156292127941,-0.20672624038957071,-0.2904380444698385,0.07381757779053465,1.4730427944764637,3.2700067286232057,0.9914119219222519,-4.14736046332356,6.7982951824644555,-6.804128729873788,-1.3351882659099652,-5.501424331247913,5.25534516288083,-0.11405818721035038,0.11405818721035038],[0.05133730812157475,-0.3376907464035307,0.2442285104129465,0.2939003326022492,-0.25177540472867843,0.05133730812157475,-0.3376907464035307,0.2442285104129465,0.2939003326022492,-0.25177540472867843,-1.6327777283976967,-0.440904497671293,-1.0468648831902387,1.0889375272835182,-1.53489971509974,-2.1768852589452807,4.862489180083817,0.8827243553468569,-0.0018189794255807357,0.39883185357543705,-0.39883185357543705],[-0.3866135196414479,0.2367487611395594,-0.010036178591770688,0.12820112792591892,0.03169980915902293,-0.3866135196414479,0.2367487611395594,-0.010036178591770688,0.12820112792591892,0.03169980915902293,1.573499141459192,1.482569175383087,-0.9852292044596647,-0.6096957464174189,0.3174911725385039,0.07422080128175645,-2.3496899280956853,-1.9648431857001611,2.461677774016116,0.11235577549592302,-0.11235577549592302],[0.17176383632066333,0.07729632772154402,0.19450852969143498,0.0992245350690811,-0.5427932288056431,0.17176383632066333,0.07729632772154402,0.19450852969143498,0.0992245350690811,-0.5427932288056431,0.6788160761936288,-0.4473888657235694,0.34562371082576465,0.9116631729091024,0.6242223372178339,4.561864988845142,-0.7805427606947748,0.399839190276454,-6.294097849852912,-0.809898018010731,0.809898018010731],[0.20186291781671828,-0.09653590932350249,-0.1767170929212461,0.1988127144029913,-0.12742262997956097,0.20186291781671828,-0.09653590932350249,-0.1767170929212461,0.1988127144029913,-0.12742262997956097,-3.2307218442051733,4.60929878003577,-4.627903672511928,-0.24710235608043907,1.320231189148432,-1.4214318736445688,-1.315478940035269,-4.169052137529898,9.082160854832253,0.26570724855965844,-0.26570724855965844],[0.11825484368780179,0.4208830379058974,-0.48118284897988617,-0.33226691973853284,0.2743118871228158,0.11825484368780179,0.4208830379058974,-0.48118284897988617,-0.33226691973853284,0.2743118871228158,2.4486041280232467,3.290929919317014,-2.4626619916249,-0.873659337166728,-0.5905990760603924,1.3257621580320085,-1.457464628700933,1.686982323704587,-3.3678934955276456,0.045391409472942734,-0.045391409472942734],[-0.08811098709932572,-0.18246521875580413,0.17447430903931993,-0.0016734185841650595,0.09777531540059282,-0.08811098709932572,-0.18246521875580413,0.17447430903931993,-0.0016734185841650595,0.09777531540059282,3.3891714984523214,0.5363042111254293,1.982293729697129,-2.4103812454586886,0.7957724330954696,-1.2367746439035527,-2.439393587854757,-2.275234310787631,1.6582419156407662,-0.10821669537063826,0.10821669537063826],[0.08001304907098174,-0.42966782442386375,0.37694611552452106,0.0989201630913802,-0.12621150325222463,0.08001304907098174,-0.42966782442386375,0.37694611552452106,0.0989201630913802,-0.12621150325222463,-0.32313654321960583,1.5075873737870689,-0.8312061762804379,-0.5731742258218782,0.4576486954303085,-1.7826162906275291,6.908428703256413,6.082430248555403,-11.445961785079524,-0.10320697166608783,0.10320697166608783],[-0.1653606663024127,0.5399753115752437,0.2676593494826431,-0.8625771307753908,0.22030313599262547,-0.1653606663024127,0.5399753115752437,0.2676593494826431,-0.8625771307753908,0.22030313599262547,-1.3460274389341773,-0.36750068404752795,-0.31542266192224283,1.6779770313837368,1.6559318503819191,-2.3557299303694803,0.5107913137268711,-2.0651905888570274,2.60517110864095,-0.99505368542261,0.99505368542261],[0.38784051343175185,-0.13249591919459128,0.2828156379140428,-0.4604053374802796,-0.07775489466624058,0.38784051343175185,-0.13249591919459128,0.2828156379140428,-0.4604053374802796,-0.07775489466624058,1.5981844040669297,0.008277491007174786,-2.4657523835955004,2.0939190678174873,4.596926871906355,-3.6078680887692105,2.4487416622197893,1.712506558895602,-6.384935583541719,0.3635558247776663,-0.3635558247776663],[0.05291511887199618,-0.36769062830351795,-0.04409749748174942,0.016702183663090862,0.3421708232622799,0.05291511887199618,-0.36769062830351795,-0.04409749748174942,0.016702183663090862,0.3421708232622799,-6.311313423735927,0.9812505068693459,1.7834105983786728,-2.1540281408336357,3.6732001515108275,-3.9091188567379547,0.15444548274385844,-4.438751854572073,10.220905536371358,-0.6106329644285104,0.6106329644285104],[0.20366595660229586,-0.2659077100535548,0.23318830295939152,0.07611800906491945,-0.2470645585781409,0.20366595660229586,-0.2659077100535548,0.23318830295939152,0.07611800906491945,-0.2470645585781409,-3.069273396509816,-0.39359168213307716,-2.8323245215648134,3.443596016899148,0.196284946888438,0.12679751473051898,4.207474313597697,-1.4790344996576223,-0.19992869223888143,-0.21767981319183316,0.21767981319183316],[0.017251818643310934,0.21001148024850264,-0.2060765595238535,-0.17276511603742886,0.1515783766703202,0.017251818643310934,0.21001148024850264,-0.2060765595238535,-0.17276511603742886,0.1515783766703202,5.0064862494388125,-3.0672896657087216,0.8274128399349313,2.70784149705885,-5.58257062185314,4.549599180089001,0.25967038152007227,4.007203490175043,-8.708353350653418,-0.46796467128685093,0.46796467128685093],[-0.06743174453443529,0.441155416958143,-0.06840025820890988,-0.4924305568898406,0.1871071426686966,-0.06743174453443529,0.441155416958143,-0.06840025820890988,-0.4924305568898406,0.1871071426686966,-0.5457129034709836,-5.519607499018036,4.342230388144945,0.9098437453694193,-3.637057929992187,-0.12099419938205047,5.078180613054121,2.0173728042214067,-2.5242550189276853,0.26753336551033174,-0.26753336551033174],[-0.6244926938076565,-0.1040248994335311,0.0038374223768671764,0.9757592567155768,-0.25107908584398336,-0.6244926938076565,-0.1040248994335311,0.0038374223768671764,0.9757592567155768,-0.25107908584398336,2.610858632067794,2.5063507210988907,-0.48775759567388355,-1.718682655551609,-2.4072920320078817,0.04794574076983499,0.6522304564462962,1.5576556791230307,-2.761308946269713,-0.29991046987070225,0.29991046987070225],[-0.1892556208867054,-0.16402937492969022,0.10203562467848303,-0.17120736161222216,0.4224567327551597,-0.1892556208867054,-0.16402937492969022,0.10203562467848303,-0.17120736161222216,0.4224567327551597,-0.15096405407510716,-1.1116874705896929,-0.5562306089825819,1.9427758005983213,-8.76350021347325,7.019562226263816,-3.6978861573863866,6.4190263921878845,-1.1010959145255266,-0.27485772101846806,0.27485772101846806],[-0.03865713180678619,-0.4253914094581972,0.49900839767015764,0.14178625443881135,-0.1767461108437719,-0.03865713180678619,-0.4253914094581972,0.49900839767015764,0.14178625443881135,-0.1767461108437719,2.1656895159249197,3.517465350352982,-1.076883561554664,-1.86455878122691,-3.397734535313406,4.589510244838159,-3.240618371529429,-0.05376864265879644,-0.6391012188288077,-0.5760230075721021,0.5760230075721021],[0.007505586725403329,0.9369175379298644,-0.5820490601679154,-0.10522909181330502,-0.2571449726947803,0.007505586725403329,0.9369175379298644,-0.5820490601679154,-0.10522909181330502,-0.2571449726947803,-2.556953201766192,0.0280947160853961,-2.452369935634028,3.0013380554169435,-1.3220100076289851,1.577340087794198,1.0152045388479471,0.19600566268605157,0.5133500841990466,-0.5770628358734183,0.5770628358734183],[0.3601810799299146,-0.4976632291765607,0.6166437003976917,-0.22126024216260964,-0.25790130897583324,0.3601810799299146,-0.4976632291765607,0.6166437003976917,-0.22126024216260964,-0.25790130897583324,4.114903654020939,0.8834903441944821,2.0032973217816887,-2.6857127882400507,2.7514655696614194,-4.600109422114981,-0.10289031893543443,-2.6226732180673276,0.25822885769544346,-0.20107487774296617,0.20107487774296617],[-0.03868459473887659,-0.35488307196457697,0.280899299362812,0.27145269094281277,-0.15878432359747613,-0.03868459473887659,-0.35488307196457697,0.280899299362812,0.27145269094281277,-0.15878432359747613,-1.057550644083873,-3.7687897129141845,6.346593609109208,-2.701979056714523,3.7365814581930157,-6.030181203124006,2.3443503450692504,4.5644824318140405,-3.433507227331836,0.12417516052161033,-0.12417516052161033],[0.12352509457327168,0.049345430181921,-0.17892456159862113,-0.15450752144114538,0.16056155827559368,0.12352509457327168,0.049345430181921,-0.17892456159862113,-0.15450752144114538,0.16056155827559368,-0.13038328817724798,-4.8259338781202965,5.22362505981643,-0.5513120142129276,-2.4976762047634247,3.0964302307007587,-0.9824186153638773,1.3445742402418455,-0.676905530118612,0.15362083251610958,-0.15362083251610958],[0.034293035601448627,-0.004642363615605393,-0.10284544613318501,-0.0011463694537127977,0.07434114361350724,0.034293035601448627,-0.004642363615605393,-0.10284544613318501,-0.0011463694537127977,0.07434114361350724,-0.18509737203365573,1.5883336031924424,-1.3828267497732045,0.20099041527277983,0.20194054881779272,-2.578199232455613,-2.846863143070979,-1.5377993812467365,6.539521311307649,-0.4064972686865322,0.4064972686865322],[-0.23322441556068743,0.30565405251157357,-0.1592286064755289,-0.23568950091921886,0.32248847044043155,-0.23322441556068743,0.30565405251157357,-0.1592286064755289,-0.23568950091921886,0.32248847044043155,0.7530389104047999,0.24237797335971067,-0.35046854966810503,-0.11395902389490983,-0.6902949089481388,-0.45183516210135566,0.8581062570428222,-0.15268085197695536,-0.09428464421294147,0.22204960019549483,-0.22204960019549483],[0.29655513051650906,0.5438219365462476,-0.5963380436902855,-0.05644947470660977,-0.1875895486657908,0.29655513051650906,0.5438219365462476,-0.5963380436902855,-0.05644947470660977,-0.1875895486657908,2.4559043433923513,3.4838084625346983,-4.708751856049735,0.7884218464555697,2.591541328903747,-2.3226917640472644,-4.293847845983073,-2.315852725718096,4.32146821049884,0.43652154704804735,-0.43652154704804735],[0.07842765794437825,0.261487369216434,0.0866881769704611,-0.4646956685292994,0.038092464369479426,0.07842765794437825,0.261487369216434,0.0866881769704611,-0.4646956685292994,0.038092464369479426,1.757319976215999,1.6402743306757208,-0.4033321343793455,-1.490510242716836,4.397506698914183,-5.090793594230548,4.81133195973678,-1.7777559832336334,-3.844041010975154,0.2535680464163143,-0.2535680464163143],[0.07194340200309615,-0.06450798158646731,0.3387377685803694,-0.42161694409176587,0.07544375510085037,0.07194340200309615,-0.06450798158646731,0.3387377685803694,-0.42161694409176587,0.07544375510085037,-3.969536693624893,-1.9293116773728398,0.5162151325410178,1.1413459843532223,5.001248408230053,-1.722550877006122,-2.8318725550411687,-2.3615979477959774,6.1560602257338815,0.27175056048001534,-0.27175056048001534],[-0.05930884524803662,0.1635050579213262,-0.09718462876463385,0.047707664504172256,-0.05471924841304959,-0.05930884524803662,0.1635050579213262,-0.09718462876463385,0.047707664504172256,-0.05471924841304959,2.6731772610909195,-2.080920740503934,0.6080453743359209,1.0854465557710804,-0.976994601765089,4.307022710528577,-2.2995090902177346,-2.062827669158567,-1.2534398000771587,0.38742881038388643,-0.38742881038388643],[-0.12453369157949819,0.13976713535323576,-0.08727661447276604,0.03766800467970595,0.034375166015185706,-0.12453369157949819,0.13976713535323576,-0.08727661447276604,0.03766800467970595,0.034375166015185706,-3.124118820096348,-0.2589190343876041,-2.273129656735643,2.7952858724416623,2.750470449576597,-0.5411983151240088,3.5816818862629827,-4.64205795786082,1.7119855759393612,-0.2632371813109288,0.2632371813109288],[0.14045390386486345,-0.053660639967056084,0.12617026554754557,-0.27428437372041353,0.061320844243858426,0.14045390386486345,-0.053660639967056084,0.12617026554754557,-0.27428437372041353,0.061320844243858426,-0.7206992379314441,-3.1614161479364897,5.658697932706224,-1.7192208746545314,-2.9813641077724755,3.365423077716858,-0.19048753342846814,5.9277465879521065,-6.1786796966806605,-0.7780609101233986,0.7780609101233986],[0.3428920857291821,-0.20950700638798964,-0.28932038933900966,0.42394555474860424,-0.26801024477628127,0.3428920857291821,-0.20950700638798964,-0.28932038933900966,0.42394555474860424,-0.26801024477628127,4.719943546300914,4.210613289579559,-2.88470698168007,-0.6964842691193683,2.7619304066054937,-2.7109149753156854,4.224813529290252,-2.3868982616179912,-7.238296284047866,-0.6294220387772764,0.6294220387772764],[0.11014942751430196,-0.05362701139067047,0.05665069085352525,-0.29393364920227016,0.1807605422192763,0.11014942751430196,-0.05362701139067047,0.05665069085352525,-0.29393364920227016,0.1807605422192763,1.8243453440749384,-0.8529238236819217,-0.17087987363248147,1.2694937144904546,-0.10122709732891988,-0.6341528870358817,-4.665229917141692,0.7448689676364455,2.585705572633438,-0.245690017173281,0.245690017173281],[-0.06899905496380132,-0.13950071492113442,0.0778091133583683,0.09328891166336667,0.03740174487315952,-0.06899905496380132,-0.13950071492113442,0.0778091133583683,0.09328891166336667,0.03740174487315952,1.483765093813657,-2.781693032030024,2.3261948625924704,0.9633031852607162,0.560484093928459,1.2467360164584966,2.4771210879092878,-1.971594542552518,-4.304316765399345,-0.5078050158225706,0.5078050158225706],[0.2944231240344969,-0.05603696851097664,-0.22587425058515304,0.2628490935325413,-0.2753609984647352,0.2944231240344969,-0.05603696851097664,-0.22587425058515304,0.2628490935325413,-0.2753609984647352,-1.575669777389866,0.9266449147559256,-0.0003740696891517681,-1.7693742561682253,-4.983377407028005,3.200489685920401,-3.018936037476109,5.272137692785945,1.948459254298998,0.8431034111076983,-0.8431034111076983],[-0.4011518683918794,0.5468255785162888,-0.10567511152518705,-0.2638989788541005,0.2239003802621492,-0.4011518683918794,0.5468255785162888,-0.10567511152518705,-0.2638989788541005,0.2239003802621492,-0.09082117956321761,-0.49237388792758185,3.318337963616713,-2.5202227214729858,1.9781322642437642,-5.41217670597486,2.936135555678224,1.8675555609175396,-1.5845668495052498,-0.3057413542165458,0.3057413542165458],[0.40396448945986557,-0.2707415879937862,-0.002373610678397642,0.3962394095769364,-0.5270887003613947,0.40396448945986557,-0.2707415879937862,-0.002373610678397642,0.3962394095769364,-0.5270887003613947,1.487614970943266,-2.0081013162536734,2.069199490012739,-1.2111204899346244,1.8620422959494596,-4.048910004518559,-2.432923335848427,-4.177168651909481,8.459367041567162,1.1500223161796856,-1.1500223161796856],[0.4439722555975518,0.2451924535467851,-0.559693509988719,-0.14937168927666677,0.019900490134501292,0.4439722555975518,0.2451924535467851,-0.559693509988719,-0.14937168927666677,0.019900490134501292,2.7081945296920678,-1.3144555222366407,3.371115681509158,-1.8379759076565876,-1.9081149205551395,-0.9650868078675185,-4.9212257708816916,-0.8555479698883381,5.7230966878892735,-0.2186842516275329,0.2186842516275329],[-0.3352850456817235,0.3452240684296697,-0.08488524527489945,0.12017851784519988,-0.04523229530982001,-0.3352850456817235,0.3452240684296697,-0.08488524527489945,0.12017851784519988,-0.04523229530982001,-2.2398173290542616,-1.4173597573275138,0.8049848989174011,0.8181290223239766,1.3619711685340257,0.9801090533804171,1.5649777453626807,-2.118613568275884,0.2456187661351159,-0.20575416390850965,0.20575416390850965],[-0.4839675990004316,-0.42941503903417605,0.47658619908840205,0.4550855529234147,-0.018289113956908576,-0.4839675990004316,-0.42941503903417605,0.47658619908840205,0.4550855529234147,-0.018289113956908576,-1.1836839470494844,1.7614179638421978,-1.5734343295626898,-0.2768754312861914,3.4459721272974244,-3.312005522977029,3.4347866381113588,-4.470124109209846,2.1739466108439798,0.08889179701759597,-0.08889179701759597],[0.16778705403920993,-0.42488078979253124,-0.45248379127345556,0.947525848644392,-0.23794832161234658,0.16778705403920993,-0.42488078979253124,-0.45248379127345556,0.947525848644392,-0.23794832161234658,-3.8129662135929037,-1.627845031722103,3.4004927142213877,-1.6609223045288108,4.691931103075309,-7.554093933701251,3.4100693504714146,-2.3806626785485414,5.5339969943096685,-0.11172537797369946,0.11172537797369946],[0.41975131906719265,0.12962499374722225,-0.5522007583180168,-0.05393294512082275,0.05675739062878616,0.41975131906719265,0.12962499374722225,-0.5522007583180168,-0.05393294512082275,0.05675739062878616,1.4636942511345234,-1.0570011680288747,-1.5906491153735318,2.340729409687583,-3.0433566024958245,4.597874514705163,-4.68270422299412,3.065800041446489,-1.094387108080241,0.30692087371989524,-0.30692087371989524],[0.08581273373892931,0.03155532486426778,-0.3423048660876364,0.1497194285943336,0.07521737888893615,0.08581273373892931,0.03155532486426778,-0.3423048660876364,0.1497194285943336,0.07521737888893615,3.65575623976902,1.4656171914278104,-1.6302484585083612,1.0646897396314525,-0.825275150619986,-0.29873294793376104,2.0636131251110523,-3.6397691475865193,-1.8556505912884125,-0.900058472557704,0.900058472557704],[-0.29811615304474176,-0.08453612209544259,0.5568627624249214,-0.05523947313932043,-0.11897101414386213,-0.29811615304474176,-0.08453612209544259,0.5568627624249214,-0.05523947313932043,-0.11897101414386213,1.5474390274469076,1.5632494244371387,-0.6339681929695825,-0.21063120250318612,0.7441182677323519,-2.572750338045152,4.575882925711938,1.9141718836248844,-6.92751179543247,-0.7186500289607477,0.7186500289607477],[-0.19173878693831445,0.707448020797593,-0.2281314957295497,-0.31642790165239854,0.02885016352347837,-0.19173878693831445,0.707448020797593,-0.2281314957295497,-0.31642790165239854,0.02885016352347837,-1.6549160635867817,-1.060735858571502,-0.786536576976349,1.7620195194281596,-0.9442067988953553,-4.645063467921995,0.7410225294012152,0.7207814805051561,5.867635236623532,0.08525291612286864,-0.08525291612286864],[-0.07208934598569378,-0.05723429830773624,-0.020620067980577444,0.24501610573781893,-0.09507239346895797,-0.07208934598569378,-0.05723429830773624,-0.020620067980577444,0.24501610573781893,-0.09507239346895797,0.2600902243233739,0.7006579996251656,-0.5780242705482161,-0.8379067189083189,-3.2523873905722875,3.3243266013858817,-4.233869261087887,2.0901640360582228,2.5269487797145853,0.7152729898211362,-0.7152729898211362],[-0.1943620697492348,0.11032111562658727,-0.0851592252713474,0.363109713178259,-0.19390953378094494,-0.1943620697492348,0.11032111562658727,-0.0851592252713474,0.363109713178259,-0.19390953378094494,-0.48060577517218284,1.6506445552684341,-0.5610184321898907,-1.3933915297497395,0.7948109481538443,2.200009423928622,0.8086556826950537,-3.0034889743670536,-0.015615898563322017,0.30376540667510876,-0.30376540667510876],[-0.23620306761909696,0.029239390994957565,-0.09905981855649303,0.2904083376069101,0.01561515756778313,-0.23620306761909696,0.029239390994957565,-0.09905981855649303,0.2904083376069101,0.01561515756778313,2.113843159983368,2.7525643331896275,-1.1490819457627282,-0.7417751566763631,-1.6598086331956354,1.709999708236224,-6.3234776857800306,-3.531995195864037,6.829731415868171,-0.8617072307583553,0.8617072307583553],[-0.12154890185993246,-0.1554332904144985,0.3882175936568806,-0.4308888091725048,0.3196534078080101,-0.12154890185993246,-0.1554332904144985,0.3882175936568806,-0.4308888091725048,0.3196534078080101,2.6991769833295,-2.367004899359993,2.1014634132831533,0.23272856254805657,-0.01216703881550174,1.9755962661597801,1.486185182337501,1.0798319733122672,-7.195810442796786,0.0328129235211726,-0.0328129235211726],[0.10604165810472474,0.428791135057797,-0.44381434651530566,-0.29973284147416135,0.20871439482845194,0.10604165810472474,0.428791135057797,-0.44381434651530566,-0.29973284147416135,0.20871439482845194,0.2329688150325837,0.4315344573541473,1.3416740113346428,-1.7393849292253598,-1.6296730420580334,-0.586794476782974,-0.044847906383742586,2.745097576121535,-0.750574505395202,-0.03382353946887123,0.03382353946887123],[0.09595673460852829,0.015030759798121717,-0.16969592616078205,0.22307299734670807,-0.16436456558467072,0.09595673460852829,0.015030759798121717,-0.16969592616078205,0.22307299734670807,-0.16436456558467072,0.0770075369412222,1.3277283293058937,-1.4426052091803312,0.23527730150594997,0.524405551532477,1.2748782548958089,-3.2681368752085076,1.1970562632721604,0.07438884693588443,-0.12040042162427428,0.12040042162427428],[-0.16836149773764675,-0.9386311468634808,0.4670724663170255,0.47441181678867417,0.16550836150310103,-0.16836149773764675,-0.9386311468634808,0.4670724663170255,0.47441181678867417,0.16550836150310103,-0.3110863520039244,-4.5212162023729014,4.060434596417954,0.10321824813635436,1.152264991242493,1.373171540613906,-1.5181874761396206,2.9890510965650776,-3.327650442467612,0.3575633578108085,-0.3575633578108085],[0.1855152612848032,-0.6967124847953928,0.18110902073992288,0.30249529913716283,0.027592903623301496,0.1855152612848032,-0.6967124847953928,0.18110902073992288,0.30249529913716283,0.027592903623301496,-3.683506624800338,3.872587507630391,-2.78533629366533,-1.2915344865269545,-2.3443710855133797,1.9746746324745412,2.691368226980281,5.8778612616892945,-4.311743138281979,0.2042832725648199,-0.2042832725648199],[0.02303188163297576,-0.4134578437237229,0.11357753358365814,0.1835055032854889,0.09334292522827345,0.02303188163297576,-0.4134578437237229,0.11357753358365814,0.1835055032854889,0.09334292522827345,0.6969806703399177,2.842288662508354,0.8350707288412049,-3.983451042655142,4.65584802873705,-3.8159595107542152,5.986032282829539,-2.9318512825754848,-4.28495853726915,0.3060916512988395,-0.3060916512988395],[0.19529071299119463,-0.19872765562604372,0.2522531005643016,0.05662747734747102,-0.3054436352757542,0.19529071299119463,-0.19872765562604372,0.2522531005643016,0.05662747734747102,-0.3054436352757542,2.1656622173302216,-0.3060855167096145,-0.003479468621856552,0.24378309136989507,1.715549144458385,-3.509338183002521,-2.852016220376059,-3.4211679939364528,5.967092929487742,0.0657818939697912,-0.0657818939697912],[-0.32115774012953036,0.04374674076151941,0.3525862998156257,0.0025361578850273507,-0.07771145837239869,-0.32115774012953036,0.04374674076151941,0.3525862998156257,0.0025361578850273507,-0.07771145837239869,0.15942188132821214,-4.903201345545617,2.7755314756938976,2.183719714843553,0.3385182001495439,-4.4243578031146376,3.2096590184176823,6.282280223437576,-5.62157136521605,-0.05604984499293248,0.05604984499293248],[-0.5751889197674867,0.5859246897273365,-0.1867739198454153,-0.1326624325836731,0.3087005824773999,-0.5751889197674867,0.5859246897273365,-0.1867739198454153,-0.1326624325836731,0.3087005824773999,-3.261189363278467,-5.558932111688177,3.893692670733433,2.125961921587204,-3.3916902231283697,4.733106130451152,0.9769905446902523,7.601131115945261,-7.1190706853052985,-0.4607224806133945,0.4607224806133945],[-0.41935468617612187,-0.36253126951912523,-0.18460262163990998,0.499504041442943,0.4669845359120042,-0.41935468617612187,-0.36253126951912523,-0.18460262163990998,0.499504041442943,0.4669845359120042,1.6592257676820035,-0.803370883443829,2.027591658179427,-1.252121101186318,1.8408340576095057,-2.9467240275007005,-0.4924937474609954,-2.260921590074816,2.227979866202899,0.027900326449314394,-0.027900326449314394],[0.15108102722278344,-0.5778244949686621,-0.014653593952375074,0.44388226755410115,-0.002485205859281109,0.15108102722278344,-0.5778244949686621,-0.014653593952375074,0.44388226755410115,-0.002485205859281109,-4.232261735151366,1.0730584557316365,-2.353239408778053,0.8007821261107704,-4.057640555266364,0.7050170552404367,7.40929027551047,4.378483078670861,-3.7234892920707896,0.47939882693433367,-0.47939882693433367],[-0.05656980175075205,0.36818975302966767,-0.056345800796425316,-0.41020444912293014,0.1549302986557191,-0.05656980175075205,0.36818975302966767,-0.056345800796425316,-0.41020444912293014,0.1549302986557191,3.9364221753074835,-0.8648119849144977,1.8718186160896926,-0.4566486583167384,0.8019744093918345,-2.034988304280794,-2.9739904564661486,-0.6221973923199189,0.34242159549609674,-0.5503579728653829,0.5503579728653829],[-0.330038789708298,0.352373209364379,0.00723336189332105,0.08080584685878506,-0.1103736283906061,-0.330038789708298,0.352373209364379,0.00723336189332105,0.08080584685878506,-0.1103736283906061,0.6870484437887397,0.6447402894278939,2.1037116568327052,-2.1149803370169287,6.831389082789858,-5.146963821134323,0.4770409822297239,-6.881615139647182,3.3996288427138777,-0.6334716092311719,0.6334716092311719],[-0.4269446253732713,0.44072639058974034,-0.11350322506843856,0.16016754689805182,-0.060446087035020066,-0.4269446253732713,0.44072639058974034,-0.11350322506843856,0.16016754689805182,-0.060446087035020066,-3.4889245133786178,-0.8804167020363145,-3.5505598608480766,4.0298355133870185,2.3644969133531584,-1.2777118017764255,0.6171486139978309,-0.6075187142071931,2.7936505515064396,0.40114104948835827,-0.40114104948835827],[-0.1509865058922529,-0.43599566512461957,0.04326271760390396,0.4317222726055415,0.11199718079196272,-0.1509865058922529,-0.43599566512461957,0.04326271760390396,0.4317222726055415,0.11199718079196272,1.1340915725934018,1.121354717553458,0.8340513017205777,-2.0118730106879057,-1.6033487615316095,5.7344327945013935,3.123903668728389,6.067596607375766,-14.400208890249994,0.056466991415347334,-0.056466991415347334],[0.40350309839331094,-0.27314986415938297,0.5564088472884913,-0.934268774801424,0.2475066932656011,0.40350309839331094,-0.27314986415938297,0.5564088472884913,-0.934268774801424,0.2475066932656011,-2.638889347469477,3.8938878484397685,-1.4560999507507897,-2.1759842354905157,0.8009830916569637,-3.6690214299412487,-4.21914280066662,2.8392826252912275,6.624984198931229,-0.26180366219963236,0.26180366219963236],[0.49883817073525166,-0.21783173960660424,-0.3966148017398773,0.4406112440440624,-0.3250028734289361,0.49883817073525166,-0.21783173960660424,-0.3966148017398773,0.4406112440440624,-0.3250028734289361,2.3804567462649544,0.5236875892966606,-1.6517223441680136,1.1499401192928418,-2.7163367598962305,2.646459141697693,-3.6423120958033124,-1.478832401303251,2.788660004648621,-0.021905364409540155,0.021905364409540155],[0.05317488510887282,-0.09911242669812378,0.12009829147407813,-0.13338180686353202,0.05922105696664241,0.05317488510887282,-0.09911242669812378,0.12009829147407813,-0.13338180686353202,0.05922105696664241,3.9444513275189794,0.18447125378046159,-1.476150722989283,1.3046118371340365,1.037354084875999,0.4124786687695079,-0.9969939164488759,0.258132892416312,-4.668355425049599,-0.012932367913478834,0.012932367913478834],[0.14781366404009622,-0.0704681795665664,-0.32307288001539597,0.23978123311973548,0.005946162416978304,0.14781366404009622,-0.0704681795665664,-0.32307288001539597,0.23978123311973548,0.005946162416978304,-2.569506545691227,1.374675868702477,0.3925216929827751,-1.8650587957332587,-1.670480503653021,2.2243305508636246,1.3246860744691291,4.392859435838462,-3.604027777790301,0.09786123404496286,-0.09786123404496286],[0.09165844015967481,-0.7595377083746202,0.49147316909968586,0.4562892160694869,-0.2798831169615545,0.09165844015967481,-0.7595377083746202,0.49147316909968586,0.4562892160694869,-0.2798831169615545,-2.6890741067769417,-0.6917793307332285,1.6683873229405881,-0.7871094290002317,-7.435846588850197,12.054854142912498,-3.6560153454523983,9.950855247865256,-8.414271912901842,-0.1894985632050108,0.1894985632050108],[0.4878424619252105,0.033492150431966516,-0.13820783669824593,0.05720837144857793,-0.44033514712779853,0.4878424619252105,0.033492150431966516,-0.13820783669824593,0.05720837144857793,-0.44033514712779853,-1.8296607177674344,0.44483203399390603,-0.15343378781181616,-0.5394010970026603,2.147278024571621,-2.1314291820180746,-3.5945392198247967,1.4639159798391321,4.1924379660062705,0.24800285081965956,-0.24800285081965956],[-0.02904809544622424,0.3830440624680649,-0.02613453715269609,-0.4023817576307696,0.0745203277469713,-0.02904809544622424,0.3830440624680649,-0.02613453715269609,-0.4023817576307696,0.0745203277469713,-1.454044696134702,1.2540363301535151,-2.280538804746769,1.3712621254604433,-5.926094251506728,4.014252712540507,7.882451354535227,7.80761473920208,-12.668939509521415,-0.3447596508716274,0.3447596508716274],[-0.6667834011392284,0.1510672435645067,0.6933827946475473,0.10897710917328186,-0.2866437462508749,-0.6667834011392284,0.1510672435645067,0.6933827946475473,0.10897710917328186,-0.2866437462508749,1.7944524115064235,1.5968904127920327,-2.1140020165658244,0.22767082689728252,4.128965741680991,-3.0153703587712113,-3.8183200373832555,-6.803640092960454,8.003353112806101,0.28944077687950326,-0.28944077687950326],[-0.33096069849827403,-0.07706224270590169,-0.16780824812080297,0.12950130349044642,0.4463298858288801,-0.33096069849827403,-0.07706224270590169,-0.16780824812080297,0.12950130349044642,0.4463298858288801,0.4061261562227638,0.8701163154111344,0.9915654133055216,-2.163957348083347,-1.0757878059263013,-0.9482456120780915,3.6629122524696824,2.1838336551549262,-3.9265630264651747,0.3022756193745954,-0.3022756193745954],[0.11386415130925268,-0.5760852434057928,-0.01377171044229987,-0.1141172225334826,0.5901100250827112,0.11386415130925268,-0.5760852434057928,-0.01377171044229987,-0.1141172225334826,0.5901100250827112,-2.9451161828681944,-3.8367533817555364,5.160762466643026,-1.963550675069515,1.573836212485372,1.2638173097408667,-1.9540083138027453,1.2426032782822984,1.4584092863410312,0.6395415901717264,-0.6395415901717264],[-0.1330702129055829,0.519294549652396,-0.10641367529131338,-0.2931616026935116,0.013350941224728768,-0.1330702129055829,0.519294549652396,-0.10641367529131338,-0.2931616026935116,0.013350941224728768,-0.5137712477999169,-2.9863117127359913,0.8859970466425979,3.2254804181117467,-1.0762681073479827,-0.026284633841076266,0.2839532787421043,-5.635179502252273,5.842384460477691,-1.12516575202027,1.12516575202027],[-0.02840044496331051,0.49318950740977424,-0.251411695317613,-0.4136379144448086,0.20026054733851067,-0.02840044496331051,0.49318950740977424,-0.251411695317613,-0.4136379144448086,0.20026054733851067,-2.305038672631408,-3.5685441897305528,2.686324694692,1.4717681292452032,-5.666366581254394,9.294509770053871,3.421429122174509,6.6186792983512746,-11.952761570896854,-0.5895486342082973,0.5895486342082973],[-0.16429407438427568,-0.07124949724408897,-0.5780071078169278,0.6352155536828994,0.17833512576628624,-0.16429407438427568,-0.07124949724408897,-0.5780071078169278,0.6352155536828994,0.17833512576628624,-0.035447342873712984,1.8626568452839218,-1.7547703577640854,-0.45687746196875034,-1.1977344342122245,4.620406392418102,-6.8556245111611664,4.929115818286855,-1.111724947996932,0.3489909744462444,-0.3489909744462444],[0.042688523010713415,0.3562813146718349,-0.24621466504626272,-0.17747966256275713,0.024724489930728233,0.042688523010713415,0.3562813146718349,-0.24621466504626272,-0.17747966256275713,0.024724489930728233,1.9329648976967957,-0.5277227608964274,-1.1527401648613425,1.6699372489247897,0.21434281414268952,-3.415761128597472,-2.3142582641021514,2.7121491273044,0.8810882303714518,0.010525676820049096,-0.010525676820049096],[0.1582729600236908,-0.0028932735411088383,-0.21617983386262962,0.057359712289855855,0.0034404350907344325,0.1582729600236908,-0.0028932735411088383,-0.21617983386262962,0.057359712289855855,0.0034404350907344325,-1.5429665947820248,0.40809280912382184,0.174700924939031,-1.2630056321727954,-2.4804262876378473,2.200524349425585,1.4248478903170818,3.5843021137106206,-2.506069572915133,0.6802118980997526,-0.6802118980997526],[0.26441589979986346,0.3381776245663365,0.025306739886005753,-0.26897520703102734,-0.3589250572006662,0.26441589979986346,0.3381776245663365,0.025306739886005753,-0.26897520703102734,-0.3589250572006662,-1.9223757015421967,-0.53258008037531,0.0016916959194372416,0.3758212134420351,-4.766333479508669,7.708769199520293,-3.0433841054039394,5.858424613254156,-3.6800333553067697,0.15506717101894582,-0.15506717101894582],[0.13682298365984255,0.41257523916490957,0.07958295962224737,-0.47991713019186283,-0.14906405223847627,0.13682298365984255,0.41257523916490957,0.07958295962224737,-0.47991713019186283,-0.14906405223847627,1.8665462939693067,-0.48552966959600985,3.757665625140195,-3.9564090653176223,-0.029951675993409643,0.8676143718639266,-0.5275441359993012,-0.7152069539312237,-0.777184790140014,0.6842731097591275,-0.6842731097591275],[0.07969374561948728,0.5313206807033977,-0.5335965599000145,-0.08126576115509243,0.0038478947168064936,0.07969374561948728,0.5313206807033977,-0.5335965599000145,-0.08126576115509243,0.0038478947168064936,1.1407951815038306,1.3848033628880216,-0.6188016563573115,-1.259764660212983,-2.452602147621429,-0.5534730241826491,0.12961296940822797,-0.11345210041393194,2.3428820749893546,0.49376295369068285,-0.49376295369068285],[0.3984614549544134,-0.016380583167937585,-0.21560531289119084,-0.6497383191601297,0.4832627602672677,0.3984614549544134,-0.016380583167937585,-0.21560531289119084,-0.6497383191601297,0.4832627602672677,0.01576406146067416,0.6304074888643052,-0.861255126314573,-0.3345228431729219,-1.24524427405699,-0.40476360944774065,4.432585683718957,1.7442710491738542,-3.9772424302270046,0.5653704806268021,-0.5653704806268021],[-0.23891189604412938,0.18492562433073953,-0.233738193033287,-0.2271834550926225,0.514907919834356,-0.23891189604412938,0.18492562433073953,-0.233738193033287,-0.2271834550926225,0.514907919834356,0.5202338907778177,-3.695525380275427,6.278724166223782,-2.0916341775752705,-5.3741211716268635,6.6645934985793485,-1.066733308376649,3.401213650297602,-4.636751168024624,-0.49156460836682764,0.49156460836682764],[-0.3735190877437782,0.5052386639496166,0.04223118259450561,-0.11364756616699534,-0.06030319262289369,-0.3735190877437782,0.5052386639496166,0.04223118259450561,-0.11364756616699534,-0.06030319262289369,1.415662583137412,1.7352608069061084,1.9956861334156406,-3.6852967498155094,-1.7130886621811454,3.4434727373595884,-5.956276560885874,-2.2674026798624323,5.0319823919182785,-0.04565019051170752,0.04565019051170752],[0.27559335053960604,0.23063142477752743,0.014767500603641015,-0.6547400075288707,0.13374773161457523,0.27559335053960604,0.23063142477752743,0.014767500603641015,-0.6547400075288707,0.13374773161457523,-5.198660525568375,-5.485264541643627,5.005095332955423,1.0882717723956574,1.0531053487090014,2.479938942136644,2.552609276313301,2.97747066661284,-4.472566271915461,-0.6081025637024089,0.6081025637024089],[0.06908358583048299,-0.5093362849824447,0.4099826727262362,-0.28324487123920783,0.3135148976394148,0.06908358583048299,-0.5093362849824447,0.4099826727262362,-0.28324487123920783,0.3135148976394148,-1.1368633829342059,-1.5161028516568908,0.11079793124396875,1.0009683963998355,3.2092138094353655,-5.994955401386856,-1.8423138223880056,0.41337971162257847,5.755875609667793,0.4043365240133473,-0.4043365240133473],[0.3615067973957046,0.009710188563242628,0.24013494038151295,-0.704140030041593,0.09278810371222748,0.3615067973957046,0.009710188563242628,0.24013494038151295,-0.704140030041593,0.09278810371222748,0.6657997771320812,-1.5568946905644654,-1.0577905369244454,1.5304546479959222,0.40191060907303433,-1.2864899358216486,3.506735771684971,2.6574750383709085,-4.861200680949356,1.0842305795001272,-1.0842305795001272],[-0.05676592460284996,-0.015458874656955834,-0.33232893549907516,0.36885136886791237,0.035702365896624705,-0.05676592460284996,-0.015458874656955834,-0.33232893549907516,0.36885136886791237,0.035702365896624705,-1.243857258795523,2.9446640718944477,-0.9184982716921855,-2.160890668968271,-5.136756697917068,6.528209374559371,-4.143204810224049,2.759922083799814,1.3704121773402884,0.1347248687626883,-0.1347248687626883],[0.3906158063125663,0.3912593442723056,0.0776619271325275,-0.6130792426211912,-0.24645783508852695,0.3906158063125663,0.3912593442723056,0.0776619271325275,-0.6130792426211912,-0.24645783508852695,-1.494976736429434,2.4134125428797066,0.6881917487231175,-2.475086125159182,2.3738861721104696,0.23912890763266664,-1.678210234058052,-1.4718357015187484,1.4054894258129624,-0.6265181664474407,0.6265181664474407],[-0.013366795101617108,0.36468061194586143,-0.2942309858057599,0.3525862424878369,-0.4096690735486191,-0.013366795101617108,0.36468061194586143,-0.2942309858057599,0.3525862424878369,-0.4096690735486191,-0.24393967709452902,-0.39327795264777393,-0.3431698635295424,-0.18205942328944857,2.0731001934425475,-1.5568207584650555,3.8146557369092813,0.23089271743438933,-3.399380972759189,0.9185072394739835,-0.9185072394739835],[-0.01867833333969693,0.009822116669225611,-0.024630720227728095,0.3212669313471047,-0.2877799944460717,-0.01867833333969693,0.009822116669225611,-0.024630720227728095,0.3212669313471047,-0.2877799944460717,-1.1127176345373797,2.0863350875525337,-2.2734737379944856,0.5921569135252382,0.12785648452270681,1.1982502528757217,3.0749664261383485,2.0129186655103397,-5.706292457577692,-0.4050182630833299,0.4050182630833299],[-0.22548067411843734,0.5912976052533505,0.1490032822987672,-0.16768535272382523,-0.34713486070542077,-0.22548067411843734,0.5912976052533505,0.1490032822987672,-0.16768535272382523,-0.34713486070542077,0.16855237432160702,-0.4832533538895439,0.5330377260791077,0.16593586528766258,-2.0898046738085982,5.329518811461906,2.6191646224818372,-0.8029482074890057,-5.440203164446382,-0.21572023747245472,0.21572023747245472],[-0.004242677538829957,0.061213370052565746,-0.06515179432140197,-0.027274790273789457,0.03545589208780206,-0.004242677538829957,0.061213370052565746,-0.06515179432140197,-0.027274790273789457,0.03545589208780206,1.4643021116510093,-2.2838122390073434,0.15445148746313997,2.2733173292107267,-4.665777827409568,7.950629768302701,-4.6898100715959,-0.022244926339411997,-0.18105563229540855,-0.1439565776710996,0.1439565776710996],[0.09060305268955898,0.014831307736683147,0.037851050147810254,0.13218160302464732,-0.2754670135975225,0.09060305268955898,0.014831307736683147,0.037851050147810254,0.13218160302464732,-0.2754670135975225,-2.342003464674894,1.9880820417949103,-0.6113483995769063,-0.5006811940668616,-2.1921911317538587,3.3853349376147337,0.7260624514898676,-1.023426605139444,0.570171364328429,-0.8760524481565064,0.8760524481565064],[0.05472220635539016,0.18101294785055133,0.19092927746858748,-0.13142795113980313,-0.29523648050545803,0.05472220635539016,0.18101294785055133,0.19092927746858748,-0.13142795113980313,-0.29523648050545803,-0.20381146663889724,1.1340383235100577,-0.9740376880245052,0.1903058788883376,2.6326773478755725,-5.0931066549905175,-2.5486093277843924,-5.11439234059989,9.976935927767904,-0.35030651438506477,0.35030651438506477],[-0.06892532531472675,-0.016948736730657443,-0.32661777192849784,0.5718219422859668,-0.15933010830277816,-0.06892532531472675,-0.016948736730657443,-0.32661777192849784,0.5718219422859668,-0.15933010830277816,1.2756005147930212,0.20060801344200274,-0.26611823470437956,-0.35452107380126036,5.714799301952926,-5.653915372278123,1.09627764748666,-3.174639498543174,1.1619087016660141,0.42003129507140435,-0.42003129507140435],[-0.2765847301477533,-0.30395858499225353,0.08220981919455564,0.30143832599167836,0.19689516996802242,-0.2765847301477533,-0.30395858499225353,0.08220981919455564,0.30143832599167836,0.19689516996802242,0.18904836026190347,2.842768870534084,3.5323154421575094,-6.052690092263367,0.5646655148760574,-2.323695321375271,2.058202849392183,-0.43240865949475055,-0.37820696409357124,-0.3223942204443363,0.3223942204443363],[-0.04891824705777254,-0.20342675190297613,-0.1536202908079015,0.08663816911700087,0.31932712065251917,-0.04891824705777254,-0.20342675190297613,-0.1536202908079015,0.08663816911700087,0.31932712065251917,-3.1265167184744356,-4.572756105305027,-0.5394574315182051,5.404165750962049,-0.13686668263276652,0.7747524289567224,-0.21351446720136513,3.5187586403982927,-1.108565415182905,-0.29195221414866646,0.29195221414866646],[-0.18111333498647214,0.03857556300645393,-0.1887472718556374,0.7054952801418103,-0.3742102363342614,-0.18111333498647214,0.03857556300645393,-0.1887472718556374,0.7054952801418103,-0.3742102363342614,0.430165942064477,-3.3028477171945743,0.4157910017558457,2.463514156843128,3.427331720055348,-6.345249180798797,-1.4444192578225243,1.1100515057821192,3.245661829323751,0.4235425586010544,-0.4235425586010544],[-0.06227377178816497,-0.41867304025845825,-0.42855399810479555,0.8007429286033549,0.10875788155291752,-0.06227377178816497,-0.41867304025845825,-0.42855399810479555,0.8007429286033549,0.10875788155291752,1.0376499543149482,-0.9170889364628922,-0.3557249213968666,1.666833518819881,-1.341093810997585,2.166528577514387,-4.28057997755525,0.9561863940358486,1.0672892017258069,-0.3940196609708592,0.3940196609708592],[-0.6073636080387419,-0.014236890547239589,-0.13058887491986867,0.3270603060639049,0.42512906744837065,-0.6073636080387419,-0.014236890547239589,-0.13058887491986867,0.3270603060639049,0.42512906744837065,0.7131846950083447,1.9356568061646489,-2.527528111041971,1.0829749070870474,-5.006965697614429,7.320372354142132,-3.6879379732872084,-1.268547685062694,1.4387907046093762,-0.49110360220094706,0.49110360220094706],[0.2655839099636526,-0.2312391566195739,0.053622358523375796,0.06706854741092005,-0.15503565928737528,0.2655839099636526,-0.2312391566195739,0.053622358523375796,0.06706854741092005,-0.15503565928737528,1.6151810569735385,-1.077844267781449,0.8858206617471696,-0.29758191645116444,0.6446831148064835,-2.1817253309419833,-3.501802797514303,3.6265408760636184,0.28672860309127035,0.4896055224785528,-0.4896055224785528],[-0.17159292825730457,-0.043451669144814575,0.2562535435787495,0.36240295932169686,-0.4036119055085903,-0.17159292825730457,-0.043451669144814575,0.2562535435787495,0.36240295932169686,-0.4036119055085903,-0.6459651672702758,0.7335965760544672,1.202963919624992,-1.8314332118058414,1.7555224396424447,-4.086081182114861,-5.127829670924646,-2.623181584751456,10.622407881549847,-0.10512728388141357,0.10512728388141357],[0.26865244568940616,0.10110349774031085,0.05980632111632142,0.022011854644008774,-0.4515741191889182,0.26865244568940616,0.10110349774031085,0.05980632111632142,0.022011854644008774,-0.4515741191889182,2.255199645041556,5.927223531629712,-3.4650540878812994,-2.771533836641578,-0.46009746729906775,-3.013172403705314,0.30628507385422177,1.6122189037037535,-0.3910693586882883,0.30936439289312384,-0.30936439289312384],[0.45853652134733225,-0.6278909297356045,-0.35646875090489005,0.28681009171556304,0.23901306757954902,0.45853652134733225,-0.6278909297356045,-0.35646875090489005,0.28681009171556304,0.23901306757954902,-4.35825837626865,-0.7655724982286595,-0.04623689829080021,0.11192495591432183,6.415904959859169,-7.9768911741459165,-0.1990590434499544,-2.2878142116970297,9.10600228632008,0.699884440608251,-0.699884440608251],[-0.02170134080137867,0.4604646790521807,0.48943135942062865,-0.6715038997629119,-0.2566907979134876,-0.02170134080137867,0.4604646790521807,0.48943135942062865,-0.6715038997629119,-0.2566907979134876,-0.7362863507157833,-0.6476637795380342,0.8770623558603503,-0.8701608565190686,-1.0749528037088214,2.40694065853629,-0.4349087893797151,1.7185312119227585,-1.2385616464565699,0.6407622801961831,-0.6407622801961831],[-0.03540974918934497,-0.22600791752756716,0.20116934292357253,0.3620674466795433,-0.3018191228980991,-0.03540974918934497,-0.22600791752756716,0.20116934292357253,0.3620674466795433,-0.3018191228980991,-3.1755171405290654,1.9288050156375145,-0.8272978168026405,0.06893931348305227,3.6957422866792,-3.8004093780794523,1.0088392054816067,-2.004423889682784,3.1053224038130507,-1.1704465123092587,1.1704465123092587],[-0.13337940577505492,0.1970885788598882,0.15648688493224525,-0.3346068786462489,0.11441082064286082,-0.13337940577505492,0.1970885788598882,0.15648688493224525,-0.3346068786462489,0.11441082064286082,-0.5463395906100628,1.4484207346673281,-2.0722153018419394,0.42398412292218157,0.04788918541511422,-3.0105100194202925,-4.105858921350425,0.2173679792077785,7.59726181102492,0.19981044425990158,-0.19981044425990158],[-0.32381605789793455,0.18932018947974064,-0.47860022580047845,-0.130741035434489,0.743837129660721,-0.32381605789793455,0.18932018947974064,-0.47860022580047845,-0.130741035434489,0.743837129660721,2.6158665503001335,0.46026376833834165,0.5601433254986186,-1.0238653972334268,1.5451034591062198,-1.2801337429658028,0.5694693650475869,-1.797441110746583,-1.6494062173522308,0.003458303383132383,-0.003458303383132383],[0.014592854086255436,-0.22860771358489307,-0.15327109905534614,0.1018874937332736,0.2653984648126737,0.014592854086255436,-0.22860771358489307,-0.15327109905534614,0.1018874937332736,0.2653984648126737,-5.378011651189723,4.190822701599491,-2.474934948965541,-1.3827923588781157,2.2136654088246837,0.06049790545213851,1.9466603042076045,-1.150830678889988,1.9749233178328438,-0.33309539375929065,0.33309539375929065],[-0.13937056821995755,-0.09822728427881268,-0.16497806978627488,-0.20633085813423213,0.6089067804094042,-0.13937056821995755,-0.09822728427881268,-0.16497806978627488,-0.20633085813423213,0.6089067804094042,1.1976968794876646,-0.42729862153200115,-0.5938257660718076,1.2170559430460062,-8.219746335709225,11.149523079675415,2.3264692442963755,3.6323659469580765,-10.282240370146955,-0.19593155544088917,0.19593155544088917],[-0.22690921985088253,-0.5942897596192153,0.37421047690274567,0.2162663163513278,0.23072218624691354,-0.22690921985088253,-0.5942897596192153,0.37421047690274567,0.2162663163513278,0.23072218624691354,2.4637833282736343,-0.802956632930447,0.6262590447972316,-0.7398358875915922,2.0671333566044527,1.0290576703626897,1.476797024847369,0.5247023947255536,-6.644940299090015,0.916533475725773,-0.916533475725773],[0.2349262220235413,0.5568695944536562,-0.16857518437496988,-0.6796623939036707,0.05644176179739105,0.2349262220235413,0.5568695944536562,-0.16857518437496988,-0.6796623939036707,0.05644176179739105,1.6951408603626295,-1.851110275793237,-0.6396471316828028,1.9127269637731243,-1.6878620927301013,0.974155213436028,1.1444114982668188,1.3929727357974953,-2.940787771450287,0.5780304437149131,-0.5780304437149131],[0.08276077966069433,0.15739816236642865,-0.2760525184310461,0.17242092720521413,-0.13652735080341954,0.08276077966069433,0.15739816236642865,-0.2760525184310461,0.17242092720521413,-0.13652735080341954,-1.8144727817859976,0.7113298410321652,-3.416847040351954,1.772326260948022,2.6898838462945056,-7.392514711772445,4.604418668957434,0.8951106034380631,1.9507653132517104,0.9331909383702959,-0.9331909383702959],[0.8476640097727495,0.0017594868883129555,0.38230378991638253,-1.0205305788017973,-0.21119670777629151,0.8476640097727495,0.0017594868883129555,0.38230378991638253,-1.0205305788017973,-0.21119670777629151,0.649502855213107,-2.161425730559601,-0.8485711790121018,1.653724837040517,-1.2175705129043646,-2.269103270351,0.101506655212249,5.607517450661412,-1.515581105307925,1.356272072528319,-1.356272072528319],[-0.09978683914474548,0.32785660116095533,-0.05948007065016693,-0.1704486022356757,0.0018589108744507393,-0.09978683914474548,0.32785660116095533,-0.05948007065016693,-0.1704486022356757,0.0018589108744507393,1.015043864140555,-2.2421062534711655,1.1934927565369033,0.9877923321609279,-2.424894152763878,-0.5554312206939727,-1.639155553437925,4.043570354319959,-0.37831212679098136,0.060821164785699926,-0.060821164785699926],[0.0038938888656599863,-0.770340165693918,-0.2859559399894881,1.2760928201852786,-0.22369060337291943,0.0038938888656599863,-0.770340165693918,-0.2859559399894881,1.2760928201852786,-0.22369060337291943,-1.975079933986796,3.5074861275360787,-1.2324599960865885,-1.807089419564307,5.1730373931243285,-7.217322772139657,2.3042505630530825,-0.1937686629697668,1.4409467010430097,-0.4679367118556846,0.4679367118556846],[-0.09710727061937718,-0.26719099775591193,0.44529102282873345,-0.06583892900905622,-0.01515382545847102,-0.09710727061937718,-0.26719099775591193,0.44529102282873345,-0.06583892900905622,-0.01515382545847102,1.106773992221709,4.702766753412045,-3.2442180294963694,-1.7153306088185425,4.860121936369844,-3.3212146736203882,1.8430360809619273,-4.774820093244283,0.542884642225371,0.25678188489692855,-0.25678188489692855],[-0.2530733437667741,-0.25384459401606485,0.3431619111853306,0.116732916543805,0.04702311004685915,-0.2530733437667741,-0.25384459401606485,0.3431619111853306,0.116732916543805,0.04702311004685915,1.834847534257121,4.387312453308334,-0.5790860485180276,-2.993370932726415,-1.4354299344651769,3.263605745725223,-0.8245336757890417,0.7779116676063175,-4.431256809411229,-0.8148554720637501,0.8148554720637501],[0.055350727272557715,-0.1707587637288888,0.6150378725404567,0.0469266458196337,-0.5465564818961658,0.055350727272557715,-0.1707587637288888,0.6150378725404567,0.0469266458196337,-0.5465564818961658,-3.1206123655677276,1.8519094037237736,0.6056004989041818,-0.9276031637512565,-2.5519693040906843,3.1527970801897967,3.117323904936246,-0.004181270483951671,-2.1232647838614565,-1.5299067388746659,1.5299067388746659],[0.07444537891059108,1.1717243959328187,-0.5735587598283147,-0.9309427478573242,0.2583317328475176,0.07444537891059108,1.1717243959328187,-0.5735587598283147,-0.9309427478573242,0.2583317328475176,1.9941628927287873,1.767795621153483,1.6639670711600312,-2.526568194236832,-4.981429791398032,6.912878335585256,-3.2382175653175715,7.009457977033059,-8.602046346686205,-0.9051944980610327,0.9051944980610327],[0.08846196625117296,-0.08032668653158195,0.6123297872421802,-0.8466199611864034,0.22615489424108787,0.08846196625117296,-0.08032668653158195,0.6123297872421802,-0.8466199611864034,0.22615489424108787,3.061822837068784,0.6821029404741319,0.7214976748327142,-1.4359335237193975,-1.6586470017977566,0.015338800930594365,1.1927425075568172,0.5632154788862334,-3.1421397142338376,0.03233290841724723,-0.03233290841724723],[0.30728359072742284,-0.002699245039740353,-0.3421120169843118,-0.04970319668272355,0.08723086795256862,0.30728359072742284,-0.002699245039740353,-0.3421120169843118,-0.04970319668272355,0.08723086795256862,1.479353109729636,-0.4198277528259797,1.4208778063568872,-1.4823055561999074,0.049510087540359404,-0.022521374154609308,-2.683281081372734,0.6783589351428346,0.9798358258044766,0.4812555026881042,-0.4812555026881042],[-0.10551091224243003,0.17676276798190194,-0.04941014386763061,0.14847430372688694,-0.17031601558875836,-0.10551091224243003,0.17676276798190194,-0.04941014386763061,0.14847430372688694,-0.17031601558875836,2.4877874226415386,-1.0134835802418596,2.3169039176958295,-0.8522910851804906,-0.9453950280731296,3.5142710564719284,4.608208832463211,2.2303990636379494,-12.346400599422847,-0.45112925228328954,0.45112925228328954],[-0.3481568918969407,0.41492124074242204,-0.04748367579255806,-0.10497913327918673,0.08569846021658409,-0.3481568918969407,0.41492124074242204,-0.04748367579255806,-0.10497913327918673,0.08569846021658409,0.6203592162426782,-5.721189593709561,3.0321184442158544,2.39042706869016,-6.277084839872538,5.707253512675329,-1.5526311581790588,5.773539167480203,-3.9727918175488632,0.29864408080123017,-0.29864408080123017],[-0.6125702808963778,0.0527377283422171,0.08960206616697533,-0.0515212967919077,0.5217517831715093,-0.6125702808963778,0.0527377283422171,0.08960206616697533,-0.0515212967919077,0.5217517831715093,3.6304398919376197,-0.5825595445307806,0.250948220922937,0.6443921247821855,-2.3154066571556564,1.0151484068504188,-2.2729674209230564,-1.448286632446161,1.0782916105546927,-0.31278080118038754,0.31278080118038754],[-0.14423124861568462,-0.23875686727686202,0.367862021981958,0.05702243399638715,-0.04189634008779877,-0.14423124861568462,-0.23875686727686202,0.367862021981958,0.05702243399638715,-0.04189634008779877,3.5400967520435627,-1.4707098577834885,-2.0811221793945416,3.4721746160769857,-5.938472060424541,4.271600096481073,-3.5650297559668704,1.5853543350875332,0.18610805388432813,0.07965742110536571,-0.07965742110536571],[-0.24312512764433525,0.14725255079986038,-0.062081977883427855,0.14117798421424196,0.016776570496238263,-0.24312512764433525,0.14725255079986038,-0.062081977883427855,0.14117798421424196,0.016776570496238263,-1.1721715474973098,-0.8995055821593531,-0.6098184630157856,0.8405406152694428,-2.6400246212773246,4.016604308965739,-1.0007012633285814,-0.36136495248951284,1.8264415055174537,0.6687834298993623,-0.6687834298993623],[-0.20203672490518232,0.354181922248342,-0.5465511375699822,0.42976143873344574,-0.035355498509673206,-0.20203672490518232,0.354181922248342,-0.5465511375699822,0.42976143873344574,-0.035355498509673206,0.7562401037099489,0.30553283195167946,-1.8379046222899587,1.4750523701481675,-3.1077270641488135,3.9225543763468567,-1.7939918819025495,1.7984812476132552,-1.518237361428403,0.05731942018355653,-0.05731942018355653],[-0.1179759854893275,-0.4728190199557257,0.36586451144285465,0.2895287068151573,-0.06459821280407556,-0.1179759854893275,-0.4728190199557257,0.36586451144285465,0.2895287068151573,-0.06459821280407556,3.5908150648416717,-3.769242900143372,0.8086366452961413,2.7289728697179605,0.9875311575692027,-1.2391852134687982,0.5833942279743456,-2.333694185071054,-1.3572276667219816,0.23163338511801898,-0.23163338511801898],[0.12744638069247377,0.1756698663486748,0.4490679767219445,-0.7252768295784702,-0.026907394184980067,0.12744638069247377,0.1756698663486748,0.4490679767219445,-0.7252768295784702,-0.026907394184980067,0.769459172150506,-2.6586399378668197,1.5417422789959443,1.5728966527818007,3.442333069576938,-2.096511857134307,-3.646140646075743,-3.825642787885173,4.900504055476775,-0.4559989938993745,0.4559989938993745],[-0.34947317820341156,0.45173880346342926,-0.40715951367769776,0.37980161714543414,-0.07490772874514416,-0.34947317820341156,0.45173880346342926,-0.40715951367769776,0.37980161714543414,-0.07490772874514416,-2.1390168903623126,-0.8071739207629482,0.34169151630516703,0.5832419192055258,-0.338513694354613,2.2989128876422273,-3.414861296005529,-2.4803269812436795,5.956046459580341,-0.11775951475191715,0.11775951475191715],[0.49889037851206663,-0.09817248593311487,-0.5808508590481771,0.22814469144798905,-0.048011724964203625,0.49889037851206663,-0.09817248593311487,-0.5808508590481771,0.22814469144798905,-0.048011724964203625,-2.0974473810097956,3.8777816899321493,-1.8986750215788701,-2.450632697737449,1.0429898325638713,-3.9625041936027676,2.5893206643232705,5.621720980254285,-2.7225538731496375,0.4715260293844101,-0.4715260293844101],[-0.01607945307692433,0.11457394969362501,-0.3073619384347602,0.3930834571549987,-0.18421601532622917,-0.01607945307692433,0.11457394969362501,-0.3073619384347602,0.3930834571549987,-0.18421601532622917,0.9904816336219684,3.8063416499476266,-5.232088923318241,1.1156945218497822,1.250720836091184,0.7433400180026326,-2.357002149894103,0.6298313472598802,-0.9473189335538732,0.3100527515225374,-0.3100527515225374],[-0.08850019654141475,-0.29549510573045473,-0.22376810418023654,0.5436826085945922,0.06408079789996135,-0.08850019654141475,-0.29549510573045473,-0.22376810418023654,0.5436826085945922,0.06408079789996135,-1.0115967272798696,-2.7321390330676625,1.7269985643370753,1.6754309194435735,-2.7951562514287085,5.419218908316291,-2.741523592142414,-0.5459282669561083,1.0046954787792406,-0.6702904507043844,0.6702904507043844],[0.23380283100117266,0.6413984358789786,-0.3991634415843433,-0.7744671165053694,0.29842929121505074,0.23380283100117266,0.6413984358789786,-0.3991634415843433,-0.7744671165053694,0.29842929121505074,2.035683808850499,-0.6637525322956126,-2.8415974502601595,3.6540409091812887,0.7045297802379367,-3.7590853005576346,2.3613138440701413,1.3417959563413362,-2.8329290155563696,-0.14869092662739736,0.14869092662739736],[0.01706918411678887,-0.21808268887121263,0.19930250611108385,-0.2665699995232849,0.26828099818554685,0.01706918411678887,-0.21808268887121263,0.19930250611108385,-0.2665699995232849,0.26828099818554685,2.0197615991429867,1.0070808773447655,-1.8205774705369513,1.310450355226993,-0.693130771471981,0.043301510612617555,3.1588632723694676,-2.0632271434746285,-2.9625222292005025,-0.4969537620325998,0.4969537620325998],[-0.1431970415399081,0.10473439813591429,0.33879343560209807,-0.25117325601251395,-0.04915753618753939,-0.1431970415399081,0.10473439813591429,0.33879343560209807,-0.25117325601251395,-0.04915753618753939,-1.0633443469023525,1.7994258802931113,-1.3329733266493635,0.042868254278402455,-2.1606044945236547,5.941499872561379,-0.05264712068634325,-2.6089049145290417,-0.5653198038368328,-0.5093208079093633,0.5093208079093633],[0.14324838722940686,0.2164745471448538,-0.5684361997239049,-0.20068137040077338,0.40939463575776913,0.14324838722940686,0.2164745471448538,-0.5684361997239049,-0.20068137040077338,0.40939463575776913,-0.023674597034630568,3.818019602751195,-6.202614402999881,1.969452046843489,0.18449001899932982,-0.8126410630803615,-1.3502474349858118,-3.334213638543641,5.751429468046432,0.4151427534056953,-0.4151427534056953],[0.20669199392261683,-0.7190285790423641,0.15273017068294842,0.2543628707845266,0.10524354366935924,0.20669199392261683,-0.7190285790423641,0.15273017068294842,0.2543628707845266,0.10524354366935924,3.0013448052495857,4.683995332835377,-4.422515151782647,0.1864565252347678,0.7822375417626853,-1.6226272006737001,3.5422238555516032,1.744230828487055,-7.895346536663837,-0.44793670629243,0.44793670629243],[-0.17840999986339443,-0.35265617698941776,-0.06436434329743906,0.26915805448369995,0.32627246566746027,-0.17840999986339443,-0.35265617698941776,-0.06436434329743906,0.26915805448369995,0.32627246566746027,0.7448386553269317,2.023415111019402,0.8859801394623268,-3.3011564595334257,-1.1734944959551854,4.290362221324429,-1.3361264342286368,2.680793299214347,-4.814612036628321,0.39176120904898515,-0.39176120904898515],[0.07353672210782719,-0.2529371432249928,-0.18071043697876196,-0.07186450203869156,0.43197536015040416,0.07353672210782719,-0.2529371432249928,-0.18071043697876196,-0.07186450203869156,0.43197536015040416,-1.3627071968048283,-0.5587157583909228,2.0224634561931785,-1.6656120831794554,1.4149982957537317,3.019084282424279,5.724953501719443,0.840774447424649,-9.435238945141444,0.20186438537670273,-0.20186438537670273],[0.4629933229044784,-0.4010118032338214,-0.13990513023203305,0.2473934533986865,-0.16946984282592945,0.4629933229044784,-0.4010118032338214,-0.13990513023203305,0.2473934533986865,-0.16946984282592945,-5.49604881492068,3.0772707003778,-2.183775015672003,-1.003109918795378,4.038213954144065,-5.424319724726535,4.885215892421095,-1.5418904028692304,3.6484433300438006,0.1096142340724891,-0.1096142340724891],[0.09538826184847857,-0.682531681353574,0.27400636097260234,0.46146670929312206,-0.14832965074011092,0.09538826184847857,-0.682531681353574,0.27400636097260234,0.46146670929312206,-0.14832965074011092,0.5803014969982554,1.6199788124326042,1.1638654681486522,-2.9781848764289123,0.5740422788213817,0.22169931981944924,2.893045405163442,0.05343441661424497,-4.128182321574906,0.19434059584315122,-0.19434059584315122],[-0.19492650654306642,0.33959816158745354,-0.11087868045822086,-0.037050035912369925,0.003257061332242961,-0.19492650654306642,0.33959816158745354,-0.11087868045822086,-0.037050035912369925,0.003257061332242961,0.29271536724925623,-1.5188624938898596,0.8930625234254088,0.39623110170214926,-4.7656525112744035,1.3147324670278138,4.1243158435875396,4.178329425325702,-4.914871723137489,0.22956886876515645,-0.22956886876515645],[0.026947083569034247,-0.4537276758190574,0.1871900780801758,0.17332298335624027,0.06626753080524923,0.026947083569034247,-0.4537276758190574,0.1871900780801758,0.17332298335624027,0.06626753080524923,-0.8557456295411381,1.6929894083915007,-0.36254508172026234,-1.2502628776766986,-2.805323680505545,5.200935235314263,-1.9277572866203685,-4.333207191162887,4.640917103521815,-0.08018144898725663,0.08018144898725663],[0.5767625214368999,-0.5904267357493573,-0.18524880426274756,0.022032316975335975,0.17688070161128452,0.5767625214368999,-0.5904267357493573,-0.18524880426274756,0.022032316975335975,0.17688070161128452,-0.731108500902337,1.1024574898564619,-1.47637257447197,-0.535127439025342,0.6297779711818425,-5.827246377549846,2.8369497527925462,2.910018518694492,1.090651159435951,0.9090425236430786,-0.9090425236430786],[0.4184154542735994,-0.3804772060923613,-0.24940644746960466,0.17913868232466806,0.03232951694013807,0.4184154542735994,-0.3804772060923613,-0.24940644746960466,0.17913868232466806,0.03232951694013807,0.642218732814916,0.5298594959960595,2.4764833523329384,-2.661109833224468,0.31017694837786297,2.227631106711039,-0.34202283886755364,2.785071287970844,-5.968308252107724,-0.3452330151051502,0.3452330151051502],[-0.18008738366747146,-0.03038066160168478,0.2284265692064818,-0.0897959580294018,0.07183743410058253,-0.18008738366747146,-0.03038066160168478,0.2284265692064818,-0.0897959580294018,0.07183743410058253,0.5626196766801517,0.7263581793656925,-3.176011335938073,2.4549852872893174,-1.6745667004231133,1.1354146683853,1.9729395149189406,-2.8771352650609643,0.8753959747781268,-0.005332130711921332,0.005332130711921332],[-0.3564781901356885,-0.07998895564697417,0.09022422741481351,0.0972230112193559,0.24901990716338174,-0.3564781901356885,-0.07998895564697417,0.09022422741481351,0.0972230112193559,0.24901990716338174,0.47433344289404156,3.244030894681316,-0.49037535822417966,-2.2277830870379898,-0.4237256056964054,4.72376568617492,-0.22473074456805642,-1.3984856488135076,-3.6770295794163,-0.5258724494144056,0.5258724494144056],[-0.15953514499682211,0.39312673787184294,0.05856587186064674,-0.14941641935201316,-0.1427410453876053,-0.15953514499682211,0.39312673787184294,0.05856587186064674,-0.14941641935201316,-0.1427410453876053,0.9167446092204357,2.1083969526082442,-0.6300212103048176,-1.3807739087018254,-1.6166432320029243,-0.6220669567981092,-0.2200796906733129,1.6745015438128519,-0.23005810715082994,-0.09760183359084051,0.09760183359084051],[-0.1631332708703192,-0.19932286850955622,0.5146276663623486,0.125323070875594,-0.2774945978652755,-0.1631332708703192,-0.19932286850955622,0.5146276663623486,0.125323070875594,-0.2774945978652755,-4.2677246273439,-1.1039050813131261,1.0386760023669344,0.08081947406330636,1.6661438376732276,0.24352780791817175,-4.708450199229841,1.4981089205673528,5.552803865307639,-0.015590395118894318,0.015590395118894318],[0.055728932847919056,-0.3460614676050361,-0.06367954072588505,0.1142471385587577,0.23976493691927095,0.055728932847919056,-0.3460614676050361,-0.06367954072588505,0.1142471385587577,0.23976493691927095,-2.369036945878734,2.6105156248944215,-1.8469251354629486,-0.5199379949488011,0.9114863460391898,-1.7147261706874328,0.05148648955642715,3.122148197772238,-0.24501041129148282,-0.24365249447573537,0.24365249447573537],[-0.04460588873115578,0.10770477962844793,0.10222227781541844,-0.10151495432833157,-0.06380621436506212,-0.04460588873115578,0.10770477962844793,0.10222227781541844,-0.10151495432833157,-0.06380621436506212,-3.1999839789677624,1.279959253668264,0.8394484771881454,-2.1051454747779954,3.0214679930943196,-3.875221551505088,-3.0594357053728753,-1.8625994355028832,8.961510422182059,-0.014262256083691513,0.014262256083691513],[0.24235092075290784,-0.29725983893787655,-0.07282436473117507,0.22970918624583117,-0.1019759033299351,0.24235092075290784,-0.29725983893787655,-0.07282436473117507,0.22970918624583117,-0.1019759033299351,-0.014323886074987802,-0.8499537101143084,-0.10766534764326363,1.0171785275355851,-1.4422549522999368,1.7586446502728326,-3.3924843079157707,-0.7423022069828262,3.7731612332196107,-0.059559469784331735,0.059559469784331735],[0.2403442129368774,-0.8075770582957131,-0.15940835904096815,0.3832897310995382,0.34335147328510707,0.2403442129368774,-0.8075770582957131,-0.15940835904096815,0.3832897310995382,0.34335147328510707,-1.8519265847152147,1.4147907351203108,-0.28880635477927497,-0.8298805901457765,-3.943442976378794,1.3901672862310481,4.20772462707057,4.707437243963118,-4.806063386373556,-0.29610379019975464,0.29610379019975464],[-0.24619222087153286,0.4870403816334521,-0.4523822077737502,-0.0598451931436642,0.2713792401527174,-0.24619222087153286,0.4870403816334521,-0.4523822077737502,-0.0598451931436642,0.2713792401527174,-0.524876527988956,0.552492643952395,-0.7559603311826697,0.041495218769793896,1.7206329623399745,2.0702434184525527,-2.2443907534013414,-3.952881095369425,3.093244464417495,0.16197246846162416,-0.16197246846162416],[0.0796177311987967,-0.06518425762687918,-0.14346491156906763,0.17455654289784472,-0.0455251049017011,0.0796177311987967,-0.06518425762687918,-0.14346491156906763,0.17455654289784472,-0.0455251049017011,-1.7299549338368596,4.32440082751185,-3.2017984832610615,-1.4404434916636142,-0.22608652828818027,4.346538553479679,-4.166178464582426,1.5733958426475274,0.5201266779932415,0.31784114740853076,-0.31784114740853076],[0.3380578285340201,-0.18532751937919428,0.2832357386854392,-0.40425618702422894,-0.03170986079673699,0.3380578285340201,-0.18532751937919428,0.2832357386854392,-0.40425618702422894,-0.03170986079673699,3.4533184436644664,1.539412893934949,-1.3839351085336598,-0.15957612642486318,-2.073493286257777,-0.5838422688555738,-1.4720031915073228,2.0605601418596198,-1.3804414978802981,0.004098341020560756,-0.004098341020560756],[0.46977815209767926,-0.07982415699692405,0.13041205952419688,0.03593568891965604,-0.5563017435298035,0.46977815209767926,-0.07982415699692405,0.13041205952419688,0.03593568891965604,-0.5563017435298035,2.1396387910058907,1.1695731306900106,1.9567796379662645,-3.197518099479039,-0.597706449131946,-2.980371642914906,1.2178949821388825,3.0229575499377086,-2.731247900215041,0.07116533082801381,-0.07116533082801381],[-0.015005198345767114,-0.504762665459348,-0.18474314707213807,0.37808724743960936,0.3264237634406026,-0.015005198345767114,-0.504762665459348,-0.18474314707213807,0.37808724743960936,0.3264237634406026,-1.6881043513697875,-0.7927099303544746,-1.0370529704702598,1.6664796934305062,3.8866605289909293,-9.880747093031458,3.5634682705866316,-2.408496450871331,6.690502303099221,0.16328320740426006,-0.16328320740426006],[0.31637252855502745,-0.07780780003186383,-0.47258576641808697,-0.052476251356880804,0.28649728924909323,0.31637252855502745,-0.07780780003186383,-0.47258576641808697,-0.052476251356880804,0.28649728924909323,-0.40112887880333786,1.7292186927898001,-3.8842203525730357,2.1924452184206653,3.5818260846146024,-4.037581586099962,1.7635564516333129,0.46352288469054287,-1.4076385146653345,-0.03744355862301635,0.03744355862301635],[0.059486224234510665,-0.22135865549068248,0.025299072253480326,0.2138441187637291,-0.0772707597692813,0.059486224234510665,-0.22135865549068248,0.025299072253480326,0.2138441187637291,-0.0772707597692813,-0.09489027074473266,-1.779862951442643,-0.40827123161632095,2.1810633726237043,-0.5891895291544988,-0.4617844973863925,-0.6763497749945121,1.2563364216707105,0.5729484610395953,0.007070810421572614,-0.007070810421572614],[0.16626337325959803,0.1468134003693242,-0.2510963624038436,0.5617962719839898,-0.6237766831881375,0.16626337325959803,0.1468134003693242,-0.2510963624038436,0.5617962719839898,-0.6237766831881375,-3.2362397060507364,-1.4340285167060003,3.321726057926292,-1.7380444840114544,0.6710321499564083,0.3933343152831644,4.7559991716183365,5.6995899911491845,-8.433368979163943,-0.14965305720924432,0.14965305720924432],[-0.4532135275728072,0.1877919280579025,0.206652868947103,-0.15200282037696936,0.2107715509467205,-0.4532135275728072,0.1877919280579025,0.206652868947103,-0.15200282037696936,0.2107715509467205,-7.477359791856948,1.8983666231932372,-0.2711464210475387,-2.2875281672688796,1.1834931393961767,5.234273990943441,-2.9885733047218705,-0.5855868851001489,5.294060816469902,0.6603079651223154,-0.6603079651223154],[0.10213119240196063,-0.3705004784596701,0.7969617935265056,-0.6009767693548818,0.0723842619044685,0.10213119240196063,-0.3705004784596701,0.7969617935265056,-0.6009767693548818,0.0723842619044685,-2.230405357859709,-2.1923071358342057,2.022916728427025,0.2509390190896308,5.333750667336396,-2.568030974771357,2.950648182930024,-2.820047506519731,-0.747463622789649,-0.08154861168072028,0.08154861168072028],[-0.018151156675659426,-0.3604293463344009,-0.11347379794839571,0.31876627777265626,0.17328802320414516,-0.018151156675659426,-0.3604293463344009,-0.11347379794839571,0.31876627777265626,0.17328802320414516,0.15141207955810737,0.07260996408496445,2.9215951453984177,-2.6526064851341458,-2.378412161667346,3.6246499965935595,-2.0551106826141883,2.1961604485797883,-1.8802983047937714,-0.3415986243492958,0.3415986243492958],[-0.12255490294505318,0.40074814296087696,0.2620927430933693,-0.698910539980742,0.15862455687930416,-0.12255490294505318,0.40074814296087696,0.2620927430933693,-0.698910539980742,0.15862455687930416,0.7282906375428427,-0.8381332298902636,1.2132762217360635,-0.2550522690008714,4.65715177505524,-10.186729530342886,0.85488766755158,-6.394426970539253,10.22073569789071,-0.12009072284287475,0.12009072284287475],[-0.5858219814034268,-0.07145736561521424,0.1594048272126219,0.5708641251172123,-0.07298960530351982,-0.5858219814034268,-0.07145736561521424,0.1594048272126219,0.5708641251172123,-0.07298960530351982,1.70406896197226,-0.28444333535427013,-1.287589236161892,1.0943799151810045,4.826879637023926,-4.7441300226602525,-3.9198921204750126,-6.156880147892477,8.767606348346884,0.47765265635063114,-0.47765265635063114],[0.2961838198785973,0.06601718038275073,-0.1555320981250229,-0.14154464100042463,-0.06512426112697559,0.2961838198785973,0.06601718038275073,-0.1555320981250229,-0.14154464100042463,-0.06512426112697559,-0.20677301079695384,4.378788796979333,-0.095922344683403,-4.249683711612076,-0.29860153408225254,1.671700538610081,2.312357635093553,-5.069228284534716,1.5573619150221356,-0.03318274068939296,0.03318274068939296],[0.6078240163488036,-0.2752349740552311,-0.24647437258218505,-0.4731621352146131,0.3870474655161461,0.6078240163488036,-0.2752349740552311,-0.24647437258218505,-0.4731621352146131,0.3870474655161461,-1.1671493767686798,-3.4152079045251953,3.0649369165155247,1.1577904733455298,-5.612580060608171,1.1632770852174086,-3.245805199538925,7.584945948558391,0.4697921177911655,-0.8075194853294443,0.8075194853294443],[-0.33658065910941914,-0.15813428134287508,0.006726979164584562,0.37362841770496297,0.1143595435862271,-0.33658065910941914,-0.15813428134287508,0.006726979164584562,0.37362841770496297,0.1143595435862271,1.1143022183609872,0.5513937201313048,0.40915662883608417,-0.6410950807087812,-0.7717538295556257,1.1664541291874988,-0.25635550343273594,1.152178664053336,-2.7242809468723146,-0.31945526825621345,0.31945526825621345],[-0.2085112905592517,0.05913184887144171,-0.9006989978425586,0.4395653123709357,0.6105131271674391,-0.2085112905592517,0.05913184887144171,-0.9006989978425586,0.4395653123709357,0.6105131271674391,2.4708745245710793,0.2544274716774013,-2.5050646544193693,2.3924654361260203,-2.675895469037037,4.757422906654683,-0.10063314123146849,2.2731535813373513,-6.866750655667074,-0.14182825337218477,0.14182825337218477],[-0.21873339026816646,0.30184169448532217,-0.27270151262030534,0.4063381221924903,-0.21674491379196414,-0.21873339026816646,0.30184169448532217,-0.27270151262030534,0.4063381221924903,-0.21674491379196414,-2.5354187777877386,-0.5486097365125088,-1.1544022843640995,1.1338691283025228,1.1768163301443155,-0.05643262982325514,-1.653069273737615,-0.13478911992416687,3.77203636369922,0.5691428925709394,-0.5691428925709394],[-0.5309116575743471,-0.39486254423720935,-0.10684773013663998,1.089362005558367,-0.056740073595966875,-0.5309116575743471,-0.39486254423720935,-0.10684773013663998,1.089362005558367,-0.056740073595966875,-0.24936974741461432,-0.9515466286611209,2.5626697310994127,-1.2837927086759464,-2.114748576126004,1.55354408202169,-5.595084154694879,2.4312958463243937,3.6470321561175014,-0.3273303937720936,0.3273303937720936],[0.28715165595931713,0.714769481760944,0.23993496665368425,-0.8274624516222389,-0.4143936527485548,0.28715165595931713,0.714769481760944,0.23993496665368425,-0.8274624516222389,-0.4143936527485548,-1.3382797787238412,-0.5783535974882852,0.3326835523876077,0.43706919304307434,-2.520806309879685,5.29065267335778,-1.2178137758718102,-0.621468508684277,0.2163165518577519,-0.1913991479329301,0.1913991479329301],[-0.29920718745206365,0.14503496923475087,-0.15634195795215963,0.02552735989469307,0.2849868162885178,-0.29920718745206365,0.14503496923475087,-0.15634195795215963,0.02552735989469307,0.2849868162885178,-3.7098751322698984,0.76459259505404,1.4739938289859276,-2.4796163247810474,-0.061597421529300034,7.238808782954427,-1.7135818911971168,-3.0210268687038724,1.5083024314749913,0.2410299007461288,-0.2410299007461288],[-0.28632548039956934,0.7953966109276361,-0.5169232869892605,-0.2309941457680707,0.23884630223238731,-0.28632548039956934,0.7953966109276361,-0.5169232869892605,-0.2309941457680707,0.23884630223238731,5.655387861706471,-2.3167894148698394,4.087129805042962,-1.4828200254948494,-5.3832458681603335,5.929079893425853,-0.3043680164432093,1.8901547634863909,-8.074528998696577,-0.2875203646751699,0.2875203646751699],[-0.09931582395618249,-0.026747034498465237,-0.1233726262195487,0.05774336083747458,0.19169212383301132,-0.09931582395618249,-0.026747034498465237,-0.1233726262195487,0.05774336083747458,0.19169212383301132,-0.769671307298869,3.5409678244746763,-0.6041551577636591,-3.2952541210380177,1.0990503603874608,0.3451012440659416,7.842306680444343,1.6551765039276534,-9.813522027193288,0.3584414543270882,-0.3584414543270882],[0.028318614105291344,-0.4321661076261752,-0.019623581877051967,0.19864812690418884,0.22482294851629392,0.028318614105291344,-0.4321661076261752,-0.019623581877051967,0.19864812690418884,0.22482294851629392,-1.7823412044264346,-2.272933546253329,-1.0107742485197222,3.3177565980074446,3.8943867401021515,-2.6218245899817907,-2.443011594026562,-4.660658426549795,7.579400271642829,-0.03404880323316811,0.03404880323316811],[0.20403145523676175,-0.1702313883362941,0.10629521842476605,0.2142923469958759,-0.3543876323127743,0.20403145523676175,-0.1702313883362941,0.10629521842476605,0.2142923469958759,-0.3543876323127743,-3.7836072891234886,3.193712564856716,-1.9320066577121449,-1.0200935974326346,-3.1326476876216374,0.77864935377138,-2.1551372216902593,0.2667013188982881,7.784429216041797,-0.2416123097125976,0.2416123097125976],[0.4560047344054028,0.37524486906306526,-0.521653855516375,-0.2358446418444632,-0.07375110610947525,0.4560047344054028,0.37524486906306526,-0.521653855516375,-0.2358446418444632,-0.07375110610947525,-2.842730020058617,0.036328412329516446,1.2009477054651654,-1.7210954874251247,4.259240895069043,-8.875698563777043,2.557874477231377,-1.8875213093491257,7.272653890520745,0.4838193696208585,-0.4838193696208585],[0.0349731785285447,-0.39827344963487843,0.40549632193904644,0.45020644733976845,-0.49240249819981224,0.0349731785285447,-0.39827344963487843,0.40549632193904644,0.45020644733976845,-0.49240249819981224,2.5103566714227266,-0.2861057177716422,2.688831885129477,-1.8901561886740155,4.2200362958746,-7.552341462344129,-3.218148393502495,-3.1977264077462606,6.72525331760651,-0.5125699786947547,0.5125699786947547],[0.48460302911427566,0.1191226324953689,-0.2386698134887028,-0.4162682212796752,0.05121237314546623,0.48460302911427566,0.1191226324953689,-0.2386698134887028,-0.4162682212796752,0.05121237314546623,-0.7150247921511129,0.8384780896443091,-3.0529030345515453,2.096420821066911,-6.975926461776149,7.3984480506614485,-1.0179156287974427,5.908288806475064,-4.479865850566755,0.11800412384841895,-0.11800412384841895],[0.2023894470493613,0.3451868427833349,-0.49324637670796656,0.32386499604956087,-0.3781949091741559,0.2023894470493613,0.3451868427833349,-0.49324637670796656,0.32386499604956087,-0.3781949091741559,6.43427574710982,-0.5377471406578584,-0.19924228186220977,1.0261736467669287,0.9882935556717471,-3.6249231939536983,-3.003344244494677,-3.975020709614462,2.891534621026243,-0.2891842242497263,0.2891842242497263],[-0.13217532724620043,-0.7522973284556014,0.5424772935222286,0.31225567772174645,0.02973968447141012,-0.13217532724620043,-0.7522973284556014,0.5424772935222286,0.31225567772174645,0.02973968447141012,-2.902021378516606,-1.8535050956259531,0.7943906707619484,0.9696629529911326,0.10542597781180518,0.9401810526390268,1.5128144613747654,-4.98677767434253,5.419829032916326,0.08945147187770597,-0.08945147187770597],[0.764624238519309,-0.3033530966221695,-0.19871231980541315,0.4590625966303198,-0.7216214187348303,0.764624238519309,-0.3033530966221695,-0.19871231980541315,0.4590625966303198,-0.7216214187348303,-1.5131547596705666,1.8505474526751142,-2.04322206158442,0.5662960720947589,0.6502729037619082,-2.017495848467567,0.574758958562117,-4.685771104155858,6.617768386792047,-0.37362146317995715,0.37362146317995715],[-0.40353979922621686,0.31330006950684264,-0.5577414336423434,0.10077397820550124,0.5472071851592956,-0.40353979922621686,0.31330006950684264,-0.5577414336423434,0.10077397820550124,0.5472071851592956,-0.5390832078320456,2.624170278416514,-3.619128660211949,0.7840085470644161,1.8420644506873258,-0.8228019450253301,0.4575405472900191,-1.3180244321086438,0.5912544217339186,0.2109498347230045,-0.2109498347230045],[0.059910033606245,0.05163582059904257,-0.1806519366702073,-0.3271673368305675,0.39627341930038645,0.059910033606245,0.05163582059904257,-0.1806519366702073,-0.3271673368305675,0.39627341930038645,3.047493337863183,0.14334801409044262,2.9553314453157276,-3.1513481583360807,1.1206803854337455,-0.4675777227739219,-4.322373161315838,-1.0219369756954741,1.6963828354201873,0.052668698933616295,-0.052668698933616295],[-0.10116932965677677,-0.10957882289608362,0.1909478749188907,-0.10497313302578334,0.12477341066520076,-0.10116932965677677,-0.10957882289608362,0.1909478749188907,-0.10497313302578334,0.12477341066520076,-0.4293200988201442,-3.313906209389623,3.003469397019864,0.8333036361395958,-2.7153596166991165,5.434178067445455,2.39252459742918,-0.35265031252283663,-4.8522394605889625,-0.5228668237862009,0.5228668237862009],[0.0722059227682759,-0.3460654756305468,0.006907097793468597,0.5224316481045035,-0.25547919302843963,0.0722059227682759,-0.3460654756305468,0.006907097793468597,0.5224316481045035,-0.25547919302843963,-1.9062624391484628,-0.7122265456218817,-0.4692736339355459,0.8376068798044133,1.4352233048515264,-4.6263801982959905,1.6758558516072202,-4.426270670504606,8.191727451243047,0.3438932997526795,-0.3438932997526795],[-0.24968385534694476,-0.21541544835658183,0.7855397537470301,-0.4553361096539408,0.13489565962002018,-0.24968385534694476,-0.21541544835658183,0.7855397537470301,-0.4553361096539408,0.13489565962002018,0.7075423647206673,0.1931783699832097,0.6928937084028968,0.12553417452610083,0.6314738564008385,-0.31733833315134363,2.310213546369675,-1.8190115126303117,-2.524486174601348,-1.011606252909178,1.011606252909178],[0.2317194638205723,-0.22311350270925756,-0.13140585157847992,0.25810089458536306,-0.13530100411546608,0.2317194638205723,-0.22311350270925756,-0.13140585157847992,0.25810089458536306,-0.13530100411546608,-0.12536904794286458,-1.1015349158519894,1.6558157780517988,-0.7990074182395073,1.0063067036656905,-7.166825407009201,5.765733968112411,2.48544519562834,-1.7205648564106881,0.24472655603120033,-0.24472655603120033],[-0.23308587452283355,0.7382876215964356,-0.2702628809532707,-0.2605941014304062,0.02565523532782703,-0.23308587452283355,0.7382876215964356,-0.2702628809532707,-0.2605941014304062,0.02565523532782703,4.443477048526529,0.1354730864759266,-1.4012843234463295,1.6704501850706677,-0.6642935683340065,-2.9392502504509204,0.8178282882853061,-2.8333794473196683,0.7709789811932171,-0.4046389481118658,0.4046389481118658],[0.09229448749587299,-0.8360242734928655,-0.030242212766599996,0.4939101257242359,0.2800618730447255,0.09229448749587299,-0.8360242734928655,-0.030242212766599996,0.4939101257242359,0.2800618730447255,4.376320498165363,-1.3074930048215057,0.9649340941061557,-0.22453636855921943,-0.4232185459326473,1.78564283981368,-3.0773122395418997,1.1787023110757016,-3.2730395842844517,0.5670952792833339,-0.5670952792833339],[0.17095725359920705,0.4839466289256243,-0.060722131068023655,-0.5223218063791728,-0.07185994508351827,0.17095725359920705,0.4839466289256243,-0.060722131068023655,-0.5223218063791728,-0.07185994508351827,4.25636335932512,-3.0767572248189996,-1.2089630751031035,3.530803645467856,-0.3605091885721986,-1.9926237855571114,-0.10520231381614686,-2.9474574785602634,1.9043460616306689,0.7549166544562582,-0.7549166544562582],[0.14846786880727111,0.14360157112166747,0.008192227463447214,-0.3817753877907533,0.0815137203999876,0.14846786880727111,0.14360157112166747,0.008192227463447214,-0.3817753877907533,0.0815137203999876,8.360654295235516,-0.5156405816253322,-0.9439608314563798,1.3279022793494177,-3.82013160861519,5.586296182456359,-5.62685399449699,3.734243971737663,-8.102509712590662,0.13169913373973136,-0.13169913373973136],[0.03961539125550829,0.1491313271913828,0.1663904083521652,-0.11905036486093165,-0.23608676191731445,0.03961539125550829,0.1491313271913828,0.1663904083521652,-0.11905036486093165,-0.23608676191731445,0.9755876934625825,1.6776652742227445,-1.8702114617383334,1.0973146379894922,2.066065027938387,1.464315829166208,4.245080137139777,-3.1240370193576257,-6.531780118833618,-0.9047684504734641,0.9047684504734641],[-0.04969708598758936,-0.23174831727191236,0.05966426669672141,0.09225819330589641,0.12952294324728314,-0.04969708598758936,-0.23174831727191236,0.05966426669672141,0.09225819330589641,0.12952294324728314,-0.3724781997614871,-3.903549903351304,3.2573150800260864,0.6572309950776025,0.4346792796262613,-2.0590452554569882,-3.112244190475803,3.5703886460729644,1.5277035482494723,-0.010996171749521055,0.010996171749521055],[-0.3251900448813338,0.1346596898274137,0.4949364666260452,0.24617130378349766,-0.5505774153401936,-0.3251900448813338,0.1346596898274137,0.4949364666260452,0.24617130378349766,-0.5505774153401936,2.2608814034877556,-0.8261960885421018,0.9816088611766478,-0.12285112254258757,-3.5293867743521234,2.336697543035151,-2.7166902698791957,-2.1128119370690195,3.728748384684396,-0.03256165008913722,0.03256165008913722],[-0.22258713143054792,0.029018432383568816,0.1390515964695482,0.578759982989526,-0.5242428804125776,-0.22258713143054792,0.029018432383568816,0.1390515964695482,0.578759982989526,-0.5242428804125776,1.2919947907094862,4.097312349472913,-2.100751427248894,-1.6881913808657183,3.320305769972089,-2.586800065464204,1.6598360192283452,-2.095615698319423,-1.8980903574744294,-0.30836954136104744,0.30836954136104744],[-0.0809424785295381,-0.5140603119374181,-0.06138191356932349,0.5231641680838763,0.1332205359525483,-0.0809424785295381,-0.5140603119374181,-0.06138191356932349,0.5231641680838763,0.1332205359525483,-2.2897245031343356,2.669948303798875,-3.51417958745973,0.8369392142180208,-1.7074978015442224,-0.5353187259324812,0.09414384293125444,2.294207023924344,2.1514822331971417,0.007292069427953782,-0.007292069427953782],[0.5158825952493513,0.22965577304852594,-0.3919302767281012,-0.32455516975282006,-0.029052921827305005,0.5158825952493513,0.22965577304852594,-0.3919302767281012,-0.32455516975282006,-0.029052921827305005,3.3099187646630845,-2.839422643697363,2.3628585959741013,-0.2987360307827166,2.8379428881151822,-5.017926752692551,2.156190246798165,-1.6927260003627413,-0.8180990680035805,0.7753000785013857,-0.7753000785013857],[-0.2238103071771537,-0.047066817400696355,0.10626985601658281,-0.12609798965341976,0.29070525821866594,-0.2238103071771537,-0.047066817400696355,0.10626985601658281,-0.12609798965341976,0.29070525821866594,2.4754324166489883,4.043881600902781,-1.2853282133211426,-2.02611920306671,0.25711388591126977,1.5407591005709071,-1.179757082656883,1.8230630454027348,-5.649045550386489,-0.7324341845126987,0.7324341845126987],[0.5004202434624833,-0.5324872776651594,0.12759046870822754,0.3667266038550562,-0.46225003837888246,0.5004202434624833,-0.5324872776651594,0.12759046870822754,0.3667266038550562,-0.46225003837888246,0.5247764820857698,-1.308124430073971,2.3609758785622685,-1.404531028956886,-4.371953309664681,6.8863147079835105,-8.200776489219612,4.3710459561661175,1.1422722331110613,0.35167958046257625,-0.35167958046257625],[0.09537226859892955,0.05786446879416516,0.0405441601584768,-0.06950862537338712,-0.12427227218116711,0.09537226859892955,0.05786446879416516,0.0405441601584768,-0.06950862537338712,-0.12427227218116711,2.3020172256064813,0.564004018555145,-3.0342592527307453,2.3664290255579647,2.4293933405797823,-2.2597277353871097,2.4914306753921744,-3.058287147712063,-1.8010001498567432,0.10382620861888794,-0.10382620861888794],[-0.5179263958522944,-0.46418344087219043,0.7043474484442571,0.0990887077796309,0.17867368049933674,-0.5179263958522944,-0.46418344087219043,0.7043474484442571,0.0990887077796309,0.17867368049933674,1.7659254603377397,0.2866220211522361,1.7906749222602163,-1.3594447975633304,-3.763098336717462,6.757671215536194,-4.411110453782754,-3.4597904435447244,2.3925504123205386,-0.717852145850969,0.717852145850969],[0.13477855966146823,0.34530540084926087,0.3853749206683493,-0.5737562377166034,-0.2917026434414674,0.13477855966146823,0.34530540084926087,0.3853749206683493,-0.5737562377166034,-0.2917026434414674,-1.8692339091861563,-2.21867695625442,0.9918488218985233,1.741326609486744,-3.7983837014815776,3.1764777946561344,2.907806037080176,9.917873414845783,-10.849038111031952,-0.5144984751271033,0.5144984751271033],[0.018042317327131588,0.4529089137778197,-0.54654324154591,0.19216638758542282,-0.11657437711243172,0.018042317327131588,0.4529089137778197,-0.54654324154591,0.19216638758542282,-0.11657437711243172,-3.493984108331099,-2.1866145098826033,-0.7224223131017158,3.222057687656215,-1.733501352528331,1.5095771005213297,-2.505066276300403,1.3672256960642661,4.5427280758991335,-0.31302086466735324,0.31302086466735324],[0.06639792760827662,0.07986292311393872,0.6845335429596522,-0.5199250095220582,-0.3108693841488776,0.06639792760827662,0.07986292311393872,0.6845335429596522,-0.5199250095220582,-0.3108693841488776,3.2184830037036622,2.1137400784937275,-3.379456084623098,2.010907794316144,-4.880701795350765,4.008259297055523,3.0842499321710046,6.8958208466493565,-13.071303072433526,-0.7451917881872987,0.7451917881872987],[-0.018660371309401513,-0.13578131035375632,-0.015798174816212374,0.14506123497438872,0.02517862149948165,-0.018660371309401513,-0.13578131035375632,-0.015798174816212374,0.14506123497438872,0.02517862149948165,4.742217980254493,-4.2164701180855015,3.74561971724443,-0.7282198867116774,1.6260410602416795,-4.35676797653247,-1.2591488261510944,-2.8131775528386993,3.2599056025683835,1.1990702875497543,-1.1990702875497543],[0.19214207697762875,0.30889242976120423,-0.7686614480662166,0.3408322189626226,-0.07320527762963921,0.19214207697762875,0.30889242976120423,-0.7686614480662166,0.3408322189626226,-0.07320527762963921,-2.7857886117131256,0.5169333345947654,-3.4200504415547504,2.9227457628242957,-4.924273198528138,3.377542187293927,2.9566815839299907,5.264320242152975,-3.9081108589946165,-0.019628655870502762,0.019628655870502762],[-0.1483525413935703,-0.12879229379432158,0.36742892168691854,-0.08577026843927238,-0.004513818041194984,-0.1483525413935703,-0.12879229379432158,0.36742892168691854,-0.08577026843927238,-0.004513818041194984,1.4193903915973207,0.15188910085804536,-2.709089827768413,1.7127704471496539,0.5009036567280796,-2.2881503150498403,0.5544636816831643,-2.404070417777459,3.06189328257115,0.8444302797664764,-0.8444302797664764],[0.10418072715024311,-0.6770586915014875,0.2395146023035677,0.11068603247712065,0.22267732957995978,0.10418072715024311,-0.6770586915014875,0.2395146023035677,0.11068603247712065,0.22267732957995978,1.538074823588403,-4.804790649348909,3.186296802330463,1.309115823843775,-1.886473612075147,4.420695847182622,-1.22320960618523,3.9113944555479683,-6.4511038848849545,0.30937802316831925,-0.30937802316831925],[0.06149803096212342,-0.031480242338688125,-0.4734680608902886,-0.07999105286230145,0.5234413251057647,0.06149803096212342,-0.031480242338688125,-0.4734680608902886,-0.07999105286230145,0.5234413251057647,-6.9046117521185195,-1.144769009799203,-0.015489059685322326,0.8199177633649735,0.8813885248737401,-1.7465475699310635,3.5084469759942447,1.1302807970640234,3.4713833302311334,0.3403403061230915,-0.3403403061230915],[0.28993445745949725,0.3496690072885378,-0.158336033173737,-0.1217147845474062,-0.35955264699189493,0.28993445745949725,0.3496690072885378,-0.158336033173737,-0.1217147845474062,-0.35955264699189493,2.5489080246829503,-2.4000180935926414,0.8250268799335447,1.6193440303820847,1.8381469792707126,-5.007087638190658,-5.73321665560974,-4.183651019831332,10.49254749295766,-0.044352816730979405,0.044352816730979405],[0.124033526259274,0.3317672611386663,-0.295702613996053,-0.2881250813843658,0.1280269079845956,0.124033526259274,0.3317672611386663,-0.295702613996053,-0.2881250813843658,0.1280269079845956,-0.3389855275596869,1.7881319912089724,0.384071364964596,-2.699536844189763,0.24436831637492074,-1.4631456038984174,5.127307641618451,2.3933714100187506,-5.435582748549881,0.527333488005145,-0.527333488005145],[0.2763049402725638,-0.9752003377328906,0.7665873899559312,0.13431268804318194,-0.20200468053667903,0.2763049402725638,-0.9752003377328906,0.7665873899559312,0.13431268804318194,-0.20200468053667903,-4.033921318826873,-0.0667374904973258,1.0570739820112007,-1.2692314262143691,-1.6129462686017293,0.1718486443036773,5.156081238484937,2.7544940082434817,-2.156661368897554,0.2788949347115987,-0.2788949347115987],[-0.2558105900542859,0.20637961636599306,0.3646876866650671,-0.1834174557538646,-0.13183925720954,-0.2558105900542859,0.20637961636599306,0.3646876866650671,-0.1834174557538646,-0.13183925720954,2.459072008427185,0.5056223520639275,-4.197675174352225,3.5880099387419166,2.221736092651862,-1.5985813012985155,-0.12599687585473718,-1.2281208221915136,-1.6240662181965695,0.10404288355191516,-0.10404288355191516],[0.22366795614099597,0.21822005166284128,0.13816429786021547,-0.4756267371302822,-0.10442556854760685,0.22366795614099597,0.21822005166284128,0.13816429786021547,-0.4756267371302822,-0.10442556854760685,-3.5044929573276318,-2.2300538416156037,2.688374590343132,-0.0686415487723463,-1.0713960281525166,4.0642052268442175,3.5265097593640204,3.8610051511659136,-7.2655103518388096,-0.3896791999620247,0.3896791999620247],[-0.21510035679857323,0.5843475961789035,-0.12562323821168617,-0.46684787268726846,0.2232238715271847,-0.21510035679857323,0.5843475961789035,-0.12562323821168617,-0.46684787268726846,0.2232238715271847,0.8239092939314491,-0.5130078836634363,0.8794064738497684,-0.8269610253535743,1.1371202431337974,-2.7701964375735373,-0.2980282149708594,-0.9365103850969738,2.504267935767307,0.46056243517216855,-0.46056243517216855],[-0.12124259624777889,0.816984087485247,-0.043009189828863884,-0.2924974443454795,-0.3602348570713868,-0.12124259624777889,0.816984087485247,-0.043009189828863884,-0.2924974443454795,-0.3602348570713868,-1.7353440431096065,-1.1924528708362394,0.5232481052095593,0.23384324118074212,2.167572763285067,-1.9499562065003042,1.5772985638677879,-0.34274231179556436,0.7185327587006984,0.4353615244484069,-0.4353615244484069],[-0.26270315691408835,-0.07218859563490687,0.2035895704263488,0.3703283973615271,-0.23902621525405954,-0.26270315691408835,-0.07218859563490687,0.2035895704263488,0.3703283973615271,-0.23902621525405954,-1.906507618318974,8.551668429525094,-5.445601790326109,-2.58375245557942,2.148090651615112,-1.1339781677396172,-0.06522005797883912,-5.118080840130205,5.553381848926353,-0.5223141836357651,0.5223141836357651],[-0.003361555241503984,-0.5790884734333628,-0.008492564558154614,0.475057503638571,0.11588508959052765,-0.003361555241503984,-0.5790884734333628,-0.008492564558154614,0.475057503638571,0.11588508959052765,-0.033358924051366534,-0.3874831852289502,2.058443996840658,-1.2718452378096028,-0.2678819366227844,1.0679319180101907,2.417815492455117,-0.9689596289910495,-2.6146624945891617,-0.399115573803778,0.399115573803778],[0.13845565710538538,0.7294703829470912,-0.3364575404792304,-0.3069176404113215,-0.2245508591593074,0.13845565710538538,0.7294703829470912,-0.3364575404792304,-0.3069176404113215,-0.2245508591593074,-2.5206977130662973,0.6798993282097139,-2.0052956830751603,1.5094581340480318,-0.512667691312768,-0.7480006990473524,5.6312352208558245,-0.5603174270946805,-1.473613469513405,-0.184061779189728,0.184061779189728],[0.054718280681232606,0.06705363111891566,-0.23377084824222066,-0.03937073520788867,0.15136967163298265,0.054718280681232606,0.06705363111891566,-0.23377084824222066,-0.03937073520788867,0.15136967163298265,-1.2618673923994883,1.518804684974182,1.2650644378013933,-2.341693858973508,0.06363958311066312,4.136155352618724,2.8553566677669306,0.4549247423121207,-6.690384217210077,-0.44217526382088207,0.44217526382088207],[-0.10634301373072573,0.4453168714565582,-0.2621773709801807,-0.03573752358742974,-0.04105896314600765,-0.10634301373072573,0.4453168714565582,-0.2621773709801807,-0.03573752358742974,-0.04105896314600765,-1.4243824330885517,-3.383720069329896,0.8413537050248525,3.390991841447275,0.6549249047969314,2.992707466626816,-0.8147204784550333,-0.14375631026171898,-2.1133986267760525,-0.8486254771543862,0.8486254771543862],[0.13336425845825217,-0.45431216669082225,-0.0964855750341981,0.5029996840789441,-0.08556620079700972,0.13336425845825217,-0.45431216669082225,-0.0964855750341981,0.5029996840789441,-0.08556620079700972,-1.8798671008581982,2.558691758292265,-1.3250006195319552,-1.332123910992009,4.819010891647213,-7.446920743397934,-0.4983196245459691,-6.8193266771674805,11.923856026561584,0.09843277223883201,-0.09843277223883201],[-0.0988480302345012,-0.018241500818092136,-0.29677445676497194,0.45674498939809116,-0.0428810015774265,-0.0988480302345012,-0.018241500818092136,-0.29677445676497194,0.45674498939809116,-0.0428810015774265,0.6085258838850046,-2.864280354364551,-1.6650170454125088,3.556954294792201,1.0048880730831249,-3.3054468263851344,-3.1151724663207303,-4.7133333754563775,10.49288181616992,0.972343104986679,-0.972343104986679],[0.1403816603380561,0.4790688682030281,-0.44690701170669156,-0.12835594662965646,-0.044187570195180145,0.1403816603380561,0.4790688682030281,-0.44690701170669156,-0.12835594662965646,-0.044187570195180145,1.8455289629724128,-0.2703339972971338,1.7254480687978373,-0.6311317719921079,-3.4492226529747043,0.6141780400915093,0.2585840381885509,0.6204144593116007,-0.7134651470994133,-0.8239822995152464,0.8239822995152464],[0.46558528762275264,0.39418724552541595,-0.2815986036149435,-0.20392044227885536,-0.3742534872499482,0.46558528762275264,0.39418724552541595,-0.2815986036149435,-0.20392044227885536,-0.3742534872499482,-1.4127798668321367,-1.410293276377447,-1.0230632268977935,2.2854524739699125,5.63020856236991,-4.6259461326251134,-5.46874084798481,-5.262628137220377,11.287790451589832,0.147904029312453,-0.147904029312453],[-0.14239099390715731,0.30377439729578704,-0.001214626460393109,0.01280979418407623,-0.17297857110819687,-0.14239099390715731,0.30377439729578704,-0.001214626460393109,0.01280979418407623,-0.17297857110819687,-1.9148888767089514,-1.4986829419323535,0.5194566284467861,1.7000945114662138,-2.819595267004861,4.64933251905291,-0.05981557129415466,3.5106082741897735,-4.086509276231753,-0.7208681979765437,0.7208681979765437],[0.007874476116206841,0.3502519709102171,0.47435193714429896,-0.5680463185998104,-0.2644320655504431,0.007874476116206841,0.3502519709102171,0.47435193714429896,-0.5680463185998104,-0.2644320655504431,4.134305420578256,-1.544707485123618,-2.120231389887882,3.430425028241254,0.0899710334691679,-2.959692683665592,0.23929717702418607,3.4558245586155367,-4.725191659243076,0.23451384677636267,-0.23451384677636267],[0.19963631428262743,0.14597964612634107,-0.26662446644588883,0.23667533374166982,-0.3156668277329619,0.19963631428262743,0.14597964612634107,-0.26662446644588883,0.23667533374166982,-0.3156668277329619,-1.3901923749591591,0.8943573104284439,-0.03137187740728756,-2.3863491650597504,1.6376325132137297,-1.4670279302523603,-0.0606425809433464,1.6376388873201018,1.165955217652698,1.5233637320300717,-1.5233637320300717],[-0.13916904632747795,0.11271289252519634,0.07237886032884501,-0.06859363448196377,0.022670927957217993,-0.13916904632747795,0.11271289252519634,0.07237886032884501,-0.06859363448196377,0.022670927957217993,1.0118130225372566,1.5852734036827578,-0.23372839619273633,-0.7833336150313133,-4.088957896527736,4.213209800746762,2.1558180103869473,0.7673881684089359,-4.627482498019588,-0.5682113924570181,0.5682113924570181],[0.20646612639608447,-0.2179183549657518,-0.28530511834650063,0.42157420181153193,-0.12481685488978157,0.20646612639608447,-0.2179183549657518,-0.28530511834650063,0.42157420181153193,-0.12481685488978157,1.7614861923262333,2.032540400884264,-5.439397909225727,2.5131262523618076,-4.481922914317888,7.799235752836555,0.4780236359114881,3.1004037194468026,-7.763495130238786,0.8937312559751759,-0.8937312559751759],[-0.3034231726753174,-0.0049130367106886876,0.09530381673142391,0.1418326766050766,0.07119971605183656,-0.3034231726753174,-0.0049130367106886876,0.09530381673142391,0.1418326766050766,0.07119971605183656,1.207555222256229,-0.9296015351550146,-0.8535352406412805,1.7017014350547768,2.970139049922708,3.9766975730755325,-1.8420338295198124,-6.895713991409549,0.6647913164160639,0.08143534073666325,-0.08143534073666325],[0.04592364083806695,0.35381052330601137,-0.03414139186611778,-0.28228157823517425,-0.08331119403670878,0.04592364083806695,0.35381052330601137,-0.03414139186611778,-0.28228157823517425,-0.08331119403670878,3.096480866297961,-0.41373666395675646,4.291185441420594,-4.180911405011429,0.02785110598160284,0.044745904195075736,-7.984575818809386,-0.09351112016099439,5.212471690034796,0.3034626275507383,-0.3034626275507383],[-0.16377079873764425,0.3742199869691152,-0.29650984148662063,0.16492269675042456,-0.07886204348952838,-0.16377079873764425,0.3742199869691152,-0.29650984148662063,0.16492269675042456,-0.07886204348952838,0.07089680693714318,1.6178580755786718,-1.1097527389355961,0.04600661673306927,4.731474389498199,-3.9450460531189497,-5.602063053392192,-1.8580840016928155,6.048709958397781,-0.5541119533887252,0.5541119533887252],[0.020517164528930498,-0.10663837975156773,0.18948451905164795,-0.33066450195187014,0.22730119810773658,0.020517164528930498,-0.10663837975156773,0.18948451905164795,-0.33066450195187014,0.22730119810773658,1.8354736790375283,5.010495851390935,-5.681374153972742,1.9786302606835404,-2.2815933598207296,2.9361954492372737,1.182605015277157,-2.361359338624334,-2.6190734032200496,-1.3077519581074388,1.3077519581074388],[-0.3856062247914568,-0.2989739175438508,-0.24526530195383264,0.7556379726837171,0.17420747159240707,-0.3856062247914568,-0.2989739175438508,-0.24526530195383264,0.7556379726837171,0.17420747159240707,-0.1526981258835416,0.4702064424174348,-1.4043863037214102,0.30001785688427485,2.252478726987558,-5.725325681631587,-1.201773481759639,-5.099020882287342,10.560501448993064,0.6341620044280689,-0.6341620044280689],[0.16050845559434762,0.42419898843812887,-0.08575525926036351,-0.07779712665120506,-0.4211550581284573,0.16050845559434762,0.42419898843812887,-0.08575525926036351,-0.07779712665120506,-0.4211550581284573,3.5747221780107905,0.060502306834368635,-1.8936491872649293,1.2835975756481428,-2.5174548987119563,4.209888851323958,3.188134683853983,3.2843149080640504,-11.190056417757749,0.549549304787861,-0.549549304787861],[0.20942005862865834,-0.3577124931321421,0.17459447710635395,0.18335232985712002,-0.20965437244832785,0.20942005862865834,-0.3577124931321421,0.17459447710635395,0.18335232985712002,-0.20965437244832785,1.3494745026885835,-0.32492401383001157,-1.4753153082556902,1.9319212617124848,-0.3383812278967542,1.303074727084876,-0.6985867065302838,5.314322345479447,-7.061585580458159,-0.13168193963982527,0.13168193963982527],[0.16041775775407674,-0.4403701845646146,0.15220888368740265,0.012171814896790242,0.1155717282377594,0.16041775775407674,-0.4403701845646146,0.15220888368740265,0.012171814896790242,0.1155717282377594,-0.23462415504532758,4.263651984598211,-0.624682188560894,-3.375772691399543,6.905129535433748,-10.034048058087008,4.841767433527359,-7.6751303569581255,5.933708496491518,-0.26319710463526286,0.26319710463526286],[-0.0584249760659398,0.3073862438742452,-0.21726960110003085,0.15947638784222984,-0.19116805453279767,-0.0584249760659398,0.3073862438742452,-0.21726960110003085,0.15947638784222984,-0.19116805453279767,-3.2022315043741942,1.6652450447950897,-2.129041285294067,0.0443378713511382,-1.4228928151144014,-1.0720953226861187,2.8179234745559585,3.1367088052213763,0.16204573155183666,0.41945836916311074,-0.41945836916311074],[-0.4156060261928744,-0.052549650125676084,-0.3742252138411527,0.34035078071953895,0.5020301094383709,-0.4156060261928744,-0.052549650125676084,-0.3742252138411527,0.34035078071953895,0.5020301094383709,-3.4819054554930453,1.0338487312501332,-2.064271173454024,1.2095173733303486,4.410685637144564,-4.365417639697251,5.58125719470155,-5.100933913944623,2.777219246157146,-0.17909493112893787,0.17909493112893787],[-0.3034470175810067,0.10802214809614155,0.3356593103136993,-0.30977679152186327,0.16954235067849133,-0.3034470175810067,0.10802214809614155,0.3356593103136993,-0.30977679152186327,0.16954235067849133,-1.3895900111253168,2.900056815876357,-1.5974055875455242,-1.4718789904808895,-1.333366058180427,2.5105256423541236,-3.9890558128963116,-1.2938045146493806,5.664518516632956,0.16922776213157859,-0.16922776213157859],[-0.21791339652613023,0.009860728955331993,0.07340685332213223,0.166249161135698,-0.0316033468758444,-0.21791339652613023,0.009860728955331993,0.07340685332213223,0.166249161135698,-0.0316033468758444,-0.23021515023222294,-1.3619211000107887,1.6902197203410392,-0.09157447725424495,1.6710466702648414,4.45759631025347,-3.6387123082584227,-7.736909182239615,5.240469517141848,-0.2367241430744061,0.2367241430744061],[-0.3157900547429208,0.32091020350283767,0.3648188003760279,0.01576930112896717,-0.38570825028919475,-0.3157900547429208,0.32091020350283767,0.3648188003760279,0.01576930112896717,-0.38570825028919475,-4.0259956992936985,0.37904852692763524,1.0855604450471872,-1.258244473747288,-2.2307157594032203,5.614569235494264,-4.586053446165631,-0.3034757712891112,5.3253069424343265,-0.20636449823853026,0.20636449823853026],[0.01561024512816471,0.3470443627894652,-0.19637039775782963,-0.1064617348853288,-0.05982247528956345,0.01561024512816471,0.3470443627894652,-0.19637039775782963,-0.1064617348853288,-0.05982247528956345,2.197068594893062,-1.0567788771374238,-1.8843151716112163,2.2894126023061303,-6.286216300485414,6.3325437857070215,-1.182802172797955,8.03742740792787,-8.446339868793082,0.6516814464379374,-0.6516814464379374],[0.22577729619298292,0.44415414067785086,0.4359222385849404,-0.7297720552032606,-0.3760816202400913,0.22577729619298292,0.44415414067785086,0.4359222385849404,-0.7297720552032606,-0.3760816202400913,-1.3984653209329285,-0.4049828164037006,0.3921832444050597,-0.4604833506098427,-2.9314010259915686,0.32963171760494436,0.10484688139701737,2.467262047888811,1.9014086226471956,0.4732829226125605,-0.4732829226125605],[0.01249779927971352,0.11818600880950253,-0.21543709976988062,0.18572817209631204,-0.10097488041754796,0.01249779927971352,0.11818600880950253,-0.21543709976988062,0.18572817209631204,-0.10097488041754796,0.960946273014295,-0.326632787742703,1.1487145528713008,-0.4402992530044689,-2.0001537976240753,3.0928109718228223,-2.120866089140416,-0.11192967502965656,-0.20259019517021626,-0.38178251211637043,0.38178251211637043],[-0.1402338722869968,0.06412167607330532,-0.048543021623255286,0.43572504430867526,-0.31106982647869413,-0.1402338722869968,0.06412167607330532,-0.048543021623255286,0.43572504430867526,-0.31106982647869413,-2.8233094795981355,-1.865056344886077,-0.8902550231877739,2.2849154164219105,0.2127376750639911,0.6156958687193332,2.401464106135533,2.86373070908459,-2.7999229277480424,0.47039595165108494,-0.47039595165108494],[-0.018610064516060565,-0.08245053911804884,0.40055532020362566,-0.37091030928655505,0.07141559270128683,-0.018610064516060565,-0.08245053911804884,0.40055532020362566,-0.37091030928655505,0.07141559270128683,-1.6582358656108835,0.007084317388441702,0.5467885496646636,-0.18097535180295252,1.428188123654879,-3.7585879718065844,0.2420065220450387,-2.052616588696161,5.4263482651674,-0.37289751523726067,0.37289751523726067],[-0.3623527001045094,0.10604816195514352,0.28999600444507867,-0.16435567121071842,0.13066420489564357,-0.3623527001045094,0.10604816195514352,0.28999600444507867,-0.16435567121071842,0.13066420489564357,4.117672368010198,-4.2502220013966925,2.334396325848804,1.615278790644961,1.1088440450423291,2.0819239721703475,-0.24289863016620394,-4.876952143780011,-1.8880427263691484,0.30054688488001347,-0.30054688488001347],[-0.28924711422346305,-0.39473574114076365,-0.2840412985333035,0.4229853888197943,0.5450387650851679,-0.28924711422346305,-0.39473574114076365,-0.2840412985333035,0.4229853888197943,0.5450387650851679,0.8192802841221055,-0.09376751281576556,-2.472456559735484,2.6215462618752037,1.4882358508833016,-3.8009180332491845,-3.454553618969795,-1.883686125859231,6.776319453753848,-0.05532218932656881,0.05532218932656881],[-0.4520707313178375,0.25011875811548184,0.1550750055991231,0.001365234938763643,0.04551173268519715,-0.4520707313178375,0.25011875811548184,0.1550750055991231,0.001365234938763643,0.04551173268519715,-0.6841654600057461,-0.3629375562519197,-0.567145588704222,0.6780730151339313,-0.07516543696097022,2.276958756374417,-0.7311086144282677,-0.49110000488541494,-0.04340911026798944,0.25201012983824056,-0.25201012983824056],[-0.03332765752520306,0.37397773836722265,0.2110688580569817,-0.23995368591989508,-0.31176525298671665,-0.03332765752520306,0.37397773836722265,0.2110688580569817,-0.23995368591989508,-0.31176525298671665,0.6889621045206893,-1.1698962453924384,-1.0818389737021965,2.6736133950979375,2.892328632723081,-2.003999580435238,0.24092665785025852,-2.8839009965683826,0.6438050058884242,-0.42187817600434296,0.42187817600434296],[-0.2746434910486393,-0.2903147851813534,-0.3205530167144067,0.5946318786388193,0.29087941432129466,-0.2746434910486393,-0.2903147851813534,-0.3205530167144067,0.5946318786388193,0.29087941432129466,1.4658539879229058,-0.6781803295730195,2.5706048443709246,-2.1981470629244253,1.4713099894381518,3.940847236642529,0.7098760822552113,0.2734558311800208,-7.55562057931586,0.3057225481275496,-0.3057225481275496],[-0.02634859621091773,0.41360584595019445,-0.12591859506290712,-0.08669524721998391,-0.1746434074519441,-0.02634859621091773,0.41360584595019445,-0.12591859506290712,-0.08669524721998391,-0.1746434074519441,-1.9290551173670698,3.5865402970532285,1.1827440693944407,-5.051238663098349,3.575863984602514,-1.5332189085348011,-1.958828075570585,0.5620720370757509,1.5651203764362147,0.28195429664679506,-0.28195429664679506],[-0.055083044571747855,0.32624773029228277,-0.06694905662907516,-0.16224002632226775,-0.04197560274511687,-0.055083044571747855,0.32624773029228277,-0.06694905662907516,-0.16224002632226775,-0.04197560274511687,-0.04530294341355607,-0.8692737124860593,-0.010860731446062033,0.8470976346475529,5.238704717672465,-6.41497424675315,0.5648874943788182,0.07118131076281209,0.6185404766289782,0.03303680928554603,-0.03303680928554603],[-0.420270554347214,-0.44189193375097136,0.49624087753030743,0.5260914771484698,-0.16016986657235377,-0.420270554347214,-0.44189193375097136,0.49624087753030743,0.5260914771484698,-0.16016986657235377,-0.13250385110240398,0.49751362339833316,2.970997974819021,-4.730966920447927,1.0883680365580861,-4.439005610040493,0.6769359617972059,-2.7062287176898154,6.774889502707174,1.2624553222200643,-1.2624553222200643],[-0.04099710073521029,-0.05122146796746502,-0.15562817287810557,0.22608195078024226,0.021764790799205735,-0.04099710073521029,-0.05122146796746502,-0.15562817287810557,0.22608195078024226,0.021764790799205735,-3.1807491097328944,1.8091319022166923,1.971754788299157,-3.987299392757537,5.754302419508644,-4.961815394731536,6.51231023798596,0.14606315844757423,-4.0636986092290925,0.20641270223835534,-0.20641270223835534],[0.044061451743777263,0.38072356911203137,-0.7466708163092738,-0.0006626543717516212,0.32254844982732933,0.044061451743777263,0.38072356911203137,-0.7466708163092738,-0.0006626543717516212,0.32254844982732933,-0.28362591434491935,-0.5965232417114423,4.001120438043614,-3.4845609088241742,1.179907957896614,-2.5516254795799065,0.14612942513515484,1.2192638053812521,0.3699139180146426,0.07996371249234299,-0.07996371249234299],[-0.03873745616049527,0.0847018606053794,0.16413798357862988,-0.23817257246898157,0.028070184477513554,-0.03873745616049527,0.0847018606053794,0.16413798357862988,-0.23817257246898157,0.028070184477513554,-1.1543307123354916,0.007417874895139842,0.09772627307222198,-1.4714928694361475,-3.9435105490259303,3.59442665057729,-1.803556969108587,5.4843515003372385,-0.8110311989773136,1.3663487214694872,-1.3663487214694872],[-0.0520609528490046,0.3010945120563092,0.41362805817291626,-0.5868573398322618,-0.07580427755214952,-0.0520609528490046,0.3010945120563092,0.41362805817291626,-0.5868573398322618,-0.07580427755214952,2.1763077484346542,1.179946757345148,-2.1163418066225144,1.0931891187219207,-1.7391339380457316,1.8507412656148674,1.0871453341681803,-1.2089031461756905,-2.3229513334219916,-0.1567940694313192,0.1567940694313192],[-0.6257186745670285,0.11048138924891968,-0.08665281015529686,0.4403569569776181,0.16153313848756065,-0.6257186745670285,0.11048138924891968,-0.08665281015529686,0.4403569569776181,0.16153313848756065,-2.8342623534590112,-0.8098151268012266,0.4310052205587427,0.8129291475566169,-3.965399351121471,3.889645625992423,0.494147684023364,-0.5284138437922459,2.5101629970529156,-0.43411924132132546,0.43411924132132546],[0.03667292716992854,-0.09899524994903569,0.3536864597795809,-0.16024557182268717,-0.13111856516055337,0.03667292716992854,-0.09899524994903569,0.3536864597795809,-0.16024557182268717,-0.13111856516055337,-4.838152251977529,-0.08165046680273336,-0.3931989898423285,0.26611938828852844,1.5617919689721214,-2.129580531377527,-1.8219364481559759,-1.769083369539158,9.205690700433609,0.20873006834713878,-0.20873006834713878],[0.09365257410415653,0.3633636806253053,-0.33393983299861213,0.09296372547566711,-0.2160401472010099,0.09365257410415653,0.3633636806253053,-0.33393983299861213,0.09296372547566711,-0.2160401472010099,-2.8699662712472644,-0.15368808872737505,0.888598658949144,-1.0129426588697676,3.8432193170145528,-2.3832744751118518,-0.05127442951804717,-1.0871990621534469,2.826527009652925,0.2780320886383539,-0.2780320886383539],[0.10002662292923364,0.14492225651710527,-0.5408264968606279,0.12888397852774566,0.1669936388752678,0.10002662292923364,0.14492225651710527,-0.5408264968606279,0.12888397852774566,0.1669936388752678,-2.1957446034086523,-3.263577810219858,3.236518803406476,0.6285935183839656,-5.257244901233024,4.2959024714856415,3.777181727408791,2.097716455829515,-3.3193456616489057,-0.6015345115653048,0.6015345115653048],[-0.0026401560194171886,0.4268393577376004,0.1510098168199957,-0.23953882913497318,-0.3356701894269263,-0.0026401560194171886,0.4268393577376004,0.1510098168199957,-0.23953882913497318,-0.3356701894269263,-2.3398668679503176,-1.414460237616324,1.3854119840289387,1.0111690438208976,-2.0779158948717296,3.2812462735106283,-2.127122278430358,-2.199690536453287,4.481228513949899,-0.9821207902439624,0.9821207902439624],[-0.5553711592836426,0.4560990904641221,0.21949430610839016,-0.33906784977299814,0.2188456124772918,-0.5553711592836426,0.4560990904641221,0.21949430610839016,-0.33906784977299814,0.2188456124772918,-4.247480776450521,-2.7185767508456435,0.4961693997139692,1.978093833073766,2.178301807719449,0.206492741607681,1.1445462308737593,-3.5697488733353095,4.532202387638963,0.24431351805932233,-0.24431351805932233],[0.3361595062968141,-1.077811137997294,0.9683343528774715,0.06985079155619055,-0.2965335127366077,0.3361595062968141,-1.077811137997294,0.9683343528774715,0.06985079155619055,-0.2965335127366077,0.7706178178746139,0.10068550018392058,1.3174977937459804,-1.0514924537300656,-0.24864670168286218,4.347265582679774,3.258718445936538,3.910126678897883,-12.40477266389227,-0.366690840199532,0.366690840199532],[-0.25374654364948845,-0.3633343056208731,0.7303952637055615,0.08505705718862702,-0.19837147164127764,-0.25374654364948845,-0.3633343056208731,0.7303952637055615,0.08505705718862702,-0.19837147164127764,0.8673429079652148,3.2207653642561755,-0.0790077227364987,-2.0712142999200096,-0.3317042252435835,1.7428557312567774,1.7453122025106234,-1.538032416406792,-3.556317541674055,-1.0705433415905201,1.0705433415905201],[0.26759569171679887,0.5268751060924952,-0.27734216806379086,-0.5051111955853019,-0.012017434175184305,0.26759569171679887,0.5268751060924952,-0.27734216806379086,-0.5051111955853019,-0.012017434175184305,0.7000312173686725,3.626019128487641,-0.4606474674931503,-2.8477020792454018,-0.41618536747368606,1.359789486289677,1.2865045548032987,2.054531180760345,-5.302340653489514,-0.31766958174157583,0.31766958174157583],[0.392029781388001,0.4360455585908902,-0.5774210326042012,-0.25312873229872646,0.0024744249296201476,0.392029781388001,0.4360455585908902,-0.5774210326042012,-0.25312873229872646,0.0024744249296201476,1.0864963587592154,-3.4430079281569173,3.4713320854134837,-0.533375750005973,0.29609663367950967,-2.0490136328325907,1.4552374798651107,0.9505199289538964,-1.234285175670475,0.5050515927466992,-0.5050515927466992],[0.36657298815654693,-0.003248039480786988,-0.563548680808819,0.08943011266735325,0.11079361947938143,0.36657298815654693,-0.003248039480786988,-0.563548680808819,0.08943011266735325,0.11079361947938143,-5.2730252368692065,-3.3576320541927074,3.7532441911058236,-1.0759508602387313,-2.504819565937308,2.9370631090572523,-1.4925630858926435,2.219913858320998,4.793769644631855,0.6803387233226403,-0.6803387233226403],[0.22141319185718908,-0.26047840625176444,-0.4444050711260068,0.23212978872009724,0.251340496794066,0.22141319185718908,-0.26047840625176444,-0.4444050711260068,0.23212978872009724,0.251340496794066,-3.565328178964232,-0.6455644235028865,-0.1988081749229922,0.6749164476487951,-5.369203148876831,10.09666896630563,0.964395636667839,7.0357528689673146,-8.992829993327206,0.16945615077985232,-0.16945615077985232],[-0.6527567711880264,-0.5270949464181864,0.5036654639908851,0.5256226206070397,0.1505636330138541,-0.6527567711880264,-0.5270949464181864,0.5036654639908851,0.5256226206070397,0.1505636330138541,0.8039177635776593,-2.2172128276194547,0.7725160392455063,1.340220935495498,1.6952652661559777,0.07727741275290168,-3.7291510583514618,-1.6798991568127564,2.9370656255613325,0.1044758528793988,-0.1044758528793988],[-0.05121782114455456,0.28377460626704637,-0.2682622677431811,-0.29210943451276805,0.32781491712616695,-0.05121782114455456,0.28377460626704637,-0.2682622677431811,-0.29210943451276805,0.32781491712616695,0.8667643446413,0.19637993562462785,-2.7843043424109775,2.912326807501604,0.2702127230248301,-0.14178376194386866,-4.517951946890541,-1.1817728988984106,4.380129139341595,-0.3244024007247275,0.3244024007247275],[0.007006508492060831,-0.005576767613426709,0.04442078731518608,-0.28172976511853587,0.23587923692492024,0.007006508492060831,-0.005576767613426709,0.04442078731518608,-0.28172976511853587,0.23587923692492024,2.323515757075664,2.2036558422568184,-0.6388238114197353,-1.2609657477539247,1.9978581725303592,0.8684037432495562,0.06864748412494182,1.1840402480174377,-6.74633168808448,-0.3038662830909786,0.3038662830909786],[-0.0068618179614590435,0.031373510267339255,-0.7634047876725379,0.4214413060996607,0.31745178925048,-0.0068618179614590435,0.031373510267339255,-0.7634047876725379,0.4214413060996607,0.31745178925048,0.9712298717945768,0.6502931343532077,-0.44072479689321187,-0.3371664636874073,2.6491243178294805,-4.836355921588337,0.6759307595256685,0.3752831483283196,0.29238595032245196,0.12759812621362818,-0.12759812621362818],[0.5973808230140676,-0.07391865331192624,0.27312961094480115,-0.07732693233373583,-0.7192648482893621,0.5973808230140676,-0.07391865331192624,0.27312961094480115,-0.07732693233373583,-0.7192648482893621,2.040942568337123,-1.9270293102239457,0.2343160368798387,1.1716284499391563,1.2647786014612703,-2.3233084734463247,-4.638937974665686,5.830481493941681,-1.6528713922089247,0.5210848234027708,-0.5210848234027708],[-0.13694193844419617,0.46244096187176803,-0.05835452925863998,-0.2762591108108488,0.009114616654546437,-0.13694193844419617,0.46244096187176803,-0.05835452925863998,-0.2762591108108488,0.009114616654546437,-1.4131810259699624,-3.329730998178868,1.4613070484534534,1.5897894759840363,0.5317547287739008,-0.30775734312358094,0.7042926959637681,0.22569546883036384,0.5378299492697325,0.278634473747599,-0.278634473747599],[0.43669946634915985,-0.24665099236811833,-0.008611151114409563,-0.037755930784005784,-0.14368139206081967,0.43669946634915985,-0.24665099236811833,-0.008611151114409563,-0.037755930784005784,-0.14368139206081967,-2.3822722328747483,-1.3135424803218905,-1.2916008081571928,2.901858456146651,-2.0089540445296556,5.054200788163339,-2.8002348035710964,-1.0593897965629653,2.899934921712357,-0.29671516766421957,0.29671516766421957],[0.38542188150550843,-0.20092644161559342,-0.3705385554626467,0.0023721020594124897,0.18367101353689602,0.38542188150550843,-0.20092644161559342,-0.3705385554626467,0.0023721020594124897,0.18367101353689602,-3.5749291331837645,-3.136737228280214,1.9494553350348123,0.4934511823055743,-4.826089475360608,7.241991371923618,1.8044636270410588,5.9703260552453035,-5.921931734735681,0.6938307109385016,-0.6938307109385016],[0.16401296255904863,0.334537378113371,0.12225490268067506,-0.5193028531440933,-0.10150239019574628,0.16401296255904863,0.334537378113371,0.12225490268067506,-0.5193028531440933,-0.10150239019574628,3.542972015835397,-2.403707338412006,2.6978857802405845,-0.5196069190818492,-3.5572439620399345,4.736473174616468,0.709235753478296,2.084152211283329,-7.2901607159166115,0.22542847725319204,-0.22542847725319204],[-0.10624023080987431,0.4351527376061619,0.31183699603657017,-0.688146137512138,0.04739663468154985,-0.10624023080987431,0.4351527376061619,0.31183699603657017,-0.688146137512138,0.04739663468154985,1.0144617908335605,-5.528975925499048,2.779996193450874,3.0423198233156947,0.5726118217215403,-1.4437684449609005,-0.5672732552116642,-1.6086776259458095,1.7393056222831516,-0.29334009126492444,0.29334009126492444],[-0.3610317302328238,-0.32867184096380386,0.4016580620596737,0.11795361274697946,0.17009189638737793,-0.3610317302328238,-0.32867184096380386,0.4016580620596737,0.11795361274697946,0.17009189638737793,-2.4768898121934226,-3.1578885051822443,1.8322954282415145,1.4939781257329832,1.2932231400346677,-4.787818187198065,5.742151081555396,-5.993050231095558,6.053998960099593,-0.1683850487959363,0.1683850487959363],[-0.4942759933194921,-0.2431164662514933,-0.049569700352714324,0.4348094406951262,0.3521527192477678,-0.4942759933194921,-0.2431164662514933,-0.049569700352714324,0.4348094406951262,0.3521527192477678,-2.3504804777810193,-5.327866069670273,5.644480580608407,-0.6991232933744587,0.6866588996203855,1.2410784622596887,-1.0435823021411728,2.280768529979434,-0.43193432950531074,0.3825087824350173,-0.3825087824350173],[-0.3191169471681371,0.2339400051828084,0.14013753470447132,0.12053266300903623,-0.17549325572620708,-0.3191169471681371,0.2339400051828084,0.14013753470447132,0.12053266300903623,-0.17549325572620708,0.06180059390927384,0.5642364334154357,1.0437016465798068,-0.6895764358934124,0.19105548497886216,-2.5948150411452566,4.872678667698009,-2.7650679104143467,-0.6840134391297559,-0.9183616440970376,0.9183616440970376],[-0.19120440630716226,0.25375104831359785,-0.03294998151167519,0.2812582508806589,-0.31085491135157034,-0.19120440630716226,0.25375104831359785,-0.03294998151167519,0.2812582508806589,-0.31085491135157034,5.673514920703057,0.7421613072156545,1.5806260812201371,-1.8208085249659538,1.7201265241306092,-3.2841914209154703,1.9958149951829918,-0.055533184714494865,-6.551710697870056,-0.5019788634738944,0.5019788634738944],[-0.06269256411681884,-0.35919655462745614,0.38978514779351925,-0.18942348750152133,0.2215274584566477,-0.06269256411681884,-0.35919655462745614,0.38978514779351925,-0.18942348750152133,0.2215274584566477,1.80815313514168,4.057400457141679,-0.9828107916472857,-2.718621371725238,2.254304155289851,-1.9895207823776309,1.0226930623405266,2.7554896443906687,-6.207087508560672,-0.3559682937774915,0.3559682937774915],[0.2766826667407155,0.46358495674049505,-0.41648989337599374,-0.17089987895564823,-0.1528778511320465,0.2766826667407155,0.46358495674049505,-0.41648989337599374,-0.17089987895564823,-0.1528778511320465,-0.12266684944314726,-0.9773296358196217,-1.0898318189809348,1.7405795721318693,0.7139372927774965,-4.15011033381679,-0.9134039547322836,-1.5635178913616012,6.362343619242811,0.3265818826793319,-0.3265818826793319],[-0.3355755905250373,-0.13006698909875303,-0.09583908280111134,0.4585539232472022,0.10292773917359067,-0.3355755905250373,-0.13006698909875303,-0.09583908280111134,0.4585539232472022,0.10292773917359067,-2.2992198973039826,0.9097248173291839,-1.6562293262022816,0.8652497474434586,0.5425930308359734,2.59402019370958,-4.942213156128387,-2.5294948463778617,6.515569436699108,-0.11874523856205892,0.11874523856205892],[0.4506891476271014,0.575729114936073,-0.5613783975701926,-0.615197856638333,0.15015799165764332,0.4506891476271014,0.575729114936073,-0.5613783975701926,-0.615197856638333,0.15015799165764332,-1.7092564485626678,-0.1694618457913406,-1.7172814179570515,1.4575075894619212,-1.8128819582808924,1.0816840984165053,-2.0202068703919824,4.9001841104567605,-0.01028725736225039,0.429235674289044,-0.429235674289044],[-0.16228311130450945,0.6808771953649042,-0.411572979361245,-0.19990456008998314,0.09288345537660367,-0.16228311130450945,0.6808771953649042,-0.411572979361245,-0.19990456008998314,0.09288345537660367,1.2235266046924511,0.49729611088275116,0.00444567131697525,-1.0625447083536683,3.3600326182374873,-1.0332816769693798,-1.6788258032955903,-2.5603659252922264,1.2497171087902115,0.5608029261569486,-0.5608029261569486],[0.4567496859684561,-0.3648131880306826,-0.20587485147367596,0.16180417394066865,-0.04786582041943044,0.4567496859684561,-0.3648131880306826,-0.20587485147367596,0.16180417394066865,-0.04786582041943044,-2.5478145730931594,0.9102105736738428,0.44646565174003094,-1.0781729610297657,1.0790888469529563,-3.3384117754496625,3.338997490756271,0.2858153255159419,0.9038214209192397,-0.2785032643902662,0.2785032643902662],[-0.4867683824921498,0.1272987773556947,0.22642768105251315,0.1999845916915352,-0.06694266760416968,-0.4867683824921498,0.1272987773556947,0.22642768105251315,0.1999845916915352,-0.06694266760416968,-1.6614563141705696,2.7847886988620005,-1.3354058437087586,-0.9204849033369824,-0.865993067586074,0.05615507481394577,-1.4116359887316476,-2.6480463347829706,6.002078678642134,-0.5288979518289638,0.5288979518289638],[-0.0004722318469835285,0.8308981599463204,-0.29339849816111885,-0.5465597226968641,0.009532292768700684,-0.0004722318469835285,0.8308981599463204,-0.29339849816111885,-0.5465597226968641,0.009532292768700684,2.362304472840651,-1.6646459756649434,1.625496352293073,0.27983941891004593,-2.6077613803664104,0.6530512862673001,2.1670411611785996,-1.0661963821376073,-1.749128953318682,-0.24068979555376227,0.24068979555376227],[-0.02105270366833533,0.11837859321964425,-0.2539370415141292,0.17438615398272955,-0.017775002026898454,-0.02105270366833533,0.11837859321964425,-0.2539370415141292,0.17438615398272955,-0.017775002026898454,-0.320427226321202,-0.5764860294715319,-2.005322016211401,2.014445052229366,1.220650212087434,2.2400272420893974,-0.9758146782643173,2.0346209204228805,-3.63169347655038,0.5673629934517626,-0.5673629934517626],[-0.42283511606873647,-0.023537576969339558,0.08443168490426747,-0.43926756487512086,0.8012085730000735,-0.42283511606873647,-0.023537576969339558,0.08443168490426747,-0.43926756487512086,0.8012085730000735,-0.961130230597182,1.8825426598454027,1.4560195721462768,-2.827299693074635,-5.207616237635082,7.888836035928408,0.3273199369263482,1.2869838039263906,-3.8456558474762685,-0.511262538918136,0.511262538918136]]},"implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"input_transform":{"mean":[-0.12184401570843481,-0.08938719757861839,0.06662569679219943,-0.027160337656473757,0.047961838066664084,0.08070047214818653,0.1254148994487495,-0.042121741315159396,0.022298510640778108,-0.05868294088003362,-0.028796274640285776,-0.18886086691335613,0.0030877778830257045,0.04944801812095462,-0.027986818004051686,0.014111553992548587,0.019717309809442685,0.048641250601605755,-0.11268337973644381,-0.04957501345217038,0.13270013339306608,-0.09121089279219506,0.06949406382544307,-0.06476945608635493,0.046278007466999296,0.0854963126275537,-0.02872442705920661,0.01586151031318103,-0.005622844785936904,-0.39943136522080774,-0.06304995928308652,-0.07244981836296283,0.1152615441850431,-0.15774034297310024,0.017950239121368842,-0.06325189095077341,-0.11180172119008898,-0.08604539284543271,0.09786521889384073,0.001318165790805157,0.065141910321778,0.11766434011676319,-0.05426660725004065,-0.1357274401112081,0.04811378658642949,-0.10822514588738784,-0.13959768018565027,0.009006884091684209,-0.018120809209431897,-0.08353618788582022,0.02056842614622045,-0.03415729561211411,0.05511588827120085,0.0687083697542274,0.0052050871716925505,0.02470686493630447,0.0744178047261782,0.07645438235451571,-0.01867182314884821,0.04160643930960555,-0.07220862636682665,0.07895720786212881,-0.39342883479618973,-0.16059253282494024,0.06699932024298155,0.03336703424386124,-0.10784919294250975,-0.09960329663438901,-0.16733165676358658,0.0929182713500876,-0.03739689643454599,0.04063161016379711,0.08162678713673098,0.026342226659144416,0.12372178342042577,-0.11659179552721508,0.08483536656357724,0.048439674370867936,0.07101222511828478,-0.01600944781998595,-0.028137154579310413,-0.13734868012765175,-0.03645063124245833,-0.004269652810366249,0.05465558660994409,-0.07602851023162055,0.1365757483243763,-0.030446880190457402,0.10138966577304397,0.038864186387944644,0.02719203229598198,0.07452593621732942,-0.13900079042977279,0.017971732391245568,-0.08772991759672699,-0.16737502198863613,0.04442925522901316,-0.006564754181127234,-0.17861786120589257,0.3492615292616067,-0.08298654870149445,-0.04623379802932385,0.10847924482647638,-0.009826117858287386,0.04224281974402248,-0.026599679535067557,0.0567321634801561,-0.05367853027581911,0.012066503360721986,-0.14583707449327638,-0.008864897579213354,-0.04377565773865735,0.15416311364218988,0.0027735461302067846,-0.10465993951433598,0.17647110496570534,0.013701706054168736,-0.009934192539964803,-0.09280305986200539,0.01787715822357915,-0.043722194576309666,-0.0024438160151653565,0.047663161233073785,-0.022931153604481454,0.02299698225244312,-0.02398037165599102,0.1015920147673309,0.13700224525536067,-0.08662882733351154,-0.036310835866187774,0.04894068315711788,-0.15459728084358243,-0.07502485532676356,-0.09784051995466159,0.021475602771131464,0.0009765632311400166,0.017655436474852543,0.06257736920639943,0.07799886745644301,-0.006072644440584678,0.05121345995776023,-0.13975287216123808,0.05815890386453455,-0.16903677273628914,-0.13873243095640658,0.2414392103536023,-0.037385682221007056,0.03746305337176929,-0.02242377116308674,-0.11238844724600205,0.04085382622394651,-0.021227720483694063,0.0709153957638085,-0.20225726832105956,-0.001631302125303883,0.09439132826831242,-0.019866925981713503,0.08346243471863267,-0.14407734502620406,0.01650117019817396,-0.010498160749435121,0.014212902968225805,-0.20800463111896156,0.06718077633010286,0.006458369001406252,-0.07087109351377244,-0.07022213871411773,0.0015878307597723094,0.08868113885815478,-0.036092295763387905,-0.08613096386887686,0.06901280747189135,-0.06545687737827224,-0.07672778045857599,0.2365890106877725,-0.002560759857578568,-0.15734326100551677,-0.02456786743978789,0.10880239100176439,0.11923102285406346,0.009234881971101103,-0.04378213046693767,0.01279978979079123,-0.05359450346337194,0.08963833750497376,-0.08593089354291139,0.0009500804069568912,-0.06283016061777906,0.03852088861445112,0.18184206893209348,-0.05843721054758428,-0.07061953023485923,-0.13826457203524595,0.04732324868594884,0.09763359065938217,-0.0656470988534675,-0.053668439170240737,-0.07605844500993678,-0.018798145041463526,0.10769610623660142,0.01164371875078855,-0.04936846983126036,-0.047753340666980254,0.05076415180518352,0.10751632962576052,0.21825888413239114,-0.13883992066131373,-0.014756412744921796,-0.004927991387599907,0.15183830986318197,-0.09374873089243387,-0.04759966021878529,0.19347826292929135,-0.011830992798829553,-0.1146026603368508,-0.020972858583708422,-0.007278473700811394,0.0869195495150297,0.04633379038247023,0.04616008944153568,0.030443707501127598,-0.041064952979320425,0.13279903120392564,-0.2849138692439384,-0.02419484415918242,0.0017768603132139217,-0.1488410850926564,0.0814059196730007,-0.1833060143532973,-0.04680138528187015,-0.04322724476667864,0.043455003762986014,0.03873305454447957,0.046621977076897185,0.10549794837262721,-0.02335895264668134,0.125746146458494,0.04459051344637154,-0.06511981129193908,0.08658400374691123,0.0948323330465128,-0.02841052070115576,-0.03732687077734254,-0.03256242454933707,0.05648460967024879,0.031887755146895236,-0.14234683292227968,0.00651606314505539,-0.1595171625159846,0.26482205795781594,-0.04603227796751541,0.06322727527049948,-0.06379160807346343,0.08437295343593726,0.06648570649615418,-0.006121002913911565,-0.14897257583002657,0.04257563285885235,0.019338267889331174,-0.03355906626656942,0.10187998959197958,-0.028765668387532445,-0.01784292002243821,-0.006171015473651353,0.15238692908255178,0.043144869770715674,-0.1385695399805247,-0.05773312556588896,-0.05318538046432292,-0.02633298680775134,0.13907513037399838,-0.1231188623958468,0.0365985687241629,0.01954701232584329,-0.05757859445115772,-0.021253287251333904,0.05988687871897551,0.10120060212956788,-0.02203934415409986,-0.1333894230846351,0.09439101302878396,-0.053994311769249445,-0.017991894982212646,-0.017022936949790964,-0.0486487342392972,-0.05345437266278981,-0.16091434466203025,0.039096916905816015,0.09666139836091993,0.01385396377684743,-0.09168558453058182,-0.0050670491730969575,-0.1207950299823153,-0.024446230865163513,0.10480519114384579,0.13841798292408308,-0.007832008374984113,-0.00019380503069623377,0.11009419851672712,0.14069455423544347,-0.017552069697611382,-0.04161312085693329,-0.01016925990006155,0.14577944773043583,-0.1301385396965359,-0.05165751634385072,-0.014510999381863728,0.08342120625988252,-0.004184748393135901,0.10372567684461481,-0.015139519909559147,-0.0741857603583756,-0.08070752023752764,-0.05486767040273936,-0.015775260414910897,-0.05641390127901918,-0.18304463603028717,-0.07801637662535287,0.29733288523797546,-0.43614566179836045,0.0682465066806156,0.04282717783773639,0.10385784026144505,-0.026012255926984005,0.08498569035198039,0.03380115447377137,0.09750142927148846,-0.06190436247929231,0.04256924519877593,0.08311129241446728,-0.014099757075031654,0.12091999127978384,0.035173205315984286,-0.04844394426561824,0.003483725012781544,0.017639193911794093,-0.1501126418932819,0.1825205783526594,-0.04438371695807647,0.05716176305038635,-0.2103549870098092,0.20175956195006078,-0.011733896976530092,0.06909995364364821,0.08978141591995047,-0.07694391294893183,-0.04405509634241686,0.04311108176030315,-0.1710896297248742,0.049907565443489406,0.010924320941232073,0.15087930563958446,-0.09366962165045908,0.13051158445675362,0.04905751583800959,-0.015584204392855903,-0.00918827638569785,0.07060143030899395,0.15923370440714926,0.07257211814757372,-0.04629770381946503,-0.048671114468962474,-0.1390014424580476,0.1300248739943473,0.030505768335908113,-0.03170424215588412,-0.06653924098437129,-0.043453985372401485,0.08471562403577987,-0.03821191951148285,0.05345856903139079,-0.06306796318439135,-0.10455507102608215,0.0318197915128704,0.07781593749545365,0.10866026884274094,0.08074079464026135,-0.12723029396271424,-0.11290669227810969,-0.13192631833475227,-0.06990904979974988,0.022821858167655588,0.07990789211425199,0.07828234709025729],"origin":"training_projected_embeddings_only","scale":0.38233789371424615},"lineage":{"parent_encoder_frozen":true,"parent_modified":false,"projection_tensors_inherited_exactly":["projection_down.weight","projection_down.bias","projection_up.weight","projection_up.bias"],"random_parameters_used":false},"parent_binding":{"core_sha256":"bec522e21c4efcfa763b965f655e86cc5afca80c8e1449be7d9b8fac144c646c","dimension":384,"domain":"legal_ir","lineage_id":"current_legal_v2","runtime_profile":"modal-latent-joint-formula/v1"},"parent_sha256":"969461ab82a2806e54ad33ba242a1eb62d032fa1b3cfc808b77c66dcc965aa62","projection_sha256":"4e90ec5a3ff3978d3f6d40fb366ea01f2a056fe6c59b3fddcf7c50f66366afd7","projection_state":{"projection_down.bias":[0.02702881209552288,0.02693955972790718,-0.012335220351815224,0.045837923884391785,0.06817162036895752,0.0021782617550343275,-0.03774780407547951,-0.040577247738838196],"projection_down.weight":[[0.06466898322105408,-0.09810582548379898,-0.08683871477842331,-0.056220073252916336,-0.0718034878373146,-0.17768777906894684,-0.0874454453587532,0.049600016325712204,-0.14642980694770813,-0.005087248515337706,0.07333462685346603,-0.12209892272949219,-0.01653285138309002,-0.22467169165611267,-0.35406479239463806,0.06926660984754562,-0.07348794490098953,0.3798016905784607,-0.15367431938648224,0.0836157575249672,0.2697937786579132,-0.006180059630423784,0.0551716648042202,0.026255082339048386,0.040723878890275955,0.06303787976503372,0.08765852451324463,-0.05247742310166359,-0.014035237021744251,-0.015224271453917027,0.0016324706375598907,0.0046084290370345116,0.0687558501958847,-0.06524475663900375,0.06944269686937332,-0.12278956174850464,0.10279528796672821,0.043851591646671295,0.009433931671082973,0.10735991597175598,0.12102844566106796,0.1468384861946106,0.035822149366140366,-0.058550599962472916,0.0155038395896554,-0.07205735892057419,-0.06583081185817719,-0.07233728468418121,0.007059164345264435,-0.0607648566365242,0.050392527133226395,0.05634329095482826,-0.031303465366363525,0.06692103296518326,0.07897941023111343,-0.15733376145362854,-0.16421440243721008,-0.012805888429284096,0.05053570121526718,0.03401434049010277,-0.016022125259041786,-0.25826528668403625,-1.946112206496764e-05,0.02268487773835659,-0.05589814856648445,0.05426473170518875,-0.10372669249773026,-0.11930686235427856,0.041233841329813004,-0.08523052930831909,0.08626450598239899,0.0056181917898356915,0.05149395391345024,0.0900464579463005,0.025795498862862587,-0.005110628437250853,-0.028782188892364502,-0.16010616719722748,-0.1766773760318756,0.013848550617694855,-0.13297197222709656,-0.039708174765110016,-0.10323145985603333,-0.2874380350112915,-0.031415071338415146,0.19995266199111938,-0.09355652332305908,0.08492478728294373,-0.10533872246742249,0.07008779048919678,-0.12816382944583893,0.02131389081478119,0.05438694357872009,-0.20297396183013916,0.02150452882051468,0.03760765120387077,0.014484723098576069,0.02008679322898388,0.0454871691763401,0.04226844757795334,0.02650018222630024,-0.10980898886919022,0.053241536021232605,0.06340913474559784,-0.13214093446731567,-0.006212824955582619,0.09577438235282898,0.2725502550601959,-0.023708755150437355,-0.03188098594546318,0.06707213819026947,0.22559556365013123,0.005754335783421993,-0.06073545664548874,0.023132605478167534,-0.024956800043582916,0.0042699468322098255,-0.023926924914121628,-0.0009504166664555669,-0.07223442196846008,0.11041976511478424,-0.044763170182704926,0.30728429555892944,0.033525045961141586,0.0008791099535301328,0.1728850156068802,0.01056746393442154,0.06927864253520966,0.044119711965322495,0.15222090482711792,-0.09899165481328964,-0.11714576184749603,-0.07174886018037796,-0.12524062395095825,0.13308820128440857,-0.03580915927886963,0.1554003357887268,0.14406071603298187,0.04963205009698868,0.004079387057572603,-0.006076662801206112,-0.10364627093076706,0.029676387086510658,-0.09849150478839874,0.02328908070921898,0.0019853150006383657,0.2570028305053711,-0.038419704884290695,0.007904252968728542,0.15323689579963684,-0.08715542405843735,0.0958588719367981,0.028619514778256416,-0.14201869070529938,-0.03893861174583435,0.05215120315551758,0.052754007279872894,-0.07623912394046783,0.029864422976970673,0.10368738323450089,-0.150884747505188,0.10997458547353745,0.0407584011554718,-0.007883618585765362,-0.04071173071861267,0.15556217730045319,0.08756168186664581,0.004087366629391909,-0.0129695488139987,-0.08228509873151779,-0.04885030537843704,-0.05857379734516144,0.10003947466611862,0.04348079860210419,-0.058894891291856766,-0.07227800041437149,0.0885881632566452,-0.24420464038848877,0.046209294348955154,0.2387552410364151,-0.1099063903093338,0.011613654904067516,-0.04471627622842789,-0.10445969551801682,0.1409701555967331,0.03951752930879593,0.011706627905368805,0.08400789648294449,0.01686403527855873,0.03835729882121086,-0.019930444657802582,-0.028756672516465187,-0.049762170761823654,-0.12574227154254913,-0.0845496878027916,-0.06923612952232361,-0.005972685292363167,0.14868131279945374,-0.03600412607192993,-0.05713707581162453,0.04001905769109726,-0.08150073885917664,-0.06715108454227448,-0.021329687908291817,0.03875979036092758,0.03522132709622383,-0.12918005883693695,-0.05278089642524719,0.1453598141670227,0.027192372828722,-0.12696228921413422,0.09372665733098984,-0.16076496243476868,0.05841439589858055,0.06256449222564697,0.04715799540281296,0.005334134213626385,-0.2553449869155884,0.04112226516008377,-0.08125029504299164,0.016947897151112556,0.011871556751430035,-0.023987526074051857,0.031199192628264427,-0.18905006349086761,0.0022048712708055973,-0.17840057611465454,0.034600526094436646,-0.005879097152501345,-0.15274693071842194,0.21577617526054382,-0.0452951155602932,0.034261491149663925,-0.009627770632505417,-0.051685404032468796,0.20583079755306244,-0.1309507042169571,-0.14567582309246063,0.0013324787141755223,-0.02613411657512188,-0.201371967792511,-0.014737110584974289,0.3391685485839844,0.3181505501270294,-0.2529599070549011,-0.06706078350543976,0.015207115560770035,0.05933918058872223,-0.007083524018526077,-0.02091269940137863,0.05997391417622566,-0.00867418758571148,-0.03825237974524498,0.1415933519601822,0.09511056542396545,-0.02778354473412037,0.298974871635437,-0.03184689208865166,0.0646226778626442,0.04758336395025253,0.03733786940574646,0.43914473056793213,-0.3089257776737213,0.06945810467004776,-0.08679316192865372,0.03400104492902756,-0.07637541741132736,0.06452962756156921,-0.0414334200322628,-0.01524137333035469,0.005225845612585545,-0.26235806941986084,0.13590577244758606,0.2637728154659271,0.05307285860180855,-0.1251746118068695,0.13591839373111725,0.06165159493684769,-0.0026493407785892487,-0.007757463958114386,-0.009625515900552273,-0.03680594265460968,-0.11328509449958801,0.04547548666596413,0.12245618551969528,0.1545453518629074,-0.018479807302355766,-0.07516943663358688,0.1498684138059616,0.11813843995332718,6.86059138388373e-06,0.09467394649982452,-0.05514898896217346,0.051523804664611816,0.05596762150526047,-0.032835185527801514,-0.16589827835559845,-0.06814224272966385,0.03001543879508972,0.11916596442461014,-0.07411770522594452,0.05333150550723076,0.09588763117790222,0.019747890532016754,0.05948232114315033,0.07816340029239655,-0.019118087366223335,0.16499143838882446,-0.03079262375831604,0.13268686830997467,-0.1978655755519867,0.004088857211172581,0.09152495115995407,-0.16557061672210693,0.01983088068664074,-0.06268690526485443,0.03534739837050438,-0.06886456161737442,0.03598440811038017,-0.03493037447333336,-0.17899693548679352,-0.10916488617658615,-0.0813538208603859,-0.11286366730928421,-0.19177769124507904,-0.3215395212173462,-0.012636900879442692,-0.009525598958134651,-0.08799821883440018,-0.07306486368179321,-0.08930588513612747,-0.019991975277662277,-0.008874517865478992,0.022238794714212418,0.0863051787018776,-0.05484628304839134,-0.059125807136297226,-0.10620251297950745,-0.006726310588419437,0.015362540259957314,0.00889296643435955,0.1280638873577118,-0.09959903359413147,-0.08785704523324966,-0.18805231153964996,0.0338701568543911,0.03775198012590408,-0.05605702102184296,-0.033092744648456573,-0.04990406334400177,-0.04833279177546501,0.023162618279457092,0.09343845397233963,-0.0077048796229064465,0.10559744387865067,0.11362972110509872,0.14299219846725464,0.011766393668949604,-0.13342054188251495,-0.04893044754862785,0.08401224762201309,0.06348008662462234,-0.0017764490330591798,-0.0730203241109848,-0.06945507228374481,0.25991055369377136,0.08892032504081726,-0.027479784563183784,-0.032292019575834274,0.0872960016131401,0.05216998606920242,0.1147531047463417,0.08249574899673462,-0.060320813208818436,-0.21971386671066284,-0.07523728907108307,-0.22238127887248993,0.17408426105976105,0.47354963421821594,-0.11678649485111237,-0.10366073250770569,0.007599695585668087,-0.11054562777280807,-0.06695777922868729],[0.11039596050977707,-0.003987835254520178,-0.10558447986841202,0.07433242350816727,0.049587052315473557,0.005532191134989262,0.030920064076781273,0.0737958624958992,-0.053712427616119385,-0.035911887884140015,0.03573450818657875,-0.04365658015012741,-0.002313191769644618,-0.16236327588558197,0.15248557925224304,-0.007318252697587013,-0.06325284391641617,-0.16780541837215424,-0.029064884409308434,0.12146035581827164,-0.048118509352207184,-0.011823765933513641,0.12941117584705353,0.16462917625904083,0.09503278136253357,0.05106807500123978,-0.14319893717765808,0.01825905591249466,0.035642292350530624,-0.03504320606589317,0.03827446326613426,-0.005956773646175861,0.007787466049194336,0.044646188616752625,-0.03345119580626488,0.026973051950335503,0.14264579117298126,-0.008468901738524437,-0.005590455140918493,-0.04171143099665642,0.05375247821211815,0.08311547338962555,-0.09355100989341736,-0.05202066898345947,-0.06436332315206528,0.03491557389497757,-0.00627107871696353,0.07500989735126495,0.07459324598312378,-0.0027224894147366285,-0.0061435392126441,0.15855073928833008,0.014725716784596443,0.031369879841804504,0.06907831877470016,-0.086220882833004,0.018037984147667885,0.02362913265824318,0.0757046714425087,-0.043044548481702805,-0.03233623877167702,-0.01807938516139984,-0.01974506489932537,-0.0031703109852969646,0.03160133585333824,0.05946539714932442,-0.04114968329668045,-0.028014453127980232,-0.0991436317563057,-0.22326385974884033,0.14426705241203308,-0.027559395879507065,0.10876470804214478,-0.0993817076086998,0.15644381940364838,0.10979625582695007,0.0434671975672245,-0.13743284344673157,-0.41094425320625305,-0.00411094119772315,0.14038610458374023,-0.036262303590774536,0.2529579699039459,0.0693611204624176,-0.025216734036803246,0.036369193345308304,0.013299929909408092,-0.12493967264890671,0.05393379181623459,0.04921090230345726,-0.14203521609306335,-0.12442753463983536,0.11904226243495941,-0.2822363078594208,-0.00042492648935876787,-0.02919890359044075,0.021740075200796127,-0.1459665447473526,-0.03868092969059944,-0.05183250084519386,0.04418206959962845,0.017005275934934616,0.03730745613574982,0.13380436599254608,-0.2633800208568573,-0.01408273633569479,-0.027009086683392525,-0.36257311701774597,-0.05541312322020531,-0.0849509984254837,0.16607077419757843,0.14237742125988007,-0.027144622057676315,0.0704866573214531,0.004542055539786816,0.07285917550325394,0.01552023645490408,0.1119653657078743,-0.0840984433889389,-0.009752700105309486,-0.00011709771206369624,0.02720024809241295,0.12402103841304779,-0.0405232198536396,-0.0186417568475008,-0.10632633417844772,0.0030158981680870056,-0.04539959877729416,0.05798180773854256,0.010882118716835976,-0.0058792331255972385,-0.0045494926162064075,0.015265666879713535,-0.07943280786275864,-0.08090663701295853,0.09836547821760178,-0.1218763217329979,-0.03273128718137741,-0.14311626553535461,0.044664204120635986,0.06360020488500595,-0.04951087757945061,0.008644312620162964,0.0075047253631055355,0.06007348373532295,0.09433973580598831,0.05589013919234276,0.003315453650429845,0.0892605111002922,-0.07360514998435974,0.014310418628156185,-0.021042346954345703,-0.03098602592945099,-0.09878819435834885,-0.020074384286999702,-0.009279485791921616,-0.014132429845631123,0.20821602642536163,0.06432877480983734,-0.029629213735461235,-0.021641703322529793,0.020823268219828606,0.07276448607444763,0.09174901247024536,-0.004598531872034073,-0.12311296910047531,0.014357048086822033,0.010043655522167683,0.10217885673046112,-0.07242397218942642,0.08262859284877777,-0.022960610687732697,-0.06814312934875488,-0.16868074238300323,-0.011546977795660496,0.02764146588742733,0.18758156895637512,-0.1952211558818817,-0.01722608506679535,0.051288679242134094,0.09558892250061035,-0.09641150385141373,0.104819156229496,0.05787746235728264,0.10638036578893661,-0.03282266482710838,-0.04244851693511009,0.14756660163402557,-0.011703161522746086,-0.06333962082862854,-0.15799283981323242,0.08406048268079758,0.16107240319252014,-0.1091603934764862,-0.022256283089518547,0.05371236801147461,0.05359639227390289,0.07648152858018875,0.008177687413990498,0.20216338336467743,0.053570978343486786,-0.03135316073894501,0.057409413158893585,0.08226784318685532,-0.052448760718107224,-0.04357348382472992,0.1349848210811615,-0.09353958815336227,0.018594039604067802,0.01682569459080696,-0.01769370213150978,-0.01659630797803402,-0.3135836124420166,-0.04098564013838768,0.02204638533294201,0.04747968912124634,0.0007805405766703188,0.05600223317742348,0.03588664531707764,-0.006611078977584839,-0.13605916500091553,0.02952110581099987,-0.0005345146055333316,-0.07527689635753632,0.01747954450547695,0.12840516865253448,0.03285789489746094,-0.017221132293343544,-0.03196672722697258,-0.01614423841238022,-0.05900881811976433,-0.056349147111177444,0.04216337949037552,0.045301735401153564,-0.04174097999930382,-0.07812243700027466,-0.15361987054347992,0.02764403447508812,0.05943042412400246,-0.038072675466537476,-0.17263934016227722,0.08305730670690536,0.09423348307609558,0.009913219138979912,-0.11923247575759888,-0.03908422216773033,-0.007066576275974512,0.13293251395225525,0.024283451959490776,-0.09423656016588211,0.0784173235297203,0.14040109515190125,-0.004621632397174835,0.048900824040174484,0.039669468998909,0.06466297060251236,0.09063631296157837,0.003828782122582197,0.033015962690114975,0.01926300674676895,-0.03016785718500614,0.28467845916748047,-0.103823222219944,0.006551047321408987,0.12215113639831543,0.0016721527790650725,0.05814468115568161,0.1490580439567566,-0.13099047541618347,0.04031367972493172,-0.06708891689777374,-0.19738180935382843,0.18602168560028076,0.05361562594771385,-0.08169014006853104,0.029956039041280746,0.05770406872034073,-0.0442277230322361,-0.026647206395864487,-0.03657446801662445,-0.034842509776353836,0.05511854588985443,0.0008728174725547433,0.03671637549996376,0.038506507873535156,-0.15610232949256897,0.08913261443376541,-0.00212967861443758,0.04831939935684204,-0.11227033287286758,0.07580426335334778,-0.49161258339881897,0.023735411465168,0.13241428136825562,-0.33445918560028076,-0.047347646206617355,-0.0667942687869072,0.0775749534368515,-0.005839108023792505,0.07257573306560516,-0.012149418704211712,-0.0015170089900493622,0.040924519300460815,0.03371375799179077,-0.04177430272102356,-0.054193802177906036,0.05297119542956352,0.18359218537807465,-0.075749471783638,0.01153374370187521,-0.050120338797569275,-0.05348170921206474,0.12200789898633957,-0.13302156329154968,-0.03206042945384979,-0.05057531222701073,0.10201261192560196,-0.09989513456821442,-0.04466308653354645,-0.013923856429755688,-0.13482879102230072,0.04431057721376419,-0.34077900648117065,0.05240066349506378,0.11453621089458466,0.11019905656576157,-0.011373840272426605,-0.025841861963272095,-0.023294055834412575,-0.04269050061702728,0.13472355902194977,-0.0656917616724968,-0.08416244387626648,-0.08263972401618958,0.047422800213098526,-0.01185581088066101,-0.03786872699856758,-0.06637134402990341,0.03224959596991539,0.008046913892030716,-0.010765498504042625,0.030029254034161568,-0.035445425659418106,-0.021325338631868362,-0.23459646105766296,0.032412536442279816,-0.05001283437013626,-0.013909325934946537,-0.03236215189099312,0.04697404056787491,-0.030198441818356514,-0.04309637099504471,-0.04976455494761467,-0.018298987299203873,0.08869247138500214,0.01026668306440115,-0.017311755567789078,0.03918415680527687,-0.05080864951014519,0.11325941979885101,0.3195253014564514,0.39185357093811035,-0.012740332633256912,0.004511895123869181,0.025380892679095268,0.11614066362380981,0.06780901551246643,-0.040710821747779846,0.07673945277929306,0.010780838318169117,-0.08674713969230652,0.06282426416873932,-0.06647172570228577,0.07428067177534103,0.026245364919304848,0.006982302758842707,-0.10956363379955292,0.04337773099541664,0.3205046057701111,0.02156561054289341,0.04658721759915352,-0.0200355127453804,-0.0934760794043541,-0.012133311480283737],[0.04437157139182091,-0.03664742410182953,0.2166830599308014,-0.09191350638866425,-0.012359010986983776,-0.10979858040809631,-0.04851726442575455,-0.09677731245756149,0.26006844639778137,0.001513054477982223,0.13940727710723877,0.05297386646270752,0.08085552603006363,0.06420488655567169,0.06110629066824913,0.2974865436553955,0.048754047602415085,0.005741364788264036,0.07990702241659164,-0.05680489540100098,-0.15730857849121094,-0.03881991654634476,-0.10315308719873428,-0.2846973240375519,-0.02432161569595337,-0.019279127940535545,0.18454387784004211,-0.05058421194553375,0.0005419568624347448,0.08014906942844391,-0.024275733157992363,-0.04085336998105049,-0.01431996375322342,0.16661344468593597,-0.06848901510238647,-0.24006956815719604,-0.15167787671089172,-0.02455701120197773,0.09370729327201843,-0.010384987108409405,-0.14148291945457458,-0.10831725597381592,0.17013876140117645,-0.08182097226381302,-0.032036226242780685,0.0008550320053473115,0.14148277044296265,-0.25592681765556335,-0.15418168902397156,-0.1297406405210495,0.12975525856018066,-0.2999146580696106,0.06643269211053848,-0.0660712718963623,-0.07204678654670715,-0.14157900214195251,-0.07982116937637329,-0.00042196610593236983,-0.060585230588912964,-0.04899364709854126,0.03997848182916641,0.3058514893054962,-0.20155954360961914,0.035299018025398254,-0.03156709298491478,-0.10623093694448471,0.05941116437315941,0.0882994532585144,-0.050962094217538834,0.19102078676223755,0.07873120158910751,0.05492018535733223,-0.07229814678430557,-0.28131812810897827,-0.15626075863838196,-0.153062641620636,-0.008001218549907207,0.22700285911560059,0.5302014350891113,0.014102960005402565,0.07328593730926514,-0.11993660032749176,0.15356197953224182,0.19233226776123047,-0.20134349167346954,0.0502038337290287,0.03892942890524864,0.12291029095649719,-0.045205842703580856,0.061881713569164276,0.14502055943012238,0.07504376769065857,0.17642046511173248,0.0987786278128624,0.07204561680555344,-0.021347928792238235,0.015093519352376461,0.3565380275249481,-0.05838179215788841,0.027781112119555473,-0.10414042323827744,-0.018616434186697006,-0.1866043210029602,-0.02957898937165737,-0.06666067987680435,0.09481985867023468,-0.09116954356431961,0.4620509445667267,-0.24954243004322052,0.22213083505630493,-0.6884070038795471,-0.4917708933353424,-0.029186561703681946,-0.05357437580823898,-0.027590297162532806,-0.2408071607351303,-0.07597194612026215,-0.15550711750984192,-0.024634569883346558,0.274557888507843,-0.1798991858959198,0.2852739691734314,-0.030024966225028038,-0.0015297463396564126,-0.03817149996757507,0.06357914954423904,0.016056960448622704,-0.006378668360412121,-0.07903008908033371,-0.13584527373313904,-0.12282519787549973,-0.12035495042800903,0.028612863272428513,0.15484380722045898,-0.12947428226470947,0.18602697551250458,0.4484577178955078,-0.160552978515625,0.14427116513252258,-0.05980324000120163,-0.010811610147356987,0.044340793043375015,-0.03396276384592056,0.21420620381832123,-0.04753909632563591,-0.019971635192632675,-0.009563450701534748,-0.06527258455753326,0.013390874490141869,-0.05461133271455765,-0.06714338809251785,0.03343566134572029,-0.0632530078291893,-0.10684643685817719,0.09640040248632431,0.05312748998403549,-0.01025212649255991,-0.1595524102449417,-0.14934790134429932,0.07507685571908951,-0.041182782500982285,-0.18405532836914062,-0.08897404372692108,-0.15193524956703186,-0.007676498964428902,-0.0476982519030571,-0.15764178335666656,0.23472335934638977,-0.06105160340666771,-0.07612030953168869,-0.14551883935928345,0.1496880054473877,0.15748587250709534,0.02622019685804844,-0.2473151832818985,-0.07782656699419022,-0.2625753879547119,0.006729894317686558,0.431136816740036,-0.09751290827989578,-0.11956542730331421,0.10324957221746445,0.03511182963848114,-0.018553515896201134,-0.05618961900472641,-0.00435613514855504,0.1802271008491516,0.018702968955039978,0.07626332342624664,0.14769072830677032,0.011118016205728054,-0.06839993596076965,-0.18428780138492584,0.0317879393696785,-0.12347786128520966,-0.08366601914167404,0.04211623966693878,-0.23645201325416565,-0.0013385036727413535,0.2960221469402313,-0.14819559454917908,-0.028880568221211433,-0.05474570021033287,-0.09329470247030258,-0.03184540569782257,-0.053566597402095795,-0.08395933359861374,0.33214741945266724,-0.17525963485240936,0.08025413006544113,0.17605742812156677,-0.09370440989732742,0.03444482386112213,-0.01106971874833107,-0.010170836932957172,-0.0036777982022613287,0.12027545273303986,0.1442728340625763,0.03894561901688576,0.013577645644545555,0.0870441123843193,-0.03798392787575722,0.02136797271668911,0.1574466973543167,-0.01308856438845396,-0.07683996856212616,-0.0970548689365387,-0.00402299128472805,0.08526251465082169,0.04128699377179146,0.42914748191833496,-0.12731391191482544,-0.06280214339494705,-0.17475788295269012,-0.027686230838298798,0.325743168592453,-0.1424502432346344,0.05518313869833946,0.18395139276981354,-0.0265226848423481,0.17208120226860046,0.006739155389368534,-0.06483983993530273,-0.2706139385700226,0.15065665543079376,0.2136654108762741,-0.016945544630289078,-0.03201775252819061,0.031709615141153336,-0.03620357811450958,0.2359302043914795,0.08514294773340225,-0.01995537243783474,-0.031024852767586708,-0.2836182415485382,-0.24278803169727325,-0.13085252046585083,-0.05157089605927467,-0.08219240605831146,0.03811643645167351,0.009703561663627625,-0.17700737714767456,-0.006438883952796459,0.00012935152335558087,0.18328239023685455,-0.06825265288352966,0.10456135123968124,-0.005081575829535723,0.1212240681052208,-0.06825286895036697,-0.07972460985183716,0.579132616519928,-0.10359034687280655,0.06594941020011902,-0.13175760209560394,-0.0200133565813303,-0.11295425891876221,0.011712846346199512,0.06476142257452011,-0.1153518408536911,0.03601449728012085,-0.05667131394147873,-0.1359441727399826,-0.04245651140809059,-0.10682360827922821,0.07492339611053467,-0.18678799271583557,-0.0634375736117363,-0.023644333705306053,0.03741375356912613,-0.13593384623527527,0.7620850205421448,0.15099099278450012,-0.14195674657821655,0.44593656063079834,-0.04063498228788376,0.45563918352127075,-0.06309303641319275,-0.12177729606628418,-0.29449358582496643,-0.19575557112693787,-0.09646444767713547,0.023606151342391968,-0.048450812697410583,0.15280532836914062,0.06530822068452835,-0.03912670537829399,-0.178686261177063,0.1303430050611496,-0.004223158583045006,0.1229126900434494,-0.13307160139083862,0.2833004593849182,0.1094379648566246,0.05849382281303406,0.0561244897544384,0.10178032517433167,-0.11756713688373566,0.030610933899879456,-0.08185332268476486,-0.057553187012672424,0.048019889742136,0.5654394030570984,0.012838502414524555,0.17446255683898926,-0.11056429147720337,0.039740853011608124,0.042576588690280914,0.08403663337230682,-0.12098981440067291,-0.21016354858875275,0.03775421530008316,-0.16765369474887848,-0.20762279629707336,-0.06030987948179245,-0.11796487122774124,0.05062047764658928,0.15421290695667267,-0.4522850811481476,-0.05390166491270065,0.009588601998984814,0.10278221219778061,-0.1840745359659195,-0.19776397943496704,0.5594706535339355,-0.12637662887573242,0.011417314410209656,-0.14727380871772766,-0.03269709646701813,0.06648693233728409,-0.07991372048854828,0.059435829520225525,0.08551733940839767,-0.03221232816576958,-0.19942468404769897,0.000787768978625536,-0.09339485317468643,-0.11715178191661835,-0.0122686130926013,0.29719480872154236,0.025439927354454994,0.10837941616773605,0.004427620675414801,0.10446096211671829,0.1457393616437912,-0.2350919246673584,0.09729157388210297,0.22399967908859253,-0.06627409905195236,0.01133618876338005,-0.07261406630277634,-0.057084329426288605,0.0023324694484472275,-0.21192289888858795,0.21351920068264008,0.0375724695622921,0.03223290666937828,-0.21086853742599487,-0.21573811769485474,-0.12376514822244644,-0.3901374340057373,0.036515507847070694,-0.024302219972014427,0.0685979500412941],[0.051224347203969955,0.01310925092548132,0.0988563522696495,0.03442506119608879,-0.033325448632240295,-0.19643262028694153,0.024541085585951805,0.041271697729825974,0.03680294007062912,-0.15541616082191467,0.017095481976866722,-0.19137521088123322,0.03180345147848129,-0.004182363394647837,0.06615392118692398,0.3969586491584778,0.10500864684581757,-0.006067011505365372,0.015275919809937477,0.03381234034895897,-0.14946532249450684,0.06965354084968567,-0.06677073985338211,0.12010089308023453,0.04575277864933014,0.026680780574679375,-0.10473741590976715,0.03050367534160614,0.001632868079468608,-0.12488406896591187,-0.05854973569512367,-0.019868988543748856,-0.07300595194101334,0.19601154327392578,-0.0495443269610405,0.08328888565301895,-0.08452306687831879,-0.04269396886229515,0.11118464171886444,-0.12616026401519775,0.04171847552061081,-0.007457859348505735,-0.0006164666847325861,0.009632846340537071,0.08621841669082642,0.0322413332760334,0.012878958135843277,-0.04928511381149292,-0.0014656797284260392,-0.16341015696525574,-0.013541512191295624,0.03677702695131302,0.16869671642780304,-0.09888272732496262,0.015727655962109566,0.09309595078229904,-0.11858170479536057,0.009331855922937393,-0.009675378911197186,0.003640207229182124,-0.014627502299845219,0.060313113033771515,-0.11122281104326248,0.04876448214054108,0.05117219313979149,-0.1330503523349762,0.09348997473716736,0.010920069180428982,-0.14373131096363068,0.0729498639702797,0.0039248112589120865,-0.007558015640825033,-0.007516178302466869,-0.2328653782606125,0.19869303703308105,0.006913548801094294,-0.06343909353017807,0.19734416902065277,0.13246484100818634,0.005610202439129353,-0.19984549283981323,-0.017537981271743774,0.1372043490409851,0.37507930397987366,-0.058410294353961945,0.11157290637493134,-0.11572332680225372,-0.04419674351811409,0.03959367796778679,0.05479598417878151,0.08188749104738235,-0.01732194796204567,-0.12981367111206055,-0.10013648122549057,-0.05250680446624756,-0.03542371094226837,0.16531577706336975,0.08725682646036148,0.004139691591262817,-0.05306372418999672,0.019404465332627296,0.052512072026729584,-0.01223236694931984,-0.1652260422706604,0.05440293997526169,-0.05550125986337662,-0.012529611587524414,0.02886345610022545,-0.3166309595108032,-0.03343125805258751,0.045554183423519135,0.008218147791922092,-0.033327825367450714,-0.022962026298046112,-0.014037725515663624,0.027011556550860405,-0.06674747914075851,0.03405297175049782,0.0907849594950676,0.012038146145641804,0.012153951451182365,-0.07453028112649918,-0.01747368462383747,0.1423410326242447,0.033297546207904816,-0.002516843844205141,-0.025156447663903236,-0.013637230731546879,0.07239390909671783,-0.07945417612791061,-0.08084721863269806,0.025163019075989723,0.08736801147460938,0.04989048093557358,-0.014501356519758701,0.27738767862319946,0.1313827633857727,-0.07822516560554504,-0.023927928879857063,-0.06683864444494247,0.032209284603595734,-0.05348506197333336,0.06997446715831757,0.28252437710762024,0.042478036135435104,0.09821166098117828,-0.007431195117533207,0.05328742042183876,0.11044100672006607,-0.10019376128911972,0.021985726431012154,0.07241273671388626,-0.024800864979624748,-0.023567866533994675,0.052200499922037125,0.10440937429666519,-0.042126815766096115,-0.13272488117218018,-0.06404948234558105,-0.07700283825397491,0.005395302549004555,-0.08039243519306183,-0.05335955694317818,0.04227536544203758,0.024552244693040848,-0.23461991548538208,0.026338927447795868,0.18364734947681427,0.12698140740394592,0.004108659457415342,-0.019097356125712395,0.11693413555622101,0.06800477206707001,-0.03778337314724922,-0.1344669908285141,-0.0552922859787941,-0.09707234054803848,0.10430677235126495,0.3997359573841095,0.043023984879255295,-0.018431467935442924,0.01609671674668789,0.04427504912018776,0.08407540619373322,0.26401394605636597,0.047883763909339905,0.056359510868787766,-0.06493460386991501,0.009671906009316444,0.1426127851009369,-0.14881755411624908,0.03301562741398811,-0.15718872845172882,0.08300838619470596,0.011032718233764172,0.015039280988276005,-0.021746933460235596,-0.010763142257928848,0.18363147974014282,-0.05833663418889046,-0.08050175756216049,-0.1152195930480957,0.10534262657165527,-0.057057470083236694,-0.0505802184343338,-0.03357468545436859,-0.037298060953617096,-0.02962842956185341,-0.15853384137153625,0.04592230170965195,-0.024455906823277473,-0.04173576831817627,-0.001370734185911715,0.011130737140774727,-0.010687949135899544,0.06999493390321732,-0.029246238991618156,0.2132548838853836,0.041499584913253784,0.016881629824638367,-0.131117045879364,0.02152692712843418,-0.02894413471221924,0.03456587344408035,0.0005373596795834601,0.044356659054756165,0.07610774040222168,-0.10469148308038712,-0.005787958391010761,0.09895322471857071,-0.04868638142943382,-0.03406708687543869,-0.07023515552282333,-0.09860166907310486,-0.0913415178656578,0.0202887412160635,-0.23602931201457977,0.31413376331329346,0.1003793403506279,-0.027842456474900246,0.2599426507949829,0.07474590837955475,0.005049633327871561,-0.12142501026391983,-0.05712193250656128,0.04119597375392914,0.06850878149271011,0.09782595932483673,-0.041274990886449814,0.007697856519371271,-0.06459224969148636,0.05456359684467316,-0.028233245015144348,-0.0040281168185174465,-0.22852997481822968,-0.008597219362854958,0.16276119649410248,-0.03602812811732292,-0.038215551525354385,0.01429769303649664,-0.0066948928870260715,0.03466438874602318,0.03125936537981033,-0.04101366549730301,0.038554251194000244,0.02377793937921524,0.034348130226135254,-0.05417891591787338,-0.04066651314496994,-0.1839306503534317,0.01251798216253519,0.2691349983215332,0.12880408763885498,-0.01719891093671322,-0.22638024389743805,0.035251617431640625,-0.11655394732952118,-0.12943556904792786,-0.003916201181709766,0.04772787541151047,0.05898868665099144,0.0006843177252449095,-0.1496945023536682,0.0495796874165535,-0.09675206243991852,-0.01446955744177103,0.0470283217728138,-0.06491359323263168,-0.0711802989244461,-0.1024506688117981,-0.008861462585628033,-0.13115595281124115,0.09582876414060593,-0.005076614674180746,-0.03858070820569992,-0.06393283605575562,0.18395212292671204,0.021105341613292694,0.004907439462840557,-0.20279979705810547,-0.08679458498954773,-0.056578975170850754,0.0014584147138521075,0.014384227804839611,-0.10573470592498779,0.01971333846449852,-0.10096719861030579,-0.151702418923378,0.10200828313827515,-0.0775267481803894,0.05674033984541893,0.053868431597948074,0.02465026266872883,-0.059475257992744446,-0.028797365725040436,-0.06970133632421494,0.11502096801996231,0.15306606888771057,0.019360419362783432,-0.005335626192390919,-0.02347511053085327,0.15605972707271576,0.024902930483222008,0.08794856816530228,0.34427791833877563,0.16701729595661163,-0.005222484469413757,-0.01799353025853634,0.128475159406662,-0.07141108810901642,0.10710080713033676,0.03107813186943531,-0.1151958703994751,0.029456334188580513,0.06612624228000641,0.012921544723212719,-0.03083801083266735,-0.020771095529198647,-0.16002216935157776,-0.07217864692211151,0.04843323677778244,0.14941342175006866,-0.016166821122169495,0.06323036551475525,-0.22150453925132751,0.12939029932022095,0.047674842178821564,0.03040696680545807,-0.042768798768520355,-0.005898444913327694,0.031049469485878944,-0.10943713039159775,-0.08393184095621109,-0.085483118891716,-0.02157461829483509,-0.028240425512194633,-0.10475204885005951,0.01665210723876953,-0.0012003195006400347,0.1530577391386032,-0.027891207486391068,0.45793429017066956,-0.048537954688072205,0.04419232904911041,0.013018406927585602,-0.135554701089859,0.12372887134552002,0.02811148762702942,0.032177165150642395,0.07745371013879776,-0.13046349585056305,-0.10653477162122726,0.057321999222040176,-0.08484005182981491,-0.051017940044403076,-0.11366388201713562,0.038773853331804276,-0.14100947976112366,0.2420346885919571,0.05662556365132332,-0.27366191148757935,-0.05510161817073822,-0.0612778514623642,-0.0845383033156395],[0.10858312994241714,-0.0493447370827198,0.02630051225423813,0.022177409380674362,-0.12040536850690842,-0.4366576373577118,0.012382881715893745,0.047102827578783035,-0.06261800229549408,-0.11922325193881989,0.08175303786993027,-0.08907268941402435,-0.07212776690721512,-0.038432396948337555,-0.3431885242462158,0.288202166557312,-0.035791054368019104,0.36195018887519836,-0.12363219261169434,-0.006294907536357641,0.2765241861343384,0.0410754419863224,-0.11434847861528397,0.06383408606052399,0.14968286454677582,0.0968698188662529,0.036831874400377274,0.016463343054056168,-0.05839536711573601,-0.0861668810248375,-0.020651116967201233,-0.014891973696649075,0.051453087478876114,-0.0016935677267611027,-0.019450867548584938,-0.03499428927898407,0.059226397424936295,0.0536503866314888,0.007934154942631721,-0.14105048775672913,0.08728110045194626,0.017947763204574585,-0.14176732301712036,-0.10528062283992767,0.06842558085918427,0.11177810281515121,-0.062250807881355286,-0.012971481308341026,-0.019120527431368828,-0.15069438517093658,-0.08483338356018066,0.19733284413814545,0.05862971022725105,0.07121007144451141,0.10072119534015656,-0.016441363841295242,-0.19730660319328308,-0.012700345367193222,0.014113345183432102,-0.0018929552752524614,-0.07553616911172867,-0.3711014688014984,-0.1368226259946823,0.047910723835229874,-0.07482703030109406,-0.008824887685477734,0.0008026964496821165,0.06120007857680321,0.02067318744957447,0.03551582619547844,-0.12887628376483917,0.14550410211086273,0.00171575543936342,0.07026588916778564,0.11802279949188232,-0.07139571756124496,-0.10436511784791946,0.16120372712612152,0.09924210608005524,0.1607450693845749,-0.32912465929985046,0.01277026254683733,-0.13382698595523834,0.24364686012268066,-0.057106394320726395,0.18238113820552826,-0.07374052703380585,-0.10944931954145432,-0.039666615426540375,-0.026031453162431717,0.008982960134744644,-0.09866568446159363,-0.20770922303199768,-0.12816122174263,-0.06277940422296524,-0.05206147953867912,0.15667742490768433,-0.029690667986869812,-0.016043126583099365,0.029726935550570488,0.14135116338729858,0.04205337539315224,-0.014457570388913155,-0.03333935886621475,-0.1377958357334137,-0.05966247618198395,0.13201206922531128,0.049790702760219574,-0.20520366728305817,-0.08734937012195587,0.26609233021736145,0.15451432764530182,-0.05923253297805786,0.013981178402900696,0.03441956266760826,-0.27807021141052246,0.06091270595788956,-0.06231125816702843,0.05652023106813431,-0.08633752167224884,0.18512873351573944,-0.22740137577056885,0.21923138201236725,0.003163994522765279,-0.0625230073928833,0.03268327936530113,-0.008695787750184536,0.1226421594619751,0.05014386028051376,0.033173657953739166,-0.15240556001663208,-0.1212950199842453,-0.07878713309764862,-0.13420072197914124,0.08113591372966766,0.14326560497283936,0.1741558462381363,-0.08683755248785019,-0.03348816558718681,-0.07147928327322006,-0.0847451239824295,-0.17659911513328552,-0.007475853897631168,0.2340194284915924,0.041642650961875916,0.07579705864191055,0.13694149255752563,-0.02410774677991867,-0.14897602796554565,0.11234022676944733,0.06070082262158394,0.17115184664726257,0.034552864730358124,0.04103490710258484,0.12167660146951675,-0.034761689603328705,-0.01695866324007511,-0.2288912832736969,0.14943382143974304,0.08279316127300262,-0.07157465070486069,0.1734984964132309,-0.01359119825065136,0.0328529067337513,-0.05085661634802818,-0.07605312019586563,0.22693175077438354,0.01056172139942646,0.08166493475437164,-0.05601700395345688,-0.10130905359983444,0.04853637143969536,-0.019490737468004227,-0.019548621028661728,-0.04999791830778122,-0.014351243153214455,0.12497900426387787,-0.147399440407753,0.32922640442848206,0.2933647036552429,-0.034995123744010925,-0.005432717502117157,0.09550159424543381,0.03341418132185936,0.32722121477127075,-0.010476035065948963,0.05769602954387665,-0.10351311415433884,0.102671317756176,0.0074578262865543365,-0.08584532886743546,-0.01697513461112976,-0.04198892414569855,-0.04664997756481171,-0.01240906585007906,0.06124309077858925,0.07649081200361252,0.14529789984226227,0.03300075605511665,0.05625838413834572,0.09117734432220459,-0.14943015575408936,0.07304146885871887,-0.03414132818579674,-0.008992210030555725,-0.08952666819095612,-0.07545456290245056,-0.13168758153915405,0.06041177362203598,0.1020164042711258,-0.14939537644386292,0.06608972698450089,0.08296038210391998,-0.014633319340646267,0.01242948230355978,0.04032967984676361,0.06801820546388626,0.020978031679987907,-0.0349033921957016,-0.04119979217648506,-0.10413973778486252,0.10459741950035095,0.008712845854461193,0.06843562424182892,0.013987259939312935,-0.11766829341650009,-0.030876589938998222,-0.09558535367250443,-0.10871061682701111,-0.04172881692647934,-0.09335467219352722,-0.08687200397253036,0.07075170427560806,-0.04920677840709686,-0.10045887529850006,-0.0683281421661377,-0.23270513117313385,0.11320272833108902,0.061235710978507996,-0.050294868648052216,-0.2392408847808838,-0.05682849884033203,0.46950411796569824,0.33612868189811707,-0.1841774433851242,-0.0547366701066494,0.10225965827703476,0.04831664264202118,0.02140919119119644,0.006994316354393959,0.013078134506940842,0.0018711513839662075,-0.07460497319698334,0.1328151524066925,0.002604942535981536,0.009462323039770126,0.3421171009540558,0.0851789191365242,-0.038042910397052765,-0.02388220839202404,0.019975336268544197,0.431469202041626,-0.2413545697927475,0.052272990345954895,-0.039633430540561676,-0.02165411226451397,-0.04402848333120346,-0.03043602593243122,-0.1335456818342209,-0.18176567554473877,-0.1068110316991806,-0.04017293080687523,0.06645361334085464,0.1734292209148407,0.003136926330626011,0.011812190525233746,0.027794750407338142,0.006087104324251413,-0.02282409742474556,0.09020590037107468,-0.04045800492167473,-0.0194268599152565,-0.05723000690340996,0.1507609486579895,0.06685342639684677,0.09513499587774277,0.12506473064422607,-0.06441739201545715,0.008908587507903576,0.02722911350429058,-0.019773123785853386,-0.1847289353609085,-0.03850311040878296,-0.059251900762319565,-0.02200550027191639,-0.07492756843566895,-0.08713091909885406,0.13559189438819885,0.05612531304359436,-0.18223166465759277,-0.15519148111343384,0.057420700788497925,0.09473399072885513,0.022342678159475327,0.0036037571262568235,0.05595984309911728,-0.09898821264505386,-0.2150467336177826,0.0177591685205698,0.03563564270734787,-0.046416766941547394,0.14807458221912384,0.03116598352789879,-0.0776221826672554,-0.01550918910652399,-0.08195236325263977,0.19925852119922638,0.3376622200012207,0.017358727753162384,-0.08139049261808395,-0.181508406996727,0.026261450722813606,-0.16071045398712158,-0.0800776258111,-0.01810215786099434,0.0033565727062523365,-0.016771918162703514,0.013506194576621056,-0.05189834535121918,-0.033492863178253174,-0.09671870619058609,0.0591704398393631,0.0019252138445153832,-0.00593954510986805,0.15019440650939941,-0.06071389093995094,0.04913083091378212,-0.050680868327617645,-0.006959717255085707,-0.018815767019987106,0.034998223185539246,0.14665672183036804,0.10147790610790253,-0.05206314101815224,-0.15516839921474457,0.23356299102306366,0.004018761683255434,-0.021843818947672844,0.004761698190122843,0.0024947745259851217,0.01248927041888237,0.00781978014856577,0.0873899981379509,-0.015746118500828743,0.09470651298761368,-0.01731819659471512,0.1621459275484085,-0.03278574347496033,-0.07675475627183914,-0.2550058960914612,0.015511492267251015,0.21068325638771057,0.01927652209997177,-0.020633162930607796,-0.06297888606786728,0.0471203438937664,0.09323367476463318,0.022988127544522285,0.08251732587814331,0.0748506709933281,0.10373564809560776,0.008058145642280579,0.10945658385753632,-0.08440577238798141,-0.3271293640136719,-0.12243510037660599,-0.13838821649551392,-0.12783581018447876,0.5660580992698669,-0.024891477078199387,0.01564081944525242,0.033084698021411896,-0.10507915914058685,-0.07490497827529907],[0.12825362384319305,-0.10885591059923172,-0.02441994473338127,-0.060126278549432755,0.03321058303117752,0.012254828587174416,0.0028076337184756994,0.014853790402412415,0.06225442886352539,0.22205497324466705,-0.04824068769812584,0.256928950548172,-0.018755847588181496,-0.09969504922628403,-0.02439996786415577,-0.4937824308872223,-0.08403246104717255,0.25874093174934387,-0.18977896869182587,-0.045785024762153625,0.07713672518730164,-0.06651876866817474,0.18707653880119324,-0.11268752068281174,-0.036548979580402374,0.11468363553285599,0.11779895424842834,-0.020022118464112282,0.026750316843390465,0.10960935801267624,0.0685402899980545,0.11280018091201782,-0.11596552282571793,-0.24187475442886353,0.033253274857997894,-0.0782935842871666,0.03643596172332764,0.02065098099410534,-0.18664157390594482,0.18363051116466522,-0.141277477145195,-0.09209414571523666,0.02981634810566902,-0.03820614889264107,-0.01363019272685051,-0.11862201243638992,0.11871851980686188,-0.12136810272932053,-0.13476234674453735,0.14639824628829956,0.0371210053563118,-0.2017781138420105,-0.09317532926797867,-0.006556754931807518,0.031936995685100555,-0.15348389744758606,-0.048002198338508606,0.022961130365729332,0.06225355714559555,0.007268921472132206,0.09149082005023956,-0.2674036920070648,0.04432036727666855,-0.038682375103235245,0.01521089393645525,0.19077305495738983,-0.0491146482527256,-0.05693446099758148,0.0365915410220623,0.021827097982168198,-0.09746737778186798,-0.026252271607518196,0.03791707754135132,-0.0017543702851980925,-0.09965118020772934,0.02744344435632229,0.012460549362003803,-0.0365842767059803,-0.23007550835609436,-0.10138175636529922,0.3176586329936981,-0.0034423184115439653,0.2475205510854721,-0.17147023975849152,-0.1289401799440384,-0.045883696526288986,0.04905393347144127,0.06160694360733032,-0.09486108273267746,0.03380117565393448,-0.11214705556631088,-0.03934497386217117,0.4111681878566742,0.19924330711364746,0.03835698217153549,0.00012283105752430856,-0.23568567633628845,0.04445638880133629,0.00850929506123066,0.02403571829199791,0.04379177838563919,-0.03125907480716705,0.04580315947532654,0.13523632287979126,-0.183187335729599,0.07952886819839478,-0.014015458524227142,-0.044804852455854416,0.02849900722503662,0.08258657902479172,-0.3091634511947632,0.07474604994058609,0.008083155378699303,0.022396164014935493,0.03250753879547119,0.011955169960856438,0.014073350466787815,-0.020325763151049614,-0.24391698837280273,0.003137524938210845,-0.1374535858631134,-0.013154903426766396,0.20566418766975403,-0.0658821165561676,-0.009754839353263378,0.03693744167685509,0.02125283144414425,-0.014850177802145481,-0.05005520582199097,0.0604185126721859,0.06399836391210556,-0.0005727015668526292,-0.007092480082064867,0.0954345092177391,-0.09818291664123535,-0.075276680290699,-0.01588989980518818,-0.27872785925865173,0.10574325174093246,0.07009901851415634,0.0029762890189886093,0.055059440433979034,-0.025966394692659378,-0.19289034605026245,0.07134898006916046,-0.013884340412914753,0.02753036841750145,-0.011905352585017681,0.09868281334638596,0.055058617144823074,-0.02053901180624962,-0.0010679335100576282,-0.01702064648270607,-0.07073118537664413,-0.08110804855823517,0.179429829120636,0.09511788934469223,0.2465342879295349,0.0313311368227005,0.10833791643381119,0.01033126562833786,-0.07435847818851471,-0.015079211443662643,-0.033535465598106384,-0.1529371589422226,0.16884945333003998,-0.14466652274131775,0.1167902871966362,-0.08959389477968216,-0.04807324334979057,0.11139518767595291,-0.04945404455065727,0.04757979139685631,-0.02201935648918152,0.018997518345713615,0.04833297058939934,0.29752248525619507,-0.46866562962532043,-0.020210521295666695,0.09594111889600754,0.11604923009872437,-0.06885191798210144,0.018178265541791916,-0.13140155375003815,-0.2353409081697464,-0.07281671464443207,0.032766472548246384,0.5077434778213501,-0.07466109842061996,-0.048113711178302765,0.13528379797935486,0.016306376084685326,0.0706678032875061,-0.1999007910490036,-0.007680471520870924,-0.19518832862377167,0.12704840302467346,-0.0026963273994624615,-0.17763404548168182,0.2756390869617462,0.09306995570659637,0.04401770606637001,-0.0952850803732872,0.11607982218265533,-0.1257721185684204,0.047765154391527176,0.3433457314968109,0.10330235213041306,0.015338873490691185,-0.04334993287920952,0.06087520718574524,0.02983536571264267,-0.096396803855896,-0.1105717197060585,-0.08864708989858627,0.010869275778532028,0.1747284233570099,-0.1293601393699646,0.06429310142993927,-0.02825387753546238,0.24678544700145721,-0.023714130744338036,0.026959149166941643,-0.09934135526418686,0.05789867416024208,0.15124808251857758,-0.16366678476333618,0.16577769815921783,0.12810289859771729,-0.19318093359470367,0.07115884870290756,-0.03243279829621315,0.06806562840938568,0.017154335975646973,-0.0018167563248425722,0.11916276812553406,0.22730015218257904,-0.19083821773529053,0.018808944150805473,-0.10956361144781113,-0.4449343979358673,0.14689373970031738,0.1270042508840561,0.10501086711883545,0.13226045668125153,0.05780670791864395,-0.2084013968706131,-0.023881949484348297,0.01394468080252409,0.028269972652196884,0.3282580077648163,-0.09065039455890656,-0.045220132917165756,0.09555163979530334,0.2647062838077545,-0.034387845546007156,0.10900981724262238,-0.02811407670378685,0.08852118998765945,-0.06809680908918381,0.03596844896674156,0.027386421337723732,-0.3175492286682129,0.01919967494904995,-0.0178484208881855,-0.08401066064834595,0.09938044100999832,0.07529862970113754,-0.030629556626081467,0.25037357211112976,-0.10792627930641174,-0.12001735717058182,-0.16373424232006073,-0.007090294733643532,0.0018392398487776518,0.011624393984675407,0.020688578486442566,-0.0312099177390337,-0.013997993431985378,-0.2094573676586151,-0.0355401337146759,0.07567136734724045,0.11361152678728104,0.05818743258714676,0.14930416643619537,0.06316879391670227,-0.08758927881717682,0.05377527326345444,0.10846873372793198,-0.10747500509023666,0.2069471776485443,0.22957055270671844,-0.03068196214735508,0.09636499732732773,-0.11658560484647751,-0.028481630608439445,0.07931125909090042,-0.2282884567975998,0.0432499535381794,-0.1335010677576065,0.03202373906970024,0.10962998121976852,0.09996441751718521,-0.04307904839515686,0.12352292239665985,0.02842702716588974,0.1896573007106781,0.32673248648643494,-0.17403623461723328,0.06278007477521896,-0.01685870997607708,-0.140843465924263,0.1531667560338974,-0.00035678778658621013,-0.012393779121339321,0.059384532272815704,-0.19194307923316956,-0.4619032144546509,-0.02180003747344017,-0.032463498413562775,-0.1854551136493683,-0.11433631181716919,0.02880292572081089,-0.16930803656578064,-0.17670276761054993,-0.121517114341259,0.023802967742085457,0.027975207194685936,-0.03150712698698044,-0.046919338405132294,-0.22286713123321533,-0.005181480199098587,-0.16434575617313385,-0.1162373498082161,0.02240840718150139,-0.06307961791753769,-0.04717279598116875,-0.00509622460231185,-0.31442195177078247,0.02709035575389862,-0.0018956325948238373,-0.03435656800866127,-0.18778583407402039,-0.16926920413970947,0.4602821469306946,-0.06110904738306999,-0.13975700736045837,0.0389678068459034,0.028815312311053276,-0.01449674367904663,-0.03654928877949715,0.20898212492465973,0.12259063124656677,-0.022541413083672523,0.1398572027683258,-0.05728811025619507,-0.08198336511850357,-0.025578513741493225,-0.11284720152616501,0.08482874929904938,0.26136457920074463,-0.1580824851989746,0.06522427499294281,-0.018367361277341843,0.03887956961989403,-0.10626745223999023,-0.17470495402812958,0.07870783656835556,-0.15920326113700867,0.06685908883810043,0.19516123831272125,0.09142579883337021,-0.16143295168876648,-0.005496280733495951,0.13726632297039032,0.04558892548084259,-0.20130646228790283,0.26836085319519043,-0.24610698223114014,-0.13724884390830994,0.1654234379529953,0.13820283114910126,0.010965765453875065,-0.021886905655264854],[0.028765900060534477,-0.026909196749329567,0.13570627570152283,0.046106573194265366,0.04664880782365799,-0.04311294108629227,0.024200135841965675,-0.024871380999684334,0.08397383987903595,0.05823345482349396,-0.01344529539346695,-0.044608257710933685,-0.007997711189091206,0.03341129794716835,0.20622074604034424,0.06096985936164856,0.11418315768241882,-0.15202662348747253,-0.01568176969885826,0.08483540266752243,-0.2693660259246826,0.09397981315851212,-0.03219391778111458,0.06418918073177338,-0.023691775277256966,0.1437893807888031,0.037026457488536835,0.0403931550681591,-0.013716969639062881,0.11096513271331787,0.027327917516231537,0.22990500926971436,-0.04333458095788956,-0.06169458478689194,-0.06656653434038162,0.020543787628412247,-0.10135241597890854,0.04241011291742325,0.034263961017131805,-0.02635904587805271,0.03430246561765671,-0.029341096058487892,0.08274855464696884,0.006387932691723108,0.10253741592168808,-0.05675880238413811,0.041268255561590195,-0.1395980268716812,-0.12449691444635391,0.023511681705713272,0.03506998345255852,-0.1747201383113861,0.0746825635433197,0.048110850155353546,-0.016199598088860512,0.14841778576374054,-0.024678664281964302,-0.07143080979585648,0.040976785123348236,0.061274126172065735,0.07246268540620804,0.0690704956650734,0.050048474222421646,-0.004158864263445139,0.009215027093887329,0.025446107611060143,0.016351988539099693,0.0170728899538517,0.007709088269621134,0.0521501861512661,-0.10410525649785995,-0.00327693996950984,-0.07726187258958817,-0.3351602554321289,0.04584469273686409,0.049926113337278366,0.06082821264863014,0.00487144710496068,-0.07679521292448044,-0.08596508204936981,-0.17291297018527985,0.015646498650312424,-0.09486181288957596,0.14590781927108765,-0.018930891528725624,0.028657451272010803,-0.03398585692048073,0.01710539124906063,0.2512986958026886,0.10132037848234177,0.05145292356610298,-0.03558473289012909,-0.0481320321559906,0.05901147797703743,-0.033221226185560226,0.005481105297803879,0.032586291432380676,0.15626348555088043,-0.036805398762226105,0.009881007485091686,-0.02462048828601837,-0.022232573479413986,0.09522667527198792,-0.05816495046019554,0.38815924525260925,-0.025537988170981407,-0.007863933220505714,-0.27513447403907776,-0.06942081451416016,0.025775419548153877,-0.16597603261470795,0.021323153749108315,-0.010986979119479656,-0.06243012472987175,-0.05212072283029556,-0.007586287334561348,-0.06799324601888657,-0.02495480887591839,-0.05509321764111519,0.006404319778084755,-0.10128051787614822,0.003574030939489603,-0.08660372346639633,0.03916788101196289,0.01811586506664753,0.13639812171459198,-0.040813665837049484,0.00938458926975727,-0.06304360181093216,-0.08714403212070465,-0.04988757148385048,0.10571247339248657,0.08204267919063568,0.07198955118656158,0.032504353672266006,0.08001071214675903,-0.21972641348838806,-0.07275859266519547,0.039034053683280945,-0.009644159115850925,-0.061159271746873856,0.09393704682588577,0.014972821809351444,-0.02484525926411152,-0.04588509723544121,-0.02367556467652321,-0.2060759961605072,-0.11551060527563095,0.18786488473415375,-0.01647545024752617,-0.027739929035305977,-0.06976768374443054,-0.05820799618959427,-0.25365498661994934,-0.0501847006380558,-0.052596405148506165,-0.06593191623687744,0.02873222902417183,-0.06791660189628601,-0.04727210849523544,0.04308689758181572,-0.1615253984928131,-0.010240531526505947,0.020881973206996918,0.03954446688294411,-0.12863396108150482,-0.08523443341255188,0.034756146371364594,-0.24701012670993805,-0.06173501908779144,-0.0011513803619891405,0.15288065373897552,0.04363621026277542,0.03415437042713165,0.10915913432836533,0.055900938808918,-0.05456197261810303,0.12529349327087402,0.0046956478618085384,-0.02287324145436287,-0.02669999562203884,-0.010527409613132477,-0.0509861595928669,-0.021135548129677773,-0.03052869439125061,0.0363520048558712,-0.02536863088607788,-0.04963725805282593,0.020226528868079185,0.18016265332698822,-0.005882000084966421,-0.026139220222830772,-0.11956989765167236,-0.009838576428592205,0.055241961032152176,-0.2361512929201126,-0.05379677936434746,-0.10581700503826141,0.09608403593301773,-0.09882073849439621,-0.06335103511810303,0.07962872833013535,-0.003427128540351987,-0.09687113016843796,0.006811246741563082,0.20390504598617554,-0.05520937591791153,0.05640367418527603,-0.07855045795440674,0.024291763082146645,0.03622334823012352,-0.04169122502207756,-0.03391065448522568,0.0002986828039865941,-0.066014364361763,-0.03702825307846069,0.04629142954945564,0.13879206776618958,0.06546993553638458,0.019470451399683952,0.15468361973762512,-0.007422503083944321,0.041942182928323746,-0.009864496998488903,0.03867778927087784,0.002174963476136327,-0.024677792564034462,-0.23144765198230743,0.005599428433924913,0.014481293968856335,-0.08219508826732635,0.22248153388500214,-0.02300364151597023,-0.008294286206364632,0.022844964638352394,0.10248345136642456,-0.0034253490157425404,0.04831376299262047,-0.008293548598885536,0.030608970671892166,0.17934328317642212,0.018257124349474907,-0.2768051326274872,-0.054129134863615036,0.12753117084503174,0.09053916484117508,-0.011554062366485596,0.0858767181634903,-0.05032873526215553,0.10401538759469986,-0.03354160860180855,-0.10632514953613281,0.07182047516107559,-0.0484921857714653,-0.043779563158750534,0.048588838428258896,-0.05467290058732033,-0.06399936974048615,-0.00365658407099545,-0.025740493088960648,0.06557221710681915,-0.005212981253862381,0.11558133363723755,0.06262798607349396,-0.09140141308307648,-0.01847553625702858,0.07293539494276047,-0.06186521798372269,0.14629293978214264,-0.1669449359178543,0.07872980087995529,-0.03804923593997955,-0.11666945368051529,-0.07084260135889053,0.005368827376514673,-0.022003376856446266,-0.0553019642829895,-0.06403708457946777,0.029784156009554863,0.009391014464199543,0.15148426592350006,-0.04032512754201889,-0.14101749658584595,-0.043042004108428955,0.004531859885901213,0.02863878384232521,0.03521532937884331,0.029062587767839432,-0.14503704011440277,0.09527464956045151,0.0019224485149607062,-0.15010112524032593,0.1324472874403,0.013183539733290672,0.19351860880851746,0.05249838903546333,0.2755104601383209,0.0012806137092411518,-0.0004276649560779333,-0.20261071622371674,-0.06989605724811554,0.030307138338685036,-0.08434111624956131,-0.06486330926418304,-0.020436156541109085,-0.07231455296278,-0.061503294855356216,-0.18394587934017181,0.09050485491752625,-0.029719995334744453,0.08864527940750122,-0.005264636129140854,-0.11952362954616547,0.04830017685890198,0.0017157678958028555,0.034639257937669754,-0.06224052608013153,0.2208193987607956,0.0029483973048627377,-0.04434901848435402,-0.15468691289424896,-0.037476636469364166,0.24515245854854584,0.09687475115060806,0.07150226831436157,0.2007073014974594,-0.02675868570804596,-0.048540860414505005,0.10507381707429886,-0.02789296768605709,0.032781489193439484,0.08474276959896088,0.11056944727897644,-0.05566467344760895,-0.09340959787368774,0.017957819625735283,-0.005333594512194395,0.027432313188910484,-0.1821964532136917,-0.010664792731404305,0.021439844742417336,-0.0004154653288424015,0.03838704526424408,-0.07382900267839432,-0.1050216555595398,-0.11502781510353088,-0.07069825381040573,0.021997861564159393,-0.024243570864200592,-0.04252288490533829,-0.0445418506860733,-0.0816895067691803,-0.1076190248131752,-0.018783848732709885,-0.033708613365888596,-0.05170121043920517,-0.09057651460170746,-0.0022543377708643675,0.12421301007270813,0.18591973185539246,-0.1742856353521347,-0.08567588776350021,-0.0031576238106936216,0.04696781933307648,0.07712075114250183,0.044788651168346405,0.022833049297332764,-0.022073643282055855,-0.10714544355869293,-0.022296488285064697,-0.1348373293876648,-0.1261391043663025,0.15104450285434723,0.16680586338043213,0.3495108187198639,-0.04497731849551201,0.17701861262321472,0.09477824717760086,0.06743299216032028,-0.011174799874424934,0.006341179367154837,-0.0488211028277874,0.11101606488227844,0.02194533869624138],[0.006430154200643301,0.020064733922481537,0.16093705594539642,0.03102181665599346,-0.005110489670187235,-0.22336973249912262,0.022097459062933922,0.003861169796437025,0.11722864955663681,0.0720188245177269,0.019293202087283134,0.0957903042435646,0.00810534693300724,0.06822539865970612,0.26896563172340393,0.08709367364645004,0.05870531126856804,-0.05813070759177208,0.03710173815488815,0.017163919284939766,-0.3093337118625641,0.04223993048071861,-0.04230981692671776,-0.04007613658905029,0.0014917365042492747,0.3013788163661957,-0.01840454712510109,0.008274925872683525,0.014659430831670761,0.13699907064437866,0.02795955166220665,0.2684355676174164,-0.009831349365413189,-0.06804127991199493,-0.09341025352478027,0.012398443184792995,-0.17843376100063324,-0.03901099041104317,-0.03368239849805832,-0.007864450104534626,0.0007535114418715239,-0.11595592647790909,0.09736815840005875,-0.04657231271266937,0.1354570984840393,-0.06070896238088608,-0.03830369561910629,-0.13514643907546997,-0.13933300971984863,0.043554335832595825,0.05661424249410629,-0.12467104941606522,0.05303964018821716,0.0017339448677375913,-0.012757586315274239,0.12431740015745163,-0.07814472913742065,-0.046096306294202805,0.0031090944539755583,-0.00852539949119091,0.053011517971754074,0.03857126832008362,-0.03151194378733635,-0.002433524467051029,-0.0039018529932945967,0.018981629982590675,0.06270303577184677,0.06155918166041374,-0.04863801226019859,0.07651430368423462,-0.2721535563468933,0.044513873755931854,-0.022823233157396317,-0.4720706343650818,0.06578880548477173,0.014167443849146366,-0.00479025486856699,0.1839112639427185,0.10001054406166077,-0.05446196720004082,-0.16563530266284943,0.013337275013327599,-0.11511261016130447,0.3661494553089142,-0.09271503239870071,-0.07845531404018402,0.08730683475732803,-0.07973388582468033,0.21806271374225616,0.07180968672037125,0.07857145369052887,-0.03873049095273018,-0.13944731652736664,0.1793602555990219,0.01960877887904644,-0.013389858417212963,0.036477893590927124,0.22553929686546326,-0.033132508397102356,-0.032241079956293106,-0.004044394474476576,0.03006133809685707,0.07600647211074829,-0.08292097598314285,0.34021541476249695,0.06136950105428696,-0.021091800183057785,-0.4033288359642029,-0.13295601308345795,0.025855492800474167,-0.23585043847560883,0.06884502619504929,0.029629124328494072,-0.04037315770983696,-0.004569875076413155,-0.10774191468954086,0.025497278198599815,-0.10371331125497818,-0.039315562695264816,0.010093869641423225,-0.10397642850875854,-0.038595542311668396,-0.10039333999156952,-0.01578693278133869,0.03013450652360916,0.11084938794374466,-0.0302287470549345,0.021718602627515793,-0.043139904737472534,-0.12891675531864166,-0.009215888567268848,0.08024028688669205,0.12103940546512604,0.11693938076496124,0.06331019848585129,0.2088184356689453,-0.23178744316101074,-0.2532137632369995,0.04524791240692139,-0.06552477180957794,-0.030005784705281258,0.10178539156913757,-0.022190315648913383,-0.07969982922077179,-0.01453003566712141,-0.030709896236658096,-0.22021830081939697,-0.06902332603931427,0.18307837843894958,0.030125414952635765,0.008717307820916176,-0.02439408004283905,-0.074720598757267,-0.22686409950256348,-0.01458959560841322,-0.034854479134082794,-0.07266230136156082,-0.013095641508698463,-0.0009890816872939467,-0.06438770145177841,0.08282315731048584,-0.21393072605133057,-0.006823123898357153,0.003328432096168399,0.02993478812277317,-0.05983049422502518,-0.07804494351148605,0.0354585163295269,-0.24692821502685547,-0.09283825755119324,-0.00384991685859859,0.1276269108057022,0.012349138036370277,-0.04289694130420685,0.03699371963739395,0.05600355938076973,-0.08373436331748962,0.10119850933551788,0.08998512476682663,0.0317031554877758,0.06304632127285004,0.003683958202600479,-0.05137772485613823,0.0021835414227098227,-0.0012555606663227081,-0.011193229816854,0.07175736874341965,0.04541977494955063,0.015463738702237606,0.20723778009414673,-0.09679403901100159,-0.006338027305901051,-0.18268342316150665,-0.017711030319333076,0.11359592527151108,-0.35778021812438965,-0.038364529609680176,-0.11395222693681717,0.08498984575271606,-0.0017738464521244168,-0.02714611031115055,0.025511818006634712,0.055313147604465485,-0.04198552295565605,-0.06954652816057205,0.1319207102060318,-0.030372461304068565,0.06595227122306824,-0.05732334032654762,0.10601861029863358,-0.0649213194847107,-0.08995594829320908,0.013989784754812717,-0.011819025501608849,-0.04276347905397415,-0.08575444668531418,0.0008075729128904641,0.2430090308189392,-0.06627322733402252,0.03290674462914467,0.2954005300998688,0.06743920594453812,-0.024213775992393494,0.06835521012544632,0.09896493703126907,-0.04026355594396591,0.022292131558060646,-0.23091475665569305,-0.008442973718047142,0.010478240437805653,-0.14417071640491486,0.17150434851646423,-0.053850024938583374,-0.0006580041372217238,0.0497591607272625,0.06473243236541748,0.04322853684425354,0.11306145042181015,-0.004558738321065903,0.12818658351898193,0.06176025792956352,0.025425825268030167,-0.23992757499217987,0.010408279486000538,0.12512998282909393,0.14833930134773254,-0.05109435319900513,0.046667106449604034,0.028769884258508682,0.12227466702461243,-0.040654122829437256,-0.04830733686685562,0.014100578613579273,-0.06854557991027832,-0.08756307512521744,-0.008484017103910446,-0.060271911323070526,-0.07885657995939255,0.008925029076635838,-0.02575194276869297,0.08500751107931137,0.003367653815075755,0.04818706586956978,0.06167508289217949,0.0036870967596769333,0.0008902374538592994,0.08164476603269577,-0.09018698334693909,0.08279361575841904,-0.19811466336250305,0.029346324503421783,-0.042823951691389084,-0.16071373224258423,-0.13839766383171082,-0.1469702124595642,0.014825871214270592,-0.06499224901199341,0.027780722826719284,0.06546234339475632,-0.015929032117128372,0.14670424163341522,-0.02245212160050869,-0.18702958524227142,0.03686142712831497,-0.012321972288191319,-0.028237635269761086,0.05457497760653496,0.035517387092113495,-0.06702608615159988,0.08823245018720627,0.011315843090415001,-0.10867873579263687,0.1629856526851654,0.003103440860286355,0.16196919977664948,0.01586586982011795,0.3728707432746887,0.008671248331665993,-0.10009405761957169,-0.40109512209892273,-0.08519961684942245,-0.040327806025743484,-0.054299820214509964,-0.0765349417924881,-0.016325904056429863,-0.02403922937810421,-0.07854929566383362,-0.22759371995925903,0.01741492934525013,0.033182062208652496,0.24876649677753448,0.050681982189416885,-0.03738284483551979,0.027637751772999763,0.0586821585893631,0.06577444076538086,0.04542944207787514,0.18536341190338135,0.01944795809686184,-0.013478389009833336,-0.18149790167808533,0.024149885401129723,0.22774763405323029,0.07108219712972641,0.09619197249412537,0.21249325573444366,0.06501248478889465,-0.05288969352841377,0.02139013074338436,-0.016301777213811874,-0.1339527815580368,0.13042768836021423,0.06983954459428787,-0.1644386351108551,-0.09364710003137589,0.060232218354940414,-0.05841268599033356,0.0315450057387352,-0.30008378624916077,-0.03153807669878006,-0.058375027030706406,-0.006300115026533604,0.022711127996444702,-0.015477553941309452,-0.009389660321176052,-0.11792058497667313,-0.15111827850341797,0.06686652451753616,-0.038111016154289246,-0.05255497992038727,-0.07485411316156387,-0.08713997155427933,-0.010734555311501026,-0.05975782498717308,-0.05600997433066368,-0.19004827737808228,-0.10420749336481094,0.002223987365141511,0.05960676446557045,0.1511525958776474,-0.08910619467496872,-0.11804568022489548,0.04477754607796669,0.10341776907444,0.015084152109920979,0.0032403485383838415,-0.054017458111047745,0.041544463485479355,-0.09201612323522568,0.08617087453603745,0.06092430278658867,-0.15943223237991333,0.04842425137758255,0.09498926252126694,0.3624526560306549,0.0700015127658844,0.08036923408508301,0.044957954436540604,0.09583576768636703,0.01533292606472969,0.020038500428199768,-0.04521280527114868,0.11059749871492386,0.004672891926020384]],"projection_up.bias":[-0.06358232349157333,-0.04367072507739067,0.02041577361524105,-0.020960712805390358,0.04763839393854141,0.06633716821670532,0.044036127626895905,-0.06739610433578491,-0.030115028843283653,-0.0712677463889122,-0.06061502546072006,-0.12382811307907104,-0.034156303852796555,-0.0009037578711286187,-0.034769292920827866,-0.010787874460220337,-0.015962883830070496,0.014685855247080326,-0.033365700393915176,-0.07185810059309006,0.07150813192129135,-0.08439197391271591,0.08624884486198425,-0.01741454005241394,0.0495757982134819,0.061351288110017776,-0.012007330544292927,0.0316179096698761,0.029557425528764725,-0.15405865013599396,-0.06016594171524048,-0.05194903910160065,0.07628469914197922,-0.09630488604307175,0.015350881963968277,-0.02123640850186348,-0.06629228591918945,-0.08749043196439743,0.10320728272199631,-0.05372773855924606,0.039611123502254486,0.10941505432128906,-0.024133050814270973,-0.09976907819509506,0.11134226620197296,-0.07240422815084457,-0.11584608256816864,0.04675576090812683,-0.03125797212123871,-0.08792935311794281,0.020163463428616524,-0.029297256842255592,0.0067353625781834126,0.029410531744360924,0.030353490263223648,-0.013665713369846344,0.007674486376345158,0.023650115355849266,-0.07207394391298294,-0.01151839829981327,-0.10247684270143509,0.021583115682005882,-0.21448740363121033,-0.17868438363075256,0.032766517251729965,0.021956127136945724,-0.049500107765197754,-0.055237215012311935,-0.14153122901916504,0.011291547678411007,-0.015414885245263577,0.013868802227079868,0.0772891715168953,-0.023934319615364075,0.11631420254707336,-0.08087631314992905,0.1353081911802292,0.07201816886663437,0.041836630553007126,-0.04698222130537033,-0.018489733338356018,-0.11612769961357117,-0.03287495672702789,0.01143436785787344,0.0924844965338707,0.003964934032410383,0.13458101451396942,-0.01833346113562584,0.011915599927306175,0.004215769935399294,0.04295289143919945,0.10466932505369186,-0.10133626312017441,-0.006014594808220863,-0.05931614339351654,-0.17590315639972687,0.025637825950980186,-0.03549153357744217,-0.17148357629776,0.1472238302230835,-0.07971818745136261,-0.05914514511823654,0.0945403128862381,0.008347093127667904,0.05906457081437111,0.03794300928711891,0.05613849312067032,-0.06365734338760376,0.03696901723742485,-0.14565013349056244,0.019664213061332703,-0.01062654796987772,0.10360784083604813,0.04095827043056488,-0.10344366729259491,0.1054564118385315,0.0022590633016079664,-0.05250296741724014,-0.07656919211149216,0.002364168409258127,-0.02950027771294117,-0.03021211363375187,0.0064426907338202,0.040404245257377625,0.025506651028990746,-0.009528469294309616,0.05286901444196701,0.042356938123703,-0.0893491804599762,-0.006606129463762045,0.011473803780972958,-0.12453893572092056,-0.03199673071503639,-0.058020349591970444,0.04563354700803757,-0.012971811927855015,-0.010768178850412369,0.021162236109375954,0.027612006291747093,-0.02473103441298008,0.061524566262960434,-0.02823701500892639,0.06792974472045898,-0.11333538591861725,-0.10676552355289459,0.1298844814300537,-0.0017391558503732085,0.008117799647152424,0.019384466111660004,-0.07496391981840134,0.07445530593395233,-0.038029663264751434,0.10427015274763107,-0.14641381800174713,-0.013640745542943478,0.10090630501508713,-0.07287213951349258,0.04366597160696983,-0.09853315353393555,-0.01396581158041954,0.0029615690000355244,0.055935606360435486,-0.1731296330690384,-0.048134833574295044,-0.04888493940234184,-0.0638776645064354,-0.045400768518447876,0.04928118363022804,0.09147422015666962,0.042703356593847275,-0.09567172080278397,0.06634654104709625,-0.01029776968061924,-0.08352702856063843,0.16212718188762665,-0.035305965691804886,-0.10444656759500504,-0.07344293594360352,0.10449700057506561,0.07375911623239517,-0.010278546251356602,-0.019415199756622314,0.024237561970949173,-0.09882999211549759,0.07726850360631943,-0.0597996823489666,0.0023007539566606283,-0.025792045518755913,-0.02591266669332981,0.1284894496202469,-0.014961537905037403,-0.07792700082063675,-0.07265516370534897,0.059217669069767,0.10018312931060791,-0.03468552976846695,-0.06906598061323166,-0.05247912183403969,-0.022891538217663765,0.12825243175029755,-0.031342003494501114,-0.021229451522231102,-0.0004416628507897258,0.02865091897547245,0.09915834665298462,0.1733662635087967,-0.09417178481817245,0.020457256585359573,-0.06344863772392273,0.04268898442387581,-0.061824310570955276,-0.04842478781938553,0.15118275582790375,-0.018267272040247917,-0.08820575475692749,-0.03585486859083176,-0.05413109436631203,0.08805929124355316,0.0336855985224247,0.027736041694879532,0.00574461929500103,0.03702962026000023,0.19370010495185852,-0.023497750982642174,0.015390947461128235,-0.04890264570713043,-0.11152103543281555,0.05855438485741615,-0.14108899235725403,-0.044705335050821304,-0.003697255626320839,0.02660738304257393,0.04453355073928833,-0.02889101579785347,0.11472238600254059,-0.008594336919486523,0.11286698281764984,0.0729316771030426,-0.08469156920909882,0.016710525378584862,0.07568910717964172,-0.01266503520309925,-0.012368369847536087,-0.029642585664987564,0.00936196744441986,0.09467899054288864,-0.0815281867980957,0.011823559179902077,-0.10288818180561066,0.04919871687889099,-0.08398035913705826,0.0075913406908512115,-0.01801447570323944,0.0924418643116951,0.07329440861940384,0.039640627801418304,-0.08031556010246277,-0.03526948392391205,-0.029282258823513985,-0.020895028486847878,0.053654491901397705,-0.019125210121273994,0.036504004150629044,-0.00876628328114748,0.11475202441215515,0.08705629408359528,-0.03026001900434494,-0.0391368567943573,-0.04396656155586243,-0.01809932105243206,0.10880943387746811,-0.0611225925385952,0.029095321893692017,-0.014164197258651257,-0.037228070199489594,-0.04884904995560646,0.012092581018805504,0.04996784031391144,0.040949996560811996,-0.046577222645282745,0.05703875422477722,-0.047692522406578064,-0.012728041037917137,0.007910098880529404,-0.029164986684918404,-0.05970079451799393,-0.15257176756858826,0.02097201719880104,0.07262329012155533,0.014762694016098976,-0.055355243384838104,-0.03567550331354141,-0.1149660125374794,-0.05030326917767525,-0.0021052288357168436,0.13900907337665558,-0.023130204528570175,-0.04112131893634796,0.07826894521713257,0.0790533497929573,-0.025083404034376144,0.002027232199907303,0.04319190979003906,0.1177230104804039,-0.11860954016447067,-0.06982363760471344,-0.029971418902277946,0.07537422329187393,-0.022050965577363968,0.07891994714736938,-0.023717572912573814,-0.09760923683643341,-0.04842345789074898,-0.05273717641830444,-0.02494802139699459,-0.04929250106215477,-0.18360038101673126,-0.08589516580104828,0.2909405529499054,-0.1787879765033722,0.048851046711206436,0.06352568417787552,0.10564390569925308,-0.02880479022860527,0.1029747948050499,-0.015812717378139496,0.08193979412317276,0.051061101257801056,0.02200199104845524,0.08857601881027222,-0.011729409918189049,0.05264139547944069,0.03749265521764755,-0.06295228004455566,-0.01627650298178196,-0.005532753653824329,-0.07455433160066605,0.13656842708587646,0.009582976810634136,0.0018323528347536922,-0.25658130645751953,-0.011275780387222767,0.006304263602942228,0.04491150379180908,0.0653136819601059,-0.09883710741996765,0.02509123459458351,0.0016499615740031004,-0.14455905556678772,0.04370046779513359,0.022866684943437576,0.05761157348752022,-0.08551522344350815,0.07377468794584274,-0.034884076565504074,0.00018489178910385817,-0.045382142066955566,0.030236197635531425,0.17960095405578613,6.101969484006986e-05,-0.005294651258736849,-0.0339217372238636,-0.1488042026758194,-0.006386857014149427,0.027784928679466248,0.040410447865724564,0.006993954069912434,-0.01665244624018669,0.03000844642519951,0.0016952083678916097,0.0006142233032733202,-0.07705817371606827,-0.08986519277095795,-0.001804469502530992,0.03027167171239853,0.14893482625484467,0.07791560143232346,-0.07497934997081757,-0.08667333424091339,-0.14553040266036987,-0.013843085616827011,0.014494084753096104,0.038642965257167816,0.07371596992015839],"projection_up.weight":[[0.04313176870346069,0.10107730329036713,0.08706186711788177,0.07028323411941528,0.12059178203344345,0.11283253878355026,-0.18741115927696228,0.1952020674943924],[0.03457597643136978,0.12743306159973145,-0.09729824215173721,-0.00970698706805706,-0.2175496369600296,-0.08168891072273254,-0.12096167355775833,-0.1821616291999817],[0.12589368224143982,0.04308771714568138,0.05452899634838104,0.03664641082286835,-0.11660447716712952,-0.024410750716924667,-0.22474274039268494,-0.025252817198634148],[-0.04804667457938194,-0.03507154807448387,0.030462007969617844,0.065208300948143,0.0357363298535347,0.04247770830988884,-0.04916248098015785,-0.08676347881555557],[0.0010028554825112224,-0.006516492925584316,-0.13942427933216095,0.20311327278614044,-0.026144037023186684,0.005129847209900618,0.2985880672931671,0.015445508062839508],[0.0738249197602272,0.16296222805976868,0.14296139776706696,-0.3398820161819458,-0.00870850682258606,-0.1831483691930771,0.22983132302761078,-0.027171185240149498],[-0.08426261693239212,0.0649082288146019,-0.03774741664528847,-0.05351446941494942,0.04407135769724846,-0.00372291705571115,-0.07923250645399094,0.20935657620429993],[-0.32256442308425903,0.18802747130393982,-0.10838000476360321,-0.0020320776384323835,0.2352367341518402,0.10458657145500183,-0.2863079011440277,-0.032724980264902115],[0.02930101938545704,0.09707166999578476,0.10919516533613205,-0.1539502888917923,0.08891709893941879,-0.028690872713923454,-0.06691106408834457,0.058122146874666214],[-0.10594761371612549,-0.061941079795360565,-0.023816285654902458,0.12528206408023834,0.17594990134239197,0.12407800555229187,0.01433583628386259,0.006649685092270374],[-0.08670222759246826,0.10987337678670883,0.04690948873758316,-0.03222430497407913,0.10220176726579666,-0.012770513072609901,-0.10723014920949936,-0.09894443303346634],[-0.19193734228610992,-0.03933406248688698,0.0481816828250885,-0.05418360233306885,0.24956466257572174,-0.024861561134457588,0.11953911930322647,-0.23188547790050507],[0.22727403044700623,0.22993411123752594,0.13989847898483276,0.027022873982787132,-0.09339746832847595,-0.010972404852509499,-0.1228354200720787,0.08857929706573486],[-0.14289316534996033,0.12889063358306885,0.07614071667194366,-0.20281046628952026,0.16124849021434784,-0.04134996980428696,0.0824938490986824,-0.12227834016084671],[-0.05342767760157585,-0.1369323432445526,0.005527275614440441,-0.04321352392435074,0.1597764492034912,0.004555373452603817,-0.08600201457738876,0.05289807543158531],[-0.00972222164273262,-0.005262152291834354,0.08462248742580414,-0.07623717188835144,-0.044845450669527054,-0.07932496070861816,-0.08015408366918564,0.01636197417974472],[-0.016789304092526436,-0.21158044040203094,-0.057641491293907166,0.1516961008310318,0.07828748226165771,-0.035437896847724915,0.27480340003967285,-0.15219800174236298],[0.0012514031259343028,0.04027784615755081,-0.041147179901599884,0.04185307025909424,0.02783273532986641,0.04793323576450348,0.1418834775686264,-0.019552895799279213],[-0.21771961450576782,-0.012751434929668903,0.11488452553749084,-0.23013898730278015,0.04049400985240936,-0.11332639306783676,-0.03774535283446312,-0.04208401218056679],[-0.008700461126863956,0.07023968547582626,0.11032750457525253,-0.17910802364349365,0.22350789606571198,0.04588640108704567,0.24262607097625732,-0.3104628622531891],[0.19860483705997467,-0.025509551167488098,-0.08065567165613174,0.129411980509758,-0.08291573822498322,-0.022089069709181786,-0.0851365327835083,0.07935263961553574],[-0.14478576183319092,0.02319576032459736,-0.02930236980319023,-0.15975721180438995,0.3828256130218506,0.11627347022294998,0.1687726378440857,-0.28147053718566895],[0.10065388679504395,-0.02773311547935009,0.03242677450180054,0.08960160613059998,-0.21135026216506958,-0.017328796908259392,-0.08139178156852722,0.13014310598373413],[0.06160151958465576,-0.004622271750122309,-0.061575356870889664,0.1412346065044403,-0.08806487917900085,0.09427814930677414,0.06379256397485733,0.004153361544013023],[-0.04773012921214104,-0.11195696145296097,-0.15849438309669495,0.039908308535814285,-0.17990775406360626,0.08065004646778107,-0.22010646760463715,0.15488457679748535],[0.09251284599304199,0.09839965403079987,0.11683157831430435,-0.0047719161957502365,-0.16663488745689392,-0.05932626873254776,0.11769381910562515,-0.19324812293052673],[-0.0283469520509243,-0.1530589908361435,0.10711437463760376,-0.021681170910596848,0.14168956875801086,0.2728379964828491,0.07866040617227554,0.0028194717597216368],[-0.02314971201121807,-0.26946768164634705,0.0683765709400177,0.052569158375263214,-0.10637851804494858,-0.11304328590631485,-0.12489572912454605,0.2986721098423004],[-0.2838970124721527,0.12900720536708832,0.12403522431850433,-0.2669990658760071,0.26463526487350464,-0.202114537358284,0.20547930896282196,-0.3486400544643402],[0.07401381433010101,0.10034302622079849,0.056725721806287766,-0.3106096386909485,3.1093273719307035e-05,-0.05498126894235611,0.3733662962913513,-0.1223258376121521],[-0.2416299730539322,0.06135182827711105,0.13428421318531036,-0.276031494140625,0.3030568063259125,-0.17026802897453308,-0.1935652792453766,-0.15908211469650269],[0.04421195387840271,-0.13198235630989075,-0.08601351827383041,-0.056372858583927155,0.028719164431095123,0.020189406350255013,-0.2833521366119385,0.24711591005325317],[0.15333333611488342,0.10110177099704742,0.14321370422840118,-0.285604864358902,-0.11421913653612137,-0.14175578951835632,0.15327167510986328,-0.043415557593107224],[-0.16824105381965637,-0.0011776243336498737,0.16095244884490967,-0.06865765154361725,0.08506835997104645,-0.07821323722600937,-0.14408963918685913,-0.24593272805213928],[-0.02672034688293934,-0.15085211396217346,-0.04388434439897537,0.4017459750175476,-0.14204411208629608,0.07101358473300934,-0.09114012867212296,-0.27101290225982666],[0.05815616250038147,-0.11134879291057587,-0.05259224399924278,0.2768658697605133,-0.06012440472841263,0.1367550492286682,0.07066769152879715,-0.08596573770046234],[-0.0476420633494854,0.035041213035583496,-0.014127764850854874,0.01659764163196087,0.018318144604563713,-0.02376559190452099,-0.03330666571855545,0.06802858412265778],[0.02680390141904354,0.07724699378013611,-0.017575204372406006,0.10864119231700897,-0.04462650790810585,0.13049118220806122,-0.07777627557516098,-0.23124131560325623],[0.24955984950065613,-0.1624583899974823,0.050380367785692215,0.1920003443956375,-0.3711707293987274,-0.04339084401726723,0.23041510581970215,-0.06914205849170685],[0.08839888870716095,0.03184645622968674,-0.10246971249580383,0.2029958814382553,-0.038945138454437256,0.12256322056055069,-0.12318095564842224,-0.045933425426483154],[-0.012385256588459015,0.02794521115720272,-0.0020073624327778816,-0.15919682383537292,-0.014005073346197605,0.05148548260331154,0.24019983410835266,-0.03561190143227577],[-0.0037867818027734756,-0.05997225642204285,0.06627243757247925,-0.2181236296892166,-0.048917096108198166,-0.22618314623832703,0.09996923804283142,-0.007369670085608959],[-0.10147523134946823,0.008057021535933018,-0.023492710664868355,0.21340596675872803,0.10985200852155685,0.17597877979278564,0.027862919494509697,-0.2186345010995865],[-0.19226527214050293,-0.08204125612974167,-0.04295272007584572,0.12150692939758301,0.21019861102104187,0.16463571786880493,0.11019740998744965,-0.13469718396663666],[-0.020833691582083702,-0.19002842903137207,-0.08166136592626572,0.0755784884095192,-0.04254597797989845,0.0868765264749527,-0.07823869585990906,0.3076857924461365],[0.14107760787010193,0.15899106860160828,0.09654773026704788,-0.09599698334932327,-0.05489329621195793,-0.054849740117788315,-0.16600821912288666,0.10405151546001434],[-0.18264754116535187,-0.22311758995056152,-0.00547799002379179,0.1806521713733673,0.23709312081336975,0.10751675069332123,-0.15208056569099426,-0.18971632421016693],[0.19152942299842834,0.014116864651441574,0.15778854489326477,-0.07944519072771072,-0.27393290400505066,-0.07241240888834,0.19700808823108673,-0.1462491899728775],[-0.1355128139257431,0.0781974270939827,-0.08292696624994278,0.08920043706893921,0.08327654004096985,-0.12060443311929703,-0.2258974313735962,0.0375157855451107],[-0.12322019785642624,-0.10797934979200363,-0.047794777899980545,0.15572836995124817,0.12832242250442505,-0.030588602647185326,0.18015407025814056,-0.3303303122520447],[-0.2109789401292801,0.14623893797397614,0.02057829685509205,-0.17884336411952972,0.2003505676984787,0.049017924815416336,0.08741606026887894,0.03033176250755787],[-0.12179722636938095,-0.3031352460384369,0.14335882663726807,-0.2073269635438919,-0.0020277416333556175,-0.2669861614704132,-0.24551177024841309,-0.04059277102351189],[-0.14998260140419006,-0.11042375862598419,0.1770809441804886,-0.09509382396936417,0.03641919046640396,-0.22662736475467682,-0.03747576102614403,0.012115229852497578],[0.012419016100466251,0.02743106335401535,-0.01907270774245262,0.11336395144462585,0.07407370954751968,0.1778315007686615,0.13698448240756989,-0.04137039929628372],[0.008581923320889473,-0.06929479539394379,0.018244991078972816,0.3511897623538971,-0.29470008611679077,0.13671937584877014,0.10748833417892456,-0.20537492632865906],[-0.03220421448349953,-0.02617531456053257,-0.09907568246126175,0.1610976904630661,0.11234302073717117,0.008192815817892551,-0.18933342397212982,0.11184666305780411],[-0.16172254085540771,-0.031356003135442734,0.007765672635287046,0.030430641025304794,0.12495281547307968,0.04083086922764778,0.1499652862548828,-0.16064999997615814],[-0.04858444258570671,0.13761112093925476,0.13244833052158356,-0.0893196389079094,0.03619571030139923,-0.10287704318761826,0.19818682968616486,-0.29306045174598694],[-0.07265019416809082,0.2769775390625,-0.08705291897058487,-0.041359517723321915,0.2763681411743164,-0.1045818030834198,0.10356568545103073,0.08503301441669464],[0.06654369831085205,0.12353669852018356,-0.10338893532752991,-0.11959262192249298,0.2529822587966919,0.12688784301280975,-0.021153133362531662,0.1221277266740799],[-0.16099539399147034,-0.0034137147013098,-0.07456748187541962,-0.03316306695342064,0.11553157866001129,0.11222003400325775,-0.13242115080356598,-0.1432281881570816],[0.0696830227971077,0.14837493002414703,-0.008869717828929424,-0.022076569497585297,0.053983330726623535,-0.03720807284116745,0.02988901361823082,0.026329858228564262],[0.020875487476587296,-0.1827917844057083,0.02189541794359684,0.0016638207016512752,0.027997879311442375,-0.09297601133584976,-0.1246112808585167,0.11543121933937073],[0.13448801636695862,0.07663904130458832,-0.09541356563568115,-0.15633586049079895,-0.044080186635255814,-0.05075262859463692,-0.16974525153636932,0.3014155328273773],[0.07584846019744873,0.059952154755592346,0.16891877353191376,-0.24536259472370148,-0.08649499714374542,-0.08953922986984253,0.09177744388580322,-0.0923994705080986],[-0.19498246908187866,0.18719762563705444,0.22559593617916107,-0.3855145573616028,0.20808030664920807,-0.24498127400875092,0.22186414897441864,-0.19519326090812683],[0.045350637286901474,0.2126452624797821,0.00940017495304346,0.07109815627336502,-0.03774837777018547,-0.011019369587302208,-0.3340691328048706,0.15716512501239777],[-0.2714567482471466,-0.10640698671340942,0.08660934120416641,0.07362763583660126,0.07496844977140427,-0.2349228709936142,-0.19857846200466156,0.171900674700737],[-0.2057671695947647,0.0694374367594719,-0.07574243098497391,-0.05667455494403839,0.25652316212654114,-0.03782951459288597,-0.3176380395889282,-0.03781125321984291],[0.07726632058620453,-0.320807546377182,0.009087221696972847,0.10044869780540466,0.16690556704998016,0.15414057672023773,-0.1187501773238182,0.14492560923099518],[0.06168737635016441,-0.09283450990915298,-0.12042882293462753,0.2947379946708679,-0.19589191675186157,0.1573724001646042,-0.2412905991077423,0.08070895820856094],[-0.0412772037088871,0.04317322373390198,-0.11005986481904984,-0.017538748681545258,0.07570677995681763,0.06450637429952621,0.1408301144838333,0.12352979183197021],[0.05420880764722824,-0.17016930878162384,-0.22270093858242035,0.13124139606952667,-0.1547437608242035,0.12202738225460052,-0.14481669664382935,0.39515769481658936],[-0.09098239988088608,0.019646842032670975,-0.06094851717352867,-0.12667201459407806,0.22398033738136292,0.017100224271416664,-0.2125600129365921,0.2575364112854004],[-0.10737469792366028,-0.2355588972568512,-0.052352868020534515,0.2471066117286682,-0.2440495491027832,-0.056867364794015884,-0.19135308265686035,0.03821816295385361],[-0.3327016532421112,0.10139688849449158,0.04409044235944748,-0.3281683623790741,0.32223525643348694,-0.19685760140419006,0.19034890830516815,-0.19983886182308197],[-0.10521072894334793,0.19303828477859497,-0.04731959477066994,-0.13062982261180878,-0.266863614320755,-0.08606330305337906,0.13345199823379517,0.006776240188628435],[0.2115766853094101,-0.08345366269350052,0.12182750552892685,-0.0983290746808052,-0.2395913302898407,-0.17337290942668915,-0.04187960922718048,0.06424018740653992],[0.014234259724617004,-0.15576665103435516,0.1065826267004013,-0.2996217608451843,0.017160335555672646,0.006650165189057589,-0.026182113215327263,0.14712965488433838],[-0.16896267235279083,-0.07013565301895142,-0.041735947132110596,0.08491362631320953,0.14495499432086945,0.06025794520974159,0.0521455816924572,-0.01708686724305153],[0.056193623691797256,-0.04002458602190018,0.02223651483654976,0.09687140583992004,-0.06720194965600967,-0.04841751977801323,-0.2632828950881958,0.13673926889896393],[-0.16348911821842194,0.06380238384008408,-0.015327916480600834,0.21151474118232727,0.10099046677350998,0.1731884479522705,-0.019795697182416916,-0.13267670571804047],[-0.13707315921783447,-0.11020856350660324,0.015785494819283485,-0.147813618183136,0.23856723308563232,-0.1014033779501915,-0.25255662202835083,0.23715360462665558],[-0.29409894347190857,-0.13562443852424622,-0.12557674944400787,-0.03536978363990784,0.15333051979541779,0.1339680701494217,0.02490999549627304,0.04156479239463806],[0.03591812402009964,-0.12041015923023224,0.08452418446540833,-0.165191188454628,-0.25157612562179565,-0.08477026224136353,0.2150147408246994,-0.2480856329202652],[-0.062042951583862305,0.05434219539165497,0.1366805136203766,-0.1403622329235077,-0.2669887840747833,-0.20719099044799805,-0.23924247920513153,0.04131016507744789],[0.06596881151199341,0.13976940512657166,-0.0604790635406971,0.11954513937234879,-0.24703902006149292,-0.016077693551778793,-0.08746176958084106,0.15559843182563782],[-0.08179254829883575,-0.11353575438261032,-0.12976309657096863,0.1944049745798111,0.062019232660532,0.16990846395492554,0.03511017560958862,0.002087076660245657],[0.13067331910133362,-0.21301396191120148,-0.14498722553253174,0.1394018679857254,0.09677847474813461,-0.00921978335827589,0.1030949130654335,0.06751871109008789],[0.012713693082332611,-0.13450539112091064,-0.10279157757759094,0.28400400280952454,0.13669054210186005,0.1489706039428711,0.24383112788200378,-0.14875689148902893],[-0.07236071676015854,0.21132411062717438,0.02406170964241028,0.11054101586341858,0.014060615561902523,0.03537760674953461,0.13565783202648163,-0.009996481239795685],[0.20268550515174866,-0.005626169964671135,0.1615592986345291,-0.07701637595891953,-0.3493300676345825,-0.18628515303134918,0.10160253942012787,-0.10727089643478394],[-0.08329004049301147,-0.14859768748283386,-0.038645125925540924,0.2808736562728882,0.11672089993953705,0.18346843123435974,-0.06599173694849014,-0.17109908163547516],[-0.196085587143898,-0.10526259988546371,-0.17664141952991486,0.15756776928901672,0.16703452169895172,0.1734345704317093,-0.23599115014076233,0.28337711095809937],[-0.10641350597143173,-0.13291162252426147,0.08034195750951767,-0.08875666558742523,0.0337752141058445,-0.027324184775352478,-0.16315756738185883,-0.10417920351028442],[-0.05454139783978462,-0.05131949856877327,-0.01950676739215851,-0.0786566212773323,0.27053844928741455,0.1602565348148346,0.015915637835860252,0.009637193754315376],[0.05492283031344414,0.11600195616483688,0.004428590647876263,-0.05929718539118767,-0.11946891248226166,-0.06669171899557114,-0.13819241523742676,0.19144552946090698],[0.06729808449745178,-0.15239757299423218,-0.1068841740489006,0.05773176625370979,0.28352513909339905,0.04430433362722397,-0.1572735756635666,0.18996615707874298],[-0.019932975992560387,-0.3362119793891907,-0.04340032860636711,-0.008625977672636509,-0.02110271342098713,-0.05947545915842056,0.2855103313922882,0.054124440997838974],[-0.03545652702450752,0.008350386284291744,0.021361926570534706,0.08179690688848495,-0.13669323921203613,0.007345974445343018,0.30651041865348816,-0.3355218768119812],[-0.17774222791194916,-0.1854970008134842,0.0354267880320549,-0.17523989081382751,0.07655566930770874,-0.09435681998729706,-0.012240086682140827,-0.09300867468118668],[-0.06218210607767105,0.20164354145526886,-0.04672804847359657,0.13480420410633087,0.15256153047084808,0.0967104360461235,-0.02003188617527485,0.16834497451782227],[0.16329075396060944,-0.1379963755607605,0.00014001879026181996,-0.10811585187911987,-0.012003316543996334,-0.022591527551412582,0.24111638963222504,0.05936126038432121],[0.2623274326324463,-0.2071179896593094,-0.26349419355392456,0.29484274983406067,-0.09799604117870331,0.23664015531539917,0.24079999327659607,-0.14356164634227753],[0.13052810728549957,0.17561426758766174,0.1111202985048294,0.13121281564235687,-0.28219524025917053,-0.08592589199542999,0.04005942493677139,-0.22929765284061432],[0.15055060386657715,0.08208506554365158,0.18587049841880798,0.019738100469112396,-0.2887052297592163,-0.08606310933828354,-0.050777602940797806,-0.23360714316368103],[-0.1357237994670868,0.011649721302092075,-0.2852058708667755,0.30872753262519836,0.050575703382492065,-0.04251260682940483,0.044202130287885666,0.2238599807024002],[0.21627037227153778,-0.19420339167118073,-0.006664273329079151,0.07595507055521011,0.11548587679862976,0.1666867434978485,-0.18285821378231049,0.1751568466424942],[0.16386619210243225,-0.028706887736916542,0.06443055719137192,-0.12043842673301697,-0.16966885328292847,-0.18734745681285858,-0.21543093025684357,0.20136073231697083],[-0.08098888397216797,0.004169315565377474,-0.04621975123882294,-0.04141118749976158,0.20708312094211578,0.018657317385077477,-0.011801027692854404,-0.20167472958564758],[-0.01073406171053648,-0.11290308088064194,-0.1021803468465805,0.09410068392753601,-0.2516973912715912,-0.08334895968437195,-0.07667046785354614,-0.24035823345184326],[-0.24605493247509003,0.10908117890357971,-0.024037117138504982,-0.15587283670902252,0.14133909344673157,0.033291518688201904,0.35356515645980835,-0.21205061674118042],[-0.044786591082811356,-0.1439836621284485,0.1637374609708786,-0.25716632604599,-0.0794050395488739,-0.1952044814825058,-0.0791892483830452,-0.12492795288562775],[-0.15456177294254303,0.1327587515115738,0.0669650286436081,0.09221334755420685,-0.12825679779052734,-0.02857910841703415,-0.03562858700752258,-0.016102591529488564],[-0.08668060600757599,0.0621117502450943,0.015376156195998192,-0.08655675500631332,0.19420279562473297,0.011135723441839218,0.12584011256694794,-0.060220975428819656],[-0.014280120842158794,-0.0871875137090683,-0.12723971903324127,0.03744397684931755,0.1642407774925232,0.11236336082220078,0.20230095088481903,0.09995414316654205],[-0.04736379161477089,0.11407960206270218,0.0545867383480072,-0.08115775138139725,0.13087192177772522,0.059910040348768234,0.23134484887123108,-0.004719886463135481],[-0.2336825579404831,0.010492207482457161,-0.1654777228832245,-0.03115471825003624,0.41243118047714233,0.16753657162189484,-0.22928281128406525,0.163072407245636],[-0.10867646336555481,0.19490039348602295,-0.037058331072330475,0.0021136924624443054,0.03578275069594383,-0.04577542841434479,-0.1987428218126297,0.019601944833993912],[0.04675266146659851,-0.2494492083787918,0.055628061294555664,-0.21685928106307983,0.03494477644562721,-0.2098701000213623,-0.06164044886827469,0.19621562957763672],[-0.03108210302889347,-0.1188950464129448,-0.04846363887190819,0.020375311374664307,0.04829566180706024,0.03848240152001381,0.19550614058971405,-0.13316558301448822],[-0.006505003198981285,0.005962863564491272,-0.1341465413570404,0.07016272842884064,0.17972734570503235,0.08226121962070465,0.059141382575035095,-0.04815763980150223],[-0.02917722798883915,-0.06523893773555756,0.050262726843357086,0.056824591010808945,-0.06484328955411911,-0.002675618976354599,0.20311838388442993,-0.3656364679336548],[-0.011763135902583599,0.10399679839611053,-0.05042603984475136,0.15829424560070038,-0.14952054619789124,0.032132796943187714,0.22953294217586517,-0.2171628773212433],[0.06256058067083359,-0.23362046480178833,-0.17136934399604797,0.10191109776496887,-0.03783201426267624,0.25134801864624023,0.0007910631247796118,-0.2405369132757187],[-0.20579776167869568,-0.041279930621385574,-0.12179256230592728,-0.1745442897081375,0.18645408749580383,0.012932864017784595,0.07766793668270111,0.16267257928848267],[0.19275352358818054,-0.10237805545330048,-0.14895527064800262,0.18681691586971283,-0.16580989956855774,0.08161921054124832,0.16886958479881287,0.16945675015449524],[-0.20548340678215027,-0.04664858803153038,0.012492289766669273,0.05493948981165886,0.12919758260250092,0.06957720965147018,0.0014012468745931983,-0.24482852220535278],[-0.09122797101736069,-0.0028554676100611687,-0.13975895941257477,0.13287368416786194,0.1513454020023346,0.03212634474039078,-0.2770645022392273,0.20752649009227753],[-0.1485399305820465,0.2718448340892792,-0.0025588329881429672,0.0006864011520519853,-0.01280051190406084,-0.002877389080822468,-0.03894268721342087,-0.22266723215579987],[-0.1791900247335434,0.12467128783464432,0.08575425297021866,0.07434425503015518,0.07721056789159775,-0.09230422228574753,0.20695316791534424,-0.3372182548046112],[-0.03484746813774109,-0.12291847169399261,-0.10024465620517731,0.13430579006671906,0.18434597551822662,0.02720574475824833,-0.24975770711898804,0.015532211400568485],[0.07046575844287872,-0.0020766286179423332,0.10321518033742905,-0.0854790136218071,-0.07682178914546967,-0.1741763949394226,0.11512816697359085,-0.29048049449920654],[-0.2114754617214203,0.2208472639322281,-0.0022288556210696697,0.2570488452911377,0.0004391457187011838,0.09673003107309341,0.3131384253501892,-0.09811314940452576],[0.1326862871646881,0.06798200309276581,0.02461051195859909,-0.11679303646087646,-0.18250039219856262,-0.08008138835430145,-0.29305320978164673,0.2486819475889206],[0.1716204732656479,-0.21267476677894592,-0.11426704376935959,0.302877813577652,-0.04588127136230469,0.08008504658937454,0.03670063242316246,-0.16024036705493927],[-0.05275719612836838,0.11573848128318787,0.23270130157470703,-0.2010679841041565,0.1037469208240509,-0.021761663258075714,0.2532464265823364,-0.18671409785747528],[0.19671356678009033,-0.19654586911201477,0.12516865134239197,-0.16707515716552734,0.06408539414405823,0.001242562080733478,0.29536449909210205,-0.14210118353366852],[-0.03363749012351036,-0.2761513292789459,0.10276883095502853,0.2105388641357422,0.156197652220726,0.007728430442512035,-0.3249477744102478,0.17947852611541748],[-0.14691568911075592,-0.025376979261636734,0.12425494939088821,-0.19772930443286896,0.12637698650360107,-0.017846740782260895,0.25146833062171936,-0.25652122497558594],[-0.04774213209748268,-0.06262840330600739,0.08563453704118729,-0.08029044419527054,0.09391726553440094,-0.012413420714437962,0.0046107955276966095,-0.09520760178565979],[0.1591210812330246,-0.03582974150776863,-0.15389809012413025,0.21496786177158356,-0.15411312878131866,0.08958031982183456,0.13431891798973083,0.19054917991161346],[-0.12330662459135056,0.11442379653453827,-0.03239280730485916,-0.13828282058238983,-0.0212141964584589,-0.13788549602031708,-0.0839814692735672,0.055589478462934494],[-0.038861583918333054,-0.1195492148399353,0.06262512505054474,-0.1644924432039261,0.07191745936870575,-0.16640913486480713,-0.23206932842731476,0.057280343025922775],[-0.024132326245307922,0.04665280878543854,-0.06129376217722893,0.125553160905838,-0.060823120176792145,0.056320469826459885,-0.021501757204532623,0.10758578777313232],[0.06349707394838333,0.1664288341999054,0.036392197012901306,-0.10823507606983185,-0.13077156245708466,-0.06956695020198822,-0.12042516469955444,0.17771753668785095],[0.015190208330750465,-0.0005885954014956951,0.08119427412748337,-0.1357329934835434,-0.04309895262122154,-0.132517471909523,0.12598498165607452,-8.292795973829925e-05],[0.16638757288455963,-0.010720442980527878,0.11865641921758652,-0.023190287873148918,-0.17665605247020721,0.020690755918622017,0.15863630175590515,-0.2348150759935379],[-0.2391861081123352,-0.2683561146259308,-0.1862681806087494,0.2177722305059433,-0.06994331628084183,0.1453990787267685,-0.03518204763531685,0.011875868774950504],[0.08669479191303253,0.18591314554214478,-0.08051395416259766,0.17146287858486176,0.0007891025743447244,0.14395485818386078,-0.039025940001010895,0.05335293710231781],[0.33168402314186096,0.06913039833307266,-0.08661660552024841,0.2003893107175827,-0.3562999367713928,0.08306947350502014,0.20343729853630066,0.16336287558078766],[-0.05839981138706207,0.14297722280025482,0.17131082713603973,-0.2330489307641983,0.0010852109408006072,-0.19024039804935455,-0.05170974135398865,-0.14680767059326172],[0.022288303822278976,0.17773206532001495,0.057202789932489395,-0.1639757603406906,-0.02723618596792221,-0.06877503544092178,0.20210514962673187,0.10447598248720169],[-0.15626490116119385,-0.011903549544513226,0.0009333240450359881,-0.10433345288038254,0.1315016746520996,0.0023505007848143578,-0.2613430619239807,-0.04028385877609253],[-0.05992210656404495,0.01875201426446438,-0.01187875960022211,0.11112518608570099,0.11230851709842682,0.08435411751270294,-0.03522111475467682,0.15632660686969757],[0.15793946385383606,0.02310764044523239,0.0330057367682457,0.14779122173786163,-0.2007327824831009,0.02922203205525875,-0.03236174210906029,0.10177380591630936],[0.110721156001091,-0.0013066186802461743,-0.10600759834051132,-0.004099524579942226,0.13996316492557526,0.05512107536196709,-0.1100560873746872,0.2628995180130005],[-0.06375894695520401,-0.13915123045444489,-0.05115635693073273,0.07389962673187256,0.11832503229379654,0.05992584675550461,-0.08008109033107758,0.046694185584783554],[-0.05260222777724266,-0.14793793857097626,-0.11828458309173584,-0.2178521603345871,0.04789116978645325,0.07351121306419373,-0.0817481279373169,-0.1389482617378235],[-0.0997251644730568,-0.12009980529546738,-0.07719079405069351,0.0656432956457138,-0.003793545765802264,0.017763571813702583,0.07058240473270416,-0.13445571064949036],[-0.19668366014957428,-0.11372467130422592,0.22697234153747559,-0.05239569768309593,0.07912629842758179,-0.08565942943096161,-0.23019635677337646,-0.002843041205778718],[0.03877042979001999,0.004104848951101303,0.060196224600076675,-0.10084804147481918,-0.10224264115095139,0.01774469204246998,0.034605320543050766,0.13208672404289246],[0.03391244262456894,0.06610793620347977,-0.06441657990217209,-0.14694684743881226,0.14707712829113007,0.2076943963766098,0.18349555134773254,-0.1896834671497345],[-0.03692853823304176,0.013858839869499207,0.04261663183569908,-0.013985343277454376,0.16524773836135864,0.034020278602838516,-0.058259058743715286,-0.19517743587493896],[0.1568676382303238,-0.10101767629384995,0.09248020499944687,0.128239706158638,0.26507291197776794,-0.16368530690670013,0.015598831698298454,-0.08620660752058029],[0.03503822535276413,-0.13283821940422058,-0.17502059042453766,0.44807547330856323,0.03169185668230057,0.2173788696527481,0.18280580639839172,-0.07545363157987595],[-0.005131916143000126,-0.0676303580403328,-0.12992028892040253,-0.07192825525999069,0.09689471870660782,-0.005315639078617096,0.1820831298828125,-0.10835948586463928],[-0.19458895921707153,-0.04457109421491623,0.14946720004081726,-0.17270176112651825,-0.19372066855430603,0.17268788814544678,0.01705298013985157,-0.2656986713409424],[0.1734382063150406,0.010644331574440002,0.023691780865192413,0.11791079491376877,-0.189560204744339,-0.046077899634838104,-0.026908760890364647,0.07540501654148102],[-0.0655292272567749,0.07675439119338989,-0.12263419479131699,0.1404334008693695,-0.2282768338918686,-0.08050238341093063,0.1128610372543335,-0.24282725155353546],[-0.25015637278556824,0.2653707265853882,-0.014279698021709919,-0.17383213341236115,0.22065265476703644,-0.05695105344057083,-0.24427419900894165,0.07887168228626251],[-0.22050675749778748,-0.26183512806892395,-0.13296395540237427,0.2268729954957962,-0.22037293016910553,0.01136188767850399,-0.11202695965766907,-0.16967730224132538],[0.05775514990091324,0.14767813682556152,0.14398963749408722,-0.13777610659599304,-0.05479174479842186,-0.06393700838088989,-0.023565223440527916,-0.005978654604405165],[-0.054746635258197784,-0.09639610350131989,-0.006570231169462204,-0.09380016475915909,0.11254239082336426,0.1292080134153366,0.25790733098983765,-0.2888897955417633],[0.24154210090637207,0.016662251204252243,0.06138753890991211,-0.11022643744945526,-0.23674631118774414,-0.11772339046001434,0.027462715283036232,0.11273954063653946],[-0.24567511677742004,-0.08018861711025238,-0.07603099942207336,0.1190696507692337,0.1602223813533783,0.021481366828083992,-0.34275946021080017,-0.037892524152994156],[0.2695072293281555,-0.040611088275909424,-0.021932655945420265,0.1168113648891449,0.12715978920459747,0.21382221579551697,-0.07042288035154343,-0.11599390208721161],[-0.12813623249530792,-0.21338780224323273,0.1519678831100464,-0.18231438100337982,0.20777347683906555,-0.0503506138920784,-0.21607889235019684,-0.13542313873767853],[0.13608159124851227,0.13087835907936096,-0.02552068792283535,-0.029010416939854622,-0.25463294982910156,-0.08299615979194641,-0.14043645560741425,0.3515528440475464],[0.12354627251625061,0.19872742891311646,0.1568705141544342,-0.07187460362911224,-0.2127390205860138,-0.019957367330789566,0.33059635758399963,-0.1509072631597519],[-0.28594353795051575,0.27033233642578125,-0.030726268887519836,-0.08774025738239288,0.2410694658756256,0.09525074809789658,-0.06106945872306824,0.047368984669446945],[-0.12074975669384003,0.0208287313580513,-0.0827701985836029,0.20568418502807617,0.054493144154548645,0.1594323217868805,-0.07408798485994339,-0.005945533514022827],[0.05496085062623024,-0.012326166033744812,0.10893335193395615,-0.21393948793411255,-0.06706064939498901,-0.0951228141784668,-0.040764689445495605,0.29506441950798035],[-0.3188391625881195,0.24797794222831726,-0.0031637479551136494,-0.03789563849568367,0.3237752914428711,0.033628933131694794,0.030625710263848305,0.01600293256342411],[0.028606178238987923,0.021537713706493378,0.020141568034887314,-0.07626507431268692,-0.04377729818224907,-0.01839589513838291,0.01831982284784317,0.009455396793782711],[-0.07897135615348816,0.06356516480445862,0.0955723449587822,0.09178254008293152,0.024877706542611122,-0.07048498839139938,-0.13872140645980835,-0.18943439424037933],[-0.07620958983898163,0.05203869938850403,0.2228623628616333,0.10208145529031754,0.09219066053628922,-0.03693114221096039,0.22946467995643616,-0.17390210926532745],[0.08387819677591324,-0.10191050171852112,0.10564438253641129,0.16842903196811676,-0.19718922674655914,0.016623996198177338,0.0962962955236435,-0.2918068766593933],[0.31286633014678955,-0.09568554162979126,0.184171661734581,0.050714246928691864,-0.06140174716711044,-0.21010039746761322,0.08654570579528809,-0.10324663668870926],[0.12226371467113495,-0.07564260810613632,-0.07017572969198227,0.08313263952732086,-0.1724914163351059,-0.03518688678741455,-0.29433128237724304,0.3037615716457367],[0.16689559817314148,0.13742563128471375,0.053956665098667145,0.12521663308143616,-0.28508827090263367,0.04100186750292778,-0.12106876820325851,0.14413726329803467],[-0.04638996347784996,0.191045880317688,0.05383468419313431,-0.10568408668041229,0.018214499577879906,-0.09390590339899063,0.14704065024852753,-0.2309969663619995],[-0.006037761457264423,0.18772761523723602,0.08052856475114822,-0.16237576305866241,0.16976329684257507,-0.022194357588887215,0.11125561594963074,-0.05934372544288635],[0.2810041010379791,-0.18396447598934174,0.05226200446486473,0.04608157277107239,-0.40536126494407654,-0.04061635583639145,-0.006039716303348541,-0.034965213388204575],[0.04138718917965889,-0.1812421828508377,-0.23215937614440918,0.3088361918926239,-0.032615192234516144,0.10621118545532227,0.22353264689445496,0.0985528826713562],[0.07078065723180771,-0.014481364749372005,0.03936570882797241,-0.2125846892595291,0.010209075175225735,-0.0696936547756195,0.04637781158089638,0.029457101598381996],[0.01150842197239399,0.01662837713956833,0.05170772597193718,-0.1177966296672821,0.18881338834762573,-0.0935460552573204,0.1103513315320015,-0.13221997022628784],[-0.20773138105869293,0.04551462084054947,-0.01987336203455925,-0.05697878450155258,0.12758615612983704,0.03152894228696823,-0.13698440790176392,0.1717333197593689],[-0.03353571519255638,-0.11787690222263336,0.025762028992176056,0.1830296814441681,-0.02811935544013977,-0.02241923287510872,-0.2509438395500183,-0.05468573421239853],[0.2543896436691284,0.1354442834854126,-0.026546228677034378,0.15243291854858398,-0.34296107292175293,0.01124406699091196,0.04952375590801239,0.2945236563682556],[0.05575157329440117,0.25029993057250977,0.039909906685352325,0.17955772578716278,-0.023893313482403755,-0.004139013588428497,-0.07265876233577728,0.00691280048340559],[0.057363782078027725,0.06252249330282211,-0.0734722688794136,0.2813430428504944,-0.0856909230351448,0.19494473934173584,-0.056891828775405884,-0.21954505145549774],[0.06885886937379837,0.06342894583940506,0.013384096324443817,-0.07014010101556778,-0.15949881076812744,-0.001770639093592763,0.3621647357940674,-0.15024998784065247],[-0.046072617173194885,0.2298324853181839,0.03374811261892319,-0.28079405426979065,0.12473198026418686,-0.11482942849397659,0.1351340115070343,0.19008338451385498],[-0.11287108808755875,-0.019456492736935616,0.00467791547998786,-0.14605535566806793,-0.18980751931667328,-0.16604377329349518,-0.017988745123147964,0.04052295908331871],[0.2801361680030823,0.005506167653948069,-0.1324230432510376,0.036267753690481186,-0.14673882722854614,0.08151426166296005,0.05981878191232681,0.3544926345348358],[-0.23215064406394958,0.2048085629940033,-0.03397699445486069,-0.15648123621940613,0.11359775811433792,0.009793977253139019,-0.043601036071777344,-0.18654930591583252],[-0.07514165341854095,-0.2121860682964325,0.03818752244114876,0.26714715361595154,-0.31655511260032654,0.24399517476558685,-0.2701629400253296,-0.11325564235448837],[-0.21696139872074127,0.04034457728266716,-0.06164726987481117,0.07261339575052261,0.22123827040195465,0.008052172139286995,0.15150189399719238,-0.13664624094963074],[0.01706036366522312,-0.15642599761486053,-0.06478428095579147,-0.10772401839494705,0.10428908467292786,-0.014477758668363094,0.10226605087518692,-0.023573454469442368],[0.006500585936009884,0.1495458334684372,0.108114093542099,-0.08139297366142273,-0.0807209238409996,-0.1360403150320053,-0.16248200833797455,0.02514525316655636],[-0.1214638352394104,-0.03969600796699524,0.02598658949136734,0.031151466071605682,0.02901483327150345,0.06006551906466484,0.17335627973079681,-0.2844047248363495],[0.19168998301029205,-0.09969580173492432,-0.038515377789735794,0.037317611277103424,-0.3002732992172241,-0.011223290115594864,-0.17150048911571503,0.1652984619140625],[0.23541805148124695,-0.26099643111228943,0.19561956822872162,-0.049292441457509995,0.1068304181098938,0.09960522502660751,0.0774378851056099,-0.1993493139743805],[-0.06153927743434906,-0.0810922309756279,0.015763187780976295,0.10629841685295105,-0.004572890233248472,0.04711556062102318,0.1600259691476822,-0.23860010504722595],[0.10573938488960266,-0.05863719806075096,0.057855479419231415,-0.018440382555127144,-0.09427117556333542,0.11507324129343033,-0.2979239523410797,-0.018721360713243484],[-0.1676318645477295,0.02373342216014862,-0.2616289556026459,0.11839330196380615,0.18089914321899414,0.23698948323726654,-0.006457706913352013,0.18830156326293945],[-0.11786262691020966,0.20666444301605225,0.056353867053985596,-0.14555951952934265,-0.0038359020836651325,-0.007056958042085171,0.09844149649143219,0.06782310456037521],[-0.06133618205785751,-0.13124588131904602,-0.19559992849826813,0.018729906529188156,0.22091597318649292,0.17452505230903625,0.2580002248287201,0.1450122892856598],[-0.19834774732589722,0.052733033895492554,0.015846796333789825,-0.06196001544594765,0.1146659180521965,0.03422550857067108,-0.2878704071044922,0.14317502081394196],[-0.1488114893436432,0.12183249741792679,0.026440339162945747,-0.10532975196838379,0.12607349455356598,0.025892747566103935,0.11857274919748306,-0.09216707944869995],[-0.062207095324993134,0.058225199580192566,0.07957898825407028,-0.09459695965051651,0.02431313507258892,-0.0055220481008291245,0.1742989718914032,-0.09863542020320892],[-0.0835849791765213,0.1120385229587555,-0.05403340980410576,0.017370035871863365,-0.05311897024512291,-0.06697991490364075,-0.3191290497779846,0.11548963934183121],[0.28455883264541626,-0.09039805084466934,-0.112394779920578,0.2755647897720337,-0.3267458379268646,0.11126257479190826,0.07767900079488754,0.13999797403812408],[0.23521341383457184,0.25233110785484314,-0.07058246433734894,0.05033951625227928,-0.14631149172782898,0.06542594730854034,0.028882242739200592,-0.06567863374948502],[-0.003911865875124931,0.19221387803554535,-0.047247570008039474,0.05174485594034195,0.2512143850326538,0.19772297143936157,0.06231788173317909,0.17357930541038513],[-0.14119386672973633,-0.09230739623308182,0.15513011813163757,0.08481615781784058,-0.09859240055084229,-0.19940321147441864,-0.330660343170166,-0.23536057770252228],[-0.19432833790779114,-0.14568889141082764,-0.04914397373795509,0.016564780846238136,-0.18940754234790802,-0.06496834754943848,-0.21793417632579803,-0.01933782920241356],[-0.07647282630205154,-0.211232528090477,-0.019004758447408676,0.025546103715896606,0.09994712471961975,0.061456795781850815,-0.07370460778474808,-0.18106745183467865],[-0.05859266594052315,-0.01529755350202322,0.20032164454460144,-0.09457527101039886,-0.10964702814817429,-0.09422851353883743,0.0350516140460968,-0.3898477554321289],[-0.029928678646683693,0.05906512588262558,0.17549313604831696,-0.06304943561553955,-0.18966078758239746,-0.10156269371509552,-0.07143384218215942,-0.12448534369468689],[0.036508709192276,-0.1516413390636444,-0.045216381549835205,-0.03418039530515671,0.11186670511960983,0.14687834680080414,-0.09540418535470963,0.3216383755207062],[0.26758599281311035,0.0817839577794075,-0.029166826978325844,0.20204049348831177,-0.23661334812641144,0.10271250456571579,0.010673806071281433,0.15436315536499023],[-0.23731085658073425,-0.055949609726667404,-0.06342747062444687,-0.06991128623485565,0.3353305160999298,0.12189049273729324,-0.09565969556570053,-0.08898356556892395],[0.18269433081150055,-0.2027807980775833,-0.18349561095237732,-0.030664773657917976,-0.03707895055413246,0.12270373106002808,0.02749696560204029,0.2040509581565857],[-0.1981017142534256,0.058287668973207474,-0.015531939454376698,-0.22162795066833496,0.19080892205238342,-0.05719756335020065,0.014341001398861408,0.22550813853740692],[0.29261624813079834,-0.2548806369304657,0.027172645553946495,-0.11445128172636032,-0.29508572816848755,-0.11799925565719604,-0.17216573655605316,0.12518033385276794],[-0.11793383210897446,-0.09629286825656891,-0.08987832814455032,0.05461545288562775,-0.16438652575016022,0.14965808391571045,-0.16058363020420074,0.08519405871629715],[-0.09029405564069748,0.1923617273569107,0.33211076259613037,-0.30266404151916504,0.22431789338588715,0.03659205138683319,-0.22375361621379852,0.0064613716676831245],[0.17270857095718384,-0.22358113527297974,0.12125954777002335,-0.11945543438196182,0.27585405111312866,-0.2247951626777649,0.14743134379386902,0.0009700673981569707],[0.15969045460224152,0.1239592432975769,0.03111625835299492,0.14336204528808594,0.0037228912115097046,0.008945192210376263,0.19306674599647522,0.18166828155517578],[0.02856992743909359,-0.09604517370462418,0.03129757568240166,0.12904320657253265,0.06702744215726852,0.2087819129228592,0.19396047294139862,-0.1908443719148636],[0.1101880669593811,0.03852173686027527,-0.05003645643591881,-0.17215496301651,0.009711709804832935,-0.15511924028396606,-0.09415315091609955,0.1002289205789566],[0.2164931744337082,0.20286643505096436,0.20013855397701263,-0.1506684571504593,-0.1451864093542099,-0.06221133470535278,-0.14243842661380768,-0.0579134039580822],[0.10992264747619629,-0.0035627447068691254,0.06189451739192009,-0.16833636164665222,0.13561221957206726,-0.12588107585906982,-0.07441747933626175,0.0873546227812767],[-0.08707063645124435,-0.021768944337964058,0.11477679759263992,-0.07953803986310959,-0.28408995270729065,-0.027382267639040947,-0.07668978720903397,-0.02658037841320038],[-0.08195734024047852,0.007270005531609058,0.05409920960664749,-0.18263517320156097,0.03927060589194298,-0.06832300871610641,0.007076452020555735,-0.056567225605249405],[-0.09491711854934692,0.029746243730187416,-0.008506938815116882,0.20137494802474976,-0.16392222046852112,-0.07828917354345322,-0.003346026409417391,-0.19669318199157715],[0.15644270181655884,-0.01888258568942547,-0.10169091820716858,-0.03459008410573006,-0.18431797623634338,0.14676910638809204,-0.27163803577423096,0.31887954473495483],[-0.10660618543624878,0.17005765438079834,0.09433083236217499,0.10543470084667206,0.019160056486725807,0.040426529943943024,-0.10202606767416,-0.16852378845214844],[-0.1257709264755249,-0.14561641216278076,-0.23569658398628235,0.09599363058805466,0.3163367509841919,0.35245925188064575,0.2464328110218048,-0.2108449786901474],[0.19729472696781158,0.14448046684265137,0.12189999967813492,0.10612988471984863,0.11695000529289246,0.04408007115125656,0.31056082248687744,0.01531432569026947],[-0.3572540879249573,-0.03261961415410042,-0.33613675832748413,0.1531754434108734,-0.027712946757674217,0.1224353238940239,0.2631447911262512,-0.14153167605400085],[0.04179494455456734,0.07996369898319244,-0.0392041951417923,0.11157546192407608,-0.28980910778045654,-0.026010187342762947,-0.2546160817146301,0.25026530027389526],[0.21130800247192383,-0.015541241504251957,-0.029537077993154526,0.1433606743812561,-0.14401787519454956,0.059351369738578796,0.1972537487745285,-0.05282214283943176],[0.1982804387807846,0.21458925306797028,-0.15524519979953766,-0.15144139528274536,0.06706023961305618,0.17765061557292938,0.06639691442251205,0.31243982911109924],[0.015224713832139969,0.12770411372184753,-0.013262559659779072,-0.1582358330488205,0.12317553907632828,-0.02321135625243187,0.2302694022655487,0.24200069904327393],[0.1124395951628685,-0.11633242666721344,-0.11207400262355804,0.02319788560271263,0.04701342061161995,0.08929990977048874,0.16227924823760986,0.3249099850654602],[-0.1283726543188095,0.056195881217718124,-0.03888260945677757,-0.1381450742483139,0.1817629337310791,0.14003680646419525,-0.22000940144062042,-0.0475531741976738],[0.10047844797372818,-0.0014784781960770488,0.015057014301419258,0.06471766531467438,-0.08058122545480728,0.026597587391734123,-0.15313291549682617,0.05600864812731743],[0.010086435824632645,-0.0007024430087767541,-0.07842543721199036,-0.08478672057390213,0.2100449800491333,0.06873742491006851,0.16272397339344025,0.2449743151664734],[-0.0039646620862185955,-0.15594719350337982,-0.15604999661445618,0.36763831973075867,0.02613666281104088,0.24157339334487915,-0.023011935874819756,0.1467163860797882],[0.23037320375442505,-0.05353483557701111,0.10852887481451035,-0.18821649253368378,-0.32991477847099304,-0.25478896498680115,-0.06998564302921295,-0.13983434438705444],[0.15274131298065186,-0.19519861042499542,-0.17130576074123383,0.07758816331624985,0.0881725549697876,0.13079465925693512,-0.05404791980981827,0.32311978936195374],[0.0817255973815918,0.10249833017587662,0.18395894765853882,-0.2775459587574005,-0.1207992434501648,-0.21046411991119385,0.09694357961416245,0.08713588863611221],[-0.20767967402935028,-0.15929560363292694,0.10382392257452011,-0.12285182625055313,-0.2039184719324112,-0.2969234883785248,-0.24933581054210663,-0.12400269508361816],[0.07104936987161636,0.16796231269836426,-0.10691004246473312,-0.09581610560417175,-0.028529400005936623,0.1022614911198616,0.08948764950037003,-0.0677042007446289],[0.093778096139431,0.07538828998804092,0.0190703347325325,0.14499928057193756,0.0379641130566597,0.10495254397392273,0.330204576253891,-0.02919871173799038],[-0.18860779702663422,-0.046988170593976974,0.04419087618589401,-0.1208360493183136,0.2605745196342468,-0.030562197789549828,0.14639431238174438,-0.13860376179218292],[-0.0060913716442883015,-0.012959165498614311,-0.0432065911591053,-0.11639384925365448,0.044867802411317825,-0.027978388592600822,0.0912880077958107,0.04148685559630394],[0.2488163858652115,-0.2237977683544159,-0.13676992058753967,-0.10156527161598206,-0.2600793242454529,-0.14869359135627747,0.06088585779070854,-0.18114107847213745],[-0.023729218170046806,-0.1134020984172821,0.10388045012950897,0.1355510950088501,-0.1689176857471466,-0.17515398561954498,-0.14307881891727448,-0.24515636265277863],[-0.0787297859787941,0.1092873215675354,-0.0904306173324585,0.0601099357008934,-0.10740210860967636,0.04766812175512314,-0.20831076800823212,0.1935933530330658],[0.16746237874031067,-0.0080148009583354,0.05740853026509285,-0.12545055150985718,0.09688376635313034,-0.032429397106170654,0.0625353679060936,-0.04805494472384453],[0.16470016539096832,-0.10645294934511185,-0.05775509029626846,0.1454811841249466,-0.11610078811645508,0.04183114320039749,-0.11989258974790573,0.08138874173164368],[-0.2063152939081192,-0.1929733157157898,0.07701147347688675,-0.26090601086616516,0.13385573029518127,-0.1977117955684662,-0.1705266535282135,-0.019215654581785202],[-0.014978732913732529,0.12354278564453125,0.012021251022815704,-0.21610938012599945,0.08607368171215057,-0.07828618586063385,-0.1621079295873642,0.2431756556034088],[-0.17065714299678802,0.09029486775398254,-0.10126186907291412,-0.08156342059373856,0.23349809646606445,-0.02894514612853527,0.22605670988559723,0.06365368515253067],[0.0071568419225513935,0.04809560626745224,0.05925702676177025,-0.07429011166095734,-0.09957427531480789,-0.055445898324251175,-0.037335652858018875,-0.060118455439805984],[-0.12857769429683685,-0.13074515759944916,-0.039405833929777145,0.12192679196596146,-0.002840357832610607,0.027646485716104507,-0.05562987178564072,0.14042825996875763],[-0.09831362217664719,-0.17732666432857513,-0.03242143616080284,0.22695554792881012,0.06645174324512482,0.06830157339572906,0.02023162692785263,0.09071680903434753],[0.04553048685193062,0.0894722267985344,0.14097218215465546,-0.029556242749094963,0.020049607381224632,-0.14753609895706177,0.08188080042600632,-0.15623588860034943],[0.03647041320800781,0.09640711545944214,0.05513259023427963,-0.06089988723397255,0.03109532967209816,-0.006876417901366949,-0.01833515614271164,-0.05605488270521164],[-0.08951842039823532,0.22173498570919037,-0.22422705590724945,-0.2029448300600052,0.2874816358089447,0.09923910349607468,0.21314014494419098,0.21303875744342804],[0.02422206662595272,-0.10356500744819641,-0.057078950107097626,-0.04451454058289528,0.11675302684307098,1.4334284060169011e-05,0.013588710688054562,0.15814465284347534],[-0.11378632485866547,0.025414537638425827,-0.1358836144208908,-0.20583531260490417,0.27578282356262207,-0.029966242611408234,-0.07034546136856079,0.18063989281654358],[-0.03331293910741806,-0.031101839616894722,-0.13261446356773376,-0.23216551542282104,0.3555631637573242,-0.031490668654441833,-0.20059938728809357,0.2284572571516037],[-0.1027061864733696,-0.023731835186481476,-0.15104222297668457,0.08035758882761002,-0.04970155656337738,-0.13167685270309448,-0.1944013386964798,0.20740187168121338],[0.10283663868904114,0.014996500685811043,-0.08365418016910553,0.07011191546916962,-0.060660358518362045,0.08707449585199356,-0.06938619911670685,0.2105274647474289],[0.030243385583162308,0.09783922135829926,-0.0022412631660699844,-0.2443387359380722,0.03815656155347824,0.018142251297831535,0.18655967712402344,-0.00042361783562228084],[-0.18155449628829956,0.10294122993946075,0.06916967779397964,-0.3201538920402527,0.22808778285980225,-0.17337018251419067,0.26049312949180603,-0.15594802796840668],[0.31475600600242615,-0.09431242197751999,-0.05404786020517349,0.03680216148495674,0.12301904708147049,0.27287423610687256,0.03327137231826782,-0.013935873284935951],[-0.010034571401774883,-0.17997443675994873,-0.018563834950327873,0.21012301743030548,0.16139326989650726,0.04654376581311226,-0.18141937255859375,-0.027551952749490738],[-0.0581301748752594,-0.03607622906565666,0.043738044798374176,-0.19768382608890533,0.17050473392009735,-0.12302659451961517,-0.1446610987186432,0.22456809878349304],[-0.1662970334291458,0.008337575010955334,-0.09322844445705414,0.12305041402578354,0.18260422348976135,0.1500622183084488,-0.19117456674575806,0.1386767327785492],[0.21822407841682434,-0.12655530869960785,0.22093017399311066,-0.06618012487888336,-0.2580205500125885,-0.2108631134033203,-0.2203322798013687,0.202370285987854],[0.21319220960140228,0.024911586195230484,-0.07206723839044571,0.24013371765613556,-0.11925126612186432,0.16192418336868286,-0.024182520806789398,0.16942857205867767],[0.053164925426244736,0.007487081922590733,-0.0829700157046318,0.23737162351608276,0.00546776968985796,-0.01274172030389309,0.0624396838247776,0.03928535059094429],[0.1455281376838684,-0.1905653178691864,-0.05925917997956276,-0.21919527649879456,0.04887563735246658,0.05518938601016998,-0.012031885795295238,0.3688960671424866],[0.19045552611351013,-0.17610080540180206,0.10860346257686615,-0.042089611291885376,-0.25403955578804016,-0.16604328155517578,-0.092194564640522,-0.07582215964794159],[-0.09599943459033966,-0.15362238883972168,-0.018130244687199593,0.017158444970846176,-0.03703472763299942,-0.2325674593448639,-0.25772878527641296,0.005493714939802885],[0.0996781513094902,-0.11432231217622757,-0.1370805948972702,-0.05226296931505203,-0.22404475510120392,0.05986356362700462,-0.14339762926101685,0.05587971583008766],[-0.026279529556632042,0.11098813265562057,-0.028463637456297874,0.0569026805460453,-0.24699118733406067,0.24816948175430298,0.24428686499595642,-0.07587762922048569],[0.13393740355968475,0.12030355632305145,0.05414019525051117,0.0715775340795517,-0.3250789940357208,-0.0784265473484993,-0.02201506868004799,0.1916460394859314],[0.10946774482727051,-0.16560333967208862,0.14614500105381012,-0.110862135887146,0.04637047275900841,-0.13247458636760712,-0.21174222230911255,-0.10650819540023804],[-0.0669577345252037,0.16162309050559998,0.09898313879966736,-0.2850019037723541,0.18433968722820282,-0.07712372392416,0.06469081342220306,-0.07493352890014648],[-0.11277732253074646,-0.040743790566921234,0.05142431706190109,0.02428799867630005,0.0689946785569191,-0.037011537700891495,0.10463432222604752,-0.17090564966201782],[-0.21693381667137146,0.002080187201499939,-0.05343210697174072,-0.24506889283657074,0.13686200976371765,0.0002700088080018759,0.2932974100112915,-0.05662255361676216],[-6.135180592536926e-05,-0.11831942945718765,-0.14013706147670746,0.18382294476032257,0.023840660229325294,0.17270416021347046,-0.028426291421055794,-0.004192392807453871],[0.09085364639759064,0.20608189702033997,0.0628150999546051,0.04501606523990631,-0.1471371054649353,-0.053391166031360626,-0.04581567645072937,0.023409711197018623],[-0.038493622094392776,0.04147188365459442,0.002165587153285742,0.016512377187609673,-0.031445249915122986,0.08347216248512268,-0.1958257257938385,-0.014947189949452877],[-0.09026291966438293,-0.17114336788654327,-0.0630609542131424,0.23541846871376038,0.24762052297592163,0.13264866173267365,-0.08095397800207138,-0.21063144505023956],[-0.02532634511590004,0.11804185062646866,0.04877118021249771,-0.157271146774292,0.07992798089981079,-0.10057312995195389,-0.03161660581827164,0.0014782773796468973],[0.025112541392445564,-0.2064698338508606,0.019380873069167137,0.1713520884513855,0.03527846187353134,-0.05250898376107216,-0.36997106671333313,0.14371678233146667],[-0.02880413830280304,0.1610165685415268,0.15686823427677155,-0.11300309747457504,0.11636441200971603,-0.10057071596384048,-0.24539437890052795,-0.05167821794748306],[0.016952885314822197,0.040012773126363754,-0.041762709617614746,0.2447366565465927,-0.06916191428899765,0.026454055681824684,-0.30622586607933044,0.1444653570652008],[-0.054609909653663635,0.18522004783153534,0.05623144656419754,-0.09613393247127533,0.22408045828342438,-0.042343541979789734,-0.15870828926563263,-0.12916362285614014],[-0.17216190695762634,-0.1357700526714325,-0.0503469817340374,0.12483491748571396,0.28754451870918274,0.159885972738266,0.23464661836624146,-0.2953020930290222],[0.24538767337799072,-0.2490827888250351,0.1610550731420517,0.1566830277442932,-0.0734764114022255,0.0972486212849617,-0.014676986262202263,-0.17917568981647491],[0.257667601108551,-0.1188298761844635,-0.04603000357747078,0.12593890726566315,-0.1481124311685562,-0.010235542431473732,-0.17116309702396393,0.26712489128112793],[0.06282200664281845,0.04047270119190216,-0.01903601922094822,-0.06339242309331894,-0.041549164801836014,-0.045591242611408234,0.09980706870555878,0.07401790469884872],[0.0019292848883196712,0.08380033820867538,0.05836261063814163,-0.06953158974647522,-0.22769752144813538,-0.08598857372999191,0.09910038113594055,-0.20420964062213898],[0.24633720517158508,-0.01391199417412281,-0.0759505182504654,-0.0645524188876152,-0.15390996634960175,0.01748417504131794,0.02311832644045353,0.15122994780540466],[-0.3195197284221649,-0.04967866092920303,-0.13598476350307465,0.14758911728858948,0.232894629240036,0.13492421805858612,-0.1622408926486969,0.12419087439775467],[0.003544856561347842,0.08915875107049942,0.15272177755832672,-0.18196074664592743,-0.132248654961586,-0.18402333557605743,0.11193113774061203,0.11714914441108704],[0.027675509452819824,0.04702647775411606,0.049357715994119644,0.08799903839826584,0.020085928961634636,-0.016630422323942184,-0.1517413854598999,0.04311009868979454],[-0.13974180817604065,-0.14140170812606812,0.06754302233457565,-0.02613263577222824,-0.004793833941221237,-0.05692978948354721,-0.019415678456425667,-0.1514202505350113],[0.16129644215106964,0.03551299124956131,0.030415410175919533,0.0768153965473175,-0.21693862974643707,-0.04715026915073395,0.13348877429962158,-0.030067166313529015],[-0.09403868019580841,-0.17277374863624573,-0.15516702830791473,-0.0478719025850296,0.21961934864521027,0.0972338616847992,0.17130634188652039,0.14373569190502167],[-0.15400688350200653,-0.23586343228816986,-0.011414900422096252,-0.0027774174232035875,-0.07125120609998703,-0.04875825718045235,-0.0010381242027506232,-0.10721632093191147],[-0.12709327042102814,0.28026100993156433,0.020140474662184715,0.17416690289974213,-0.018923046067357063,-0.0641542449593544,0.1416538804769516,-0.18193991482257843],[-0.006657600402832031,-0.22508680820465088,-0.11199058592319489,0.1322588473558426,0.09863347560167313,0.07379292696714401,0.07908657938241959,0.08004200458526611],[-0.14250034093856812,-0.06704012304544449,-0.08848173916339874,-0.10304809361696243,0.0936269536614418,0.08865819126367569,-0.1158166155219078,0.3369789719581604],[0.10133510828018188,0.1619870513677597,0.025633884593844414,-0.14487306773662567,0.14415758848190308,-0.0007150854798965156,-0.032475244253873825,0.08862969279289246],[-0.11838151514530182,0.033240750432014465,-0.03800977021455765,0.03323976323008537,0.19955505430698395,0.08569388091564178,0.17498429119586945,0.04175256937742233],[0.013994337990880013,0.20244534313678741,0.057898424565792084,0.09633089601993561,0.010287079028785229,-0.019339537248015404,-0.19067344069480896,-0.020676447078585625],[0.19614890217781067,0.23031646013259888,0.10879221558570862,-0.12130700796842575,-0.1528511494398117,-0.14952515065670013,0.09816236793994904,-0.18760068714618683],[0.30092722177505493,-0.20901252329349518,0.012948291376233101,0.08991247415542603,-0.31657570600509644,0.027190156280994415,0.16954174637794495,0.05944659933447838],[0.28013893961906433,-0.23045895993709564,0.15302971005439758,0.16425029933452606,-0.28274083137512207,-0.011168831028044224,-0.1542074829339981,0.023538578301668167],[0.10257340967655182,-0.2426450550556183,-0.19839999079704285,0.06353640556335449,-0.2452458292245865,-0.19817659258842468,-0.18123501539230347,-0.006735624745488167],[-0.1709689497947693,0.02249881625175476,0.06230170652270317,-0.19598786532878876,0.16329918801784515,-0.07588580250740051,0.04782085493206978,-0.16491343080997467],[-0.3795205354690552,0.10206924378871918,0.004882193170487881,0.03486834838986397,0.32676151394844055,0.1377391815185547,-0.1321668177843094,-0.29006141424179077],[0.0006166632520034909,-0.08737704157829285,0.08473600447177887,-0.15168191492557526,-0.04623127728700638,-0.09834522008895874,-0.1752677857875824,0.1613718420267105],[0.07424315065145493,-0.13405030965805054,0.05111510679125786,-0.23814387619495392,-0.026994766667485237,-0.16229933500289917,0.02418092079460621,0.049941644072532654],[-0.08626987040042877,-0.07576596736907959,-0.09170763194561005,-0.12469177693128586,0.07563730329275131,0.024069273844361305,0.1908464878797531,0.046276602894067764],[-0.16629523038864136,0.0712699443101883,0.055652569979429245,0.03528406471014023,0.31884071230888367,0.10835849493741989,0.0395076721906662,-0.09456067532300949],[0.07529575377702713,0.28523507714271545,-0.03138604760169983,-0.2121003419160843,-0.35870954394340515,0.030750269070267677,0.02876155637204647,-0.29882699251174927],[-0.1982506364583969,-0.006694813724607229,-0.14388783276081085,0.21279899775981903,0.17367996275424957,0.05717748403549194,-0.08759407699108124,0.04628206789493561],[-0.1264384537935257,-0.15656815469264984,0.16326679289340973,-0.10808826982975006,0.11768529564142227,-0.1479731947183609,-0.04884390905499458,-0.12922251224517822],[-0.14381884038448334,-0.2458653301000595,-0.028301149606704712,0.109492726624012,-0.19795158505439758,-0.07961171865463257,-0.04711489751935005,-0.21290208399295807],[0.11616530269384384,0.18533611297607422,-0.15393978357315063,0.040880825370550156,-0.28094664216041565,-0.11969318985939026,0.09969786554574966,0.225230410695076],[-0.013909339904785156,-0.17441923916339874,-0.1617373526096344,0.15315598249435425,0.028679724782705307,0.04191618412733078,0.18787844479084015,-0.13644151389598846],[0.022408805787563324,-0.11026214808225632,-0.08376018702983856,0.06873250007629395,0.14248314499855042,0.12710514664649963,-0.05496463179588318,0.16273516416549683],[0.25158512592315674,-0.16080601513385773,-0.06923511624336243,-0.06116536632180214,-0.05920657515525818,0.04766376316547394,0.10942665487527847,0.18273182213306427],[-0.1361154168844223,-0.2147543877363205,-0.1633094847202301,0.09452620893716812,0.33898717164993286,0.04521556198596954,-0.25034576654434204,0.19666297733783722],[0.2653874456882477,0.10638714581727982,-0.090297169983387,0.0039057449903339148,0.043089352548122406,0.12076549977064133,0.09209331125020981,0.16484592854976654],[-0.0462772361934185,0.0693167895078659,-0.025217555463314056,0.27327844500541687,0.02272168919444084,0.18268750607967377,0.013041813857853413,-0.2404707670211792],[0.16199891269207,0.10413505136966705,-0.10005209594964981,0.16739094257354736,-0.041974760591983795,0.052783846855163574,-0.13645130395889282,0.05714385583996773],[0.22455845773220062,0.035619836300611496,-0.07656575739383698,0.013167984783649445,-0.1212916150689125,-0.00472992705181241,0.12407326698303223,0.33208638429641724],[-0.03782762214541435,-0.2232016772031784,-0.1695234179496765,0.1753881275653839,0.010851473547518253,0.0800381526350975,0.053278204053640366,0.14190012216567993],[-0.11231144517660141,-0.005791893694549799,-0.10082519054412842,0.3474167585372925,-0.011625220067799091,0.11094475537538528,0.2315385490655899,-0.22886426746845245],[0.08107132464647293,-0.15235160291194916,0.06793726235628128,-0.08353874087333679,0.13861198723316193,0.13798493146896362,0.14627772569656372,-0.0838356539607048],[0.17721688747406006,-0.0090482821688056,-0.023069515824317932,0.0007617230876348913,0.11781293153762817,0.10764910280704498,-0.147812157869339,0.15749506652355194],[-0.06918443739414215,-0.04757082462310791,0.04721442610025406,-0.025092029944062233,0.05130098760128021,-0.056676097214221954,-0.04306657612323761,-0.13292497396469116],[0.1499476581811905,0.12103884667158127,0.09961909800767899,0.1768595576286316,-0.03889469802379608,0.28259921073913574,0.26807448267936707,-0.23871006071567535],[0.12891890108585358,0.22622963786125183,0.04687142372131348,-0.14136844873428345,-0.24846036732196808,-0.0480356328189373,-0.07287754863500595,0.21214903891086578],[0.3161563277244568,0.14754001796245575,0.13265587389469147,-0.03787964954972267,-0.2051268070936203,-0.2891486883163452,0.2636648118495941,-0.19928568601608276],[-0.02135511115193367,0.20849446952342987,0.07174060493707657,-0.08329511433839798,-0.2108406126499176,-0.12035452574491501,-0.04767141491174698,-0.12026052176952362],[0.06556154787540436,-0.2983722686767578,0.050855666399002075,0.10836029797792435,-0.1592739075422287,-0.06368963420391083,-0.18465295433998108,-0.27572721242904663],[0.14563941955566406,0.16589221358299255,0.22444100677967072,-0.23679213225841522,0.015121002681553364,-0.06605558097362518,0.31807857751846313,-0.22307518124580383],[-0.09593059122562408,-0.13202089071273804,-0.09908302128314972,0.031856462359428406,0.15614071488380432,0.055311743170022964,0.15799598395824432,0.057585883885622025],[-0.10102105885744095,0.13948863744735718,-0.009149987250566483,-0.16936855018138885,0.09528262168169022,0.043596260249614716,-0.08082704991102219,-0.02638041228055954],[-0.04769238829612732,0.1488262414932251,0.12008283287286758,-0.047045934945344925,0.07565739750862122,-0.023962896317243576,-0.293316513299942,-0.008619815111160278],[-0.07264360040426254,0.1212499812245369,-0.01026585791260004,0.09446298331022263,-0.10283246636390686,-0.06685354560613632,-0.061422500759363174,-0.22580598294734955],[-0.09999535977840424,-0.13416121900081635,-0.10973387956619263,0.006596025079488754,0.11101660877466202,-0.08020922541618347,-0.2127389758825302,0.20379763841629028],[0.06307332217693329,-0.2047949880361557,0.08702526241540909,0.12426968663930893,-0.3063911497592926,-0.04697348549962044,0.1917879432439804,-0.06206131353974342],[-0.054222386330366135,-0.21939419209957123,-0.04400978982448578,-0.16861175000667572,0.051717620342969894,-0.029986251145601273,-0.02903994731605053,0.21668744087219238],[-0.13623124361038208,0.14160923659801483,-0.10836216807365417,-0.01240620668977499,0.09897249191999435,0.019720813259482384,-0.18615035712718964,0.12733209133148193],[0.06870587915182114,0.05119270458817482,0.016495659947395325,0.18145474791526794,-0.03068213351070881,0.19064615666866302,0.18564967811107635,-0.2467147707939148],[-0.11106971651315689,-0.017306474968791008,0.041425954550504684,-0.07471613585948944,0.2391401082277298,-0.0027320771478116512,0.03440423682332039,-0.18649108707904816],[-0.037257369607686996,-0.20968464016914368,-0.1753799021244049,0.2970544993877411,-0.24967753887176514,0.03458230569958687,-0.1872854381799698,-0.07976572960615158],[-0.06637628376483917,0.024340368807315826,-0.014698815532028675,-0.07690302282571793,-0.21262498199939728,-0.06108446791768074,-0.023270420730113983,-0.07646600902080536],[0.24044111371040344,-0.13765880465507507,-0.08789538592100143,0.019144318997859955,-0.07291901856660843,-0.11308132112026215,-0.17155814170837402,0.22413882613182068],[0.03210354223847389,-0.006320569664239883,-0.07879267632961273,0.2432411015033722,-0.1535019427537918,0.0636231005191803,0.10193558037281036,-0.11511441320180893]]},"projection_width":8,"proof_authority":false,"publication_performed":false,"qualified":false,"schema":"structured-source-384-autoencoder/v1","source_semantics_verified":false,"target_schema":{"origin":"training_only","schema":"fixed-typed-json-consensus/v1","shape":{"fields":[["document",{"fields":[["attributes",{"fields":[],"kind":"object"}],["evaluation_order",{"items":[{"kind":"string"},{"kind":"string"}],"kind":"array"}],["expression_id",{"kind":"string"}],["kind",{"kind":"string"}],["operand_ids",{"items":[{"kind":"string"},{"kind":"string"}],"kind":"array"}],["operator",{"kind":"string"}],["source_ref_ids",{"items":[{"kind":"string"}],"kind":"array"}],["span_ids",{"items":[],"kind":"array"}],["symbol_ids",{"items":[],"kind":"array"}],["type_ref",{"kind":"string"}]],"kind":"object"}],["kind",{"kind":"string"}]],"kind":"object"},"slots":[{"classes":["expr:capacity","expr:length","expr:position","expr:quantity","expr:volume"],"path":["document","evaluation_order",0]},{"classes":["expr:capacity","expr:length","expr:position","expr:quantity","expr:volume"],"path":["document","operand_ids",0]},{"classes":["!=","*","+","-","<","<=","==",">",">="],"path":["document","operator"]},{"classes":["boolean","integer"],"path":["document","type_ref"]}],"template":{"document":{"attributes":{},"evaluation_order":[null,"expr:threshold"],"expression_id":"expr:result","kind":"binary","operand_ids":[null,"expr:threshold"],"operator":null,"source_ref_ids":["source"],"span_ids":[],"symbol_ids":[],"type_ref":null},"kind":"program_expression"},"whole_target_memory":false},"training":{"base_checkpoint_sha256":"be2ec82a1d2a71171d86c3ffee3f9023a884df13302c33879b38f401f34ff843","centering":"two_pass_global_training_mean_then_add_centered_shard_statistics","gradient_training_used":false,"head_weights_averaged":false,"history":[{"classifier_slot_accuracy":1.0,"classifier_slot_correct":480,"count":120,"exact_targets":120,"ridge":0.0001,"selected_at_step":true,"semantic_leaf_accuracy":1.0,"semantic_leaf_correct":480,"semantic_leaf_count":480,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":120},{"classifier_slot_accuracy":1.0,"classifier_slot_correct":480,"count":120,"exact_targets":120,"ridge":0.001,"selected_at_step":false,"semantic_leaf_accuracy":1.0,"semantic_leaf_correct":480,"semantic_leaf_count":480,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":120},{"classifier_slot_accuracy":0.9916666666666667,"classifier_slot_correct":476,"count":120,"exact_targets":116,"ridge":0.01,"selected_at_step":false,"semantic_leaf_accuracy":0.9916666666666667,"semantic_leaf_correct":476,"semantic_leaf_count":480,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":120},{"classifier_slot_accuracy":0.9583333333333334,"classifier_slot_correct":460,"count":120,"exact_targets":100,"ridge":0.1,"selected_at_step":false,"semantic_leaf_accuracy":0.9583333333333334,"semantic_leaf_correct":460,"semantic_leaf_count":480,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":120}],"optimizer_steps":0,"plan_id":"fcab87ade962350c30a3e80d2f7bd3385d60bcfc666e0ba74955ca8e4008074c","prior_training_statistics_recovered_from_weights":false,"recipe_sha256":"03484d2bd935ef04ec317c78f29a735bf6af7822606cfb61afc56849bbcb2026","selected_ridge":0.0001,"selected_validation":{"classifier_slot_accuracy":1.0,"classifier_slot_correct":480,"count":120,"exact_targets":120,"semantic_leaf_accuracy":1.0,"semantic_leaf_correct":480,"semantic_leaf_count":480,"semantic_metric_scope":"correct_variable_leaves_only_for_native_valid_candidates","teacher_forcing":false,"valid_candidates":120},"statistical_merge":"sum unique declared shards before global centering and solve","test_used_for_selection":false,"trainer_id":"global-centered-ridge-sufficient-statistics/v1","unique_training_examples":360},"training_manifest":[{"embedding_sha256":"d258421ef13acf08356b96cf992edcb3005796850e338a0aeed001bfbe09fe0d","id":"v3:security_ir:0:0:0:0","normalized_source_sha256":"02ed3fdcf613c7166db70046613c3a272893644a4bc4cc9ad6bc6da91f257e10","source_sha256":"10b91f530e244b6adcb9e14999de4e00a53d2988335fb9da06bf6ae0a682c3c9","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"db654a58b027fabd1bd06cb3a874b31cabe76cadc89ef20bbc92ae60a234b800","id":"v3:security_ir:0:0:1:0","normalized_source_sha256":"aa7a35b788e1ebd69248601d64dea095be7855a2d9a27253f961b817281882ae","source_sha256":"c90337cfc982d37ca3be7e25f3bf9a9e9b4cbf452051667a2d1943202f62122c","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"a538d1ff558aae8db5d8ad821db33f316894e00777596c857af62c4d98749c1d","id":"v3:security_ir:0:0:2:0","normalized_source_sha256":"eaa04ada5964c44801814ad25bbf35a80eca045acaa2965e09aaf0d42c448225","source_sha256":"ba282853b8e2f2591abe964af06efd09431c62571a726636e1a12b87a863b8aa","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"3ad6fb6c82ac927e4add89f98a30afbc7436eb7231089f3cd8ec09a20db6ece3","id":"v3:security_ir:0:0:3:0","normalized_source_sha256":"14ad1edbe14719efafae34929a07c41eb09199115de0ab1aec2a16cd18a0de27","source_sha256":"035d781f6a743401d13addf6d917eeb7bb5939a350ae7f80d17ec19a43b58ae4","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"1e61c19fa0ed90cd7c68a6538e141c02f2a3036c4ff72c2b4938e81d452a408b","id":"v3:security_ir:0:0:4:0","normalized_source_sha256":"342d3f5e86abe0815f8dc8d66ec41c9d7d258b874d70326efe1dd641f640bd50","source_sha256":"156efebebb4618d309d3482cacd6c2ba1058b808bb9931edfb4db5a462d30ee2","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"f6559041e86aa97aa108f78231de5ac0b10793bedde4d25a6af51ea72fed6d47","id":"v3:security_ir:0:0:5:0","normalized_source_sha256":"64784abb356d2c38991ba860fb4999f9a013aa5597a54f03dcdf0959e3b02c31","source_sha256":"c4e65c60a7dcc78f6da62fcb4006f7c0d289e4ea1214b13af56f7b8fc9177efe","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"635391ba9a825c68d3cb523562a0f0875270f60ede707ebb5d34ed09fd346502","id":"v3:security_ir:0:0:0:1","normalized_source_sha256":"dbd1b94c13c69c8aa917a1d2b41410cf2210e3cee6c137016bfb870b4b64f733","source_sha256":"c0711c5eb829fb6db69022d14fccfc71252d00abe431afb67426719062614ee1","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"3bdefef3c7654d3a972b97c4567b977f6f1e409ac0277d35b6b31c13f101f0e5","id":"v3:security_ir:0:0:1:1","normalized_source_sha256":"7209494cfe41629271127beb2c34aef6096a63ad910c1e2b37824fb11b683d73","source_sha256":"637ffaccf15e269b2115421a136024c7ffd90154893dac11223ba30771797bf5","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"ea03bda9fa37cb124d1c6a66c4652b966aeaa0d36a0d987542f89b2abc68271f","id":"v3:security_ir:0:0:2:1","normalized_source_sha256":"d5493979131e3a8a3d165492889a5a33286c0e8d265df21c7d89a77e830d38a0","source_sha256":"b8bb91f374aed396356b78ebab39c0dd14d29db431a02336ca823808eecafc32","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"bfddccf21f0ec6a0c794eb6134eb630012bba82f0d011c83ba06eb26c43e06da","id":"v3:security_ir:0:0:3:1","normalized_source_sha256":"50f90c3019ce452518264da5b82019d6509325b6532cc8ab0ee9e599454a89bd","source_sha256":"8543536aef14b81f9a8b0a5dea8c22f371f812c47d0925a8a884767390300908","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"404a38b42b45bb4016e5a966cb2a6418cfe7b12a4e197a147564c471f1836fc0","id":"v3:security_ir:0:0:4:1","normalized_source_sha256":"a187ac8e55607d413751c7932419a63ebb03dc6d2397cc6dc453795b31268be4","source_sha256":"4946b74310b1c1e301d7cb99e5f71a581884279faa5fb01a78c3333f24416000","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"8937153acc5b13dfd6690e93834760b24a2eb07f56f9def5c2349e9dc8cd14d5","id":"v3:security_ir:0:0:5:1","normalized_source_sha256":"04bd7eb8696571a9b5fd0128c1728ac70e813244e359bb3aadcbc42d8d233041","source_sha256":"a8fef59e87a84ea1f50704de2910e33028e798d82d7b838e007cfc317ec02cdb","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"425f3b465fb08248412b2618a1a98ee8580e68986e6efcad78ba8a5e7d2725a2","id":"v3:security_ir:0:0:0:2","normalized_source_sha256":"7f72e45e38f102fae4bf3bfe61a0ac09e6b94da753b52a4be2cdc34673b32043","source_sha256":"48202ca663131fcb9cb114dac9ec3c3de9b25ba1158c10f58cbc46df936a1acb","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"9d8f34e0098c0f8688158ff88cbf7087757f24f9d563019411c3e3c2edc7c6a7","id":"v3:security_ir:0:0:1:2","normalized_source_sha256":"d4d395502c16ab7bfd26aa8846fa747acdfebe86292502548757f65e140f8558","source_sha256":"8bb11ee661941212ca4488c16760f5394c8711f70ab91ac121504cd214c4bed2","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"45335ee05b5a76a4b58a33d77fdec22e284ad553ab0ce9090a95f22566a4757f","id":"v3:security_ir:0:0:2:2","normalized_source_sha256":"e794ef46e678b2bab07c085379e3fc5a77baf80b8f452e1377e7b6f23e34af22","source_sha256":"551b8024383c3136e9de78f8166d56a0356072a3eb01328d4a90dabbd309b7f2","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"1ae996a4e6a2c222ef65427e7143c0610be74d2128c0f9e7f0984ea49a00cacf","id":"v3:security_ir:0:0:3:2","normalized_source_sha256":"0f2bcbf6b5c952123ade13ac5b92cc17c6ddcf0e2fd21ee98e7c2f24f8f4a41e","source_sha256":"70f52072ebcb640e412f8fcb3d4b64bfc02d34c65beb9da395b588da4d167e9b","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"761f87b6e94de160fd07e77f3e0159db3849f21a9065d67158a6d43009c05964","id":"v3:security_ir:0:0:4:2","normalized_source_sha256":"b537c98cd96c40645a6b3b980e9a4671a4760d97f8455144c5e3700d640df214","source_sha256":"e5aa8ca175ce54a1b5a5bca4137e53b1c70ff12e6d73ea7805e926e7e90b05ce","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"7b8070aa3a60c592c95e8d76c4b8e927b861e8b4cc55283957db7e18ef88b352","id":"v3:security_ir:0:0:5:2","normalized_source_sha256":"d06aeaf930cb263ae071a56fb0629477bcdda208e6687999c98e4482868ce31f","source_sha256":"e7009bc396eca471aa1000b5f4a6a803065d8dec67bc114513fefe1bbfddb5a3","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"50f1b4d7e19cd14767ae6b372b84c06adb7ff6a4e60d6e579e870e7cadfee6a5","id":"v3:security_ir:0:0:0:3","normalized_source_sha256":"6482792ebce91c9b5765a8993c666ffd91364b09d8911352b11310ed59ce4375","source_sha256":"5bede293491353d2a03f4c3de9f4a0623a1ab6f6cdc576003e29ec98483aafff","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"595da88533de4842437fd33b520618b84721f47921fc16601b3f14cb7816c6c5","id":"v3:security_ir:0:0:1:3","normalized_source_sha256":"247682e3e4fc368d3e7ed3d5ae2cdcf3d085200e6cc4731ab33b59432489801a","source_sha256":"c354c0789df74318ca36a57a30acff051d3ac5aa5c03899a7e02be6d224eea4e","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"ef6f352b538e626f3bf4289008ad7cf9cb06a901057ecf7357ff5f2586394811","id":"v3:security_ir:0:0:2:3","normalized_source_sha256":"1ded0f4e5a6d510907a4a8f45fc3c52c45e7f61902455ab972b52e5d9841f7a1","source_sha256":"a3ad931884fede8142c1c2c5e71765249fd3b0f5ce479afef3ee4e52d2f55b33","target_sha256":"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd"},{"embedding_sha256":"8c830446faa85902f2cfb6352ef75739742600df1ebe78a09e32eaecf7395580","id":"v3:security_ir:0:0:3:3","normalized_source_sha256":"de81a2ec64defee9f0f0f5ed55bdaf5f317af92f82beab8ca02086d6505ee8b4","source_sha256":"79f28e5625a9371561e8f4f3fcf985e5e4511afd0c80b881d1ffc0b9d2b439a2","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"1df3eba4c106c5e8e09df7d5f6b28e9a557dcfc7faee641e774d6cffd3e2dacf","id":"v3:security_ir:0:0:4:3","normalized_source_sha256":"f3300fd41dcae3dd790c018ff8c566e03f585494e505f4997f6c6615661bd815","source_sha256":"f2cd47aa56f10653d02d6eea074739ae87af3c357bd97d92d973ab49ecc3bbfb","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"d2fd8df8cf2a4feb423adb28af6952c393e0de5d5fe69e452d6cacfccb67265f","id":"v3:security_ir:0:0:5:3","normalized_source_sha256":"273cf4fe0839fe8ec9f8bcf875fcdc1d251a6d76aaaa667774f999e818a2570e","source_sha256":"7d30466c35f6f2620c9dee1381c1b32d218686f6bfde1640c3a2a5f985228de6","target_sha256":"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6"},{"embedding_sha256":"83940d9cc2a187d67522dc68f3232bb59464cdaa3d76dda4cf904885f3c3f6a6","id":"v3:security_ir:0:1:0:0","normalized_source_sha256":"6130435fa3eeccdb0692427be200a18e6dfc3977674ee458fc786d1bba4fafa7","source_sha256":"5fea8cb7deb58b28ec31df7c1c4169a7abb52b027d815e2a21089e5bed34a3b4","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"4e09089ef2980212ef92762ffe7ad99ac670904a9f61b7e1e17052afa819792f","id":"v3:security_ir:0:1:1:0","normalized_source_sha256":"d2b1eebe538cc74aa0d76938654f0661399dcc965710f968a04598d61d30ea2a","source_sha256":"bb314d7c05b03c3566254c5608a912a779565150be28cbf6e310f5fe56ce31c5","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"dac6a13e1791b327cdd25e3b7b7b96f9d70881533155de5adcae2f294593683e","id":"v3:security_ir:0:1:2:0","normalized_source_sha256":"823b55c7bd3ddcfe47b98b0b510add7260fe9d2a909d9390d9a3073dbdc5be6e","source_sha256":"9b3c01973be5626e6fe859a923d8c314c7acdea449875f324a80d3e0f069b997","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"3e7957951eaa21d40f4d609dd8a9f8d33883d23c36d20f58293e989288cef71f","id":"v3:security_ir:0:1:3:0","normalized_source_sha256":"431fd102048f8e845d2955c84dacd965b35cd00a24994d1f04e6b82a64f76379","source_sha256":"0a5d8cc98d162f01e9c0fc933167a4c5d76c7a92a5b0e43e04ab6cd2ad26c5cb","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"253e813c3cf47c19c73c61ad079ef660a472b72497792048e978af2370ea0b2a","id":"v3:security_ir:0:1:4:0","normalized_source_sha256":"48931606718ceed993c0f616492b9f04106f025cf5951e8ddfd7b26a0a1a0704","source_sha256":"04fbd69a3c6b56426dcd20abc18f5f7bf72e67f5e3d5586bbe80974208e5e01c","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"188cd11f9e35aecb570e7c18fc9ff91cc84c8f4299b976a1c34ffb9d26f2859a","id":"v3:security_ir:0:1:5:0","normalized_source_sha256":"1adc42dddc2a55d48cdf1d448445918f9b2b5a56db81c8658e11c4317988ec25","source_sha256":"c2d33c4853da064d9056b49ec2f5843ad6412525851a5c9f5cd134f9d68f4357","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"7ba7ccb6ce8bcedfac73b63c9a3cca81caf93cfd0886465400adae66b83b63f4","id":"v3:security_ir:0:1:0:1","normalized_source_sha256":"983636cfee7b8e656453e7aa2fad6b0501b017ca5448689c3f7aba4eea99801c","source_sha256":"f57f786f66f21c06f6475cf7ba78cbf42228596a7fc7c45075e17a30f897e732","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"1cf846942d6157418402663f249503661852abc955a34c2adedfb388d833d203","id":"v3:security_ir:0:1:1:1","normalized_source_sha256":"4a211a50600c9e73a70fc330f96bee67fed0f9d456cbdd9b5aed0843b24bdba5","source_sha256":"bdb0becdc31c68b5f599906cab2b0300b96bc4d0d44852599b1f47511392bf39","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"7de3522e3f346c4e7cc38fe2166014985b61013bba91e8d45872587b60683e75","id":"v3:security_ir:0:1:2:1","normalized_source_sha256":"7ef35eab9b10f11c9db6eb2fd83423c1ee9248c2e16bc5b08304a3c9fd1b24e3","source_sha256":"439f6eef089a00fd78b2837e81197af9dba871f7fd3c601265d1227701f8d555","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"ca36fe73a9a1efdb544b43ff34dc3a9c459e52f83cb818fbfe32cf9fe6e5562a","id":"v3:security_ir:0:1:3:1","normalized_source_sha256":"f358443cea7aafe26c22fc1fa128d0a5ec5c3913f5c55ba98704864eb86c447f","source_sha256":"ae7b4f0f5a30e2dc6a085cbe5c2c509600d50ae466369d96e2ef4284d12fe1c1","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"cee7d907a28e6d13e4710e95581192c80713a044a7d3dd8d60a3f024f2c1050d","id":"v3:security_ir:0:1:4:1","normalized_source_sha256":"f362fa53ab8b2df39ae1937324db112450b74a19fda185fecf1f391a940e465a","source_sha256":"28322d8336e9310431c86c0661f02bcf929a3bb6d18c5ff7b42dac23d5a59f49","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"3e210e20f74cd890d0ae7743ad5730c6a2ffb60caf50955cf15a18007f313898","id":"v3:security_ir:0:1:5:1","normalized_source_sha256":"34d610966d118bfbd213ca7c24462056035cd436cfe0c9b13c06ad29982ee7f3","source_sha256":"8841102fdc001d3db15a0424cf5c45570a28c61b225addb7f7931f4ed2be9543","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"8cb0782c2cdfefea6f43bbaf4eff1d5dd9da827a761d2d41d4c11c2afb9230a0","id":"v3:security_ir:0:1:0:2","normalized_source_sha256":"85c78f661e84b174c7a9d23eb0d70a61337ad236947e9eb264d3165c616610c7","source_sha256":"84cd55dc4290910eb494ef893d893fde6a2d81499173f8b8370b9079d3d75ed7","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"b57b87f49814485889e803b3589e998a5856117d3b270852e46ca0915b5e0392","id":"v3:security_ir:0:1:1:2","normalized_source_sha256":"cf60bb3cc4115a4fa13b117fa3c9711766484d2120d5e316b7451d89b9b94da1","source_sha256":"2482c6feb1d9f5986c34e523f3f93e95f0f2056c2f4d35f7642db9d0d09d3839","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"177975353bf8c938a671fbfd56e19d748b14cfff02d876f544ef2b66d2d3d4de","id":"v3:security_ir:0:1:2:2","normalized_source_sha256":"799b50518212c5d3103f2061122feb43e6ece6095567bf7865eaff305dbb6b19","source_sha256":"9db61dc933d448f535b72b0635f627461f499b524c5687375709e7709f0d256e","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"8a193b51e775c350a2f29de30813de1f3e1e3c32b354e6b6a6e8f147f14516dc","id":"v3:security_ir:0:1:3:2","normalized_source_sha256":"a6bcd1e6b34379fefe3f82688de2b32c573721801aa0d12f46b782a557b2e9d1","source_sha256":"2a93d653e677cab13ac9954598937c6d7d3dc1df7086b11b6c13a4c4fd613842","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"d62ceb7ddc61ff8d0520ecb10286db158142a76def6f048a709eb0ee8d9bb137","id":"v3:security_ir:0:1:4:2","normalized_source_sha256":"a2bf376ce9e93bb089f2c786873445e6aed165428bcbe859a6268a5160693459","source_sha256":"d02644ab99cc3f2271d7ea21182f4f722611ea7ee1e1a0aa7111907451d0fbea","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"aa82efd152437bb7aa8475d21f4bfabb11b2e1211dfc3a3d20eeb670ca223d2e","id":"v3:security_ir:0:1:5:2","normalized_source_sha256":"bea84b95fcb415fb5630e29263ee0cd9a39cde83daf7ca4fe5257d5de7e41e62","source_sha256":"1f47d8fc2da7de16de3352e2a6dd7dda2df4406c182c1993ec565c0fa2e9ea84","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"1d24fa06b6a53f686991d1e550a67a9b76b1416543ebec6b5c0df1edf2da3dec","id":"v3:security_ir:0:1:0:3","normalized_source_sha256":"ba646cf9a35ec33fd5edd05aecefef0378c1bc96e9c35c549d252c771cbdc8e8","source_sha256":"59d478728103f88cea2bc52897ccb7dcd5526a0994c4ea0d5afc45d939e0f341","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"cad9488e052ba5d9bc1e2e0cfeb26a05a4c3739540bde4373f08975ccb4565fd","id":"v3:security_ir:0:1:1:3","normalized_source_sha256":"afc44e5da6905da9aba78eb15e377510076d0d402da062330c1fe90a1121ac6d","source_sha256":"aea28029faaa02fd9c1d5df495b1f078f7ab9a9e4dca64245c1d48783c96a316","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"48deb800d8a1b106d51cf4c8f0c8f9517c2209815f1e79f1667c53167a43130f","id":"v3:security_ir:0:1:2:3","normalized_source_sha256":"2c80e6138538b8b2dea52b8b6d0dbe4be7f4be59a2e39f624194e5f714ce1ec7","source_sha256":"4458d23bc0385adae5ce9b8af7cbbb296b704793bb149e36712ba862a0eec00d","target_sha256":"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5"},{"embedding_sha256":"eed62ae7a51f4020c0a5f8243c482ece1f50a0a54d422925bdc2916800ea26b8","id":"v3:security_ir:0:1:3:3","normalized_source_sha256":"a20f5d9fca372aa3fdc2928a55130343c473819de0868dd9f8e3d1d201ff4234","source_sha256":"d9edc1356f678750a7174f3427a09e0d540d5ef2918620a8291b3c4c6c9cd3ac","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"85389aa0395ae5903d25aa3f0d33c2d9291365fea530efe2a6af39dd23a0b64b","id":"v3:security_ir:0:1:4:3","normalized_source_sha256":"9f1ae2e5c42bf2aeb1e9febb51130371a68d8214fbb34aa9953a356d07e10363","source_sha256":"44e5ac2bc14a7df4653bc51527ccdd5cf3d4b08232f8d0b4cdcbfd88dcfffa53","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"1b540e7ad7d1e589ccedfa932f3f81db5222bcab46908b6d40b328ca6131a8ef","id":"v3:security_ir:0:1:5:3","normalized_source_sha256":"1dc90cca6fb74ed555265708a32e1f352859e768655d93be824e0a9c33e30da9","source_sha256":"2cfb8084a7be196108235e7b8d7b26a5a3020f296f5d566529329955229315d9","target_sha256":"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358"},{"embedding_sha256":"f4f2731506c3915bf6b30eb9262b7eaf84ec9c2b6e928e90fd679611ced33a49","id":"v3:security_ir:0:4:0:0","normalized_source_sha256":"7d3adc1dc9ad558ded8eb70bf4db9064aed5bf513a912a6a9ac5df1ccc1a9ff8","source_sha256":"2ea3b1c944e63ec7747a72a8e2978c436f62cfc19fa392d906f6e13e13e0aade","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"37d5ff902b4740cbfca4ef48410e3b7453cce35658e97c01c0379f669a9a95bc","id":"v3:security_ir:0:4:1:0","normalized_source_sha256":"fcd66a53d5bbd8721a9a4c06f56c4bdb034a1b0052454b55cae7fbc54f4de19e","source_sha256":"654d4178131b24e06b1d4dabeda4ceefbb20555d81f489091b6c6b3636856f1f","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"a4cb8c56da43784effc0f2e5cb19d5221c131191f926687a2c9f469563e1763c","id":"v3:security_ir:0:4:2:0","normalized_source_sha256":"40a92f3c44251df4cc84958db1e86518f1577b3636eac24c590698afd467f0be","source_sha256":"3f496d2f64f22cb032148a1d2d3433865f2086a1a45012cce2c63a24754ae3e3","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"1847b16aab5c5dbef74ffa66a638dad7898ba4f947acee25faafd21587b9e6b2","id":"v3:security_ir:0:4:3:0","normalized_source_sha256":"1cfeef728467feca4f5670c7d03c2e9f719f36d291f25aae8cce9aa0c82ac391","source_sha256":"e01284d2257aa5afc0781456bd437d9f1417af966b180680e34e8bedff524175","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"ba03d8d31429a8764ca9de7a4d665ec879c8cdbf05c42110e811fb5b729b01a9","id":"v3:security_ir:0:4:4:0","normalized_source_sha256":"d27c9a721d596d8c51f572ca5fcf9a91a4b05e0c0286ee96726e162e2f3bec66","source_sha256":"9f6af1b884ec00036fdd680d1e9693b3a357ffad9dff206e0ff55be3682f7dae","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"474ac4d7514c1443f3688b701de9bea1493bce6c5424014cd86ec27240b3fc2b","id":"v3:security_ir:0:4:5:0","normalized_source_sha256":"5de04f4b8fdd25287f98fabbc7148987293c1351c2990b450733f2e654592565","source_sha256":"959957319669ba898301cfaac4bf922d26fdb180e04e92a05f077736c2083818","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"deb4f3e5863f5a808262e40adaa66d1990db817549d2fc53d0344b77e353c680","id":"v3:security_ir:0:4:0:1","normalized_source_sha256":"c9bf260f145b9640195fca2af2568c60ed79e1a20e33a4ee0a89cdcc30f5fb77","source_sha256":"05933467e9b0bfe70db3832cc9c52231d58d6f0ff0ef51e23b4949c0ece3891c","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"ef11eca15e8e965e13f8ff137de8e88c40a763cf7db86f3ff3e4a4b3f7644682","id":"v3:security_ir:0:4:1:1","normalized_source_sha256":"a586934f29c3075fb1d2a6f855e5b725324cbd4d8e050ab84aa9ec322c2ceacf","source_sha256":"67c9b459c35202d7d9cdcd2ca4a7846a9feb9220c14c33420e4a699044998fb6","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"b4d49745f2dcd545944a0c81fdf6337fe61113d4c3a87898420162f4b9070ea5","id":"v3:security_ir:0:4:2:1","normalized_source_sha256":"7756c77f2699eab2435045d3ff1f667f88984f719ac1cf664aaa477ff567902c","source_sha256":"421f8c3207cd4ea49e2a40eae2db58a0fce82a2954bafbe89159f48c951b37c8","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"140e8de0e596697501a7a17daa8b0ba104a0034bb7c61c7d0c496415561f35ae","id":"v3:security_ir:0:4:3:1","normalized_source_sha256":"2dc1c0c93107892d2afc0a36c4a2ab991d59d7fede251583fbc58d15c0e58c7a","source_sha256":"7e8aeb504b2aeb23e01bf6e779d77e0f394c7381809fc91232e5e4e2a9abc68f","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"c3208f337d408cbe32fd1667bb067795d325f439925be5b8d1e085e44a890106","id":"v3:security_ir:0:4:4:1","normalized_source_sha256":"05b7d7fe6266789221f6f1b6758ea8d5633d18722f35337c3ceac4d93fd1a661","source_sha256":"34dede17e743d0d0013345b47ea3478f1f166a734104007de0a3b03bd8a21f3c","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"0a61f5a18463c6515bbc2e948656b3f5a204e168c2b2e8ff4577da792448d989","id":"v3:security_ir:0:4:5:1","normalized_source_sha256":"be70443818c8fa0437e4416147631dab7cc3aa94eecef201d434253679574b50","source_sha256":"6e2ac398bcec85c434f109e4683793731e82d1501c62a7059376b5cba6d87763","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"722e53a0e9496cc588b47c5d440422dcfe3b6df9caa0821f2f114ecff4f22c48","id":"v3:security_ir:0:4:0:2","normalized_source_sha256":"3a03d7c7b61d930a6c66dcf2a246804d4645d73476cbf933d4627a19f8a2f74a","source_sha256":"57df8897102cfafcf7ea400d9c556bd8965399f86a378b1267c81bbdc06169c7","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"8e76eb787d8a55e5a86e693e5469dbe3783f14af8f26891169da8d4bf9fc4a3b","id":"v3:security_ir:0:4:1:2","normalized_source_sha256":"d3c1d16e708769d1dc677ed3e947adf2e3752f973d74f705c2c7b43ba21f5253","source_sha256":"4e19a23c03d00feafe2d5a52001520df439394fa86ca5fccfd20ea3e8de6daea","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"a2c86f9641849dcc736be3014c50e3341bdf6b5e7b6d2d02be42b3c6d7b194b3","id":"v3:security_ir:0:4:2:2","normalized_source_sha256":"2e2120da4729077697e585fab0fce78f6d1f95bc7b010c12c6c199cf0964197b","source_sha256":"7b31bc6e7ca26cb30efb143729f3e4c3ba81ffbf97bbc48b4545fdcb2f7929db","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"43b02c888f8dc37b6563b434dbfb5bc949870010d69261594bae715fe1dd092f","id":"v3:security_ir:0:4:3:2","normalized_source_sha256":"dcc32c4b25847fd430556619fe7bcacd2d9e39061c904318de417dc27e17fe96","source_sha256":"8b46f10c53ec896fbca91e39b38e80a921f89b04b8c9ebf2518530698c37c844","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"74de3f49d54fec7361134b1cfeb4773930edffe10ed37de5ff4d2da6ef4832d3","id":"v3:security_ir:0:4:4:2","normalized_source_sha256":"11eb2d865cffc084cd43af598bfef5db6f3ee7756d65f6ea139668ad9211d51a","source_sha256":"c30692346a42ceeb92bf286063b01db6b6d769973099098dc671bb3b860f2380","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"cfff064469a0ee7882dc97117937ac8fedb2a2ed223e22e18f20006a89360c0a","id":"v3:security_ir:0:4:5:2","normalized_source_sha256":"becb22434c9193c1ab4f3df56b5b6043f9348620f272e41cd5341f15f13579b4","source_sha256":"49aa2e1103cfce32b1c300af7acdde7ea1e0ca6e072b6d667bec1ca94e9d3cf1","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"2f832c1cfa8b22aec16e81a674ab8e5a73b0fd0db6d998c306232e8640f0c2f6","id":"v3:security_ir:0:4:0:3","normalized_source_sha256":"8b4aa6c2d898cf1f571405e9bad7d90518e7558710f4c8f161a677433460fb95","source_sha256":"b395557bb86c9fed3ae1964a6f77b1e5f4f4c8f949b5bff8f794bb58ae0d560d","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"b3ddf4376fc53c135aecbb5a0f58fa17bb9da15c6535f0885fcd884705826170","id":"v3:security_ir:0:4:1:3","normalized_source_sha256":"f929847de0e1429e59c0d6accf978766acaec5c9053021501cd79252354a4bdd","source_sha256":"68bab81245f9fac918e89f75f7ecd1993dca4c057a053b6584f0bc8f70bd1aa0","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"0b08a55f7ea0213f20721705589eb7f8a16f946185b845171ff813e7b457fc2d","id":"v3:security_ir:0:4:2:3","normalized_source_sha256":"66cf6dae163a6ad9090ee56162f9ffaf00cddd1e5d39711ce8b2b46134690eaf","source_sha256":"9672481c024a93b97a341915a306c0e0c354f3d03a89977d1e5bde5510716a87","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"c9a9c7a73692b488f124efc0064b4456b42734929f9796497b6157c24b92e6c1","id":"v3:security_ir:0:4:3:3","normalized_source_sha256":"bf41503845ce08cf12ea6154bc88169f1611ea9e1d2e9651dcab9f078174ecc8","source_sha256":"e3b567f4edc8857e397cdd349bc14a56a15f4c52ec5391789ec787b574e73a23","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"d3c2b3d61654548ae3f88384d60297b50a2dc558326e54d3406126c6191bcc5f","id":"v3:security_ir:0:4:4:3","normalized_source_sha256":"ac8a0f35035d407a0dfb3e6119ed1a0ac056b8639931bfa03a3b4e6bc6c899f7","source_sha256":"ea0189169d24d3ee8577c7292aff3e69a80596c1bfd04abf491567fd37d651a4","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"150c033211034583260ad6d0774d754c1ad24fc292e71ec73ba5e31e4d6097a6","id":"v3:security_ir:0:4:5:3","normalized_source_sha256":"3943a687e8598596771ea3386cc276035e8db9d97e8f1e23c513fda392602c7d","source_sha256":"a580f2e620cce572405027b34062e253f45e36c7a789c3f4de884f2e93c27529","target_sha256":"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166"},{"embedding_sha256":"31faf7370a33d36b2763d5e570809077964ecb3ff2b67c30844fe4af81826846","id":"v3:security_ir:1:0:0:0","normalized_source_sha256":"595b4d6c11b04d30a50d952af84e4613b8239509b1aae21fc7666b616505ee22","source_sha256":"e10b3b0101e96fb0bef303c78133ad616e0a60ccabc3fe9c73e5927106a98d5e","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"d5c9c7f12bfa4f0beae962a194ea42c297d564c0a59ce013983497182d4c62b4","id":"v3:security_ir:1:0:1:0","normalized_source_sha256":"8bf8a956bb968fefcee14f2d1ddc1be247d65e5bf876db2ff38a7b6967ea4270","source_sha256":"5ab0ec980a73e8a4db0d32dac441057c6f3c5b5152d55797266efe652e84e3f8","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"1caf3a7fdff48be133408cb82287aa63c296e3a91680f19d5b1921098fb53f5c","id":"v3:security_ir:1:0:2:0","normalized_source_sha256":"848247d3757b289894f8b7dc119b21e7cfe2fb73058c1b3a4e84ed8b9282aa3c","source_sha256":"361661c0b6055b87015acfb1abe3c092d9158c074de73b05e8fe49a9ed21546a","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"541f5375be3edee7512211b2cbb30fccfc2cd0b1da9095b58df09c15a8145a61","id":"v3:security_ir:1:0:3:0","normalized_source_sha256":"29802b323ed477f32395428a22e6612aa511e20b06cd4542078640fc220ac4d8","source_sha256":"ec77ddb7508376aa14ac198cdce6e0aeb234d42d51bede264bdbcc7818b3ce95","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"cc367cf88d0eb2adf3faaba208ecd6abefad87687e239bdebeb584b59ba2eb6a","id":"v3:security_ir:1:0:4:0","normalized_source_sha256":"ce0c83f3b9ce77c68e532544e24202ce3906435ae73852fab834bb0794631d6b","source_sha256":"69c094de3b7c64e224081bb143e465929abfb204cfcf08504921e5010a2a7454","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"43222ad5afe5513209b506ce7e95e1c782429b53b07e7c85d8c196b12c55af07","id":"v3:security_ir:1:0:5:0","normalized_source_sha256":"3dca86033dfcfcde16eacc69a4e77626b942f403e3b8c3517e1943da9b51a05f","source_sha256":"a037abd4a93f1b026e374b8fb67ccc7de36fa23fa3059ca93ba50cd6b23586c5","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"fc35b2ed9c8513aa2a43861388edf86a16eed41e54ad1e57629c8c81487ee395","id":"v3:security_ir:1:0:0:1","normalized_source_sha256":"3e0660b858d6162262f3966358a4c564ce295694167b4128217e56389629657b","source_sha256":"84803e07a99b1851a1a5092ea72c0fc49eca5cefb4b533c0d9c6a5b9f408c505","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"0c55c044c7cd8e8a0e693f957ec554337b2435282c03f0230b57ef17a6cbf06b","id":"v3:security_ir:1:0:1:1","normalized_source_sha256":"4eaf40a037dcc99598bbe9c685942d311077617be721b3bac3b63bdb16881b3e","source_sha256":"0466fe40708d7f024f2c1a53d97464a9922a8692c36039c87eb967d1f773ace5","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"39a99ef55ba60e52d5b4d0a25a3044e9b5d869ccf76bce690b2ace094964c727","id":"v3:security_ir:1:0:2:1","normalized_source_sha256":"b4ff2ed9f496f83f79774587a721e25b3a6a9684a4306c4f611a286a5accc17d","source_sha256":"94f2fa2292d5fe844cf7a703ff47b0619efec273e7b92cf3d3b6ed2c74787eed","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"24cc59b0b2cefabf630ce3b24e0d385998787bc6a2e02b7d8ec52f1183e5f938","id":"v3:security_ir:1:0:3:1","normalized_source_sha256":"636487755242ce387042918446a589d17c923d2d62aa14c91e6f4dd54cf97fdc","source_sha256":"a5bbc740d3feb2b2e2a8866c73dd6a8028dd309b8518470f88459aae27dbb9d1","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"0988d9c8b9f89cc9015c2ef3414272e6bf34fb8b0cbce7ca04b99940ba564a55","id":"v3:security_ir:1:0:4:1","normalized_source_sha256":"ff238416848bebf85285e36c92ab33cb229f5d423e9b2f7468fc690c04afaee3","source_sha256":"a32eef6d4181229ceee4e4020467d0657d793e8294b713b96d4121aff7494433","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"f7bac722b943cc60134dd546a395569e640d0652164597b08d4815c80da9b68e","id":"v3:security_ir:1:0:5:1","normalized_source_sha256":"6ac9374d203b820e6e630136f7089065192fe8c45f9c24b9060a78c101143b38","source_sha256":"01774e33655e2aace17f9a9798c934dfdfdeedc2dd67df6793e4fda77b94a3e1","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"8398ae47e670fe14455317b1b7536d2d233e7a2509d0fd02b743e93f7754eed8","id":"v3:security_ir:1:0:0:2","normalized_source_sha256":"c3f5d5e58ea2fbe027bdf43d4ef2df20f687de14bc6cef3d5848441ade3ece69","source_sha256":"48a0f2724be87a966a30f64db8bf571bd4bef4038f09a05c167e52d4144a7ddf","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"ad0b84005477456636f56e7efceb92890e4dca652b58d301b668cdc59483c2dd","id":"v3:security_ir:1:0:1:2","normalized_source_sha256":"a2c3dff31dec0279fb2c6454bb8f9ca09364f3e2433ee0f9008642bd78d3ffdf","source_sha256":"35826c767c30cb5499bbe240b6c746580ac1d5fc6740fdb20b6ba9103ee6b5a6","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"07dbc49ae07117df4b7d11f07c2a3cfebe3d12e3b8fdbdbbbea4a2b239b5e6fb","id":"v3:security_ir:1:0:2:2","normalized_source_sha256":"723c44e950fb0740cf81eb191828e87a37a225abec4960f334d4f70255a45890","source_sha256":"ad854942fb72e1e2e6b3ea522a2171801811f500b2a5eded9d182fe094258563","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"6ab68b71b749ed95034c9092906336829928b5bb2116ee9bc049bac2813171af","id":"v3:security_ir:1:0:3:2","normalized_source_sha256":"3c543542ed9dc313a67d968eb29560e221739749a2e4bfd7ae48d98d2f5a6513","source_sha256":"2366f710503f7042a9eb77f9622e70ed0f0bf20f066ffde8eec62e3f91f12eb8","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"68a2e3de57301fb33d3de6dcca9daa6ee2fa3dff21e125185c57ae2ce0ee4736","id":"v3:security_ir:1:0:4:2","normalized_source_sha256":"e51be2be7593ce075840c626d58fe29fd551263e5c38afe5bb2a1d94ca4bf065","source_sha256":"55d736a23a3aeb0e40bccd9ef7d46529bc8093d586889424da8e5181fa62a81d","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"365af24260df7dd7c6560fe44112ea11a62080ad6f8b26785c98f43f04ef6212","id":"v3:security_ir:1:0:5:2","normalized_source_sha256":"2001fefa64220160cad7221a2c290726c6a0ded85bfa38b2492b643f063fd267","source_sha256":"859bcb3142294cd9fde6c971de1373d93d9246ff0ae2e1e182cf4435e7bebac5","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"bf82543e7b8750622ab4b51b64153138e7aba0d4aa9cc992b03ac63b2a7a7d9b","id":"v3:security_ir:1:0:0:3","normalized_source_sha256":"4078335fe17b679468b1eed84a2a5b1b89f99243b09dc215181778f6a1acc474","source_sha256":"d0a7f229ad105d753c2f40f3f98be83f9eef8f6eca9c5d03ea2a64401c53cfc7","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"37e1a37b1e60990624f79cf829e061a155ce326997d04fbf757361b8db7d80e1","id":"v3:security_ir:1:0:1:3","normalized_source_sha256":"f0e240a5e74086c2511766d140e2e28c9478052db2cd4f0833eb1c10c19770dd","source_sha256":"6343c30324e4ea455eb1cde560f762ee1629fe99c2435c8006323f2816a5d846","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"dac2ca616e342bd9bac7d3250ec1c8b653809902755b76edde73afcc1f262117","id":"v3:security_ir:1:0:2:3","normalized_source_sha256":"c05728a8b8dcadece0837290b1858e01b4768691c661dcddbe67ac4fcf229549","source_sha256":"38fad99e2d54ba4abab2140143bf46581e7bd407a6739fda97cfc098d821f287","target_sha256":"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466"},{"embedding_sha256":"fd00836a92e6c96c1a0a2cda74a8966ebd75ff1f439ebacaad9c230e242331f3","id":"v3:security_ir:1:0:3:3","normalized_source_sha256":"7461c01f523b16f1d7462ba7d5ebbbe602ac5a3364bc8f8332209cbb8e94fab4","source_sha256":"183b739ea4aace61fd6180db0482443331d20ef4fa6ca4200990b15f5eb871f9","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"1cf1477082a50929147b8df914518acf75b09933004d416849c5bf02dd3c03f9","id":"v3:security_ir:1:0:4:3","normalized_source_sha256":"6e8437bee019792eefb61a9cae169b827d7d8bcf22f04c4efe555b5746d23efe","source_sha256":"2912d622d23c41626101d9a9637f7e66325230dd78dfe5819f45c05015ea2969","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"3de6a9c9fd2d4a7607efa10935f6791ab9fa239afb4125c780269a8e29d57951","id":"v3:security_ir:1:0:5:3","normalized_source_sha256":"7383e4c8f78e1cc7376c1e0d96077b4dd2436973fc771c4ed96d84165d58bdb3","source_sha256":"96236d553040104554db91ca1319aee4a634026087eaf242a5eb2eb4380c917f","target_sha256":"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14"},{"embedding_sha256":"2da35788c103cf111e4db4d46fcce17a93b16ce3a653cf91d03b30712f0452ca","id":"v3:security_ir:1:1:0:0","normalized_source_sha256":"fc7f5564e9802e79154aa7c084ccf8a86f32b97866ea0820fe1391b901d162b2","source_sha256":"1b76b45a55685d9f4fea8e7a05f32632e5b5bb63d7e2c31e715b9fa6f34563ab","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"c8632189d78d0e701edcb350d38b2d0ffd5853d786e2803c3e91a8c0f2b00d0b","id":"v3:security_ir:1:1:1:0","normalized_source_sha256":"72030193609206a350b574e033fab6a8ddf675cd2ce2fb10deed4277f8cd0878","source_sha256":"1536e525b8c3c96c70b0e8fda0814a99b99d15c247f38da8ff965fd7ada8afcc","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"59f43dd3486232d720981b83ced5765ad8673350f6e103d1b57540aedd9d17ec","id":"v3:security_ir:1:1:2:0","normalized_source_sha256":"13db7bad70174c7bdd9610d921d02bfbee719ec83ef63753136ebfcf09a01091","source_sha256":"6a2fd75d1612bfd156169cba6507c8aa0152dc9661379eae86d4f2f94bf4724e","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"8d6ecb5411417876b3c8b3bc3c88e6b3ff7312ebe020d028747d4347cd1e5154","id":"v3:security_ir:1:1:3:0","normalized_source_sha256":"8a5659412a4e58b97679615d6c4dbc427a4a584584c7caa33860a5a8a3203a07","source_sha256":"b7f7ce5a351c3ec608ddffa054c4b4bd40a3486b89093fdee653517e761b2303","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"7bea656b94f53ed0fb18f61d2602960b68a46335bcf77511c76a7ea40e2049b7","id":"v3:security_ir:1:1:4:0","normalized_source_sha256":"e089e9dd2a6370f2d46345087d116c7b417316dc7f6fc802e4c1a125067b1d5d","source_sha256":"49e815882f46196ca34dc431fa04fe8ee422ba50f9a0e3f2ed5218dda3801f17","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"5de4c79c8c1c66dd4fca030648847b1e9141f18875f11e9dd4c196fa491f4e36","id":"v3:security_ir:1:1:5:0","normalized_source_sha256":"d00172c320a86b7252323752bd8d335b458a2da4ca1cde2defcd7a8ea7200e8e","source_sha256":"8baf2c46612adf976d6c363333d39f6b893619b49e3de6f8258fae5bc376472c","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"a6972df55519cc406e74436a94a5251fb02ac65d456d5360c71c18127b3d950b","id":"v3:security_ir:1:1:0:1","normalized_source_sha256":"ccd912d25a61ee18dd6d8743682c9a93b4e74a5eb22933f25c43de4c9a6b3710","source_sha256":"46fd08e5ae81747c3e60cab864e9978abc583675948c808b79a1fc9235795e34","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"3b9d5d081f5bcf6314987a7ec09946d97e0edc80aa7376cd37712d9bd6e2f9e5","id":"v3:security_ir:1:1:1:1","normalized_source_sha256":"a1fa589d6291e3eb2ff3a4c09f5a3f2405273403fd41554fb9dbfd86881a054d","source_sha256":"29a57a689b2847d5a5c2cac0437d5d5ef0d0a595ba716f2f874b5c13ff35f167","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"9195ee210b43fba82a893431cf95577019e4f769da5183da0c85d265e646bcd4","id":"v3:security_ir:1:1:2:1","normalized_source_sha256":"5a56c74596c0a64472f35c4a4d799f8bb93ce228d657cc43890284bb75fc5170","source_sha256":"a732a51f3001bb17355c3da2ebbe9b0c83a22b32e9ae77472d5306b96e0cade8","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"b379120bd808d034ab895edef68776a261726268c2e5766fe639133b3606ea1e","id":"v3:security_ir:1:1:3:1","normalized_source_sha256":"07a6e079cfcf6269370a21ce432eb86c59e16382ec958a1b31643d1bd36d5a5d","source_sha256":"3aad59fad68e28bd06b4d0edd6dcf03f3bb1ca3b5a515ed64bbf1469e93a2453","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"108d48811881037ca15ec234050b83c791f6b9dc5df6f8a5e9b95a3a1b900342","id":"v3:security_ir:1:1:4:1","normalized_source_sha256":"2444cd655c8fd7719714ddefc9dee82694a7f94a09c1107162c55a07f0a34f97","source_sha256":"3758ca98081751d88146dace74ffa687693cc5da8eb1ac03cd65efbbcf48d32a","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"f2e5a67ef47d123e4ca1445fae748e73774c4a6587e74580ab2ac5c7861c9349","id":"v3:security_ir:1:1:5:1","normalized_source_sha256":"8a0ee620c04c759b54429b29e05a164edf8c223387ce4dbe72db1ce6c772a41b","source_sha256":"02bcf396a20bbba287fd54e30f26133e3e2f4132e4ba69b16cb8b6a6eb623ae4","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"ea247cd6928aa6d1eaa67ab3850971b39db0f4f90f7bef6c522a893930e0def8","id":"v3:security_ir:1:1:0:2","normalized_source_sha256":"f012164c9c2f322d57e7b2e3050d8d0df79f5d74707623abaf3e50808ed54a94","source_sha256":"bc74790c75902c92e216efea4812a169e10eeadb772e60fd66b9a0b34d69ed08","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"e3c00fa8a6dcfcfb22ea356b3c53e5b191ef6ad36ad5c75558a1896f02ed678b","id":"v3:security_ir:1:1:1:2","normalized_source_sha256":"335f96da53e86d2c6640618065ea9e0034b20e3b32c8e8a5a3c91b203e2606a5","source_sha256":"7f9165666ec7b4e420461402c4592391d08b04b419deee65de49770d2507da08","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"488527484b3cd8f5b711a53a6ccea346175be20a6fb0a496d896cf3bdf8216a5","id":"v3:security_ir:1:1:2:2","normalized_source_sha256":"14ff09e19accbec90f317049b305638abaaf4053aed348128a795d7d04426b5b","source_sha256":"c4262cc46382a0b685f998e4effab541e37b809f0e05743bbc8b8d5d7e3bb351","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"3d81d976d330b6fab6d37080b4460751eff634b61addb2a591a689effdc00329","id":"v3:security_ir:1:1:3:2","normalized_source_sha256":"b49e0ef81288cab21eff3fd1c4f111300e0f1cfbd5381bb9668294386215e60f","source_sha256":"fe6547da37c0dc4a8644b83c96a0a8ebea1739d648dd5883668cf52685e90187","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"6cb09e7de1927fb51e066aefd7fe6c96bdb92ce5317f24a676d7a9931a95ab2f","id":"v3:security_ir:1:1:4:2","normalized_source_sha256":"47e340f27b0baf2925df1dfbe4dd4fb28c9064381db88bfe9335f2d7dae8a4fa","source_sha256":"f4835b139bc8e1c3fa2a68f23e69ace8d2c016a72efd953e61f7580c53132a80","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"70c488ced405be14fd2631b23322870ab9c829bcf9a8bd1bb2b59b3fcde78a0d","id":"v3:security_ir:1:1:5:2","normalized_source_sha256":"b717e1f0d25fc5740b78d8c5add49a7e2e74745d2d37def3a13cc3ca5356a0a3","source_sha256":"01e5564836f374ff1222b5128e7f009772d7c02cca47cf5cf657da6088d7261c","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"721266a1702b66fd707c8404e7e3d886201d37162d1fae5f97a1c5f6259b2535","id":"v3:security_ir:1:1:0:3","normalized_source_sha256":"d82458686869b43a9bba60b920e826faa43469ac1c5bbf22135822288648749b","source_sha256":"ab5eefb77e85a02180965a16af3f07f9b2a7e0b30aff68d2835a43cae36db76a","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"48d1a9216c2eefcb452251f68ff8c4e880b9bdab79c407f3719c380a05aba078","id":"v3:security_ir:1:1:1:3","normalized_source_sha256":"1125697305662f371b8cb08e19eccee23d378bda4d2761fe74be610097316242","source_sha256":"9d6b030fa9bd8756189e590111cfa22b764961af815a161af5f83626a4d1fe3e","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"7497ba8d53805ca2a0d5f87a090f818b9eda477c30bcd2fbf818d57c7c5c333b","id":"v3:security_ir:1:1:2:3","normalized_source_sha256":"4e3e0c2a8f82b288e470d57fff2565bc4a0691aab7f9accbe0fd5e4aabfe8173","source_sha256":"2b86118f04629400e5b4b1be08d9b1ee8481556a19e7add79e280833925a0946","target_sha256":"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804"},{"embedding_sha256":"785f192059f243fab6e9982f8d6610cde66dba05ad66ad215f4c73cb959ded89","id":"v3:security_ir:1:1:3:3","normalized_source_sha256":"7dc4d6890d1e7124bc224dc0e7c83d7dd8c99a2c432f1b5aa2d0876797025e69","source_sha256":"1c5a87be9295332db730e2f2179f65ad143dd68065c779e4087e28776a765257","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"98034cc4e421c8d46e089e169e6a744ffe4cab79858b8d833dee2449fdcbe458","id":"v3:security_ir:1:1:4:3","normalized_source_sha256":"daddfccc20234a661b5ff0e05e1dc2899361c050be3a0348618c47676e1bb88c","source_sha256":"c4d2c27c77aaead079dc2e5edefdd5cf8eb8c8daf28e4a1dc86026a1e780b6c7","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"fd6408948c411915f84071859d39a03d70ddb0c40abbb1b77665f39877193466","id":"v3:security_ir:1:1:5:3","normalized_source_sha256":"07a519bb98a44d3b2468516f2d14188060c60b8c9663802f090a97a064ff6db0","source_sha256":"2db9f53f4a44e95bdb77cab6452594979afe93a3d2a2fafa9bb378b7e576be13","target_sha256":"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b"},{"embedding_sha256":"21ca6142e6425b3d0f885cba718882e9e4f0f36f67463d5701b231659e193946","id":"v3:security_ir:1:2:0:0","normalized_source_sha256":"77561cc5b4e45baa5321af042f29ec3a65efd7606b12a28717a429b673f6cdbc","source_sha256":"73184a7af9eb50dd957dc24865c944c97fd8365098ada632d0e883b411c4951f","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"e2d970a9fc185a22d215bdeeabd6e8ea2fc558403294ccfe73b0a6b2de7d51a5","id":"v3:security_ir:1:2:1:0","normalized_source_sha256":"3a832b49f562748d26f05cba7a5bff5c2ffb9cf2812d8b5299dd04086b8c696b","source_sha256":"4153854a8a53f0f1945d214025955c9462366481b8a2e16780b33ac2b0af967f","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"df51017da22e90205d838de266b9ca28fe96d33fe87a5581661c38bdea23fe8d","id":"v3:security_ir:1:2:2:0","normalized_source_sha256":"2b7f6a3ae2ad0eb5f7805fefc93f59d1e8bec2c7a4892dcebc6084afbc78c2a1","source_sha256":"7bab1afd458dbacacf0f04f6b4600c67f39dd02eaf74767a0900880c1ba70564","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"8a181877f1d6c4e69d66c1c2536eb46fbe326a95dca8254091f543f87d1af021","id":"v3:security_ir:1:2:3:0","normalized_source_sha256":"c6f032ee99c0108efee8920187c36382979fc3e0839ac0342c6d5a7a275c7b29","source_sha256":"9de50aa35863539b2651d6a8cff117262661a2f0fac1fde8a11adf3d1af61127","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"de32bf992647ca3064cb593bc057d2e66dd05ff908f357a5ad23b6599fe82bc5","id":"v3:security_ir:1:2:4:0","normalized_source_sha256":"2dad7a74567fd740101193af1ae7d9afdcdc345bda6fc7ebfd783140ac3232b4","source_sha256":"6819898a17bbd73988a4e31796d914da4d4dbb5abbc867b0919f370bc0160a58","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"b5f597e1b68b40f20a096c3ee7132872e29ec4bff43285b048fe93e97b03f9e2","id":"v3:security_ir:1:2:5:0","normalized_source_sha256":"e56a19692b9c57f5bdc1505046ce171093d51c699587429161c3e8dde271d958","source_sha256":"c121ae501abf06d049e533aa3c3e7017be259de8063526eaca9066596e3e1c4d","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"09f2416e8dcf60632a05d2eeaf5f5a4f71798e33a452abbdc58a3062c039c55c","id":"v3:security_ir:1:2:0:1","normalized_source_sha256":"2529464a8357720a8d3b045ce979dad3d0ac2ae2a223a95e77b1af3ba4cb0842","source_sha256":"93820c648b90436578cc13dceb6e0765342432792901e5754c24772d3fca321d","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"909cdbe375692bd392d46171a11d3a0da856da0c161af220a729b0e4e058622f","id":"v3:security_ir:1:2:1:1","normalized_source_sha256":"87aaff19e878a594c659c967dec52ff04e33c366b83ed0ebc7392cf2c96303cd","source_sha256":"333581dcc007c6828bc2cb0f604bf707bccb2d3a568437dde1138176b8eda0ae","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"586c625090ea0b7e819af0e3730e588c8a1295e93555fd6dedf7dc990339f0fc","id":"v3:security_ir:1:2:2:1","normalized_source_sha256":"1c0e89200e60e0b2a057a9ad1c5c33e6036a7c4ab9df71616fe4aba7feec68d8","source_sha256":"ee1085c0fd6f8a8394978408a213a63e255c71c42183259ba573cbc89355ab2d","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"bfcd1f749abc78352472af10d763a9500cd90f75c3d3cbe95a45eea374ebbfb2","id":"v3:security_ir:1:2:3:1","normalized_source_sha256":"d79eb81789d84e3bc94d0428bfb905dc7e3680324c001774a09a527cacd87a18","source_sha256":"5ffab4643378703f0342bd69f03a6db4fce191e271d83d986cba186baf417305","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"fabfdbf2064ea0355a3f372d6003c6d50970b7104fe6812c76b81ea663a542ea","id":"v3:security_ir:1:2:4:1","normalized_source_sha256":"52a3cf6a36ca34cc41872bc43fbd26b8a088db141f7e8fe5ac4b4094fccf1434","source_sha256":"910217442f8506c310a1862f2e9d086ecdb39c8dedf8b191350d68167b69d398","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"6c2e41fe0cc6a1c146b3e7f512d628485354222580e471cf76c4038fe92107c2","id":"v3:security_ir:1:2:5:1","normalized_source_sha256":"35e7daac4c3c430ace9c5bd4fc1c6cc6d756f99ce8f34ecd00c937bbfe075ec1","source_sha256":"664a46b3807eba8d57d5e61903e707fec3c1b9fa4a213f0ada7f4689651f5d9e","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"02045f319ce15118157350e8cb077957375810f45e9e31540c9419c6dc05500f","id":"v3:security_ir:1:2:0:2","normalized_source_sha256":"4fd704451309fc0c9aec559b2e758099a3527a4e325317c1cba0c1090f89c5f7","source_sha256":"74b3b865bd2f3255e1a24576e4858d8c16df19f25e8f3c1a11b87ac5bdbc394c","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"ecb67b09d4b504639c517a147b444d088fc0934aa0a095ed940dddf6de0ac8a4","id":"v3:security_ir:1:2:1:2","normalized_source_sha256":"f39523f05b0412fe738f421bb14684fcf68a22be0c08d382e8bfb2382f32d316","source_sha256":"042b921340b8e6428ae3d791baa4a3749754f67d0a06525a75cee50345ab8066","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"7bf0cb70caf8d941ef599d23b1bf53771681f7865680a8e3ca9b2d9eb77cf8c9","id":"v3:security_ir:1:2:2:2","normalized_source_sha256":"fd04409af40f6d3e108cbe7d1ba3a6b49a3a558096c73f440e21fc599afe7a7f","source_sha256":"efa18390ae7fa38f592c1ee9db71a1ee64d3077bf748b70a820d02704779d860","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"d8937cc89f1ae1562fe075e2a3a309a12cce5c0874c7fbd9f9251f45c80d2f59","id":"v3:security_ir:1:2:3:2","normalized_source_sha256":"e063e1fbcf5524383211028be660e514810c87287e1cb111a0d50a50bfc84950","source_sha256":"7382b6041c647b0f9450a7ab1c06aaa5be232bb757d48c7cf5110bb7fbce1375","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"df66eeff23a5b873ae3befb1f23905c0fee94c6df2882f19720937a3a935d9bc","id":"v3:security_ir:1:2:4:2","normalized_source_sha256":"cd8d9d8fd8dea23ba5fc1c6941387a7dfa3cbc388f777f44c41423ae37f5d155","source_sha256":"3ba18a3522efdd0331cf081f45fd8daec3567017c58722492b8e769b53460bc2","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"fb3cc01374189996ed67cdd804d4f79d11aa999bbcb7399ba8b7a206d385c17e","id":"v3:security_ir:1:2:5:2","normalized_source_sha256":"54b40d02c6dfe2e8aaf985fd2bb1265016e733174f51a8a105e9e13f662266fa","source_sha256":"7910fef25c858b4ffc0bce71de50aacd0a7b6037ecba04e4cd0e184eb68ffc27","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"66ea66a22e56e70750efe6f5d56f2abf6b707780b5fe5239b80fb23c01a83f9c","id":"v3:security_ir:1:2:0:3","normalized_source_sha256":"3d7a28f507b10126725089e7f12733529cf5091425b372afb1b1e9daddf84917","source_sha256":"f95c9bae426554130499c818ed777c67faded273f2391b0fcded39539a31a5f0","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"e1ca34ccfe7ee1eb524855b00a700cc805ec6aa7a77d96da34b8be0dd6f4f3f4","id":"v3:security_ir:1:2:1:3","normalized_source_sha256":"f5be130a171321736649d28ea84c964c4a26d1ad5b7c6fd3911501685acadf86","source_sha256":"139822c89a10f8a6181b79f40e1c59dcf142f362e3f92946c5b39b5214fe822e","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"a73f20af9dd00c842e3a4ac9c67bb857a04ea5daaa6de68956ba444fb4e76691","id":"v3:security_ir:1:2:2:3","normalized_source_sha256":"fe1be5fe0d10975a771a8ca4be36febeb83ac56bb4611bae02d5256f881dc42b","source_sha256":"b07459c130a5f4d8cade948046d217e24a5227490959924391fd22d332186d16","target_sha256":"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730"},{"embedding_sha256":"b5a042571d230bef7d9d9c306bef66289ef46f20d985a4d2ead30a9569f7acdc","id":"v3:security_ir:1:2:3:3","normalized_source_sha256":"050f11d0a7c129d34951b54a1183c3e21154908fed1c1f0f39751eeb67fcc46b","source_sha256":"a5d80233b4525341a814514a38b972a6c19d0be02d6b9bd05dca9603299af548","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"28cc06e0b013d68b59ecaa0ec09f37cbd9a2688c1911835f1b27bf55b718a886","id":"v3:security_ir:1:2:4:3","normalized_source_sha256":"a9e81c46367602c7086a9632a43607a0349c996d3e40ae583fdccb52d9dac077","source_sha256":"046992894eded4d5faecf09235e948185ecbbe06cd3205a815454e737f8d8b39","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"5729bffa6f6cccc260b6bbe630fe331b413968bce9dcfefa25b3540c6f4811ca","id":"v3:security_ir:1:2:5:3","normalized_source_sha256":"9564b1caf6eb4abec40b5283c6db34d8d6d4e9fdee393f8ed263fd1193d834e0","source_sha256":"a32e915e096986c89b2d8045e9b5c6b8eb57b236ce6aac558c5c513230d1a7ac","target_sha256":"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731"},{"embedding_sha256":"f40fd0092f9a3c60834183d17c6deb9a5c3564bcf4de770d68fd64de936cda09","id":"v3:security_ir:2:1:0:0","normalized_source_sha256":"7e93857bf328a12e90fe0e54ddbdf8481be874ca2524a6c9b8bf41982b0af13e","source_sha256":"60ea10b34a9cd34b37e4bb883e88ad9621ef96dc5370369f8d6c73f448831233","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"8f1b13b609f418b95853d68642b296a353d838297a09e9b6867ae19cbf4e631a","id":"v3:security_ir:2:1:1:0","normalized_source_sha256":"c8e2fea874de758c30d5ee51c16da765b921449b96c2736182bba1405673a842","source_sha256":"c09bb3af701c64c0a01b9524e29df8e0a125c690d2ec7a6c2b42a037801a42c7","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"d61308f11c90474b4c741bf67540020c455c2b99241a29716de13adc6d28ea91","id":"v3:security_ir:2:1:2:0","normalized_source_sha256":"6d64d6f32ecddfcc7a78a80ae22b1a3e0f2f40a0c359ee7fc408a84e12f97d27","source_sha256":"d762315ed85cde1b62002dfe82d9b7887d17eccaa782aaa800880e95d8fa1fbf","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"341f49b329ffc1159c17e1a8bfb2ed465e665716002e165420c29189e9f2fcb4","id":"v3:security_ir:2:1:3:0","normalized_source_sha256":"e41f4dbba2ec7f5c5e3c8d5ca1518482a54d8c24a5a708399220ea0e9979a7be","source_sha256":"aeb0c7190231de1011c3a1123e4276f113b9c3a6c5bc9b07844de6cc41ad07bf","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"36aba593a51fff0ec79b27d035953563f18a304290efb8b6faa0f797d37fe2b2","id":"v3:security_ir:2:1:4:0","normalized_source_sha256":"92f5d0f07b47c3fe3354cec507a503ec47087e829acbed11a6dcfd49b9d93e2b","source_sha256":"27cfe9cb86eab846200a6d10db37d91fb3e5dfca9f72c4d1a20a32053c8ba970","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"e779b860d1a49aba22f43f7e2166aafa48939bed2f32e822a833c130bdd7b68f","id":"v3:security_ir:2:1:5:0","normalized_source_sha256":"fc300829ff7cd65901f4000b8881dde165b5ed748593981ae0cc7a67c2edb841","source_sha256":"26a674803c8e39407b10d70ff0940626c18b04724fb18a0e31cf3e5dfadd3b37","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"7d4e424597e913d230224141cfea9308d23720dc43e8792ff180c3c930fbcf1f","id":"v3:security_ir:2:1:0:1","normalized_source_sha256":"5163d86d0e8c6dbcf90c57fd4f6d6b9a8356e08d0f39f8176a78325551651428","source_sha256":"2526ac8ca84825eb1f3ee1c89079b0fdf7f67c8b780c4ee2e0a02c9231d4bd74","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"86495663456158e7e025415443e5b4df9e3071ca1645f25f100945cfc1028a84","id":"v3:security_ir:2:1:1:1","normalized_source_sha256":"0af7bb28479aaa5c813baf17ab42205a96ecfff329769a4b609a3c3e8c843d5b","source_sha256":"519297d26ea06ec1a64f3290d461fd57daede123f089a102b6c0b6231e8c8c74","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"7c2394156b42596f191304e5ce37c5f6a277e6c835b1d661692c895acde36e08","id":"v3:security_ir:2:1:2:1","normalized_source_sha256":"016a645bf07eb685a2fee03bb13fb231ab2acec862940ad4ad8b6e1591478b9b","source_sha256":"3a0156c1888c72e3fe895e9daa09f958d45ff403ef2a4145efa2f6bd9d8e09a9","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"20d79a5e9b011199ed160079e52e914dcf59f01e628f3f7b8b94a66a61f38844","id":"v3:security_ir:2:1:3:1","normalized_source_sha256":"0809644427ca8d708485e83aadc895fe9e2441f7329ae2580f385e395ee72fc2","source_sha256":"66080e06a783022debcf6a69642004b92b8616f072928a8660e1289cfcc26e7b","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"4d6cc7a07550ce040ddd546d6f044532914788ec8ae86894be038bfdfb8f6573","id":"v3:security_ir:2:1:4:1","normalized_source_sha256":"e4eaa4ad37b961ff4dc7284db795b6b190335eddecbce71775f5d914f803a482","source_sha256":"ba9232012370dca08257834d99d520159467f3e977898a3bc6fae4d83eba48a8","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"2dfc7e41e633c43615c88ff93f2e972f801789cccf458f2df4b91d088e964649","id":"v3:security_ir:2:1:5:1","normalized_source_sha256":"ac34983427cb9e18995e90c3d1338f1abb89e0f2fa00f703ae8d6c899e88a72d","source_sha256":"b762cb7a55e398054cc45e7a1bb4955aad8636eabff931853e87e89c2e3c5492","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"7d3e2080756203bdff305526f370fad31e4ee02ec93a8db1564d55a72d746fef","id":"v3:security_ir:2:1:0:2","normalized_source_sha256":"c18d8f28912dd6d8954af7760a4d7ca372e84f0693fd2e26548393ee90d346d1","source_sha256":"0d388637c07aea4f4945c0d6cb70f3f1a0f9001b4521941ea64e93f1defa6f30","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"1ce0aef2dc6757a03243af77beb9f6cc5f7cf6e8e5cbbe6a10cc60c6e44fd044","id":"v3:security_ir:2:1:1:2","normalized_source_sha256":"c5ca9ceded47226608f7c045d13cf58ad9a70e739ab862a1ecf6907988655d11","source_sha256":"c0291bc2c3bb569e1f20964a58773b24b187ac03ec397c635cb5ce71fbe79868","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"16e26204eba38c310524502ffe61737b054fce39531ce37a3edcad3bca7c23af","id":"v3:security_ir:2:1:2:2","normalized_source_sha256":"961bdbfc232060d5bd080cca3ad6cece2ac0a4a8d8f6f521e0c248a61409df9e","source_sha256":"8d6376aaa57e085836d2c462b51e14ad6b3a5283b104856591b2fd75c523c213","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"ad356f5f7d7eeacfb5717e53f4c6350927c47fc4928a907b3b075052dbf4108f","id":"v3:security_ir:2:1:3:2","normalized_source_sha256":"b00709aced57628a601709cb13ec716985cf95d7da9b001314d2c1a953a89c64","source_sha256":"a934ae3ae2586079a9c5bf156166a6a4b195e2d57416db90aed67ba466bf01ee","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"3d98a6db09b9ffc924d1a4a504ce37fd4215ec5d82d4877d86a2d2485eb660d0","id":"v3:security_ir:2:1:4:2","normalized_source_sha256":"10a375b7da1e2e77dd68142e56ae95ef34286ec14174ff70f1d549abd5da7543","source_sha256":"a6aee89ead0c48fdd78715df50564e3f72806428d971aa8b5672a9f438871f8b","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"5313bcb1608b29806e64aabaeeaedc1cccad06a0a2b7575f0eadcdd98c4c9dd0","id":"v3:security_ir:2:1:5:2","normalized_source_sha256":"ed44b7d63a8ef5c2351866989a95ee53097a1f411de507833bdbeabaed060f88","source_sha256":"f6b5e7c9b6bea9fdc0bba4de85e9415ddbf4dd8cd15d783ddaaccb111659cfe5","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"48df2b1c3388b61e557ae042e621db2a345b9ef4a1936d584cc8163e9e13d9f3","id":"v3:security_ir:2:1:0:3","normalized_source_sha256":"20f153c7c1b5dac9ac5a4113d208d0042fd24047f1e41bff3044e85500ebb01d","source_sha256":"10706c335033b4b196ce8f1b0332e37050664fe196e0fc32ebfdca07111cc5f0","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"406eb37c8bc7e8503fd7cd53a4c2a5bd720c13aff1a5794a4b5f6583603d81bf","id":"v3:security_ir:2:1:1:3","normalized_source_sha256":"cb32e462cbc0da9b73ad7e1cf55305839206f22b3b54cd534f54f82c93ed3c74","source_sha256":"c66eec70db32b85963208278d9bf428d6cadfe9356bd5f64054a9b1305683357","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"50e79b2d2fe1336e67c0f1a819b2aa4b69d3f429884bcf20f7b7bbd16c12233d","id":"v3:security_ir:2:1:2:3","normalized_source_sha256":"1d88a76fb3b59f71c906e293111b4e406940be6c6b481c29f2878e5708940c47","source_sha256":"34b70904e659284b53d99a195f2ce1467d25619a74f811bb3c4ec48ac82e14c1","target_sha256":"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd"},{"embedding_sha256":"f991ba040b2396a594741c8b7abaf3371ee50ffe1a189c90d414eeb5f188c0ce","id":"v3:security_ir:2:1:3:3","normalized_source_sha256":"48e2dfde94b0870159b2699ef28212eb3536f11c36fca604c44ff6eb92dcc242","source_sha256":"032bbde98c9e8e5d1975755f229cacaf6b45cdea7c14bb11873065be3103e2ba","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"1f1dd435e811c14f529009cd77d52b5ea07f42bd828a89bf92456a91e319b342","id":"v3:security_ir:2:1:4:3","normalized_source_sha256":"4378829f9f8b82e0d33f35d54d4e00645193515bef70ad1e17e803e483833baf","source_sha256":"4e394b541918270273a58154ac260f15d30642d9608990e20946d959befdb1e9","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"a503ce77be327d4b979b5541ae9fb9c9b2fec4e61792d6453e41f8e346dc183c","id":"v3:security_ir:2:1:5:3","normalized_source_sha256":"54f1f4a9c292c4b3aa263471fb234e347f41a529788524c48ec3a53d4bf9f21d","source_sha256":"3d7f3cb2ea6b92f33e8889c82178e5abee6ffb04182405078f810c01f77f9ea6","target_sha256":"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76"},{"embedding_sha256":"baf4b2e456804ea735ff708270b86dbda7d067bd8f69914ee98feba3c212932d","id":"v3:security_ir:2:2:0:0","normalized_source_sha256":"173ac09d1068ce29a31c12ae7ff16c39d3a7fe3bb46b923008c209fb72b71ef9","source_sha256":"e1c7f0000c9d943b7b132d4828b0d44b33e9fdeb15e0be17ddf986f8d5c18896","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"16bd3dfbd973011dc629c61771988e0651ac8320ad7f930a115f571a819f8228","id":"v3:security_ir:2:2:1:0","normalized_source_sha256":"e27ba479ce365436b4d88d064913adcb4ed93cf7e0c06e82ed15af8c89e07862","source_sha256":"21328b46fadfd39d1de6e6badd10d92816dc346b3f70f38e2bc6eee930d0566a","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"7ebc1acf4b84c38a0791b06794208bdc016a98ef6b2ffa0d1f37159ae8f00be4","id":"v3:security_ir:2:2:2:0","normalized_source_sha256":"3a1b518e96d04937df908ce1359e9147cc8ec9d8710a286b9e538236b812d0a0","source_sha256":"57a72606d1febe8e134388b95f0c97a51e0eac2e7e7c01862c260894696789f9","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"576a689083a1d5249cd4e585bcda87ef7306081771969055fdfd124a1918965f","id":"v3:security_ir:2:2:3:0","normalized_source_sha256":"395adea35a73e77676923eada051832edf93aac2d21ad3b491aded59b75fe889","source_sha256":"94dcb1c2d5a57c3d1176fa65ea633a8a9f09b20714a66b829eaab7e4282075c5","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"6c8162a4932454ae8165d0e33a73611f92d03a2ded2043b75fe4477b8657555b","id":"v3:security_ir:2:2:4:0","normalized_source_sha256":"549a538b5b1e5c030f578ea712cb998835bf088db81d6e8b1285381d3076ad20","source_sha256":"7dabb331b695ba2b357106ac9345ded755d9b3cc22f28a29bd924508c8e42e30","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"e6626d7218e9914b348f5c690d17c8d4fdf8c4c6a071c39b0f2c2d8fcf78e517","id":"v3:security_ir:2:2:5:0","normalized_source_sha256":"2d360a3acd7462c02976a36125e3656b1c02b2129ecea84a6b1999c41a2926cf","source_sha256":"c76ced12909d34b71d124a16506bd9413f0de3772398f6590c98b55b6179f3d3","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"93a7f8a38d7a9a439e78f89a8424e23fe128495651ca6adede89d93a9dc7ced6","id":"v3:security_ir:2:2:0:1","normalized_source_sha256":"f038514ee55bbecc40ffd20f7c389d6dd357fe8b2d04d56ca618e65743fc24b7","source_sha256":"130afdbd831b92c2cdcd0a22442e151b272f8cc5ee9c48b16f87a3a8e3a75308","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"0e0d2a5b5ed0f69d06e98ef2ea86afad1ae74de43a697af6e045fd6764e7a662","id":"v3:security_ir:2:2:1:1","normalized_source_sha256":"a3c28e3fd8520a140c8f0c33b1d1641bee18ed210959a25ee13b7700b34f5eb8","source_sha256":"e06fa3df18e977ed3959a2b58b29992d03732815105e0f96f25a646a32ba23d3","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"a3a66fec3363bc54cf83a7ca6db65af95c8a00292f70405f08cb70295363af63","id":"v3:security_ir:2:2:2:1","normalized_source_sha256":"513386276d0eb36c8bf497587d8cd43fcd528bdb6099f29ac756b848197c16ff","source_sha256":"12075132b34ebf254324edada9f6e391fbc5b878a19df1cc61a7b44f04fe62cb","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"b2e0219ad9a278ef3313911c7fecac817f805d84eafdfb10f2e456530cfedf81","id":"v3:security_ir:2:2:3:1","normalized_source_sha256":"a6332a21d92b683f017737d89e1d7b3a11c07179378191141b396cf5575a0c9b","source_sha256":"385a2fdf3d87a080e852babe62563ad10ae151a097aa184bfe6169c566a672db","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"f21587b6227c95a7b81a9652c8899d02b020073fbada089ed3ae4393a4565cd6","id":"v3:security_ir:2:2:4:1","normalized_source_sha256":"be2463aabf47390ff47d66af682da92d179b527e264737fe77f731afe812e6fb","source_sha256":"fc444f313b1cef84df988a0ea2b526770048b70464fb338c317bf954f3d550b5","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"be28ecf285841e03abd1b3dacc5966a9515fa3b0300f1a80f034112103fc4a1d","id":"v3:security_ir:2:2:5:1","normalized_source_sha256":"db1b9ea9b396d4064097de2e0cfe6dcd10d23e1ef9fae213a2c5311f2bae44d6","source_sha256":"af2440151b69c9eb19d3f68b0a2d733dba6c53a65ad83b50f232880a035f75a3","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"10818ef737f31a0eec4d0b928e92d85d44ac9e0dcf8e06242919c79ed320af4b","id":"v3:security_ir:2:2:0:2","normalized_source_sha256":"0fd91acc64e8e620131f190dacc9787f2c5e45242ea94418abf06b9b1a98c102","source_sha256":"e90c65ef05c789f89549026ffcc7901bc72a3f9962c22e8ce8cee2ec923ab63a","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"bd6b287ed020ef6c826aeeb869ef9f5f730a42b9a9ceee4495b43b2c63210b14","id":"v3:security_ir:2:2:1:2","normalized_source_sha256":"a617b7dcd19da444387dd36bfa1a21bb5a11bc8cf4b2526ee8767a1a49a2c216","source_sha256":"7ecc2d3a38668ca7dc581530170c140982ba8e155a5ba4d3435b9f454ccb6fe5","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"bb6e08bb456fc25a9ede3466e4865d3e3bead19a14dc958606a9e61537a234c7","id":"v3:security_ir:2:2:2:2","normalized_source_sha256":"8170dd36f78e3d610fe587f8b679215bcccdae9118184b43833f2b8597193711","source_sha256":"1eaf7cbf5530e214870d9cb00be2b439ff1425da5939e69ab6fe8300de133402","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"e921418d9fc0511072ac00a09cc14f15f94327941c7ff7731ecc546017a655c3","id":"v3:security_ir:2:2:3:2","normalized_source_sha256":"e4fa573476e84e0563d712e4e54b1ee7a7eb311afdb1a1a1b336431c56323cee","source_sha256":"7070e595bdb973260ce6fe804195f6ae9cbfe511d48e5fc36c94b5047897256d","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"bd5bd03912f2c23aa91a9e1cde8631a455928a6a8600ad919747d104ae814add","id":"v3:security_ir:2:2:4:2","normalized_source_sha256":"3d3e3303954e13afd2128a796df03e835876927eb6e6d79fb70c599ab9e5ddad","source_sha256":"88edc0e01b39de8f90e498fde4ba77992be2466a75b11bd36819733e10928aef","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"8142b6d1dac973bda63dfffdce7cd7fea068b32641a44ff9bc382e22235f85c9","id":"v3:security_ir:2:2:5:2","normalized_source_sha256":"e41861aeddeb4da7f33ffa81d5de3ed069f357d3b115da75041c9526151611be","source_sha256":"105f5e599e1702f42f5e14bce8653cc2d12430c25d0238e198e6295fb0a68e55","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"4f92853a564ecf3a58b4cb9a8fb405a92037cba1700afb7e7078cba7fe7c6d6c","id":"v3:security_ir:2:2:0:3","normalized_source_sha256":"ca6f1bdf70095d6269d0cfd54ac06d8f6d80ab1d4c3c629a1d70dc2072f04155","source_sha256":"feb02ab07bf8b375ebc4ea20ae0dd39bc9d2992c99775e763b29c036c4b80508","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"7b4b7d0373f9792f702be1ce007820f90d6f5a0113ffa66e6dd3e2a187a986b9","id":"v3:security_ir:2:2:1:3","normalized_source_sha256":"78b6fc02e69199fecbea69c8ac102e6876c76d00c05358fa7367db2becd0bf61","source_sha256":"2b82ec9fb5517891c5e20a8cf686cad77302b7f0272a8c0b2f5d40205ea47139","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"e76a24455d249404bfac8f632759e728378fc54664ea71cccd3fb0205e1bb0b2","id":"v3:security_ir:2:2:2:3","normalized_source_sha256":"694b0be467f5945924f99fead4e87ddaa5f70dde3d08f076536b9da9acda3469","source_sha256":"7f5c2b21556ff12f3348f8a68256bb0de708161e7fff49d7ba6e855512877661","target_sha256":"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621"},{"embedding_sha256":"6fa82154cca82bd5af532f5d662eae6b30920499f537311b8df0c96c5f1efc75","id":"v3:security_ir:2:2:3:3","normalized_source_sha256":"d70336b16c022758115d3c73fdce4b2f70d133d1a00e3ab2942b4bcc08a3f92e","source_sha256":"43cd90cb4807ce9df4807176e4ad549f0044384bb086bf3e90b78140435b6957","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"3b8c12f6f08cb08bf77451b3ba652bf7c271a2f68d7717b5317d753a350967c2","id":"v3:security_ir:2:2:4:3","normalized_source_sha256":"1a182a5f4e1bd72d37fb2d1aa3dadcb02267f897f47dd73d4ef0b40ed164ee29","source_sha256":"f6136b73140f56a95fdc907380df9b5f925be7f9de8c542628689dcf430121d2","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"87a498f174721c362ab1d54b04caf261115cc701281d83d4220479b7c0f81337","id":"v3:security_ir:2:2:5:3","normalized_source_sha256":"f06f44f96f226a4019160465426485323032cdf3463568a1cf21a41a0e3519d4","source_sha256":"9a6c6261b344662cb42ab78df5e309235014993fba21d794af6e3781288b06f5","target_sha256":"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce"},{"embedding_sha256":"f072fada6bd29ac50ffa80771555bb3b377d47e108f79aefd3b033f92abe4a5a","id":"v3:security_ir:2:3:0:0","normalized_source_sha256":"4565c5f99822d852fc0c93ac08a1d4962d85dc8aede40e2f2721e26742c7c1c9","source_sha256":"9e3259f831d04826aabffddb0a75faaadd5bead3767fd6a851c23c3509afd903","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"01d98f7fb3f37d14128de57fd93b8d8269e07368faf9c315f87bcff44d5f58e6","id":"v3:security_ir:2:3:1:0","normalized_source_sha256":"d9e10eb4bd9fe8d8ce1c282a92bec1c4c18870628deab058d6cf94e9a2d60913","source_sha256":"5b6f2b4ec6f6df882717bd46c9c1082e2c73018ce5ff2819b533acd4b46429e3","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"e4f65827155a94d6181decdcd453d6b31af5b8533539b1e783acf51d16f41391","id":"v3:security_ir:2:3:2:0","normalized_source_sha256":"255e6dc664e6e2dfad7ea76d5b9aa6192f0a9500cea4844e7e5537b636318ef4","source_sha256":"3615fa90165621b7389f06a6fa6db4ab394bf06c25541db806c18cfbc860c785","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"ad2a494e2d8a13c3198eadb85f9257b8c298c2a2819a29bc48286919fc4a8ec4","id":"v3:security_ir:2:3:3:0","normalized_source_sha256":"12159852544355f67e8b1ac3c6cbaeb9b09b556327e18846ee223b36b4cf3b4b","source_sha256":"1df24e71bf03ea17cb684198f6c73c8420de6fbf41a31d5dba06730fbbd775e9","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"4cb649dad594ac6de1df8ab42d3354ca32105c121d2a0ab3d7c574cf34816ff9","id":"v3:security_ir:2:3:4:0","normalized_source_sha256":"66de392f206e9124cef4b69a3ed51231b685f7a180f9d59a99ed347c42db5437","source_sha256":"c3878118941583cfeedbb26dd31ca378ee9985bd66411c1b823ca13432bc4244","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"79fff46b0c34d427b953b959656e9709593b6a394446903a0e29b46ea8b702a9","id":"v3:security_ir:2:3:5:0","normalized_source_sha256":"7498e4a513ca8f5663133dbe069a8e88cf417c0c30d338287ceffef720a0c1ff","source_sha256":"0d52a0802de5098cd70babab4ec3073db6b2aeba732cffb743080e18e8484aa8","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"98b3dc72b1cd3d54ef9e1bcd6ba99270cfdea176a49678ffa9661173916f7769","id":"v3:security_ir:2:3:0:1","normalized_source_sha256":"144d58570d5a0d0d6f5ec982848ee353bba4085adf3af8e45591741e2863a18a","source_sha256":"b6677647539e621f9d54e8565f331255d8ca5196647eb6f6d1094a1ae0bb3f8a","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"5e8d5c120b8d7aebca9064f2c8c2176fcc157806abbb922f455874b04d6906ec","id":"v3:security_ir:2:3:1:1","normalized_source_sha256":"f1cf00a2edabc02b7d7c18a3e6d94adddb17caac48dc1319849e9f61c67c61e2","source_sha256":"a62fcbb323c63c57638fcea720d1c2adc0c22370955c4efe49f558dbd0103a5b","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"a6c20d58f831e42cf643ea557d2a6d8fab86bc5107d1ead173a01c32f3f0c881","id":"v3:security_ir:2:3:2:1","normalized_source_sha256":"e2b195a3ffaf779bb4d7d9ab305bed87ac75c24c1088dcc8282a8622e3a03efe","source_sha256":"2e985b4b3c25fe5d6a2ba437cfb482346f083803ba76d104762e4c51b5640db2","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"27c5a03aeeaae2c55f770ba1d09c57720586e9cd421f9bcf4639d95c063c59be","id":"v3:security_ir:2:3:3:1","normalized_source_sha256":"0299345e0b0286fcc54e5e1448673c2439cd992f4a7fc6e270eae3c3ed9bc06c","source_sha256":"36d20b5a1357e58ea3c0ef07b8f9c6a976bbb669f535a78db680f4c890df72a1","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"83d11fde31ee961a95e424efb16ffff774cb8da0e8a2e2f79677898e5840d958","id":"v3:security_ir:2:3:4:1","normalized_source_sha256":"f7032e3fdc9d8149d64576a247b6f317acb320ce27e9cd476ac7f8657bf158ce","source_sha256":"6e4bef4a404f0f611d64a128c20f95b6a6b68c8039528002c402be0eeaa0d2d0","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"e63fc435e99598b80346dc1a36505f0d2cfb184da10ccb8941ab145da984a272","id":"v3:security_ir:2:3:5:1","normalized_source_sha256":"ef695f01733769dbccaca9ea34f01a11c37496dfe9b0f4830d1de9e5d83ca90e","source_sha256":"45f1ad51a4d6d9c5d33c3686cab39770fb74877f451d04a4e122facfe7aa1a3c","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"1eca7b5f00d1b8ca56a1f2cb87ae561b1e712c77344c616b14782da854aff49e","id":"v3:security_ir:2:3:0:2","normalized_source_sha256":"2ba150fce0110920159f5c3b71a3e4bc01b8a9d6df5bb297db49bea53a9067be","source_sha256":"87c88183b5cd077ae286c10f036b23e3688dde94668a63349d04c4db5bff3ad5","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"da777d11592ae821f42491445e6ed9a60ed00518848a74635346268b646aa292","id":"v3:security_ir:2:3:1:2","normalized_source_sha256":"72204a0d950934fe4c292d45103893ceee84374d72a0648bedd871466abbd468","source_sha256":"ccc4cf3182a84184fcfd4517661e6e1a00cb3499d7e075d534abdcb92a6de2fa","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"945a8cca9d4de8171591f0c37b95dcead0d75845856cadc068eea56ec09edc4d","id":"v3:security_ir:2:3:2:2","normalized_source_sha256":"5007144cd7cedaa42b9103b9634be0fe0bbc5c00cba9ca077da97491f8960ca4","source_sha256":"0dc26092b1f347fb4d9afe50b7f50418924b4ef5abd6bf789b8554b136075b28","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"9db40c39324a6472242a04aa370fca61a4bf24c212a3128b2b5b1befa86a69c0","id":"v3:security_ir:2:3:3:2","normalized_source_sha256":"9e68bb6a8525e3bad1d18e6c40892412d685d560b8d068cec65ea506a67dd378","source_sha256":"4e973b442a2c1b672d4add65d0142a17c46b120cacf25f8c8097e188d3c9e162","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"99d93a7d43ad99c4ec706d25904e828c2d816cafbbf65cad21b85ea4603fdb69","id":"v3:security_ir:2:3:4:2","normalized_source_sha256":"de4568156fe9da38ff75b664449be688ba8b98bbb54f939d0babc46cff7bc118","source_sha256":"93486880c999a68a143eb6be003300d5bde1a1fa0da50684a94356b0be910d3e","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"a4637aebf52f04b06cb8b03197aa8575cd5cd7412646cc038aba5800e9e8fff9","id":"v3:security_ir:2:3:5:2","normalized_source_sha256":"f87710b1575a07ad8024617f9aa8d9504ba66b39977b3d9cc59098f4d4034750","source_sha256":"fd665594743e1cff91a111cd3c0a9885f19ecff22d840482d81c4a9db19380c3","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"252018e8a833507f1d01f6c0a18c9830e0c48f25a50d70275ab596ee6b99d56f","id":"v3:security_ir:2:3:0:3","normalized_source_sha256":"b1fc5fa0f278ee6b593267a6f725a1e06f398c9a5d1f58e35b310c5407c60508","source_sha256":"8fc7c6a8541511bed7281fefaf4833ba2a6b8c82a50005635c4491d3177b1fc1","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"f290a258a02897dafd3d6dd84f8acd81fa2ea1cbd748aeddb79ee3fd8798484d","id":"v3:security_ir:2:3:1:3","normalized_source_sha256":"6de6fe108b083d1812b1060844b09987d4f0c2c7810b56eac91d6ee322e4e345","source_sha256":"2d55245902facd6791ad21885615f71185aca39e1f469e138680ef5b584b7820","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"6c3ff54ac582499bd4db26708714084cdaaf299ee19852055d9c6e6bc616717a","id":"v3:security_ir:2:3:2:3","normalized_source_sha256":"7685589f135f72fff9c298694316d90c8a8533f0dec183620d41886be79194b1","source_sha256":"f59c845a7a1349f70ac1cd682b66ec49f47bc627ea32cdf9ac435264b1e8e157","target_sha256":"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0"},{"embedding_sha256":"bf4ad81e4d2d491ca7f28cf1c2256a199d694e3df9aa9c76fd528a0f0f49a29d","id":"v3:security_ir:2:3:3:3","normalized_source_sha256":"d802f86b527968a005983952033b9eb76ff8bcfe7204d8b3c5200a53871373ac","source_sha256":"ca347b3db6c4f3f7d20a6e749299a69a3bdb1ec694764de010eb040235c5f59c","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"4eda2fbee8d49b130064015bec0bf5d7eb0421603c16dbe472f08327503a68d7","id":"v3:security_ir:2:3:4:3","normalized_source_sha256":"289c84c30368540b4ad164a8ba5bad19f4d29ef90ff297ae4eee695e3359cbea","source_sha256":"3c9856aced9e5973ad45f9d48108afe8ff6bc735829cbcb68e81a3d93ded8cf7","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"2349d068670e4eeb515555247db1d1b1c98293baf58dd2335d4c1aef16a9ebda","id":"v3:security_ir:2:3:5:3","normalized_source_sha256":"e6191fa12c87876ec1a49191f24436388c40b429ffdee2cec1b732d43b88dd23","source_sha256":"2e25d20a856ed359400938e657e95b0f00beb8ce66a8d337c49b27c82ca006b7","target_sha256":"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318"},{"embedding_sha256":"b9c14b838a6e70be7655dfd857082cd64c544c86dc263878a53ad8e5120a767a","id":"v3:security_ir:3:2:0:0","normalized_source_sha256":"8ee565bfacf7b3269828adfaa4019e5baa561e28c3be0fc8722410fc4e0ad38b","source_sha256":"5b02680b531487eb1941ae507b5c3ab1576021b98f6906cdadc7b01748a07388","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"c39e82af70aa2608a6985ec171397efae2156be4d3bf4b0a875d96e477bda8d3","id":"v3:security_ir:3:2:1:0","normalized_source_sha256":"8ece8f3bf78eba9b2f7da8058225c4620831fbc6fae70dd578aa1f54b6fd55ab","source_sha256":"72b41169b65bd0db2dadbf027944cf7bd6bbb6b86b789aa6b5816bee0618dfcd","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"3ccffc88726bc10ad90ea57e45758427f572eb745c88ff007777b6407a9337ba","id":"v3:security_ir:3:2:2:0","normalized_source_sha256":"c132f43298e112639e873fdd252b3132d56896768317fdf2fea5df8c4e0e745b","source_sha256":"3eab046bc81c6deab26ea51523a7d30b8e97de29de9610e35266c391ccbe0177","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"66fae25d936ad80af34615924c247ce1e0d33ea642c5ec1ed92d76d0bf62de0f","id":"v3:security_ir:3:2:3:0","normalized_source_sha256":"b205747359b7cd78737ccd5c0838d011806a08479dc83b26f8194a491e137047","source_sha256":"a8719ef29aeff02d622b28f1dab9eb10e48332ad8e38cf816f9520979f6cd281","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"47330f72dd4af76bf6abaf1d8b0849c9d8b1f85eeb3d808f6dbe46bef745469a","id":"v3:security_ir:3:2:4:0","normalized_source_sha256":"2b6f15f98c5fa55f8011826b24e3109d46c66f33565f5af0dc01ff081fd35aec","source_sha256":"d7a06750257b69531adadc4413ec6d7e4d3b3c7e4993920472bd0ccee6a0adda","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"9b5989eab8bee9d98aab3c4a5a486ec4e2f68ef9fffd9a025701d9c9d5bc2744","id":"v3:security_ir:3:2:5:0","normalized_source_sha256":"ff91f948215571b0c8a42ada7578520538904ed1d2c4badb237a8b82a2f3ec6e","source_sha256":"87fd0b333cf7d9dcbe4c7653f8193dc1bdf6626c1159f02f938942a29c4b4245","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"c02132ac6c9588e67fe2a3a7abf30b37c14d8c3869b4396456b7c20fa3868d1f","id":"v3:security_ir:3:2:0:1","normalized_source_sha256":"e93829294315f24d40c99729a51356277d196eaa9c9b479c7ae920f6e487aaba","source_sha256":"4c1fbe2c7e760310ac9dff4bcc6113aeb0921b8a90758c4688b6563c84caa3d3","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"a1c08a9fd461ac282c50a986e26747d9ac7564eb324316da31e8fb4214eb05d2","id":"v3:security_ir:3:2:1:1","normalized_source_sha256":"787934987bb719788fde2a722613fea000a507c6aebb6815b71477d66473ddae","source_sha256":"af0a06799b3caf43c8096d254da4fd0463af5fb4f48db78f9fab207f0b4d2fbc","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"0aa71f7debb4fe83874218b82a17b3be820122677848a635e4d2b2c5ea26382a","id":"v3:security_ir:3:2:2:1","normalized_source_sha256":"f091adcf8ce91df034522ec51388dbd88bed2bb6b010204da344cabc4b30aad5","source_sha256":"cbb19ee11a7b552144480c5ab9019dbdc3f51242306653ba2f58a27b250bec22","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"6fa7064893ae16e96f8bde14660ccd2d70f371160c7327844eb5d521c65acdd1","id":"v3:security_ir:3:2:3:1","normalized_source_sha256":"0f7a7d9f47ef1baa6f5b517d93d2a9990c379d968ab3ee9cfe2b2c3f0464ba83","source_sha256":"1e78f2c983c7a7bbe3282b2869bc20b2f06228cf3a12d2a87f6b0a0126b20ba6","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"5a4140cf41de106953bb22f6625eea7baaa9191f5f75c8e90f98a17689792ce9","id":"v3:security_ir:3:2:4:1","normalized_source_sha256":"bc8cff1dd0aaf33e6d3ec95e5cbc0d41b241bb2ed690bc73e3d4a223d2fa8973","source_sha256":"5e5268fc819289d16abf533a189338ef1cf832a0cc26b4b04495b8d2d45a2733","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"cdef1126f777870404b6c1fb3f4efb3326c900ad4240e7ee2b916d63fbf03654","id":"v3:security_ir:3:2:5:1","normalized_source_sha256":"27947cec01fb65adacd538667d744fdbc3b6450bfa386a01765a9d389ac0d2cc","source_sha256":"387f72e4210cbeeb278b8b2f7e3f911c5ba81db6dd50c74aec58cdfa0ad2a1e2","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"cf436a1d85f6759c371fa83a9c9d0eeaa72e6f3b84e2802747417ab96ed8e1f1","id":"v3:security_ir:3:2:0:2","normalized_source_sha256":"6a93af82f402efc7db56329a1f18edc0a856cf00db940f060f4dd91adb85c838","source_sha256":"d8808247faa6271809071427c1e40763e0acea5569722bc4277c53a63ad4a581","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"abc32ef729a11ca7c1ef9ed30f7d30a191f98cbeac4570849fbed6ec27916171","id":"v3:security_ir:3:2:1:2","normalized_source_sha256":"4105260ae8ea2eaa454faacb9eeddb98ce8fc4d6744be21fb7371b198c8c64e8","source_sha256":"7148abc9b1e30d3716db8379750bca0472d302ed21a14d30c00fc9f07b1dc724","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"33025caed9f0e1b277261e1886d8df6eab471fa755041f7bfcc4086260ee1bb1","id":"v3:security_ir:3:2:2:2","normalized_source_sha256":"7d56aced212b0832583ac5dd9a2eaab090a34982800e549e492212a5fcacbc06","source_sha256":"5b20b166c07e78c7d99f8ee41ab29621ced380eaf08c5b133534ad0225befc33","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"8414726a62c017a1227a14dc6529e2c4723a0b12d6ef5278ec74c747bcc452f6","id":"v3:security_ir:3:2:3:2","normalized_source_sha256":"c0f8e32eb564c5445044b7f3f6aaeee458a0705ed5bd2e1e243fffb5c639a66a","source_sha256":"150f5eb343e5ba9fb8d5bfacc9fb5d6cecadab3cc20feb9f4278c5a451dc32b7","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"2e1b2a7ed6a2423816372f25023ffa74f5f1854663117fad5b40c023ddb44b56","id":"v3:security_ir:3:2:4:2","normalized_source_sha256":"41ee716010cd977684f1eaef586e407887898ad6d9a86e8b213d986cb76f49ba","source_sha256":"8f2927ea9a4af1bc5e853e5fdb810ff22ff5dee3cf28a83cd5b2fedbe6461580","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"323ee995ca7d46bddcf5c937ea5c50f059d39dd6c97b71fc913b1e80f8e25c06","id":"v3:security_ir:3:2:5:2","normalized_source_sha256":"8a1f51f229bde460cd029ccadef6bc0c8ac2599a86ff098572fc7efb9e96d78b","source_sha256":"22509e0ceb509f4a4bf19f58b3305345c587f18f0e1c9bb52637a3cec34e6da0","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"9ab608aa27794c10fe2c343fd5ae326a5c6825c506da0f96656ff97bf1015488","id":"v3:security_ir:3:2:0:3","normalized_source_sha256":"c9c5974ac40786681eb7c2e8685db274619b0de37cfd6f1590e9d7c9fb4f6e44","source_sha256":"0fa5beb39c6777eb2bd8572e818c43c9563b1c764c7b73f2ef1ecfce39a34902","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"b43225336efd1b892beb49e37708afc1f098f345058f66b23a98870fdd594f65","id":"v3:security_ir:3:2:1:3","normalized_source_sha256":"2d32b2b79376235cfb5c01dffb087ec7ccc4850520abe5005c7154ac01779d51","source_sha256":"d1267f48f106ee9fe5f8477a4203c4a86b756a2bf36255db6e6d00a31cf60dbc","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"5e9f37b2a3c15db83409d6ef7f421e338a70e65eeaf199a28738d4ef329972b8","id":"v3:security_ir:3:2:2:3","normalized_source_sha256":"76759f12370f9a1ef0aaa595e3948962fd44b856745d04e4b9d484bba46340ae","source_sha256":"54844af585dc2676e8f9be4b5c45f7cf7d81b631cdadc91c831eace25fafa8c6","target_sha256":"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee"},{"embedding_sha256":"6c78499472681411b62287074ced66a6abc5bf7836cfde6466139d876e062617","id":"v3:security_ir:3:2:3:3","normalized_source_sha256":"e8260cb0c7566961969f9ae4b818004e81321b6d2c38e740a03dc40376da6672","source_sha256":"b5bc2d4f91e3f0106f55aa3cf13a72319da8e8d6f5c7b86d4b65256e738a717a","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"f8f9cbaecc01f1a87714a9975db0d6fd5ae22a21cc817c43078c516e35a92f1c","id":"v3:security_ir:3:2:4:3","normalized_source_sha256":"507a9486c860433533177fbd2d93ee845a7ff0894c3ba8e58fe81c1a2c065b6c","source_sha256":"7f82a4adc250d0c950f3145e2aec396cb852c0029ce9acacb43972af76c21ad4","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"f4f1d477dbaf25605d297b8ce5288c28834eecd97bb6166bd231a9992a3efeae","id":"v3:security_ir:3:2:5:3","normalized_source_sha256":"4345d55a7ad3a89d728a6118ec8fbc276827de93aabdf3353a801b47f18983f9","source_sha256":"ff3316d6890e5b5f2c85f3cde116091279a1ef9315aded73fb6a48939f2c89f0","target_sha256":"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73"},{"embedding_sha256":"31c60a932a18c35c479c7e088cbc40ee5fb4bf50ee16c074d40263ed3b0dafa1","id":"v3:security_ir:3:3:0:0","normalized_source_sha256":"c53519c65ac463774d02e8dc813efe680d0e7c1a10ebbce88733e5d981d5e7ab","source_sha256":"078f791c36490c9bf9cb37831d2c9b46d0ef10dbdd4cf9685ed375ff003ee2de","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"6233c83365b74deafadd324531841ca27b4039ca31649943a13052d57989b65a","id":"v3:security_ir:3:3:1:0","normalized_source_sha256":"94f80e337929e0184c8c01de5d8f2a2b87d6ada6ef14f81d3d0f1365a4f87456","source_sha256":"014641fe3fc46352060959f9982be1ad4879448e0148ccc8d8fb55232e358475","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"b4dc5fc109ca055b77cf82e22ead1cd7b59fce994fbd5c1e329b34e89b4f4bf8","id":"v3:security_ir:3:3:2:0","normalized_source_sha256":"d4effcc10b6557c844d97149ccb708324b86f6f97db73faa00373625ef1975d9","source_sha256":"96e309b7fefa695e8c0f9766cd6cedf6b5d5f69f6612b6ff847634e2f062a297","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"80e15cafd25bfcb2f7a728dfc3413571dde94a8f4002181f76d2fb10c6a13191","id":"v3:security_ir:3:3:3:0","normalized_source_sha256":"7a14495da2f1eb708e8dd43eebbae910611b2d813813b76a3ff613ca3c6c3ab2","source_sha256":"9747c775ce3b0eb95ab7e3508d2e4821e05d5260ce937bc49973d79a9ab6315e","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"f570e113b8fb78c51f1f4c90dcd00d671b13f73af93ecb522e6fe598ac723396","id":"v3:security_ir:3:3:4:0","normalized_source_sha256":"57903552d0d6c18303ea0f56478b542181a0c668f734af6f438dd11e9127a64f","source_sha256":"274cf2a9872a545ca0d2807d60abcda9bd396e2e7292e1a570c1e1c6164c855d","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"93707c8b37382b4861458a811f58def7a889d958258201e830d621cae80661b0","id":"v3:security_ir:3:3:5:0","normalized_source_sha256":"0c392f69e43abd749045f3d80326562fb1d48aaf30f234bbda5d0bd43857cfc1","source_sha256":"8db16992e5eb3fe8ab8cb74d26cf0b6d936f748849be24204ce8bc9f299f6497","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"218238dbcc6b851ac88a49a5efe2aebdd1cd6eafa1800bfc986b32b312b89267","id":"v3:security_ir:3:3:0:1","normalized_source_sha256":"ca56926d3aeba395c81a72ca834763c47cec0c3bdf0a2b162f981ee99b1fa1fd","source_sha256":"a6a904e6c33001c137d7203150179b0416b1854298b01636cfba57582208bec9","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"afb1ccd58598be08fb9cacfbbadc93fde1739e61d7df63d0f0d976b40f235e4c","id":"v3:security_ir:3:3:1:1","normalized_source_sha256":"05bbc062b77b49fc9826a7a64dd07d4af887b119b3c255ed6c5cdfd144faffb6","source_sha256":"4c761692ae37bddaea84f16e3676af807ccf203ad6f03c49da7ba0108ff9d2d8","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"36a64e4cf808cde7b52b24c3c82b09ad2e4c32c5970361d3ed2dbe72498d5a24","id":"v3:security_ir:3:3:2:1","normalized_source_sha256":"e42401e60e62edac51fca19cfe6dd524cf66c85f89a32206237038cb8e0e3c07","source_sha256":"ba72fec5320de029b39ff3e8c0f327d09b469dfdb60480c70853fde3148c3e4e","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"2f2c871a4fcdbb8c4865d0305731559830cb8efcf10b0f5db4c343143ef37381","id":"v3:security_ir:3:3:3:1","normalized_source_sha256":"02aeff1cd5b5c06ca11e9bf3ac5c372eb9115a3de9ca421149f37738bc47ffc3","source_sha256":"bbe0bcb9974e856a43cb165ca5c30ba5d5d7592519e3a3ffeef0df9ea35520ff","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"c3ee58510ced03797bdcf2bbea08b13235abb42ed977f3d6f8f705746e281100","id":"v3:security_ir:3:3:4:1","normalized_source_sha256":"8812db5371321f0c26106de38e3141c8ad2cde5aa49377b7c0f1bb93781e8c28","source_sha256":"2318c9e32db7caf6c28f733230c52829304ee49b122c42775845781405a52f3c","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"f4d51055d03fa31a6cc4127c6b2a93db90ecbbc82fe2a4dce420c03b976ddc0f","id":"v3:security_ir:3:3:5:1","normalized_source_sha256":"eb457da238ec5e1767da8edf4661f9b12f19149cfabf41a65ce90a08fd76b23b","source_sha256":"367cb7cde6e9c23edfbf35d4b408a96c758bee52e274f05ea1c29c6ef4fa945a","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"19f851a56ab61ccecc503aa34a3c041edb3c43484518551f08c1c806083dfca1","id":"v3:security_ir:3:3:0:2","normalized_source_sha256":"5c13c1ed10276206a389d4ff0f291e1a78d5550002263f18bcf939e3b44900c6","source_sha256":"78753387dd2e3ac77bf1fba0f323a82b18a5130f9a835e14fbd9c66a29dd281d","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"33c93e91a342403a2c45d5b21eed48b806b5d1d6b918fcd99c1e5fdfa79ec569","id":"v3:security_ir:3:3:1:2","normalized_source_sha256":"518b51d383b648506d5d93993da645f6ecee94cc6b4d92f0bd0ee3a3fe9989e4","source_sha256":"212e2343dc31f73bdd30cfb4eb48a3fed4f373d93a0e807fc23dc98b7e4452b9","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"915e50ecf8f93bb79f555ec1e09f45567fcb1cbf0e2b32d26bd0256cb65692fd","id":"v3:security_ir:3:3:2:2","normalized_source_sha256":"a034ead601e28b3f6766bfc4fcbf703741c18e8549bbe4303b2a9a349fd00b9d","source_sha256":"93c7eb3dc29b3774b57d55efc49ca108138eab4abc8135b602e723e3ddc5e385","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"0bb9916134bd9bf4a47fdc1f008eaac3ca3a244d682aec0773fc7f6946783784","id":"v3:security_ir:3:3:3:2","normalized_source_sha256":"8d1c4cc5f480cf3f17370123dc461f006706f2dd8dbdee8f21e24fe97db8638a","source_sha256":"7f44c94c38b8d2b15fe5d788668f4e0472e25d58e5e97f2b3780ffd199e0e280","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"6a75e1478eb1b08a328b283562e5e1d8014381d573a60771c178fc0ca835ca2f","id":"v3:security_ir:3:3:4:2","normalized_source_sha256":"b307d265ff47d742d1c54f2b86543145bc8be7632580774aafcce8fa917bd069","source_sha256":"7e1c81ebd81d6a2b173f2180f97faa88bda5fade51158dba3355b21b12586906","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"08c987eff40ba176199785b10cfb7d89ebc014f9e672cb288c9a1b50b1034ee9","id":"v3:security_ir:3:3:5:2","normalized_source_sha256":"736fa770e9788cb888a08b0fc070ef19323296544107538a8b853ebb487b4411","source_sha256":"db57112f5812bffdb58e39c6ea1adb66d2362aaa8aace186af0ebc5007b1a26e","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"18c4ce2488565403f6919d9c55d90a12f96bbf091172ba974b7c3b101a986edf","id":"v3:security_ir:3:3:0:3","normalized_source_sha256":"bff08e3e3780cceac6a99c4564b6d529e5b5a6f1a93c30e8dcfb62f5f5d1b5e4","source_sha256":"4fd006faddc44e7231bc118df120cc6fc005429eb74758b97eddf2a7d230bd7f","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"0e32d7c99f4c1ed8bc49830df7fb7f45c0e48912483af0f2c2b06ab2c962b403","id":"v3:security_ir:3:3:1:3","normalized_source_sha256":"55d29508d64e4be7030db3a808cc8fd55de168817f198493e0ca1d54387febcc","source_sha256":"10cdcb1114968ffd403a08b6c1379a038e4522fe56c90146244989218941739e","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"cfe07cddd33ed5ffa56471f059df5678457a404b535c2cba6d3da99075fe5b9c","id":"v3:security_ir:3:3:2:3","normalized_source_sha256":"46fae129ae6dbb5bbe18b6262c0eab089c62b424984fa03f3b14e8cfa0849594","source_sha256":"bea8e8c8fb2b3d90d1fd0ebf135fdb9a98b0d36211ec8d66170519dd127e08c0","target_sha256":"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4"},{"embedding_sha256":"13cd3d7b022519376756b5c567ab44576c3a316af9fca7bfa0e8cad5821c579d","id":"v3:security_ir:3:3:3:3","normalized_source_sha256":"ae520fea1929410d79d9917163cf0905bb11a4a5e0ce4caf4833caaadc5d6359","source_sha256":"fa8720356f870783a00d0af8ba8d5c06fceb4e9e1b5ddfe9d76cc227b055a8cd","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"a173835b33af5f2b8a650bed0f3e33e590be88bbf49ead8af3a8e03897b46779","id":"v3:security_ir:3:3:4:3","normalized_source_sha256":"e6bb24d723acfdc9d5c01a8b881f5f4c5f9d48e3e046516c4d079070b6ca454c","source_sha256":"782e5c64a5398761b990312144f1b5d80ecb5e07086c119ead34ebad6a16d98c","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"70ded854d32b4f045935976e4f3b9b768a24d333e85d8379d9728fb31abe237c","id":"v3:security_ir:3:3:5:3","normalized_source_sha256":"a28fc3b71cc14b59715b3a2176b4b10909ff31d875a3d7a7af4ec904285d16d8","source_sha256":"0863db5557fe4d3260f87b4724ae462789bfeb160acce98372355da1ce6ad809","target_sha256":"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587"},{"embedding_sha256":"454184ecb3b5c10fd9621c37a32be43969e80ea4aea410eb69bab52109ecd8a7","id":"v3:security_ir:3:4:0:0","normalized_source_sha256":"e1d87181da2b064c9e912494d03161fa93f250e9559cd21288054b54c68eb6dc","source_sha256":"8681d9e8846d7babe43c35eab1e075c09eede5da8e8f6f2b6748802aef92a2a7","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"1c5dfbdc31f5741a08c9100364e53a3b4b7a522de514fe17a2baa4a0a2c47baf","id":"v3:security_ir:3:4:1:0","normalized_source_sha256":"b3fd33c600d06cbd250ba3c83c927201a68f18a402778d68b141803f38cc3aaf","source_sha256":"d479f149ef28b3fb94eadb8b7ae26a20d53bdac82c492c14e841cd241e076b3d","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"dc7e2a6699a650274bd6de7c79c0564fde4a3d9cfeaadce45867004c9b928ccc","id":"v3:security_ir:3:4:2:0","normalized_source_sha256":"1b6858356424624808e0c6d9afce5a7b5efd8eed863273ac2d46e6cb057e197c","source_sha256":"a6aeb3712277b88165378bce630c459e230d2e654803e23220526f8fd7505547","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"f476e8c238dc16670e1b7b2ee0b84166c4449a069c393ffa8a3cfe91cf9bc47f","id":"v3:security_ir:3:4:3:0","normalized_source_sha256":"84ebef0146dc19199fd5487fc6d792d8d031c84a9748b950f2b96352b54fd752","source_sha256":"81825d23381f55b3acbd211a829d36c16f04aad2a5abb211389c7d2935eb7ef1","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"031e0af772e262bfdfbf6fa39dfc2a02f3ab4fc912b0c660a603ae250ac85ee8","id":"v3:security_ir:3:4:4:0","normalized_source_sha256":"49b9efa8b5bdc4b444f7a0dbdc4dff1046775f4f449297c2b06e378a97ce43e8","source_sha256":"cf113476a8aa5605b60df18fe9ef1cdfaba5ec3cbdea3127265437edc97bda4e","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"49f2a85645d94a10399a04901a2c5805c42e1a2845aec8b4ca5d9e6263b8b56f","id":"v3:security_ir:3:4:5:0","normalized_source_sha256":"3f40c4f132bd876ccab4e9df5679c8fc2ba8d9e015601406e080f882e34c3f7d","source_sha256":"f867d2445f2cc8db012d335b7168a56b9957db15e74c4d747b3fb453b9178431","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"ccfa8c1819504b777111bb1babaac07155a3b4f8861ebd7bc9492c074abc7e1a","id":"v3:security_ir:3:4:0:1","normalized_source_sha256":"aeda838d37ddb295e29960a1727d0fbf17c51222401af35c44fa70567e4ae32e","source_sha256":"e8f6d228def45b05af2dd4e86c2c1bd24eec665cf7001bda0ac232982304517d","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"cae91a8592967b22a00f565b7268a663af34712552c340bd9691826509a91aa4","id":"v3:security_ir:3:4:1:1","normalized_source_sha256":"8aeaef51482fe6782f121dff723819671ecda737f91dd9a8b491e3a750b6cf96","source_sha256":"f54592b66e239a7a4a89d5016c377d5a19611cd82b64234a869df4199a4ddb1d","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"cdc651b4ec3bd23e9d221a5305269e04fb2a88d37706133a066b70958f1d94ac","id":"v3:security_ir:3:4:2:1","normalized_source_sha256":"d769eda1f71acd5a703c3608ceca62d44a1cb374f52f48e9196203838870d411","source_sha256":"f7b392a88414dadf9a8184a81e2ae0aee366d96ed78334aa2b2cdd50f660c855","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"e3a5229449c58725bb1cdd7e1069b45b0f9736a14bf2aa3519f5a73f493f51e9","id":"v3:security_ir:3:4:3:1","normalized_source_sha256":"e47110d82f57f96cb29694df6c91bc87d5db5019d3a8ab5ec3a824cf00b532ea","source_sha256":"829f82dfc059c1dca76d1c46c9e7658e4a9610383e740bceb7c9ef233eefab02","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"77925b09f143b8c0dacd8c30ef8b5b2aafe226b750be3532fa1ffea5d31721ab","id":"v3:security_ir:3:4:4:1","normalized_source_sha256":"a83f328b5336fb09bc9b74fc9f3d2fe7c3a647a3ffdb2d82b9ffe6d3b98fc26c","source_sha256":"bf0cc3a482116bba7c779531cc0d3793875cba685fc1b0170a0558558fc20736","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"892c2480f48e696b86640f7b1abb31ba7cb711081e36031417f41a287165c062","id":"v3:security_ir:3:4:5:1","normalized_source_sha256":"a4fa6adc682e92cd43546bb3e0d0954b3734a102322002e107d6025e3ecd9cc4","source_sha256":"c4181dee058715c514c126cc9c183011bd8090518335ec09ebc1cb034921f578","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"3f8962149018b50a6705d5448e4e93c72d659d8106c6b48c66f85e3b04dfce9e","id":"v3:security_ir:3:4:0:2","normalized_source_sha256":"f33700d4854ae9a8f4cdd99b6ff130e3651212baebd5e1e90e4a17ed2a1767dd","source_sha256":"4b3d5a3beb7818c8d088c42420aa4b7433b851fa786454c5ef1c485b89c6b7c1","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"39813e664f2669e286d8f87166c9896931ea65b7507e1c4535aacd9925ea83c2","id":"v3:security_ir:3:4:1:2","normalized_source_sha256":"ffbb2d02e80b76e17d1079d6c833c02434cd12d4f1b5220bf97fb5c1d8157e98","source_sha256":"9f47bb737f8e29c709694258294be16b62946cbef4be92de8b89b7feb5bb11ae","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"f4018cc8c5b4c6c1eacf00966b307cd664af2ecbaa1cd360bdc0d9404185ce4e","id":"v3:security_ir:3:4:2:2","normalized_source_sha256":"26c9f9ce8ea1a7d36cf7c695ef9dbb92cb7cb81e6eeba85fd084724799759227","source_sha256":"c70701a6152c8d9e695b46890517d321cd25fa94222990495f35f83c348a1d48","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"04b47cd6e615d026a4b32f1310c47142b72a93493fd04cd96d30565d462a1549","id":"v3:security_ir:3:4:3:2","normalized_source_sha256":"855b04f535c69d68f151140543b05a669031df399e343fbb346129e6f12713e1","source_sha256":"a8be5cbd3585aa4466f289cfb5ca87a3394f3aa8d437f036ef375846a1af8c29","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"6ba7ece80eb2d513eedd83d786ca2cd8382d6b96e2b5235621a5b9d3225732e4","id":"v3:security_ir:3:4:4:2","normalized_source_sha256":"a34bfffad528167d0a1413cf2d0d457dbac6eda8badd67a916cc372d46487d67","source_sha256":"935452c7c23a3d9c4146874d1b0c02e8613fdc899c1a792ad962353ea0f46fdd","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"8c4758f470f608f1f70c1110bbefa9ae75aca8851afb14066bac97c5c060a25c","id":"v3:security_ir:3:4:5:2","normalized_source_sha256":"6d55db2d74e84d8a1127d70e84276c67360f1ca7d7f726ec5f31631f37abd734","source_sha256":"884c8735ce0daa24c010f5f2aee9640807a9cea73b6e28f6a49b69051526c68d","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"a3d919fafc58f00181b8647e581685e651d5f8e4714f9abda3c2f4a57a5611df","id":"v3:security_ir:3:4:0:3","normalized_source_sha256":"768de5cd5e3a555a71d81c298ad11ca816619e0235428696b921d76e494a5545","source_sha256":"c6c5096965a7ece390f90185235868c6ee84a7db4e472c9d113a395f44b1032f","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"592599c628e5357930824019fefe84836e60b3cd901f610bf9fbc591b5cab985","id":"v3:security_ir:3:4:1:3","normalized_source_sha256":"51011bf1567a06756e983ca5aca68b1c6b630cc91661337e0a5e02539784ca05","source_sha256":"1e781cf81b27c3c7227e7364c6fdf8678c421fd649fd1eba56d4da81cedf39f0","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"f569564ae01983fad63d8cee339e3a9516ebb5bca460d465118ec57a5a75cd1c","id":"v3:security_ir:3:4:2:3","normalized_source_sha256":"e24ac9cd650d6696eb1100f324d6e87ee48907d5cbe6ccdb0ba6086d2b6fda5d","source_sha256":"79023050a3047767b4b798d23e255e7dc54eaae206598e95b086fb2fbd356ddc","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"f4d9410eeeb9a7dca38d1348e5596b6ad2b24066296ae5ca198d75321f58d93c","id":"v3:security_ir:3:4:3:3","normalized_source_sha256":"6fb6c8df41eaba756f25a4ed2fc9b58e7c9bd54c9519e4538cf33ae93dcfae23","source_sha256":"e7b5c6b73949892f7ccc8c51091350c7aba1d3db2ae0425a977076b771264ffb","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"f1476a68406c7c7ae3713b97b578f72d4ba03b76d2b29e0d1e13b4e1c2fd9a2c","id":"v3:security_ir:3:4:4:3","normalized_source_sha256":"00e20683265e03617ea8e3a81733e8643b136b451525bec133309c66ff95556f","source_sha256":"5458bedd0572c4fc0272c2b5ad8d469022e344f575dcc8a4d74e815039a3de7c","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"659ff4b98cd6d358884ed0af82a02c3f58d54497b8b250639c2ba67edf7a10b9","id":"v3:security_ir:3:4:5:3","normalized_source_sha256":"d1c7452b1b32fd47cae18078c20c51cdc78387383ae1276fa23a7b9fa9608956","source_sha256":"c58492b7cd47f5035fdcee2721dd60402a1a1865e201050bbd55f0b030614675","target_sha256":"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b"},{"embedding_sha256":"501e9ce3805a3960cc63870cfe51c5dbace4e2b66ea38c132273d42db04ac75f","id":"v3:security_ir:4:0:0:0","normalized_source_sha256":"dff9c4c249a2df094a1a1ab68723b5a2a59b08773a97b338077a8f4d5c883d0f","source_sha256":"083412a03bf09a4db893457e63ddc5183bd538034667cf5e13fa2cef658635af","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"262189ca4b094acd2cee3afc9c986e5068961d78164aaeadda7d62852eb7b968","id":"v3:security_ir:4:0:1:0","normalized_source_sha256":"e6c373beed472f693c6d668d4ec800eab4c98af2e02fba103b84a8d376025c47","source_sha256":"6061f6ca5caea9ea0211b96cf4606b3273051b64bf03e312410f8e7091b3ffe6","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"e3c5fd2304f399c289e9c7100ad826ce6e419d10f731f786f32ec2bc25694181","id":"v3:security_ir:4:0:2:0","normalized_source_sha256":"a5fc09262c1e9aff032b6b1e41af5b7713bda30167e3a81536dbecacd28b72d3","source_sha256":"1cd3a81d62d05a9897f0a81235559fb9fa301ed702cff98408a2334bcc48524b","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"0dc714f1d603de0f93ce30cf3f2c38e3c553300293407e9851fcfe45c7709cc3","id":"v3:security_ir:4:0:3:0","normalized_source_sha256":"a030136f0b329591386795e1424d59d1508a1a2d179154ddad325f578fe7eba3","source_sha256":"f9ef83288fffd1f635d16f44115a9878f5ff7a36ffbb0cada7c9121d161534b1","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"6fa9eee94938c50fed8d3d2876386465812749a11485e18e120ca109f731b860","id":"v3:security_ir:4:0:4:0","normalized_source_sha256":"5894428f07aa6081a2de05e07872ca1bd48912d14f1e6598effcdf9d7239daf9","source_sha256":"4f0ba93da51f3a1f7c096a54eb81eeb462e659954a2f1270e2ddd9029b920b7e","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"e54fb68b6136e558313799a83a63949acd88a3190379698061995c7d2976901a","id":"v3:security_ir:4:0:5:0","normalized_source_sha256":"e20464d543f4f58c89deca8eb8628a0c846c0f98ddd69445b2be55d7a6518047","source_sha256":"a577777f9e7f896595228b2a53ab6345aa98e35d7870118a5c9dc5359545fce8","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"f8fdcecf3f4d2dab33847699cd7545ae13b03f877c327b20b93de2bb3ffc1e05","id":"v3:security_ir:4:0:0:1","normalized_source_sha256":"3937461b758c140a34ad393d36f9ee5ce1c6cfb2886d4a03a4a0c7d2f57f27cf","source_sha256":"3b1925b9cfd9299a16edf60632c8958ae546a1d9c008d5e49e1339efe78d39c8","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"5a00bcf8319bd2868c9d832e72ac655a3ac59ec659fc2e8452bd5cacef993a3c","id":"v3:security_ir:4:0:1:1","normalized_source_sha256":"c477e5a5d05d0cef732af91aa4c34a43a8849af20ac1b0314caef4ee8b636da5","source_sha256":"ae944c4be9d206a250d81162c2b56651b0a0b4d492b4ac19b8737a4fb32d4fe2","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"3afd45a2f83ec2c0ab6d3b373f25a66ba0111924526ffa2ca5ccd1c824194e41","id":"v3:security_ir:4:0:2:1","normalized_source_sha256":"605fed9a623a4924658c0f0d4c8f362f965d3b31aa335f446157e136d014a205","source_sha256":"21e4e018834f6d2ce17947a062e0a1298a81dcbe46c9bf7491f841b70da9fbe7","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"d9080243f868e1f8ac56e1f81cf3fc877aabeab973736c8e0a7772c7e97dc08d","id":"v3:security_ir:4:0:3:1","normalized_source_sha256":"505a07404da67fe4e2538bde014ce3a03466d1de2cda03d41130aa31e07d0fa5","source_sha256":"030bc5ea4fb5334820c184c516dcfdb3bcf2bf95e67a737854b5770b1c634c2c","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"12523037c17dd3a01cf89bebf8cd154e76fbe9d27c030d22d79e9fa9c397ae50","id":"v3:security_ir:4:0:4:1","normalized_source_sha256":"a8109023c6428cd86547f856bebce3568a01e21ece62fef71e73414478d2b93c","source_sha256":"32c78845a8fa0dd5688871700bedd6a53ab6b8083844d014909c50819b3cfb1d","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"2b78489db2dc52f80d799add310e0481ebe95bd278d7a1dc1e2a91526c1d00a8","id":"v3:security_ir:4:0:5:1","normalized_source_sha256":"3b803bd5b87bf14ed6c81e214e1d755d30c4b3f308dae9e51cf5c89837ef8e64","source_sha256":"2e3093db93e511712399375421e3788258c82afd639b00a336e720a47f321b40","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"0b15d9e096048ebbfc20db4b81bdca7c01e0e41f6d423de4f591777669dacc4e","id":"v3:security_ir:4:0:0:2","normalized_source_sha256":"c0ed0e2a304c155b4506579a5bce4759f3347d7ca12aef58261c40212b7198bc","source_sha256":"361bd0d17cb92c0d0bbea6c2ecee92e3788990ede5d46e814a78621a6d45dcb2","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"8665295ab74d83c88a7e00054c3b5adb076a64ddd5ea085f6c57b99f469f6f13","id":"v3:security_ir:4:0:1:2","normalized_source_sha256":"ae931e6bea1c80e409d649c03184f9176d8cf741a90a109335067ae3f3b0c44f","source_sha256":"d056dad71817568b2eea4e81c6953b79ce1bf2475ef39167cfab6218768ff5ea","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"4dbe67e94ee54b1e8f61177e3b2000205bae10c7041c8d73cbbcec2412701dad","id":"v3:security_ir:4:0:2:2","normalized_source_sha256":"46f9208888d6f612ff5187cba09d75e85dd0e3bed7997af72dac5de964242078","source_sha256":"320f92ac98007bea7cdca85716b6f45c87911e7b76659580cf8e51e8b63e8368","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"28e7ce60082be2b84ccd2ae4679577e71db62be8d2b9fccdd6f668f2c361d73f","id":"v3:security_ir:4:0:3:2","normalized_source_sha256":"28a65bc3f3e90a424020113b683fbf0e548b7bbe6596545c119c61ff5db94922","source_sha256":"8e10d1f83b246596c33e673f8150c576c8dd768517f9eafcee53d2257fcd89ad","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"e0e89d2f686e1a10482ee3a786e611cf6f4125aa6cb6430d9b7857d45ca6250d","id":"v3:security_ir:4:0:4:2","normalized_source_sha256":"271ec3eedde41e3c14589cbe04db00980a45539c147196c57ae3f6b4f3f6469e","source_sha256":"59a69684f8eb2b14d5c3adbd1859f77fba7093e81824724c62f4df7ea38884f4","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"f8eead9515f682a40b9932b555b0aa703dc8ceba97d9b2a8564f8d41e0bc4083","id":"v3:security_ir:4:0:5:2","normalized_source_sha256":"7d23ca9410849c71bb15e9b4ff817448b1ea1d805cc6d5aaa0465e3945ab2445","source_sha256":"7eb17eb139eed535df1e853223550d54da470e8de97adf0b8e8c01d48520f89c","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"a307ec38b10b57595f49145ebbe672c6a6fbd23055b1b1a4c5d1e5bbba35c5ea","id":"v3:security_ir:4:0:0:3","normalized_source_sha256":"90f3cf530a03f8f7819b0c2c08a27afa8a769b2e1bb118c876cbcd6cffca35e7","source_sha256":"aa664436887ed9e4e97d8f30a7c53fa5ffd0feab9f3dab93602119cf98377b2b","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"55116099b8f00efd920fe948c8fbe08bef641060e461dfa178b16ee545a9c638","id":"v3:security_ir:4:0:1:3","normalized_source_sha256":"d581f50516a88927167fe3cdec72dfaccfb2fa72e9da6d1943b663c597c3e8fa","source_sha256":"d65ef1a06755c2c6711bbcfe7ab51cf5e7bcabd46f0e12c252ab9e08fd6178e9","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"7e4327af34f7898d6d87925e7656e35807bf967c7bad6434bb97b87d0c81f10e","id":"v3:security_ir:4:0:2:3","normalized_source_sha256":"3459005dc7a33760918d395a184fe170415fcf095bcc76f486b5933a1210df7a","source_sha256":"7e46e10994dd262d013ae64eb08c9a6df0be72706a9e4a33bc438a8903b85569","target_sha256":"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9"},{"embedding_sha256":"b47a19e3b46f16f6d4059e7e418ccb8b4aa5b86ffaf99e786e8666f8b59d66a9","id":"v3:security_ir:4:0:3:3","normalized_source_sha256":"ee53ad86d4e571e4822f47de3ecd82014c0595ddcf22af9626b219fedfa91ca0","source_sha256":"3f0204141554e4dc80e8e87a4bdfa0ddb19642fafd94d51d3a4fb094496a882e","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"32a0e8ad5fcb0f43fc57f7f55bb6306133ea17f31b9a35df620b77f1f61dcd71","id":"v3:security_ir:4:0:4:3","normalized_source_sha256":"c2a4e87d84297809577887ebb1af785d2bac741c8cd8e435897e9a9f201a818a","source_sha256":"a6557dbc19c6e3195d641b11c577b8eb1543d04ec872585759651e25e6073b86","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"582bef26ef2605ffd47ff8c622e0a4bc6b87bb076cca2ebaa3428d2c636a2605","id":"v3:security_ir:4:0:5:3","normalized_source_sha256":"5ff3293baa005c86f6ecd0dc2c52f5b6f3d54baf38d35529529fc63294d23021","source_sha256":"abb15487fe2c1f80fe4fd1ece8274acbca406ee176b354f0db17230371b5ae43","target_sha256":"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1"},{"embedding_sha256":"afcaf6c55379de37a1f8799415f77f6f88536131ba8b11bcaa035ed79fc628c0","id":"v3:security_ir:4:3:0:0","normalized_source_sha256":"d69545b3388bdee452940362bb95a4d0e931c82a5d4a1c0354813dfbddf3211b","source_sha256":"fa23a8f1d0491d949dd9456a3e18104b32c137c7c447f4cc1350441827443064","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"a0ecc63db739a0603ac260ed80254011c14df6f96c6df0b02f8676bb3e5b4b4e","id":"v3:security_ir:4:3:1:0","normalized_source_sha256":"213cd0fdd492a8d83082054c3864f4c9b477ea5b27abc8180949114363d65a83","source_sha256":"636eb22211c0369d38d95ec4013de5ed59e09ab69351cca43919b77858addc10","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"b2076347c6b124038f244ba534f8b89d58a9bbc3229a12458a636b9f79637930","id":"v3:security_ir:4:3:2:0","normalized_source_sha256":"04e3de889531ea15f50eccfb03ad7f6b61265fd888b58fe2233aa2c75ac85e17","source_sha256":"3fcf9b682ec18f40c01dfe4a42ca03a50af8771bf02017c8a7836a9388c11145","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"f029fc184cd22285c894417bf85d1de398d8491f214243c6c41380fb51546882","id":"v3:security_ir:4:3:3:0","normalized_source_sha256":"3a53c8101ce47ed31bbc0e76e76c527aab46504ce7ad86d2ffbdfed1bf49e52e","source_sha256":"a6a9641efca528f731d3b5e25bec902a76666f8df0788ab7a11053b153e2cf50","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"90cead1a282a6cd0601ea8a12cbbd1f986a86608c4779128fa67d9cc2df7893d","id":"v3:security_ir:4:3:4:0","normalized_source_sha256":"fbd733d6fb726536de8537254237fcf646ef547c08a1db32e15af3a59e5dde4b","source_sha256":"3eb3c5c87c7edd969cba699fb5caee9529e43341203a8803fced995348e25f9d","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"9c935aed9f2b63a8288d6cf9341462d4759e0948c616e1187a935e7feb8f9304","id":"v3:security_ir:4:3:5:0","normalized_source_sha256":"fce14ab09ca85709866dc8d44052668dae4d53156befaaee2b390ae5dae1a028","source_sha256":"35396bd04e0b6934079f4699867625b87ad99b6d58aded4dbc15941e5fc5a2cc","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"cd685a30a4b40757116a8eaf2081f95ffb756774ae91441e89359dfed5fbd461","id":"v3:security_ir:4:3:0:1","normalized_source_sha256":"1737e1d9a9a1e7ab2ce6dfb8ea02fbbd87720ead577b53c56552bd049e4c3144","source_sha256":"4d16e91008827aaf470c8720bedc009536d44e27f8981bc4ddbd0593312c8c28","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"e0bfaaa04815ca0e1895c81bf40e9914291e1e5612383382a3ef99d1505bba2c","id":"v3:security_ir:4:3:1:1","normalized_source_sha256":"bf11e38a430d3cf648b51863cb932f542205ac04f7c9e813ad87f6f4dad46b7f","source_sha256":"cf8bfba063c47a78add0c632bd241b626f39f11358992b47604d4a6aecaa9b7e","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"e4e95c5e9a37bc75e512e9f2a4f3a652e7532abebda8a6fd597ce93bb8fea86c","id":"v3:security_ir:4:3:2:1","normalized_source_sha256":"e511eea14768bfb9fb1379c90dec5f93cdbd922e059840ecb4b7dd2f44e9c57c","source_sha256":"e7e712f08bb93bf5153475fad5cb620abde2b35b8f317e7ffe99b71a0a771e1f","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"1f3f14a18f5f0a0080b9c7946de1cbb2e3ba851929cd3da9efcde00f4f31af1b","id":"v3:security_ir:4:3:3:1","normalized_source_sha256":"58029e1a9aacbfb39987ab40c6c24812f964a199c4c4ea24ddf53299acfb4157","source_sha256":"8ecd95917bb066c972b55d8b52a58c76b4d578fa9df8b3e545e4fb4161562fd4","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"d889f0796360b4beed563af264c92b9e5fe2bfbe5dc8c376dca113de09a554e5","id":"v3:security_ir:4:3:4:1","normalized_source_sha256":"8d8ab50e63e0d6b8672948faf2841e014fe1c24d23eb1729d79a2c112e784636","source_sha256":"2fe6bce1ef39880d1d588a8b45b7e9c5d80518b886fbef758d5db8d4bba9d77a","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"ab0ddfc241ea9cd47e267cedee05c890a3a683cd4ed4fc3244df1937a7603a5c","id":"v3:security_ir:4:3:5:1","normalized_source_sha256":"2e23ada75b0610dd40cbc1ca5118bfd3756631dcad200113697090164ecfeaea","source_sha256":"039e6e6263042dd8853e6d225250cb9a12a0312a80702ef8c50a2d4e9277f778","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"29b5b5157862c150152951066d9c2b9a76d13cba7c65063cc2076ee661f7975f","id":"v3:security_ir:4:3:0:2","normalized_source_sha256":"6f7ad4485d73460d678c49b0a792ee5be44bd9212520f5b4b5054f8542e820ec","source_sha256":"fee28e5ebf4cb006ee8dfdfe6e8680f8324dcc75e1f308508fd0b4d97da61401","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"3d7e37f74513034cb70e1d2d7535837812baddccb813ac1e062ea0898358c974","id":"v3:security_ir:4:3:1:2","normalized_source_sha256":"dd88e5aa2f8ea218a14da6ac677f9a04a0de2069c3593a181c444d22c91c6278","source_sha256":"ae9903a0faa610d08f6b45435430e5ec97174e16773e64f7a879161dc6ad9e33","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"53361aa863bd5a039768b2747b9b70a91acf8296bc02d4464f3ecae1618fd99e","id":"v3:security_ir:4:3:2:2","normalized_source_sha256":"e096a3dbc182510c2bfd23e0beec035dd7799a90442afcd1bd796293228f8ac1","source_sha256":"a9a3ecc26a9497403aa56d5cf4a829748ade8096cf4c965de265db37153691f3","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"2833960c088de9496537258aab05bab7b4e6cfd7883b2dca3078cd956534e501","id":"v3:security_ir:4:3:3:2","normalized_source_sha256":"d3dc54d24503e48617b6827142c95476d24704139f20c3d3f8a4774ac6c6b9b4","source_sha256":"d0056d8724d82e3ba9873514df06ea59ee1143236390f557f1ee1148754c8e21","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"56765e725012be9edb395cf8ceebc09543d7b204e2d85f26e92dd5620713fee0","id":"v3:security_ir:4:3:4:2","normalized_source_sha256":"5cbe48e917e08b2aec514fce69d58424900e3aa780806410d2d298c1e87249bf","source_sha256":"cd62458e65cb0241da8b7408bdbe52189d1de60eb0abafcabc8de76127543083","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"49695a2267f61f9f864c879c6a2dde0b7ee9b05bd008b7729f434c4b26f03dbe","id":"v3:security_ir:4:3:5:2","normalized_source_sha256":"27eafadfa4a51ccd2c5e98afb8804578a118b275cc11be189e6933b953940743","source_sha256":"394d28a96224eac5e855cefd8335314a80b625b00f5f63e182ffc7dd084eb127","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"3441b85e0e5ebd545680dad63a92374d7e333e73f7c01b6ba030c28a278de148","id":"v3:security_ir:4:3:0:3","normalized_source_sha256":"322e801f10f3eefd8fb4eeff0d2f134ef9163b217cae5661b747e1970517ec3f","source_sha256":"a4e4a054bd1ce4812027d98b27237156c124d711fe8a90028cc661d15f70dd2d","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"65b94ef8cd5c06b1aa27c87325ea46ef06889660137496058871264cc271ce01","id":"v3:security_ir:4:3:1:3","normalized_source_sha256":"0f02d38452d03f459991f7fb23ede60f9a4d7cc806827fc3a6b1583c27f7b5d0","source_sha256":"65ab4ab8351b8eb3c8c10e522e6456574f0efa1e6ec43a80b55e7ea295737f79","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"9fc2d20518cbee5e75c41dc38fed6015f7097a68c0b631f94833d65f40eba399","id":"v3:security_ir:4:3:2:3","normalized_source_sha256":"8aa4b029f20fd959d349620b41d1e1d44d463d45c5eed4c50eccffb1cfd8c08e","source_sha256":"c7d3684e7cf012d62b4f799464c36a6d6d9b1107086408c6674910fd4c676a02","target_sha256":"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678"},{"embedding_sha256":"664c71f28994b385dcd267e82e4290ede346ed0ab682b2224d4737229dfcdd3b","id":"v3:security_ir:4:3:3:3","normalized_source_sha256":"87b714825df937f726f4c4800b31993c7be00e92b91badb2257b17b082c82f44","source_sha256":"77084414febe84af584c1d14072a0813f8ab935f27c4ab747e7318e83ff770a8","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"ca34dd325a79c4539ffe131c26a1e6c8fe346ade3ab04091a3912c0ee4c57ed3","id":"v3:security_ir:4:3:4:3","normalized_source_sha256":"edf19df54cc038963b602f584f81891efda8bf30efb409c3bf1d2c0a60480597","source_sha256":"75513341f3d1357a357d9f91f44fe57ecb5519f9a43503b13958fe1e347fd069","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"8d6571240f145e808fb69af1b8a60336971308fcc3b74fca6e695f149cd97b15","id":"v3:security_ir:4:3:5:3","normalized_source_sha256":"14b53922d141718afa266c54e6048d629b5b1ac0be8a9ef0009abe7771fa5409","source_sha256":"e1973a10fcc28dc0e79f7e4dbdf62c47ab8344f7f38341d0969afda6f747ac36","target_sha256":"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3"},{"embedding_sha256":"150d72b34164754d95da04c7e54a34fce39420bd9c24096a90f52a9df0b6523d","id":"v3:security_ir:4:4:0:0","normalized_source_sha256":"e02cf1e8ac3d2365d29723e8d41948ccb93f12ad2a3b4d2a9ec5b5697d7d906c","source_sha256":"d54f4da4ca8c15b6feeb80de563375fd54827331ff2787686bdc59ab466c9bb2","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"46b63a1151f8c717c855ff0e41ec18fa0ae82dcc7f54a9d173c69cd395dffa67","id":"v3:security_ir:4:4:1:0","normalized_source_sha256":"91178ab900b66ab3c830488705e4de6e30c45503c53ccd4eb829de4346996de6","source_sha256":"e2643259b2a2d6db18b2431cbc5e59b8e5960b421ef990b1a7105f443c35c5ab","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"9da72f618b72d7874165fbe74831a28ef6ce525f39664e6e7898dd265b6dc16a","id":"v3:security_ir:4:4:2:0","normalized_source_sha256":"2be052ba20533d9cebad34e171f8aaff25509db3e685abfd43c4aac81ac0e224","source_sha256":"f0765f7e47b7d9a10424983778d3e7707760b3fcee718f2a9cb167743ea35847","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"7173499f7f7fd8f2d8b97af48d5429e83cd69e4fa546b7d0ccaaddc023fedf4e","id":"v3:security_ir:4:4:3:0","normalized_source_sha256":"089d14872b12d854c14b2b55cce70ebd600e41b0b47561ba1ef99b438e0ba092","source_sha256":"2d122fab0841cfb7f6b022659ce524218babdf18f5d8ac47d8b5619c5424382c","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"5dea23b5e91a897d6e7634def4a728b1c4e705b7617b3c760f499518ce1d92a5","id":"v3:security_ir:4:4:4:0","normalized_source_sha256":"b157e1329248318d7f7a24e9a5d4aff6df8e43d28faf7c91f00da9a214892feb","source_sha256":"c4341931aaa3083a0e51becb1dfeb54e4b5f773f29b3c7c57ef07ecb791cb942","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"eda5285d0d09a9bee772e8012205ea80decba566ebb57aced423e250b12c07cd","id":"v3:security_ir:4:4:5:0","normalized_source_sha256":"a14b8e62385121a4f66c738deab4c0220ad597904c8c23d993285fdcd28f40cc","source_sha256":"def1cca76bab1908d321a0a37f7852710da27fee79e5f5c55948f2e339da14db","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"ebf21641059de94fd16cd9b90f3651a5070d198799f64197010fe11f02090e9f","id":"v3:security_ir:4:4:0:1","normalized_source_sha256":"e5a13b0d012d3451b1ee35a76ff2f80e621a595fc8f7edc01cb89ed1a154b023","source_sha256":"2ed44e317ff931d223f81447730940746d9bda4fe641ef092007f4e2fea1b77f","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"6955e4c244eeaf33f6f716c3c9c78d69c4b7b712391f53e118077dd78554caac","id":"v3:security_ir:4:4:1:1","normalized_source_sha256":"c1609a2cde8078ad2cd0b248211b99b9fbafe64f91d6483b197f7469aa6275ee","source_sha256":"c29fa63e8adc387f8ecd3d1d71b7eadadd95874f11cef40e02d44066ccecf073","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"c14c1263d2ae9f5acfe0e5966908f2db76f6cd2822f0147223cee1e3614585ea","id":"v3:security_ir:4:4:2:1","normalized_source_sha256":"7ba3c6c11d3893729d92a71e8220e1932bb07f0e5260f6d612688fd1f9855a42","source_sha256":"3291f2b0c78649dfa2579c849bad309d3b1567edf7e1b4763415f770cccdc2b9","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"812d0efecbde4df2cf276c031fd8d013a2f04f696dc6be1e1e9855e9d7f1c4c5","id":"v3:security_ir:4:4:3:1","normalized_source_sha256":"0c9538d37e6144878c8699ff780370731f6022d0b39e9824ddf06f41c2ffad10","source_sha256":"24d0424076c6d31a4ef49a7091ec44575c23009ccbb50ab1139e381f4362f74a","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"2dc9d38b567da07420e8feca3fdc40c46dbd1bfd23be35891225990771a90b9d","id":"v3:security_ir:4:4:4:1","normalized_source_sha256":"38d4e0fe5e4316030921b877e91fc842b111dc896c07d0c60dd8461b795c33ee","source_sha256":"ae097e4e5e870e0e6931fbb619f75e71b1df373b8a388519a7bd003394ce86d7","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"4ff75afcca025f40844557246704a4934575ba8f065bb511383b4700c7aa26db","id":"v3:security_ir:4:4:5:1","normalized_source_sha256":"0d7da378e7d1d2effb6bd08e41b01032c4691c2d2d55bb6a7dcdcafeeecea5fa","source_sha256":"22dab63710647644ae2a41ac4b631882f92be436644f6648015cdb3586d24049","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"758babfc12a1373dca6280413be603bb991cac65b75d8697c664505ecfe30752","id":"v3:security_ir:4:4:0:2","normalized_source_sha256":"70aea61e40747293f23a0397474db162c4f39cad500fa6ed58ef276c099d0488","source_sha256":"3f1df98ba3a4b1a5640466af0fab23ecb9ff1fc7e71ed03901d97310ff5b60d9","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"c54d125c87d839effa7dd10ea5cdb34aeedfe0b8475bca7ce8605394971e2773","id":"v3:security_ir:4:4:1:2","normalized_source_sha256":"e07dee311b1bf6ddc5c5657c54145a7dd2748ce3e0227a06521c9ab87a3d5400","source_sha256":"a94c122cb8ca1df50627257aaa45cf20d0ed455330d753f589ed84ca45d9c4fe","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"1ebcb4e97b909774748f058322be16bf63e7c2111f94dc6667200d0b0e4b81f9","id":"v3:security_ir:4:4:2:2","normalized_source_sha256":"c8e0afd1b19e8e5fef52ec641234c4d89805257d44d59950950492f8a54b1c5b","source_sha256":"932fbcaeec154514d3396a5167347a91451fb8343d26889ff7bef43d00344a8d","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"b00de4fbd937c5f4e621b49a1314f44a949e96ab132ca48213671112abcf5f2f","id":"v3:security_ir:4:4:3:2","normalized_source_sha256":"73224e7d7de9ed38dc4ee7212f246df55e7e4de34fdcd270d880c14dbe038727","source_sha256":"e78e5cca0aa3de225260195590b00af6b39bf79706ce8ea272c23ae17285ca1e","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"c0ab8d0dd8397eb655bd7770594087e214c2631676bc06226160c94db56e8ff1","id":"v3:security_ir:4:4:4:2","normalized_source_sha256":"57e37660e105b3e97211759b9a2da846d8ec3c8fd499398cc225d2cf7890861b","source_sha256":"cd4477c70c4504b068286bdfb9b8b609dcdbca567325fc25dad6f4283292c616","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"a0ec2e0f57787590ab3e6ccd20cf20dfe1c56ce03d04c2883d0eec98159f5aa7","id":"v3:security_ir:4:4:5:2","normalized_source_sha256":"778c69d6e1444e9ac5cfe45a93d4afac71580aeded641c736317e2d422c91a61","source_sha256":"4be87d7a65b97a653e44aee1c07a851b95c9b21ed74e57218d6e06218bb07df4","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"55fe76c569a65c2d0cea66075474c73ae4508b6cf38eae31a4619e79b2daf373","id":"v3:security_ir:4:4:0:3","normalized_source_sha256":"148e9201a5ed0ef05f34899ed46f07c96a04bfc5892e429e8edd3b6b0adb54f5","source_sha256":"0031d61e364ad14e679bbdb55a1a1a25ae1e03e14e6aad8e955aae5959b6d76e","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"9372acc68d946ebdf7815e2b034cbfb6d3ca811e7da115cfc0c0e961d16ba925","id":"v3:security_ir:4:4:1:3","normalized_source_sha256":"c65f6639288ebfcff0c3e0e26b549df92cd9d335f55ca0e79ab85cf87c642f54","source_sha256":"db813ae10877ed1bd3823e6294acd3368030c9e7000344907c76881d7afc4021","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"fe9eebbd81720d376b6f19e2d1750cd6fca87e032d709ad1615de5bd2341bae8","id":"v3:security_ir:4:4:2:3","normalized_source_sha256":"5cdd0e85c81ecc3d49ac19eefe732ec50c92043ef5ad69d73e7af1348b6b2072","source_sha256":"c394c62ca939a856314411a3f4e166f7c908f8fd4333e9c45fc353e12831ce37","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"642ba1bd1a62d0079cbb6c041980dc63c7f2d7e6cfbb52a6d8b22f72cbe645a7","id":"v3:security_ir:4:4:3:3","normalized_source_sha256":"d45bbb7a86242be835e9ad74562d0fe7f17a8505a628f4b329360b3dbcb20471","source_sha256":"fea34d1b734804b6347b09262ca0468fa5354a7926a80f0d8ba82493c9015188","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"1da8407152e933f4c526bd4e05dc7a7253c44d5d67db8137c3c3ba7a9651bf61","id":"v3:security_ir:4:4:4:3","normalized_source_sha256":"4fe982f1a08fc62ed0885215dc9e1615840600171b7de0a2f5104af8e7c0b674","source_sha256":"ec4993ebf52ae01e2c1e14e1bb3dbe851597767126440b75403f5f94c8842b86","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"},{"embedding_sha256":"6ab13964ca38468fe9b599552433d545aa23449717141e91f3066f79b9a42a57","id":"v3:security_ir:4:4:5:3","normalized_source_sha256":"1afbf908c7203fa76aa874099ff3a25da5b6a58f4d3ae4492d7d0929c0932a21","source_sha256":"3f5046aae04c38453d0f9a66d2bc478c180cd8a5d0fbfe0a995be93e5c069670","target_sha256":"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7"}],"validation_manifest":[{"embedding_sha256":"255d68c3b4148049d4919faa11c4d857d9267b5378549e91e10bc029287c73f7","id":"v3:security_ir:0:3:0:0","normalized_source_sha256":"6317d42285caa3bf6508092faa783b817519b0f61d84a8d3e208d875a08429bd","source_sha256":"0b09b6c6dc7c6f7e324dd5ff17e5e48eac1690a84e899c06d1d8cc7b8b2459d9","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"92b658b4bf0831db38dfdabb1b29d1595f3fe262ee94919fe739b9c912046feb","id":"v3:security_ir:0:3:1:0","normalized_source_sha256":"230abb14d9438ddb9310c72ca4427b63c1487b55db0ac04345a066e15f33c9b6","source_sha256":"985ff78e77e1d7e873453f0f71c90cc65aef1178aa8e11ce7e6fd309c774984d","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"36169213230ae349090d24476b1af1895161397639abb15d1bf00489e2d491b5","id":"v3:security_ir:0:3:2:0","normalized_source_sha256":"893d5821b6a4d1df09a02b1f2e4ea16c273d79bab60ae0bcc492cbec9d71bed8","source_sha256":"b0a6b80524dc313a3d671b85c51314097063536b3ee84e5d0de948fe43d91165","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"00f2744b6a556e5c33e1c5c0b9af21aede8805238c686af8cd1903df78ede620","id":"v3:security_ir:0:3:3:0","normalized_source_sha256":"d72696f9ea7649f6e5777fbd2f03c1d78ba0578e730a1f350e1416adea32a81e","source_sha256":"4c304b2034397b686dff882ff00607a4433c93ce9100ae49635bb2eb59facea4","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"7cf6ace2e87c0136049550e1982de360309d1f8efdf9f36aad75d0c433c8376b","id":"v3:security_ir:0:3:4:0","normalized_source_sha256":"32c30256cbdf7fbc7aaf2e27f4e46cc3ac90bbe4746272d1139b26281b9c7e26","source_sha256":"f606583b7c4894a6dd1a7e59e2213156c922b2121456a33a96a2f5105497034a","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"6f4a1d3ea9bb6ac43ad7ca5ae70841fabadc98c92edff8ee32d1cb0e8ee45393","id":"v3:security_ir:0:3:5:0","normalized_source_sha256":"73102e2ca4d76c24952353badd7a0ae1daca9c7cd1949b81ff4b2bf4404a225d","source_sha256":"c9eb5dfc7a86d0c3740d24d44d8e213dc113c359ab5095aa8c2c665ee82c1079","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"9b3ff7a6fdf1c6eaa943cb39b7963896e302abff25cb02c31ef309e79ee5d6d9","id":"v3:security_ir:0:3:0:1","normalized_source_sha256":"d0c713a0c05337523dd7f5982c8c092669810322f885d50e4a75b5a004f20229","source_sha256":"8a568232d82ab7e9a08afd62e7bd9f7a00f41815858eefc8cee12b359c4e285f","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"5f671e4dc4f400a4c102c29f47d9be9fee308e6cc50ca38ca6283b181732650c","id":"v3:security_ir:0:3:1:1","normalized_source_sha256":"6cf9c6815d1cf8238242a7a410b835c2d237b23854588c8a3514a979126baecb","source_sha256":"61139883357b9b2ddcaa05247aacb75e063fe50dbd2a6b97dbb4cd26ed64b68e","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"1e013a31d656d68f6e1dd2e87a54e01d35e9a8d44c5c6be2d561a896654ac6e9","id":"v3:security_ir:0:3:2:1","normalized_source_sha256":"1c706e07a41f5bef6915315745177743023c265fa57e463f0b2eac7532795929","source_sha256":"6f7e79945b8e463a10ceeee8bd04fe414ca63ffd244d6bee4cf952800bf8dfc6","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"fa734469152b638086d147661f4de5cffc8ed5a7795cfab76e52e5fb099aa872","id":"v3:security_ir:0:3:3:1","normalized_source_sha256":"5bd2591dd7d6fe9e707e92d6c2f5e6db11dbf02ba22f5daa75abaf1ab669762d","source_sha256":"46c0e98a860b71107492293333c3045b89015af4bed6f35f48fec2c35640481a","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"6ddf85022eab3c4994b6e800c704660810c9a9991a5b2b4ee289ac0f1aebd15c","id":"v3:security_ir:0:3:4:1","normalized_source_sha256":"19c09bf726f4cf34330a93c9f0af8ad515736a9490753a12d3ad9079f669134f","source_sha256":"cce339405a3724c9a1b3a76cd11e7ae97cdee52f314df2ebb3bf7361209c96ce","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"3d8c7bc061321917d71c4e64a0ca99646de6b819ab142bf93aa97a7c6fa8b4a4","id":"v3:security_ir:0:3:5:1","normalized_source_sha256":"dfa13576e7508696fa744a74ad9b6571f3f652f3915582fa6000504e6253e62d","source_sha256":"2376ba723e199b679a8501f5ed6cd12a0d602930602974c290207dd7249e3bbc","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"5d9afe12f7716e93f90da55e1375f0b7f39fffc15af71fc54f64382aee100967","id":"v3:security_ir:0:3:0:2","normalized_source_sha256":"8802b98728eebd3b0df390826ca0e6d7336897cd215dcd71a047afa89e28724f","source_sha256":"8364d356f4594c839cbcfb5811c71e8c384220c5f21f400952f99a4312f0342a","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"5d1fab592e243f07864e02ace2d47b31e2fc6479f549de6bc67cb498bca28133","id":"v3:security_ir:0:3:1:2","normalized_source_sha256":"682a844ad78104b0a4a0ca7b387a9863f4702addb51ee3f7bc81557bb12061d6","source_sha256":"f0522dadb68086a7c144190815ee20c1bc15f0badba7e518b11f08e563fcac2d","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"01f19f77e86306336fd100a4dfaa95dcaa7dc99cae5e02f889b9ca64b3023da7","id":"v3:security_ir:0:3:2:2","normalized_source_sha256":"a46c5f2dba51574eed46bf24bc6a4a1f075b48fda1cef5b3a257f0852ee98b8a","source_sha256":"524ad0dbea2bcc77b4bceaf9e8a41f4b6d4c6ddb397e000ff6f817ccaa61b524","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"b9d727dbe8944a84b503ae85bc6dfc14b87853f72ce25be52b4aa743e6c0d80f","id":"v3:security_ir:0:3:3:2","normalized_source_sha256":"e92854f2b24450f73bed905be4a590b935bd1450d02e3c1d3dc983005c07cbd5","source_sha256":"b71965ef05bac5a73c476734c6279e9d692df2ef39b29e7c1ab75fdc72ea3adf","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"ddc0a29e7275bb6e8f46d7294f14d6a7be81801183cb40462d3d18f52d4522d7","id":"v3:security_ir:0:3:4:2","normalized_source_sha256":"f12f96dbf717d8fec5580cc1f117ed7aeafd100a8121d1a3b0c881b05dbf88ae","source_sha256":"596c00ebf4ef64e4ca1fdffab09485483604e2e997bf71c9eeabc222114bf866","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"3e6ec2942a32a1013bb073254245c6eeae544053094a7467953234ddad364681","id":"v3:security_ir:0:3:5:2","normalized_source_sha256":"92b01ee65cb0376f1aa38791ec9f87cffcb747c09bff6447f6953f002b1153b4","source_sha256":"508cf50c0cbb71cb560579e0bcf059dbc33da58cf84b541735f98abbfa862e27","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"e1590273116ccaf6f39fc8646d1f66868c6cfa03e8203b7dff5e82cd5d6aeeba","id":"v3:security_ir:0:3:0:3","normalized_source_sha256":"d4657d664f34fa66467eb1413e52ce97d2f1e426fed2324ab0ed69457e009b92","source_sha256":"3423067370d8e507b957bd0dd63e63269334fc77a8c21d2d7afd53adb1f3f087","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"7ba3905d20080aa50ee4a8d894c39b573bb311e7f8d4d5b13cad6c805a521445","id":"v3:security_ir:0:3:1:3","normalized_source_sha256":"bc85591ba1ad4167bf418c687b67395c4706a4520e701208333f2ced6c7348ef","source_sha256":"a8f069f46e178289718d2344487714381e59926532a0115b29d60cf835a62e36","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"a00bfda3d53f25c88f55bee5b98ce0ae01f9ee5f6ff358fcdfe9ce75fe90d845","id":"v3:security_ir:0:3:2:3","normalized_source_sha256":"bab0f3571482fed69f66743b451b30552d3646313cb832dce56bc567ae79a961","source_sha256":"ea8981f9e637d7e2d8bd25331aead406212aa16f0f8f68bee4478b3fa404c0b7","target_sha256":"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b"},{"embedding_sha256":"68c9b953ca1433869346f8eb23707b9104358cfd811b387320f32c3a87c1ee3e","id":"v3:security_ir:0:3:3:3","normalized_source_sha256":"c3b0c947354d275a0797acddb158c13e23c8dea2b0c112caad1188664431e3b3","source_sha256":"b55445b029c8fbfa1ddc701cfbf891e8e81d66606703862ae6b65152e082af8d","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"3ee8f5c38f3714e4514418b9487fb248f1d391b41231f62ade755a751250dd0d","id":"v3:security_ir:0:3:4:3","normalized_source_sha256":"bbf23386f852ec2d82d12f39fe4f08745bfaddc4e85d7c85db272915e4da1872","source_sha256":"8a279797eaf771918698615b8c28d468f077ac689dd24cacd84078dd16c208a9","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"450df8834c3b8c51ca9b9472209c8a2129ea11ed2b89b3539476b59b40c0659f","id":"v3:security_ir:0:3:5:3","normalized_source_sha256":"e70b16dacf3841de1856f3c7d3217001c7fc3efd96a96c3ff51bc79543216091","source_sha256":"190a61de754ca644e4eb35e415a32e04d7e0b774b88f12c2fd15c34fbf93d510","target_sha256":"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1"},{"embedding_sha256":"c4038538fe7c6e027485ec339bfeb85760cc3eac1eceef605e0d5f5e45b41864","id":"v3:security_ir:1:4:0:0","normalized_source_sha256":"3540aa7d0f8888d3dbfdf3618c889fa69fbb5c341490c3fd94d533880ff4f7c2","source_sha256":"4233c000ebe970a171e402a33e0946a4ec31839cd20c507ee7f2381283bf5cc3","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"3c646b571461dc8daa72dfcb56921d98d062a659a45feba1093cdbe098b149e6","id":"v3:security_ir:1:4:1:0","normalized_source_sha256":"fe9f35fe60f5128e977fe21a4f1f1f824a292e0b5edc820b13fc79fc6af6da8d","source_sha256":"9b0251b79d43ab6319f4f288d6ef64d7010b2878b77e9d9f404a781518d67198","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"e034f2b81961956967c6181d261a8a8fb883e6e014a7bb9a097c79d98f22e4ad","id":"v3:security_ir:1:4:2:0","normalized_source_sha256":"a18c21b975e72de384bb2cb9aade69b93bdd0eea574c35d7e6778355183ed410","source_sha256":"8212988eaa638799a47a1f8f7e09a0bb996deb6f270cb5a3f6d280f61a45f8c3","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"fe27311efd2c14761fe1dc363ce9d0035eb571fd6a22bdff07ddd18872df84de","id":"v3:security_ir:1:4:3:0","normalized_source_sha256":"b622a87765c4203420f8b7fed5784d87f1f5231e3271ada546b75cdca444d147","source_sha256":"bb1bad3e90f6c96478aff6791c0620c821a747df1c905f60468b5d4d9149d373","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"97daee25f0eab906ef2cb6813b09f86dddfc2abfb2ddefc76ad70ee853157aa0","id":"v3:security_ir:1:4:4:0","normalized_source_sha256":"3d941732a9383d21c073efd60dfa6fe9cb5782cad4fb274969336a4011b27bb0","source_sha256":"874735f5ad64768cd98917edd80e44067391283ebf94aa55be2cada3304e584c","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"3598e8a6119f268d0410f2b04ee180d84a59d63c8dc77a9efc410ac41d7f50ce","id":"v3:security_ir:1:4:5:0","normalized_source_sha256":"9d8aa1dbe0651d718ae1ea31cdc0ce5b067c1c3cafa02a9877f982ce6e7f6d22","source_sha256":"60563f91acf3661a0d26ba90ef1b15af55a2b33371b27d21c3ec92511be4953d","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"b0c1eec1a68d6101751cd5ffcf22adc760f30cad51a609ddcb3efbb066e62363","id":"v3:security_ir:1:4:0:1","normalized_source_sha256":"51d1910ff66372c2bd1b37c5efd831cc8787529e9f41247aee3b4a67a951af6a","source_sha256":"6833c4907a012d61a0674e8545fd3ab73200244d47f53cb929875acf8954c16a","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"1384782bc13b2f3026d6bc3057c306e20c6b2bcfe76a535636c0ea0068fa012c","id":"v3:security_ir:1:4:1:1","normalized_source_sha256":"5529b11ac577b52299e44a14123157e7658ac90606bace5061e7641327780160","source_sha256":"21461b64db04f1cc29dfd01e833656b42d0bad57df200a9eff67c395ac21b969","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"dd72b05169f0fdc8d8fcbe9efc49960fb9fa18ec9a44db9230a9a198ceeb8374","id":"v3:security_ir:1:4:2:1","normalized_source_sha256":"fecebc747639212215629f078a60cf40d4cdb444644fcaf092a81e432d62935b","source_sha256":"4ffe2a6c18001efacac22e247302f51c792d5bc6e75b58bf655ec0c4261c794a","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"6c82b345f67db03c6eecd2c03b1d39274ba5d80ef1b40a1c02839978ff3884e3","id":"v3:security_ir:1:4:3:1","normalized_source_sha256":"972f9195b0cbd1c3f65b342a6d816706bdc543b43c7228eb42a7ae2ea4ee6037","source_sha256":"ed5837eff1863ca7f755a46a64562873537bca33426b8a86029b9223b849f91c","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"916c0274993b66a4aa0656c88900672b004c64a93d45c4cadb669fd35da8bf18","id":"v3:security_ir:1:4:4:1","normalized_source_sha256":"a769866eb1574e36c2709b4092d0ac95e9e957d20b48c2d03957a539e8526879","source_sha256":"46e2c34c0e5ce3b1f8cb953df1cecdbb23486cf422359115fa5a235c39ee2110","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"638e17ea810bfdf069678fc983a3e3578401a5910b39177c6d23612b836e9f59","id":"v3:security_ir:1:4:5:1","normalized_source_sha256":"3c8502b75527538499428a826eca477f72bd1815ddaa3f84e6511d4c88993981","source_sha256":"7cd19731665e4aa335b467eb7612bc0dc7d45b8d06c1a51e9c2fb282f8d5d093","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"6ab7095dedffbcf33c7475d1856bca5542e58bd3d12a24e142aa2c2f09932936","id":"v3:security_ir:1:4:0:2","normalized_source_sha256":"5abfa0d72345aa92cf9d84e43369fc28c117bebdb994920e160954d18d386421","source_sha256":"a7c55dee302f229cba8da1efd07cf40b488e4ccad2bbec2feed714dc09396ada","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"27308629b4a8040914d7c9bd01f0597df306e78e73cf538f72c98dd8f7d89d27","id":"v3:security_ir:1:4:1:2","normalized_source_sha256":"cb62a5ab424ab33e32c5ffe22dcc43e6a66355da3d8ac863c32d73dbad0c2453","source_sha256":"4545790e553f74ee69d3204656f82a621737f156bc536d100e147e5324c8961b","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"d2358cb533d863ef0817e9207babd3a438f8c2493cdc1b85ddf6d21cee148ac0","id":"v3:security_ir:1:4:2:2","normalized_source_sha256":"cfa786589fe0ef294fdfc7b9374e190f039b99378f015002d06d36eb6a378be5","source_sha256":"042d2671543740376c109dda786fc52bc41abccdd7d2903fe126ec88b561d260","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"d14bb1816498a0b09435169492ef8d72520007192fe080ce70aa59560ec2c9bc","id":"v3:security_ir:1:4:3:2","normalized_source_sha256":"a700346be2ad23e277a9f3ba03ed8f190455e06298b34edabb1e4043a1181729","source_sha256":"cddd5a0880ecfab7c203eae294f26a940b1b20ae22e6979fa4eb0f80e6aee3db","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"38f3efd35facfd590194ba43bc427780eddaebd9416aeac82b12d864d9cb5035","id":"v3:security_ir:1:4:4:2","normalized_source_sha256":"b1549c87b4392bd585688aa0c5c2250f305b826b89157087c79abd6711ab1fb1","source_sha256":"e195f2c7a3624e68e030aa315792d2052b0fa2e353e6a051d1efb864eaa5c9d5","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"c38fc5d25e8beb4659bddaa220ed1324ef56742a14efde8648dc4714ce570ff1","id":"v3:security_ir:1:4:5:2","normalized_source_sha256":"44eb486bc4c7fc685556b40416156d9cb34aa17f81fe50a0c4645f1306047bb8","source_sha256":"ba40bf8afc7dac97c49ab0639291aec8ca53c03c6dc74514fabcfb1907d646ba","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"f4305e0017fe38cb66b64d9a552d535c1a56901b9f6f4fdf78f7241a4fe21d41","id":"v3:security_ir:1:4:0:3","normalized_source_sha256":"718e0b88973fdd9cd7fa6b7cb0c1b1af3aad09d134cffff58a3773beb40ea2a8","source_sha256":"d7937ff3705ec00ae4fb84b5c8035bb8f310cbf43aefb694337992a01113e79a","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"2089cd3e8303fe57d5e168adcaf9deb7ecd55bfaa0b9d6969309fd78fc64c1a6","id":"v3:security_ir:1:4:1:3","normalized_source_sha256":"26c58ff9171c9a701f49dacd1ab1b851df93f1d29f5890941c9ced754180c092","source_sha256":"a1679f2932fca5fc90383c6750f99cb12199f6d0b8baa179c3b83c2b3866cab5","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"3c25cb5b599cf1980445570e3c24460507e7be789b63c0cc2f7650167f03b511","id":"v3:security_ir:1:4:2:3","normalized_source_sha256":"69eb0771d0c6e60cf9c818d53557dff3bf48c6811b18e831ff322b141789e6d6","source_sha256":"19acf97591dce5f1a9adaa1673c59c015260cd38160d3e0dac20049f718f1b10","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"1d913b4ace39becf766008faeb87b1ec029330967c86358b3abf70c34315167f","id":"v3:security_ir:1:4:3:3","normalized_source_sha256":"85fbf86c519c5f0db7f463fc1561ddd7fff5a8d1cc3dd2784c7a0e5e3d250895","source_sha256":"1bf5d542143b984813a86d16524ab68ce29d22610cbab06cae769cd2b10207b6","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"a1ca190a8cd8fb1ae044766f7f99b6b0d18f7b08afadc6de75d3f478b0700f97","id":"v3:security_ir:1:4:4:3","normalized_source_sha256":"25ac9e44a264aab7ab15d11be1bbe71ea0bc17d1ace18bf7ed132e19ef77908c","source_sha256":"194cd3c312d41fd7a5dcd01e7cf9aae7deda3903ccf925f9dc4f69a4be550744","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"5d235eb1941971a7ee0acef217abf0e46d8c95a52c2652a705a3ef5a0df40228","id":"v3:security_ir:1:4:5:3","normalized_source_sha256":"14b35cf8f39b63c863d041e71cac8d182ddf70287b02a17f422b32917ff0cb3b","source_sha256":"b21e06f8be11e536bfe939b0245afdd92ca788ad9193750fcb08e7004b46e7e6","target_sha256":"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535"},{"embedding_sha256":"4bb60b6df79744536d45a883a77fc0905b737ce79756da798f49df4b52f60897","id":"v3:security_ir:2:0:0:0","normalized_source_sha256":"2d57056a3dac17042937245926109b23447b99b0d11e27211c1448d17e2573a1","source_sha256":"a5419e430f92530a5f6650cce0a45733108e7e4938aeb820653944fc7d02d3b9","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"d94af639c619156aa2a9ce917aa4e8878bd99bad8ed64297a992532d35e11e25","id":"v3:security_ir:2:0:1:0","normalized_source_sha256":"f7aa2892f281e91691687f9e249ce53252af0154f9853958b3d75b245737b9dc","source_sha256":"23da70a14e760f6af926589d64441e9594e9032cabe6ce15bd1b508160478d8e","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"05f1a83d0277d885d038b0e0372b83ca58b805652a77c49d90c33addef05fe83","id":"v3:security_ir:2:0:2:0","normalized_source_sha256":"0d925d951ac6c4ddd153e57e45c57b9364ea5086d9cb475c3bf974fbbccf91f2","source_sha256":"377b171fd20aada5e8e97916ebf772928ee6a05af35b8b6ea239fce7b427939d","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"bb9f3ed555a86d30ca1bc3aad99a6a66de0f7f25c0b3a6dded78cc12ba5806ba","id":"v3:security_ir:2:0:3:0","normalized_source_sha256":"248a239e7a8aee1fda22564ad1b49aedbe81ba0deb6219730ee054d393564d65","source_sha256":"2a96d38becb84fff2311f65f72ab649aab4d068d2a853ccfe8de7b4a64a0b52c","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"131ed18cd42339b1649ef3ec9a26f712f758895000dcf43f391e026b4c28ae9e","id":"v3:security_ir:2:0:4:0","normalized_source_sha256":"4dc7728949e403d04d2c641896dd6e3c0ae05c1157408df2560768e3b2231085","source_sha256":"3cf1ef5a1ac96b4d748e8966241351a73c52f15a95bf0e0ab7c3c25695c7de87","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"9043190c7ac152275ee629f7559b04989180b86e452292c4ede8cb98188d063d","id":"v3:security_ir:2:0:5:0","normalized_source_sha256":"2bae57923be1bc6e64e5cbb668ee73bd837136aac6090cd2e1c74ca92276dc19","source_sha256":"c3ebfcaac2c9081db11fb72e0f48795a30202c8097cd7cf02da3b6e380d95662","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"99e2b5937b2135c3964211f52d8d67ac5d2ff04810f21ef412e42203e97d279c","id":"v3:security_ir:2:0:0:1","normalized_source_sha256":"4767293efd4e1706ba5c48928f07af7714cdcf4aeeaa8a7b2a43d9cd6fdfefa3","source_sha256":"1c38cd9430f5f61a381eda6104c159a924dca2ee5f0e3a5d054cf3ba20494491","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"10c90dfcc576a939b310f65e1055b2e6c60326358417c1852509aa0e7fedb219","id":"v3:security_ir:2:0:1:1","normalized_source_sha256":"a154544b29bef5097c564d3e5aee50709147a7d7f938183380d1affd2f36eb83","source_sha256":"785f6a7792a7e9879c122505fb69a48c5292afac962fd6dfd99b53f52b6eeb12","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"994594f2ba8051379104a75860cd780e5c0414b3380a37d88a4ef2df144d88cf","id":"v3:security_ir:2:0:2:1","normalized_source_sha256":"9ac657b36f3d7135da02f7b1f3fe76765bb4ef559396f87699b86ddabad2c98d","source_sha256":"86e94c2dd6f40f03415f31d50751c657beeefbae316975539572cfc1a9fee0f4","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"60dcc1a6c2eb7752b73087d3c510ac19c8d868bdbbe76bf80fe95e8b54cf8cc7","id":"v3:security_ir:2:0:3:1","normalized_source_sha256":"4945cc9a11f599c07978589ad0702fc59cd98997706612ad33c7ce3e2af2bd0c","source_sha256":"6ff5b9801da7f8db99a59e778185deedf67656d44e3abd9eb3c2f975e9ec8b47","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"4a63c3816fc7416f3fd8c6c1df0614a82a3b3acb903102978c849668b8278a38","id":"v3:security_ir:2:0:4:1","normalized_source_sha256":"53973897cb417c15f3f6d8668182ea428992ffab920eb84cb9ffdbe07cffea83","source_sha256":"9c79820fa7565baf6a1f45ec45c01102b77a667de45908fe8f486246957ef731","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"dcff9ef36c1c019db681ee5ca846d7345a1d15ee6526d388614180bf886c7dbc","id":"v3:security_ir:2:0:5:1","normalized_source_sha256":"20c296f73961f939c552261deaa4d6aa7ebcd2e0ac8856f35bfb3e685deb91b4","source_sha256":"20bb75db5ecb40c682ec56d43ddd66f29a836f72e763c8a22d2ac9a4126c8f76","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"cc51a70f4cfe6634441fce514ba505d3f5e5d1621cd1eaaf52685ddbdd5f4054","id":"v3:security_ir:2:0:0:2","normalized_source_sha256":"ba28fdb56f283f9f8e1019261abd4c337a8397274b019844487225ac60692d27","source_sha256":"63f40eab6003a5572647c161339a0c4d307cc379c458cde3862aa7ce981f31b4","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"c9c94b09e79a6f84a0635ab6b053c9d4bc8118c7bbe83be30aa1b77fc173dd5a","id":"v3:security_ir:2:0:1:2","normalized_source_sha256":"d41f58126103e4b27930f749205031325e2245d91a2b6dcad85e91c81c8b3bb8","source_sha256":"39b33e7ef98ddf522ed569e0503e7d6ef9af219a6b7faac8d4df4ab545fc4f09","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"e058698efb3b9b4721032b4af60c1a6d5f4c03314745813c5dc3c79411446065","id":"v3:security_ir:2:0:2:2","normalized_source_sha256":"a3206272a57d139c24898281338383fa5ccae3c929950fc492da593caf550a12","source_sha256":"95e7cdc985ac2e7396a0e3aaad3fede53c25d9a1a09bce6b294e4fa814ffbf86","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"6e8a90b459071f63c5aa519194b455f3f5e410429b5840cfd87c0d3b8a80b341","id":"v3:security_ir:2:0:3:2","normalized_source_sha256":"f2d38a51c609a6ba4335f614f943653e61f9b1918738ab5090db9444cbd7c7ec","source_sha256":"335109e78ce90065a19e550cfc8077f5494481d50d54a0d24a2c5e9d83f9b30e","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"992048ac86bf7ca71e24dab4db410b7a9d07f7a18779e0736f102cca76796335","id":"v3:security_ir:2:0:4:2","normalized_source_sha256":"e75c7933aacbf2f784ceb18158d61446c250efd4bf631b7e02cfb8f13c183281","source_sha256":"91bfcc0f64116b62fc9aa5d26e3c72842f8dffaa598e85a614f62552d356c2ba","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"4ba05a829de8ab11b12b73792655ce3ff72a32de12cde29a6829954fb5bc1489","id":"v3:security_ir:2:0:5:2","normalized_source_sha256":"affb02a3a9d74b5848a8339d153dcd10b12e80e024f9535e53764209fdf3b07d","source_sha256":"8a777a5125116538a65edfaded225248b1c0efde69378552ccd613715d5e780b","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"81924a5e000db384a32dee5ef102594a965b8eb64eae5608417f4f02e44d810d","id":"v3:security_ir:2:0:0:3","normalized_source_sha256":"5bc875a4924cdb314c20a5dc2004fc2d3dda587cd09795b0152d0e9bf57be844","source_sha256":"a01e39dd8c10c586c22b3e6919befabdbf03f3a9dd984cfa553254e3a65867a1","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"fcde5c143256a13d9543106dae2175fe107146dd441c0ee0b2890b7c74ab6f24","id":"v3:security_ir:2:0:1:3","normalized_source_sha256":"6b29a98f52ef5ed790f03cd6e8ae00f9d6d727f0adb6ce1a3d2268eaac2ccca8","source_sha256":"79aedafdee3e718e11c1b85ee32a15d6435da086011b05df862e365e31fdd98d","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"682a1d63954c67048553e4c84b910953bf995dfc87f580fe297c3c8b662fed15","id":"v3:security_ir:2:0:2:3","normalized_source_sha256":"3902651e669662ccece9b5f56bc9bb14367de1b3e0cd3b817fbe8ed41c1eccd1","source_sha256":"c7d260de5f4568529ef738b4f0b4c88927eab021e8d558f0048fcb9cd63a13df","target_sha256":"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998"},{"embedding_sha256":"efb414da6610d699efaf6cd330cb82b7d6bbed148c6c9790f455382fe65d8214","id":"v3:security_ir:2:0:3:3","normalized_source_sha256":"1757913afba34b48ea66e6ee42d43eac18630097d4a0462378b90d77857d4353","source_sha256":"541f5fe055ec35824773894eb5b4533ec89443041db719fe038215ac7c219da9","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"aa0f9448b0ae6d5ffea8cf8b324ef780e3d7d8e6d02e846ee70a70c3b356dfc8","id":"v3:security_ir:2:0:4:3","normalized_source_sha256":"b3d9be63170b5be6b128467a1e55f87c8b58babc621284c8b1e7c6988a294603","source_sha256":"973fb3e88bf6a6fd1c29383e8c6cd56fa22bc0eb842c6ba147934f46d3c1390a","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"1d665251216b3538d53b0c11080004f925d38b1f5084d640b2ae226ca11c1fd4","id":"v3:security_ir:2:0:5:3","normalized_source_sha256":"3604805d84cd176004fb09941f9b4efeae1892250e1978676a318cbabd5de62e","source_sha256":"ac9088eaaca78f6bf65b1ba11f25cb46f8bda9a097cf323090fa7fea13d23115","target_sha256":"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43"},{"embedding_sha256":"085229cc7057a621613014d42982c271ca7a4c9d89bd221b9ccad92bf4d8457e","id":"v3:security_ir:3:1:0:0","normalized_source_sha256":"644378f26bcd4464612cae581941e9f180ab0c41eac560b74030a4a573ee76cb","source_sha256":"64038dd5e97d3c5cc39ca28ed29cd6a6e532902e3c6592fe2e52fddfd006fbf9","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"3b1192c18b8334fd81e9890f1104f594907dd5b6999be582c4983916e35f2909","id":"v3:security_ir:3:1:1:0","normalized_source_sha256":"a925fd48d697d3d7bc113277f3424632dfa86b29ee82f819d5b0a5f24ecd5a8a","source_sha256":"5bb6a2affc29f16e557231f6bd3afc848d1b3f02f24e4fd00b57dcbb8c9f2db5","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"9a5d58a78fbb814ba2eacf40f08064ff5c61d3c2a677e92f123e1223afe90be5","id":"v3:security_ir:3:1:2:0","normalized_source_sha256":"4ab07f316c0abf98901d09be6815bf248fd3fdffb6ae4957e0daf79d3a0bff2d","source_sha256":"b6ebac04c9f31c6b09b73aa169b38783a17448050acaea40ef8a4940377f562d","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"e6445fbd82e7885a137de32e08160fdb521e339126ed284f5415172e6973e6a9","id":"v3:security_ir:3:1:3:0","normalized_source_sha256":"a489b97562b170aef52ab562593b069fac8172d83b73f9cfd3d3706fe5d10a35","source_sha256":"2fd3642a2b8dda58579c3b07751298c58c77ac5a72a9b1bf7ff477e6ddd2e187","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"3fbd2f01715b06da62d47ad164a4ef9bf2e502558bc7d8f768adaddd78b2a886","id":"v3:security_ir:3:1:4:0","normalized_source_sha256":"a3903bf1a4d49ca4de9f97476847a78c067c4510762ded7dfc621870e7cea4f4","source_sha256":"cffc438a6a3b02af565a58ee7830c1f70099c4b38eabc959d47fa1b86bf53356","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"55b4aefba9adf8946f5130adc7a0d553be96b5d6e9ad0447bb08c98e6b032e6d","id":"v3:security_ir:3:1:5:0","normalized_source_sha256":"cdbb48434f55c98de343b0c6ee213c8d8f34abc3f61641d4899f844abf1125b5","source_sha256":"832928dd9b7605092d89ca77928d8be61c1edcc9c9d167fd54367e56b6a703cb","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"7b8bc88f21a1da8ef92691767ae8f4f726be3071b9e6cb44825bd7b9bf537b52","id":"v3:security_ir:3:1:0:1","normalized_source_sha256":"c4857c21277e71e8e0232d037ef25fe7111c44eeb1ccc475ad625ec5f64fc0de","source_sha256":"7e0797ad55b1f99a0b84e5319fb0d325bd7050b4c4e1a3a47fa4c6ff3049f88c","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"640e00e418ee975c9756b73dd3e2cf518a755b337ecd3ada786360bf477e1669","id":"v3:security_ir:3:1:1:1","normalized_source_sha256":"b57d3381697a0179ba5c39aca122b4ef814670eb177d8418d2dcc0e3ab5e6fdb","source_sha256":"dac76ec4d3b9f23b048f7369a57b262e7664cc25b6c33dbdff44a6efaf9c26cd","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"fb0f68da77e63cb59fdc9a83d02ccbe8d63c81a5055c7e8f3ae5f88e9f64e512","id":"v3:security_ir:3:1:2:1","normalized_source_sha256":"0bf80932323352d56daa1f0c629e214e417bb11bdcf5bcfcb8a12b8cbf929b59","source_sha256":"17a5ff9c0d59281cbc7e33addc6970d7d98f4b803411734d071878bb90ce5367","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"0f025d4cdbcff29b13c23b9d914fa722bf0fc419056e8aebd3f59802b0de2bc9","id":"v3:security_ir:3:1:3:1","normalized_source_sha256":"bcd4efb9541df9a3d2d3a64acd83280e926435d3bb4f87c3b51c6099032ab28b","source_sha256":"96e1d03c29aaf3fbb1c46825c94f461b29ffe87f64892be6ad35d2a0514d862e","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"b8d1482339fb10e7d82f2772eb820105c36225590913e09992792aebbbec66b9","id":"v3:security_ir:3:1:4:1","normalized_source_sha256":"10c2e47a43970c1b39c9e19c252f6314aed192ac8ed9b27b42f8014df1d64726","source_sha256":"3ec017e367af0cb453023b138a3672d40548533940c9ad1fe5f41ba49fa17f56","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"b2f24840d58144b0eebc57e12d1ee9fa42925763b2a6ac750b2827ece1ded497","id":"v3:security_ir:3:1:5:1","normalized_source_sha256":"bc7a3ae3aa6a603034e42bf7d32677e10306b35e18e88d1ca74c62011a491ef0","source_sha256":"2d26134083953b380af4d55b0fbe462f2fc9e3b377079ebc0d8be3235f4aab21","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"37e619745721c206e8f022c94e05ba081e697bf1bf3ee777202372e05488f730","id":"v3:security_ir:3:1:0:2","normalized_source_sha256":"fa8341633b178f9cbc3848818cfab0ac11958453abcd8fb534643a996667ea2d","source_sha256":"e6e0b373a598196df958a1ce50ef07480d7ebc2bdf44362e00b0fd7cd092ba3c","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"3a375f25b1f9d1b29c697ebe40767bb90b93576f49f5036b154126820c8c4b52","id":"v3:security_ir:3:1:1:2","normalized_source_sha256":"38f7de20a7b7cd9667d669b843c5631e916999709b4d6e2b05f0aa22f8b36fda","source_sha256":"e8e033dcba579c4be23e55e50910cb4a349a624e0b1da1d230a44b55b2467ef7","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"492836de17ec7faf4efc227483e7ee290b9b1c5ec6de1eee13fb33d44e059391","id":"v3:security_ir:3:1:2:2","normalized_source_sha256":"f25426fe45eba052bf0186d1525956fa8951972d022cc376b51542b17f845a8e","source_sha256":"b208e6c3f3c70b2b45be21cb2cc1c89515974bcb16bc1774f789aaf56ef4df67","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"26da232d1f0b1aafdb0102a37292439f063b4458d25328955ba82085b456ac1b","id":"v3:security_ir:3:1:3:2","normalized_source_sha256":"da83c109eb2680197a4057524bce915902094589b6a3453783178a7b3dfc8253","source_sha256":"46899885196f754aa8838c004a6f9177d7aed68bccd391a1865c38552db16fba","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"e3a8d7dd410940ed9682941034a906d8b2d539c85ea221b90f3f3dfeea47de73","id":"v3:security_ir:3:1:4:2","normalized_source_sha256":"d9bb19faabb895bcfcd98aa3f662ee2a8d5e0a6a8299d2ed61fae6f831c4b88a","source_sha256":"b5a4cfcecb98d1036704ed917a5a50ad4ef7c175d5f8e35a7327c55b1f0ad8f8","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"45f1ee012fecd89f381c703b4730bd50358cc0867f006d078523e136d2d57603","id":"v3:security_ir:3:1:5:2","normalized_source_sha256":"015c5edb4a1e56f762e436295e45214a69cf671807bad3f3553741a9b39b5658","source_sha256":"dcfee3e90c340784cfd8e0f01f5ac70d20ef01b6a8311317f166a4935c555acb","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"d3bcc3926659e77cdf0154a7288cb6fc65a4940337074d92bc8a46237d72b157","id":"v3:security_ir:3:1:0:3","normalized_source_sha256":"f35366e1872e3c654e4e83124b7bd6812c913161fdb61e4e127fdc7b709fd14c","source_sha256":"f64ee0d0b05a1f2a9de72a313199eba28bedcde23cf2d3e047518c1629476d8b","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"7d56f10697e3cfc9dde8d88c8b85272604d2150308a13135708c72d8f7ff61fc","id":"v3:security_ir:3:1:1:3","normalized_source_sha256":"37107274ea7b221da5993b9c3e633351608df0b0c129b635b7084406867534d3","source_sha256":"ff73677de7abc187867926ff0c0e5e3d62b88ca29722193902c3c5ad56c5fca1","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"f9df09e0f999a8d8bb4f257cd0a26ee56010889fa39973a28143b496ebe840b6","id":"v3:security_ir:3:1:2:3","normalized_source_sha256":"b74ddd7f8729e3136bdb30e38a8b8cdf3cf1d96f8a784e665c8d5102492da639","source_sha256":"27b5df2de858483cc209e994dcc673bc026f211d3857a3902b181cb9abce5162","target_sha256":"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b"},{"embedding_sha256":"d7638248f513b845353dd726d442b84eab4d95b7077e9279fbe36597900ea70a","id":"v3:security_ir:3:1:3:3","normalized_source_sha256":"cc7bf98eadea07dfbbf76ce0510c8d5b2cece7bf764633fbecdd1958abbac248","source_sha256":"d4f262154b2adadafe41646afb6fd3b22d4d4156a8028ab6619247d88a6c928f","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"755e7a7cbc3cd22757b6deca38aa01ca6b204b908dc01a81f358e284d63c4b79","id":"v3:security_ir:3:1:4:3","normalized_source_sha256":"6aba94ba5f0be707cb47086d1028c9bcd61e68eb50c684742166f3609b93a8f6","source_sha256":"972709db89e0b2cb1ac4ff844782565503fac9c472e7f591517dc70d1b54cb08","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"08f1181bbdfa542469d3fac19e23b2eda3bb3bf9d9a400c2d572549399c52da6","id":"v3:security_ir:3:1:5:3","normalized_source_sha256":"03ae7ce673c7737ec20e29c64c5c055cef1ec1477eb5f9a1cd4609768ef522de","source_sha256":"0da7c10adeba28fc654ff8c98dd0298a32fbf65ea83c2ee9e82b25f45b5a0983","target_sha256":"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160"},{"embedding_sha256":"9bb2bbcc377b610149b457f1cd8a32bfe0bf9a97354a710f150ac35b9a67db7f","id":"v3:security_ir:4:2:0:0","normalized_source_sha256":"fb535913470f09e9c8719f491d8d12e82e8eccc778d54a8befd8d5cb63a59ca1","source_sha256":"cba5b604f273ff8419e3b759ab55de4227a2a41c24cdbbe517f8b310875ec493","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"435f512c5e1609f9d9b99fe759a9da5b3ff8ce6b8b85de779823ed660d0e6414","id":"v3:security_ir:4:2:1:0","normalized_source_sha256":"3f07c1cb403aaa898a456140b3d074572d6bf00f389b23e0d8461f7b95293fcc","source_sha256":"87495a2efb926b4b8ff1ce5721dfda4ffd4b419d4b4273a8e6f93c090f82c15e","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"f91e3d2ec193511fc58cfe2ede5a4742f8a1aceb9417a685b3192aac94a999b6","id":"v3:security_ir:4:2:2:0","normalized_source_sha256":"8530e97cdef3212816d3512192cec0a176095ee231a4243e5ff86a179e757795","source_sha256":"5e2d93dcd85d456f129434dcb01341626546e4613756f6ddfe69ead6edf5c881","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"2c338227d58b9e98a0e5bfa99682bb685529947f5c97a5ccf141c7f57853aab0","id":"v3:security_ir:4:2:3:0","normalized_source_sha256":"9c07ed0d023c2c505866253805f73ff66001e0ebdb1ec89723536b609a05f2f8","source_sha256":"a191a8c27a66784383fb7a41d3f8e4f1b82390ab013bc4d6411844b4e2a9ad4d","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"d3b787c1a6d921ab104d339cd9cb7c6e1d4b91b8c72cfb70033e2531d67e781b","id":"v3:security_ir:4:2:4:0","normalized_source_sha256":"04bbd67e237d9a3c9a15102b0b4dd70de79b34ed9ccde8529a2e69e10aa42d34","source_sha256":"58b8b0bbe7c87db965ccd97f8c329fb34d90d10dc3c654d6b3d263f192fe974e","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"c8d80c8e37915e2ba128f159c7348cd76db6ee616c289d33cc294458424c08b2","id":"v3:security_ir:4:2:5:0","normalized_source_sha256":"d36d23f18555842902e11f01dfeddba015a8ca6078e20e644a39d8342be83cc1","source_sha256":"88f77bb8b8c1cce11ae5b121a672beec870e3e1d3db2d14793333ece103ff11b","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"0ef6d314856c1f57863f273591476571326fc4cb6c265cd49e96284a41893cf7","id":"v3:security_ir:4:2:0:1","normalized_source_sha256":"f75ac6182de73b53a4b3972bf013e6f0f8dbaf969a06310d5c285dd133a805e8","source_sha256":"3af66f4542b82b62e30bf16764a245d465b6dfd63a2b0d537b7bc2baa78b2d68","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"f03cd45dba475277debf03c2dc885d958294ddd5db7fbec4ad57a786ea77be7d","id":"v3:security_ir:4:2:1:1","normalized_source_sha256":"9690c526eaaf443c385360bc7eaaad874266dc5f1b2c0db9b740de2ef9a6daff","source_sha256":"5fe08d78d310eca9d8f8e8c1c081b2dd5ff5f98846d1019c0ae58ebd6a8a54bb","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"9e282e4e3e2ba11f121ef8f0a00b6bbfcee93dbefa36796d040dad2a416035e4","id":"v3:security_ir:4:2:2:1","normalized_source_sha256":"7344d9b49dc4a7938b40cafd1a55780a12381bfce9e398148a0e2eecfb087fa9","source_sha256":"bea73994054a46f7734149a3d04e8cd73d8b271be9ea5457192bdfdfe6d589d5","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"7c85a5e0e2c001cdf60749c6eb998805cb89fb20d41b25b70545736afe139bc0","id":"v3:security_ir:4:2:3:1","normalized_source_sha256":"dd3f33168587a0826adee8cb2c1f21bf9706f67dcaa6e5e1d13225fa68a457d1","source_sha256":"b534693e4d54103ef9e93d3498b0be7572430e0cc63e55f6d6efa68417ba67eb","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"f48b71c6b1a7567f894f718670d5f6e62b1b89f9cf11ab029f69df5f8930a678","id":"v3:security_ir:4:2:4:1","normalized_source_sha256":"aecd671eb0bf50d501821339fc9bf7551257f8c498bd9f1cdcdbd7d5fe509a52","source_sha256":"83f58296675443911a67a69c9b442ace7597c60662339be26f5089de9f35104b","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"b1cee256742c1b90e59b32b19e6121d731b378f0ede11b32d80b7b9aff89255c","id":"v3:security_ir:4:2:5:1","normalized_source_sha256":"476bedaf1a60b13524d7ea49dbb5a27b406d7ca6b6c4b18dcc94d5e87916d67e","source_sha256":"77bc22fdc68068315ff9f405df32eba2f0b2d1ba6aea00e0cc9e9cc2f0439cd2","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"57e2359c2c442d079933f178297b2b45b43278362490f730c5708e648e3178da","id":"v3:security_ir:4:2:0:2","normalized_source_sha256":"42af6589efe163b8a2aed338569572ecfd9e57e9b27f19a6e08f21b892b2eed2","source_sha256":"5bd0760fc58df13e7ee5b1d3b677a653fc91302d149ea288380cbf21c65bbd4d","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"4b96f503490dbedc2e1bb5a11fde31ea4dfec77d9d0d8ae29395acb15b5905ff","id":"v3:security_ir:4:2:1:2","normalized_source_sha256":"6da8855666079b3b3d08f4d9011dc005da170d702e18184fcfe8b0d802008349","source_sha256":"805bb957f1bcf2fa8ed71d0e32b1d6b26778c07b65d39ccf998d55dd7a11c2bd","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"257e52a0cfc6418beb3fe201fc78aec027c66b46e4c0fa52c38d93f8c6859b7f","id":"v3:security_ir:4:2:2:2","normalized_source_sha256":"1d0761f20817b0e34879f5cfec53ed0c5786d70ddaa770d6e37d49e3362cfebe","source_sha256":"7f1db1312c5ab58dbcb7c90086f86e8504a1fecce4cb6e587f63aef5f7fb0987","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"6265dc4dc258844d2bb72aa6c0ca4bcbb2695839fe6b0f213d23a62bcb471cf4","id":"v3:security_ir:4:2:3:2","normalized_source_sha256":"dd6830e3fbc91359052b1fe0438b7d802e7b6cea142fb199d3c0f171435ae9e9","source_sha256":"a456cdfc384c3869aae9f95efc4850e427ebffafbb1ebb57fa25fbcabd80dfa9","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"e12eee2998fbca4531e5fa5cde2a56381e0ecc74453b04811692b06ad3be1347","id":"v3:security_ir:4:2:4:2","normalized_source_sha256":"674a3f5adbeaf44bf2294f0f2d92550c8c4cc3819b1defa0fcf862eb56a2f6f8","source_sha256":"ea6c3148630e2dec28b40552988e5bb6e3c9e501b2c8c77578146bdde4d6479e","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"98f7afd83c3193659fa4d1dbcac061dfc284b40f06bc5085f09b84c8f1f8cb6a","id":"v3:security_ir:4:2:5:2","normalized_source_sha256":"b3b44d3e7d98bd7f99b34a1d8887f576124404102a65c35fda357ab30aeaf339","source_sha256":"26dcd3918b48f26d6fe7e51f06396e9e704151eba19136f65885e652fb30b76f","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"5f08d11b6438ec2b049581c191d091a8b2af1c8f15d1ac7139f444c0f1ab01f9","id":"v3:security_ir:4:2:0:3","normalized_source_sha256":"09da33264a847f72eb61e0d9547372c626981914bf8f3b8657395dc5bd312710","source_sha256":"379a624995c345fd4bdc4d23172f123265c6993884a0d63dbbb68441e65c6ba1","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"c415fba61e9a8aa50a83e922e6cbfa1a9a570f94f07bfa7eb25aadaf2b721c2e","id":"v3:security_ir:4:2:1:3","normalized_source_sha256":"9127cecbb7747812ba07c20eadf0386da16194ba626134eebd0add784f75d686","source_sha256":"bf3d3984974a1999000caa8997547fd90f69d41caeac15d619037e4caffd6a62","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"c3c3c8e72c00feb8b6c079eec0dba8004db8b9b2e4a234ed364bb5ec44b63455","id":"v3:security_ir:4:2:2:3","normalized_source_sha256":"9b26f5c9e0da510c841b8241d53cd2c8dcdd68a02624e2e15546fd8adf86dcba","source_sha256":"57f8e87638597e56f7c5024dbc33001b2cc65e1020c6eb3dbe5d6628c9c4cd53","target_sha256":"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a"},{"embedding_sha256":"69325382577f64acba4e6724b4a067161588983f4ec151cdbea99e5e088796fa","id":"v3:security_ir:4:2:3:3","normalized_source_sha256":"a4b654a34e15887a006d2b6ad3e2354391ca3edcef3d6ff5b695593e8d6939df","source_sha256":"381d274203954d9e024c7f2203cc4f6eb20eaf519327bfe2f6506d04bb375917","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"eea79452573aa7f5fafea73107b7292d0a4f849f092a63ab99060a12b2499949","id":"v3:security_ir:4:2:4:3","normalized_source_sha256":"048860eb0e027e6e42858a0ae736125ea413eb29b163dff5c7449dbc265027ff","source_sha256":"a678709d2f75ea7b9dce48ef7a4c04785a10056ea453393b2d61287010851e9c","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"},{"embedding_sha256":"0d52152b82471913474b811bd32547d5088ab4efb525bbec14c0820209b80853","id":"v3:security_ir:4:2:5:3","normalized_source_sha256":"fed6af0fa86bbcef71ca4c0ad3b0e5a10ecbac9158f369aafc313389538b1ce1","source_sha256":"31da7080dee16a315a0687d92534bbcf0e6b094007db6dd30ec9afa203ded65b","target_sha256":"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28"}]},"compatibility":{"admitted":false,"applied":true,"artifact_modified":false,"artifact_sha256":"2ca38dfcc05536315fc3e2c0647b710b930ef4066b474061a7b4e5bfb9a258c5","changed_pins":[{"after":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","before":"d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57","path":["shared_runtime","native","dependencies","ipfs_datasets_py.logic.ui_ux_ir.decoder"]}],"checkpoint_schema":"structured-source-384-autoencoder/v1","claim_proved":false,"completion_authority":false,"domain_id":"security_ir","download_calls":0,"execution_authority":false,"mode":"known_unrelated_ui_decoder_pin","numerical_weights_modified":false,"original_implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"original_implementation_sha256":"a93cbad03b8eaaf5ef9f04745c803550fcbcdec1164931bc3d95b988ab5cc14c","profile":"security-structured384-known-unrelated-ui-pin/v1","proof_authority":false,"provider_calls":0,"publication_performed":false,"qualified":false,"runtime_implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"runtime_implementation_sha256":"86162adb0b0230ce28146c3a95af8084d5a30f25ef1f22fa3279f50fc1241639","runtime_view_persisted":false,"runtime_view_sha256":"e077986eecdcdc4eb5f244a95a8591bc759a89af31e2a18adff1a20935ff2d7f","schema":"security-source-384-checkpoint-compatibility/v1","scope":"Only a known unrelated UI decoder pin differs; the Security structured runtime, numerical implementation, Security validators and all checkpoint content except that implementation pin must remain exact. Receipt validation alone is not artifact replay.","security_specification_inferred":false,"source_semantics_verified":false,"target_schema_modified":false,"training_executed":false,"training_manifests_modified":false,"unchanged_component_sha256":{"config":"b06fbce3d1d930773008cf9445e21d314b18ff9f23db4ccde3986de7713fb9ae","head_state":"417c4e9008774d43b90079ebb3fb4ed77e2129c84ce2d4c236c9274e0902a50b","input_transform":"a23af87acc00ab0bbc8467e413de416b5099a9d7d362447e723e622660e67aca","lineage":"45e0ed37ace5920f9094d8b19a35b0117fb401316d14685667667016db223a41","parent_binding":"60c05b77898286c404d8e89aba1ab0d9c7a6af8e191979e3083f87f824bf4e0d","projection_state":"4e90ec5a3ff3978d3f6d40fb366ea01f2a056fe6c59b3fddcf7c50f66366afd7","target_schema":"c0d0ea52ae853a618d4b564fbff0b6530436413849bbbc1257bdc8217992ec82","training":"59f030d99e8986918e9ef77c8ef605853c292c7cf6abfad5a18f91e8d8bd156c","training_manifest":"c773f9a557ed1a12e78c1624b92e66ec9e82b936f23a11cd5fb2fb68c171b5ba","validation_manifest":"b3f04bd1c61d1f8a337050b340704b8b8e8fe3b7df64ad04f59f3f19567f5326"},"unchanged_content_sha256":"913108469915b16a77ad99c780095e354f73ddb296ae361fea84a7f46c0a30e8","whole_program_semantics_verified":false},"kind":"shared_parent","original_checkpoint_sha256":"2ca38dfcc05536315fc3e2c0647b710b930ef4066b474061a7b4e5bfb9a258c5","original_checkpoint_utf8":"{\"admitted\":false,\"config\":{\"embedding_provenance\":{\"assets\":[{\"bytes\":190,\"name\":\"1_Pooling/config.json\",\"sha256\":\"4be450dde3b0273bb9787637cfbd28fe04a7ba6ab9d36ac48e92b11e350ffc23\"},{\"bytes\":583,\"name\":\"config.json\",\"sha256\":\"00273cdfb3e05c7304d180270bdef8adae45023e7bdfc396338bdd815943dc59\"},{\"bytes\":66746168,\"name\":\"model.safetensors\",\"sha256\":\"9a1eb90bbac323ea08aa5629b624fe6ae75db121b904799c2266a1e2c2de22d2\"},{\"bytes\":385,\"name\":\"modules.json\",\"sha256\":\"73348a3d8f8ae4cc5f851dc6b98be3ea819390b814e83656d5eebbadf75fe43e\"},{\"bytes\":57,\"name\":\"sentence_bert_config.json\",\"sha256\":\"948201d8329907aae938fa62f9ceeed53f5694dacc2b87b9f3b78b37ee986529\"},{\"bytes\":125,\"name\":\"special_tokens_map.json\",\"sha256\":\"b6d346be366a7d1d48332dbc9fdf3bf8960b5d879522b7799ddba59e76237ee3\"},{\"bytes\":711661,\"name\":\"tokenizer.json\",\"sha256\":\"da0e79933b9ed51798a3ae27893d3c5fa4a201126cef75586296df9b4d2c62a0\"},{\"bytes\":394,\"name\":\"tokenizer_config.json\",\"sha256\":\"e1790949631401af1bfb6c9c7aeec7fcf612e274d73579d99f704faea40c8ba7\"},{\"bytes\":231508,\"name\":\"vocab.txt\",\"sha256\":\"07eced375cec144d27c900241f3e339478dec958f92fddbc551f295c992038a3\"}],\"batch_size\":32,\"device\":\"cuda\",\"dimension\":384,\"dtype\":\"float32\",\"encode_rows_per_second\":2155.864994796075,\"encode_seconds\":0.890593800926581,\"load_seconds\":0.6136547059286386,\"max_tokens_observed\":34,\"model_id\":\"thenlper/gte-small\",\"normalized\":true,\"revision\":\"17e1f347d17fe144873b1201da91788898c639cd\",\"rows\":1920,\"truncated\":false},\"ridges\":[0.0001,0.001,0.01,0.1]},\"dimension\":384,\"domain_id\":\"security_ir\",\"head_sha256\":\"417c4e9008774d43b90079ebb3fb4ed77e2129c84ce2d4c236c9274e0902a50b\",\"head_state\":{\"bias\":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.1,0.2,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.6,0.4],\"weights\":[[0.6006566862392813,0.38770374586982587,-0.1665702252851927,-0.28953244513253507,-0.5322577617020563,0.6006566862392813,0.38770374586982587,-0.1665702252851927,-0.28953244513253507,-0.5322577617020563,0.9234618051425145,1.7092131635227525,-2.466716973522844,0.5081539302805205,-1.1919544810180027,0.3860126848863854,0.1276328229211774,3.086333325496494,-3.082136277711654,0.24934987970882286,-0.24934987970882286],[-0.30048457466774814,-0.32967379623264403,0.2953669575772439,0.5790275309686522,-0.24423611765183173,-0.30048457466774814,-0.32967379623264403,0.2953669575772439,0.5790275309686522,-0.24423611765183173,-4.8579086066505415,2.3006071706698994,-0.8186157455203238,-0.8209496173772984,1.8266580685467289,0.013333771470271427,-0.7268216905620073,-0.5078946710588426,3.5915913204811103,-0.6610418077764615,0.6610418077764615],[0.3545561958432767,-0.4706775257777238,0.650936626487587,-0.38219391517499085,-0.1526213813776794,0.3545561958432767,-0.4706775257777238,0.650936626487587,-0.38219391517499085,-0.1526213813776794,0.14057317404578207,-2.579833577948162,1.085239710149236,1.8738664345665088,-5.720261485683716,6.066429636444989,-0.7865767215559922,1.7659154727596713,-1.8453526427904632,-0.3792725667768488,0.3792725667768488],[0.16933009578926353,-0.4219901326580718,0.31995442506359256,-0.4000766258584434,0.3327822376661451,0.16933009578926353,-0.4219901326580718,0.31995442506359256,-0.4000766258584434,0.3327822376661451,0.4067725596878097,0.9159779747343478,0.306589549811191,-1.1435278108704996,-0.05784318884627759,-0.5600739691219965,4.004987881128105,2.196070735892465,-6.0689537324210505,-0.07903971367500635,0.07903971367500635],[0.14667781261415286,0.5620031496416408,0.5035501797330947,-0.885556175211307,-0.32667496676991215,0.14667781261415286,0.5620031496416408,0.5035501797330947,-0.885556175211307,-0.32667496676991215,1.1920113977137559,1.6157548130068011,-1.1687072266737593,0.3184647231378538,-0.41900412241641205,-1.2524198200105332,0.4989541997090875,1.281573697314467,-2.0666276617764705,-0.7655123094737447,0.7655123094737447],[0.2715728103971805,0.05415291110477758,-0.48635710064880566,0.32865864527970545,-0.16802726613735172,0.2715728103971805,0.05415291110477758,-0.48635710064880566,0.32865864527970545,-0.16802726613735172,3.9725693273229226,-2.190940211484007,1.340669075899849,0.5734632666373699,-4.056748943329941,3.5027760263602916,-2.5920854085389498,2.746087861749852,-3.295790994633543,0.27680786893416676,-0.27680786893416676],[0.5330180197056164,-0.605826270136096,0.2541724982498659,-0.2875241484774971,0.10615990064926137,0.5330180197056164,-0.605826270136096,0.2541724982498659,-0.2875241484774971,0.10615990064926137,4.766947394035933,0.4654665375710376,-2.9352450309879234,2.499820625368825,-3.2466711248767344,-3.328624585684442,0.8067198865508042,6.504594505738646,-5.53300820772037,-0.030042131959823012,0.030042131959823012],[-0.6125866290860877,0.5970804874703494,0.4612487272725668,-0.8463468927877598,0.4006043071301957,-0.6125866290860877,0.5970804874703494,0.4612487272725668,-0.8463468927877598,0.4006043071301957,0.5679281983787962,-1.3385634608533592,0.05239273833646241,2.0573902526145105,2.643649372199433,-0.06724691820091411,3.923812874321375,-5.592182543150716,-2.247180513649215,-0.7712195300921016,0.7712195300921016],[0.15440718517681679,-0.27580111917760497,0.570459099346381,-0.44447131143371477,-0.004593853898974043,0.15440718517681679,-0.27580111917760497,0.570459099346381,-0.44447131143371477,-0.004593853898974043,-0.3923156140902486,0.7559672756321687,-0.09587196911841589,-0.503587981649567,-0.7312195718623035,2.1560812067818906,3.75540771817474,6.223025064235873,-11.16748612810448,-0.15650732486119492,0.15650732486119492],[0.3055429628307909,0.5117518603812771,-0.15111166103187973,-0.38494903243325074,-0.28123412974164563,0.3055429628307909,0.5117518603812771,-0.15111166103187973,-0.38494903243325074,-0.28123412974164563,2.3745824232261974,-2.1634897256738634,3.7074872481885173,-2.5705845608007425,2.38052267240828,-1.6797319549353955,-1.7876170692867421,-4.173445332093696,3.9122762989657636,1.0265870383065172,-1.0265870383065172],[-0.07130203920139871,0.33101342053340904,-0.2138576400211972,-0.11929330472201674,0.07343956342467339,-0.07130203920139871,0.33101342053340904,-0.2138576400211972,-0.11929330472201674,0.07343956342467339,-3.297547646383311,1.8304736719330388,-2.3314494205273584,1.1744951439687548,-2.308700120940681,3.2696072016060675,0.16528715635809998,1.473064214136255,0.02476979984410832,-0.6735193953761566,0.6735193953761566],[0.5289451735104853,0.08500101192330536,-0.3023248045535609,-0.4384411514297408,0.12681977055089233,0.5289451735104853,0.08500101192330536,-0.3023248045535609,-0.4384411514297408,0.12681977055089233,-3.5996730529974563,3.717917767753227,0.6886155955689915,-4.6634151349059705,-0.44015388888969065,4.763057841485285,-2.608250779625408,2.5720938682271295,-0.43019221662872326,0.25688177158170045,-0.25688177158170045],[0.1969727779376123,-0.519513851786075,0.13075901391801165,0.18422076847466645,0.007561291435781159,0.1969727779376123,-0.519513851786075,0.13075901391801165,0.18422076847466645,0.007561291435781159,-2.0928196673773187,-1.907309562039047,3.3123042037447648,-0.7083262373317376,-4.081072282968762,6.86201927929847,-0.531635208715528,4.909584996116628,-5.762745520705452,-0.6966684043597003,0.6966684043597003],[-0.18140164283983118,-0.6153309478850945,0.396409392308969,0.49824856813523277,-0.0979253697052373,-0.18140164283983118,-0.6153309478850945,0.396409392308969,0.49824856813523277,-0.0979253697052373,0.21236781712473807,6.160525664711072,-4.908600187804349,-1.063847552239282,-1.18421138707654,-1.7298910261890499,4.17130692002816,-0.9366778183639223,-0.7209724302013492,-0.18807792466438594,0.18807792466438594],[-0.22457250845674892,-0.623546818049965,0.5303398732246764,0.5487319925140595,-0.23095253925373888,-0.22457250845674892,-0.623546818049965,0.5303398732246764,0.5487319925140595,-0.23095253925373888,-0.2047214322178908,-4.958314840444365,3.127598784373822,2.217614277946311,0.5804002901995708,-1.9834364051868494,-1.8916201169272042,-4.512676838978529,7.6251562812411375,-0.3868982218711018,0.3868982218711018],[-0.055980723224909226,0.3399679202298874,-0.34547820164582727,-0.03106164578332485,0.09255265043791137,-0.055980723224909226,0.3399679202298874,-0.34547820164582727,-0.03106164578332485,0.09255265043791137,2.1805364733833072,3.433104492850838,-2.006552863242399,-1.5265645639252527,-2.586476070343111,-0.4364795275304534,2.1733879850816913,-1.2389293001369481,0.007973373871664746,0.1000129343231986,-0.1000129343231986],[-0.2147040703653424,0.3997695017411996,-0.34313451857876237,-0.19955506465692185,0.3576241518739669,-0.2147040703653424,0.3997695017411996,-0.34313451857876237,-0.19955506465692185,0.3576241518739669,1.343879568244675,-0.025318260501663525,-1.1161130134209185,1.4479557281975075,-0.767061577335873,0.4335678615382342,-1.4143551309533182,0.6014920571931319,-0.5040472329544549,-0.30652445427520036,0.30652445427520036],[-0.2165117658519795,-0.28166973130709616,0.5931423840179104,0.15926701999410697,-0.2542279068442497,-0.2165117658519795,-0.28166973130709616,0.5931423840179104,0.15926701999410697,-0.2542279068442497,-0.4530821702943171,2.798593939124126,-3.3780148852446588,0.9929403676721631,-6.370024057332149,10.026618373350283,-2.1058586129300663,0.06765061057025523,-1.578823564912586,-0.4135194215488241,0.4135194215488241],[-0.030345416231820188,0.11629099257180955,-0.10806119171861309,0.1388827541962368,-0.11676713881926,-0.030345416231820188,0.11629099257180955,-0.10806119171861309,0.1388827541962368,-0.11676713881926,0.551341212840678,4.000772313697378,-1.5333532857655234,-2.9535319682937433,8.221141270986816,-9.502439162003196,-0.7322382981142416,-1.4237641189748602,3.3720720356209095,0.4861129403615695,-0.4861129403615695],[0.234536312070633,0.535411402087433,-0.13526517429635534,-0.8030012356135463,0.16831869575688013,0.234536312070633,0.535411402087433,-0.13526517429635534,-0.8030012356135463,0.16831869575688013,3.3116916373655667,-0.32494748360973513,0.618927698183586,-0.8203212803468248,-3.739621789749301,3.031725484912225,-2.533830962961887,0.36821307329978437,0.08816362290586222,0.5263410657811902,-0.5263410657811902],[0.20097048995315495,-0.3534624227003089,-0.1490045395428851,0.20433308393983313,0.09716338835533206,0.20097048995315495,-0.3534624227003089,-0.1490045395428851,0.20433308393983313,0.09716338835533206,1.6097650102755743,2.9147724525705674,-1.9124752259459372,-0.20719122374273535,-0.04215798169356777,1.3525799273926735,0.9924788820626518,0.5394424840458769,-5.247214324963656,-0.7951060028826846,0.7951060028826846],[0.19553749726890116,0.20006592964382938,-0.01209030803639255,-0.34068227192417533,-0.042830846949798704,0.19553749726890116,0.20006592964382938,-0.01209030803639255,-0.34068227192417533,-0.042830846949798704,3.0079338604452635,-2.8259455201567603,2.9216334791568452,-0.509468548091969,1.8825957240036217,-3.9303074246198637,-1.0769202386082495,-2.9797505122401495,3.5102291801214216,0.4137805890989448,-0.4137805890989448],[-0.4733223302311709,0.42878443212976025,0.03241208370628229,0.22800059704086728,-0.21587478263811793,-0.4733223302311709,0.42878443212976025,0.03241208370628229,0.22800059704086728,-0.21587478263811793,-0.23561214069264458,1.3385418787535648,-1.6041557485779527,-0.24868901766974139,2.4360762769404984,-3.7180641479768073,2.107433692555105,0.7208040655071137,-0.796334858830754,0.5143028874951782,-0.5143028874951782],[0.5899211586427857,-0.8842385655236409,0.5470445098672007,-0.19133789153602798,-0.0613892114389953,0.5899211586427857,-0.8842385655236409,0.5470445098672007,-0.19133789153602798,-0.0613892114389953,5.1547637585005175,-4.74388364622054,5.104857865570525,-0.22929996040133918,-0.9369382633170138,0.6093486158714191,-1.0320510674533963,-0.5986745549913188,-3.328122747551583,-0.13167425892821757,0.13167425892821757],[-0.3029971609756581,-0.35214025018819994,0.7601222106025346,0.017886096064992994,-0.12287089553516528,-0.3029971609756581,-0.35214025018819994,0.7601222106025346,0.017886096064992994,-0.12287089553516528,0.012878356772000554,-3.5543514305609554,-1.405018138932888,5.118981981302848,1.6078814236467704,2.4045877320272036,2.7448597141726534,-9.892520326013093,2.962700687587926,-0.1596124118148073,0.1596124118148073],[-0.4586712879604534,0.7864941666684757,-0.15516544154587,-0.23377184727062778,0.06111441010487566,-0.4586712879604534,0.7864941666684757,-0.15516544154587,-0.23377184727062778,0.06111441010487566,6.4865289204636545,0.30004330115999167,1.2839884434192639,-2.176936984855202,-0.12360021328288484,0.6850331810797852,-2.3491669127234536,0.5181289876506114,-4.624018722921024,0.5929052402735736,-0.5929052402735736],[-0.04811536452573656,0.2709872367409998,-0.09487609333860109,0.03391190365211471,-0.16190768251530982,-0.04811536452573656,0.2709872367409998,-0.09487609333860109,0.03391190365211471,-0.16190768251530982,-0.44995781754579495,-0.3472534213568075,-0.4466820781234144,1.067420542630119,-0.1760725433076351,-4.305820336892019,1.2216186975681789,-3.842570181120726,7.279317138142255,-0.27348504315681454,0.27348504315681454],[0.3443724531222558,0.24006405461514518,0.019327502251947376,-0.5388734556892335,-0.06489055431211123,0.3443724531222558,0.24006405461514518,0.019327502251947376,-0.5388734556892335,-0.06489055431211123,-3.2106729958865796,-0.7489105099848042,0.12640976571781004,0.4062786041838946,2.5630414281091256,-2.863158491996444,-1.003523924110803,1.9126788907999241,2.81785723317047,0.21622214007559024,-0.21622214007559024],[-0.2357375233856434,-0.44659709471322684,0.2369379181154751,0.6169454093102458,-0.17154870932186111,-0.2357375233856434,-0.44659709471322684,0.2369379181154751,0.6169454093102458,-0.17154870932186111,-2.415776855465973,-2.1930002921875418,2.6461543782113273,0.16709608613962318,1.64360386950295,-2.7043991302238606,3.289049636314793,1.2479753150729298,-1.6807030073624187,-0.6202501721489744,0.6202501721489744],[0.3616645806090924,0.5348372891367648,0.17721784424212994,-0.5033883137254636,-0.5703314002747853,0.3616645806090924,0.5348372891367648,0.17721784424212994,-0.5033883137254636,-0.5703314002747853,-2.0013088544053117,-1.2971500679512067,1.0334768068277078,0.08331700241589957,-5.504198590230397,3.6400650515842146,1.02683692436442,3.402723048900728,-0.38376132151429365,0.1803562587075217,-0.1803562587075217],[-0.34511854436982337,0.5955079606022341,-0.593959328060622,0.0054455774082489,0.33812433443967316,-0.34511854436982337,0.5955079606022341,-0.593959328060622,0.0054455774082489,0.33812433443967316,0.952805637838311,-0.8958961635475196,1.3510410274090794,-0.8779830567806113,-2.6595131724381087,2.7893742079900927,-0.5037658772410175,3.1090984872218543,-3.265161090456927,0.42283819290706715,-0.42283819290706715],[-0.37603429131991073,0.20058908676316275,-0.043699904559727776,-0.22434732851179792,0.4434924376182379,-0.37603429131991073,0.20058908676316275,-0.043699904559727776,-0.22434732851179792,0.4434924376182379,4.397680031916109,-1.9476837464429246,0.7206494559178607,1.9302595820308701,2.5686961792788385,0.2493612604677134,-2.7061609483626454,-4.628441662380961,-0.5843601524334576,-0.703225291506976,0.703225291506976],[0.43113506701643867,-1.1863936989265622,0.24229772855210208,0.635553356416962,-0.12259245306790656,0.43113506701643867,-1.1863936989265622,0.24229772855210208,0.635553356416962,-0.12259245306790656,-3.0383135321975687,0.6486419870473623,-2.6268471819668653,3.0573817840380526,-0.1694476258164379,-1.6006567674475969,3.1404970147095694,-3.439398131100635,4.028142452742594,-1.079176589117229,1.079176589117229],[-0.205258189175918,-0.15724302092358697,0.43630556351412086,-0.3115829482507537,0.23777859486399477,-0.205258189175918,-0.15724302092358697,0.43630556351412086,-0.3115829482507537,0.23777859486399477,-0.18222380944257166,1.392595934696578,-0.9515449390214215,-0.23291598295971322,3.0492390598307293,-4.136726650937479,-2.0364152083332154,-2.8170147832385743,5.915006379387042,-0.20813501272596097,0.20813501272596097],[0.06025652972218612,0.6105362769912337,-0.47345826140914227,-0.38271397019141484,0.18537942489313047,0.06025652972218612,0.6105362769912337,-0.47345826140914227,-0.38271397019141484,0.18537942489313047,-0.6641257065944206,-1.303502228913519,-0.3217474323267314,1.1762098119546658,-3.1419638636628537,4.215614706417122,0.11158415176539216,2.3334600718982905,-2.405529510532357,0.449039849278864,-0.449039849278864],[0.30882950276792914,-0.22695434177887447,0.32804967909112953,-0.17419756586573237,-0.23572727421893738,0.30882950276792914,-0.22695434177887447,0.32804967909112953,-0.17419756586573237,-0.23572727421893738,2.3791020315285083,-2.814958643359724,1.0767908255368714,1.805893413833737,3.6148095706562198,-2.233254192763532,-1.4432596351020712,-3.144289453475864,0.7591660831423432,-0.06772559599929306,0.06772559599929306],[0.11883876380468879,-0.26573087697769077,-0.3625945830086437,0.2052407254055531,0.3042459707667007,0.11883876380468879,-0.26573087697769077,-0.3625945830086437,0.2052407254055531,0.3042459707667007,0.4850384275289434,0.009672092137107069,0.1634193445729255,-0.79377073781534,-3.195598353184016,0.9496771074299697,-0.06834352667252952,5.509744157519592,-3.0598385115225937,0.6206793011117925,-0.6206793011117925],[0.13782990630414604,0.41083407496488833,0.03458705948326232,-0.4207780507562467,-0.16247298997810125,0.13782990630414604,0.41083407496488833,0.03458705948326232,-0.4207780507562467,-0.16247298997810125,-0.4910590606024716,-2.0749720035514656,1.556453229425947,0.409470719262148,-3.2656074756748383,7.443176131155953,-1.077107355523472,4.619279819767486,-7.1196340042535855,0.10904805486369323,-0.10904805486369323],[0.06117850774572382,-0.26418129207382085,-0.15337729613885945,0.10320976057613036,0.2531703198773374,0.06117850774572382,-0.26418129207382085,-0.15337729613885945,0.10320976057613036,0.2531703198773374,0.991072172342911,1.8183063428357689,2.6564048584965843,-4.882883426439023,2.9354611421738572,-1.8695721436585355,-1.5186204050446173,-2.467144445882555,2.336975905180316,0.4081722251129928,-0.4081722251129928],[-0.24864678656838687,0.29475027745824295,-0.2505211379671835,0.2842944455441677,-0.07987679844414819,-0.24864678656838687,0.29475027745824295,-0.2505211379671835,0.2842944455441677,-0.07987679844414819,1.3418087546835586,-0.7482069681875365,-1.1982205519257416,2.1878682414873323,1.7394996600328099,-1.749801495388088,-0.5886036207365433,-4.483072922657289,3.4987289026962864,-0.2414407213598834,0.2414407213598834],[-0.12659207572550168,-0.8145250876548866,0.43887009296796786,0.6598941393834378,-0.15764706896407843,-0.12659207572550168,-0.8145250876548866,0.43887009296796786,0.6598941393834378,-0.15764706896407843,-1.7454249435727025,-0.6634015596263063,-0.33546982802957215,1.762564552049228,4.904458857170818,-6.272719126495158,2.77050772372253,-4.18262643518863,3.7621107599598163,-0.7636931644062769,0.7636931644062769],[0.3145524682762692,-0.1953993594769337,-0.2031099381738815,0.2729098892279701,-0.18895305986146319,0.3145524682762692,-0.1953993594769337,-0.2031099381738815,0.2729098892279701,-0.18895305986146319,4.323353804786544,3.5539759362944507,-2.3490638180006025,-1.1385431233128422,0.479937633557075,-5.050436414705837,0.19967588394964025,-0.11197210495246429,0.09307220238146213,-0.06636899498811707,0.06636899498811707],[-0.34081242327650074,-0.04144603989143569,0.37659507476836945,0.1790772344748841,-0.17341384609493565,-0.34081242327650074,-0.04144603989143569,0.37659507476836945,0.1790772344748841,-0.17341384609493565,0.13485546237024804,-0.35553385031389917,0.053365353432491824,-0.4937947050166699,1.638569204865157,1.9548905614041214,0.46564211597531113,0.3699590020605461,-3.7679531447727843,0.7959632019005051,-0.7959632019005051],[-0.06470770834618976,-0.2588581025045541,-0.38254818600299506,0.4239746107752163,0.2821393860981465,-0.06470770834618976,-0.2588581025045541,-0.38254818600299506,0.4239746107752163,0.2821393860981465,-4.09307805312643,-0.367391593655243,1.2652975773388653,-1.2063639585728783,3.0989278642941445,-0.4649888362838268,2.259138161712728,-2.517038374588575,2.025497212876061,0.30845797489334414,-0.30845797489334414],[0.006887600721429962,0.20905051418681306,0.1506843918117048,0.09006585873214606,-0.4566883654537538,0.006887600721429962,0.20905051418681306,0.1506843918117048,0.09006585873214606,-0.4566883654537538,0.8759788075629475,-3.775635003144161,-1.0474223686872484,4.964341539867504,-0.7471797363652883,2.439542829106527,-0.15594436369302622,-0.2822445197686523,-2.2714371848648667,-0.14128416803724908,0.14128416803724908],[-0.06779825099324072,0.20498354097638502,-0.2845596790147593,0.04077560822981405,0.10659878080880034,-0.06779825099324072,0.20498354097638502,-0.2845596790147593,0.04077560822981405,0.10659878080880034,-2.018209171732076,0.7089707931869186,-0.969106701425855,0.18159887069145944,0.7721899170233935,-0.5098792975869035,4.89614966716997,0.9237184094895015,-3.985432486817034,0.07853703753616519,-0.07853703753616519],[0.06025803640027784,-1.0477824370961906,0.7451429024848262,-0.09916318356796258,0.3415446817590385,0.06025803640027784,-1.0477824370961906,0.7451429024848262,-0.09916318356796258,0.3415446817590385,2.1340839542676573,-4.504447257055293,2.030947164352772,2.9063447554497372,1.6218227850880127,-4.435788739482988,-2.294086066540693,0.2673380207563971,2.2737853831604933,-0.4328446627475915,0.4328446627475915],[0.4143139206388881,0.010714991502163998,-0.00782503943351133,-0.026860444713057405,-0.39034342799302146,0.4143139206388881,0.010714991502163998,-0.00782503943351133,-0.026860444713057405,-0.39034342799302146,-0.00352591294423521,1.7181841033674377,-4.173242501207083,2.8015005278904503,2.3092681785485794,-3.62816747388018,1.6750165422205976,-2.4083808352212874,1.7093473712201428,-0.3464421300554867,0.3464421300554867],[-0.31232180132164783,-0.0632579288859238,0.37117267692961986,0.25936870907251075,-0.254961655787591,-0.31232180132164783,-0.0632579288859238,0.37117267692961986,0.25936870907251075,-0.254961655787591,-1.530136208731145,-2.7625484068316344,0.6292969393286758,2.5177799236352003,-0.313235240411347,0.040645628617971497,-5.28445632443135,0.2948471221188248,6.407806566709141,-0.3845284561244461,0.3845284561244461],[-0.1357218131783003,-0.036997071610877175,-0.06177847376725593,0.5098802827311545,-0.27538292416402826,-0.1357218131783003,-0.036997071610877175,-0.06177847376725593,0.5098802827311545,-0.27538292416402826,-3.140020674444842,1.8853878041607082,-1.2899331846001703,-1.5402640897211382,-1.977754332423074,2.4019265989165715,5.770908890074447,2.6648947921700814,-4.7751458041278045,0.9448094701576274,-0.9448094701576274],[-0.19052213140372368,0.04419493592042467,0.040316371042785244,0.15970225496736407,-0.05369143051823702,-0.19052213140372368,0.04419493592042467,0.040316371042785244,0.15970225496736407,-0.05369143051823702,1.3194516306107678,2.3468900565090274,0.6168055808408602,-2.8122303915557234,3.1473056397843213,-3.2331780213249313,2.7170728257610297,-6.8025047701574,2.700387449541738,-0.15146524578228487,0.15146524578228487],[-0.2973685654802116,0.01967898920493255,0.40161645675813906,-0.5348907454007931,0.4109638649234513,-0.2973685654802116,0.01967898920493255,0.40161645675813906,-0.5348907454007931,0.4109638649234513,1.3462656297091098,-2.0689504799426963,3.11040834345414,-1.4636470584443035,4.083724869633998,-3.180582348444134,2.8431876239717093,-2.605827197513418,-2.0645793824225773,0.42218919492668205,-0.42218919492668205],[0.16114843565434783,0.45603913758244974,-0.15960101714650515,-0.39972937464699604,-0.0578571814245646,0.16114843565434783,0.45603913758244974,-0.15960101714650515,-0.39972937464699604,-0.0578571814245646,-1.176957047446256,-0.9978308835843814,-1.2894666736522273,1.857761729082073,0.08672425658111127,3.617113707208721,-5.181646470860054,2.597043244408316,0.48725813826251807,0.4295358281544708,-0.4295358281544708],[-0.4074881367847547,0.33434515618218275,-0.4068208845525181,0.07174096358029278,0.4082229015593411,-0.4074881367847547,0.33434515618218275,-0.4068208845525181,0.07174096358029278,0.4082229015593411,-1.4120326145479214,-1.0541605277432762,-1.9983550840969562,2.485416828549691,2.6433384373186426,-2.8830855379351124,-0.6051610522418794,-2.873408039184201,5.697447589875823,0.5670987832817859,-0.5670987832817859],[0.018152707254532767,-0.46234190244685014,0.17311068338975433,0.5106548130387789,-0.2395763012406889,0.018152707254532767,-0.46234190244685014,0.17311068338975433,0.5106548130387789,-0.2395763012406889,-0.8458350864739417,-2.210714053150768,1.3718810932367724,0.9673910514948345,1.6728471079664011,-0.5017772636259624,-2.4832467791701927,-3.8875560563731453,5.9170099860871375,-0.12855809158916512,0.12855809158916512],[0.11314141010450421,-0.4579271929933184,0.05692661704226723,0.3371006522848639,-0.04924148642598497,0.11314141010450421,-0.4579271929933184,0.05692661704226723,0.3371006522848639,-0.04924148642598497,-1.448579729037465,0.7946629406198877,-1.1127837031117815,-0.0337975415117166,2.9214907664242595,-6.129944645954984,4.66721508883213,0.015510410020299903,0.32622641372058536,0.35191830399490365,-0.35191830399490365],[0.2664175373449934,0.0023603892002885454,0.05154852003714132,-0.4873775244986658,0.16705107790766352,0.2664175373449934,0.0023603892002885454,0.05154852003714132,-0.4873775244986658,0.16705107790766352,3.441484906411053,-0.19100175481067516,-2.7762204033816893,3.0061997650676044,6.057064793067315,-10.055358122794036,-0.7762449197224991,-8.355993541703704,9.650069277866807,-0.03897760686432028,0.03897760686432028],[0.19376498649083038,-0.043947135462852005,-0.06913484373773737,-0.030534602627558687,-0.05014840465467073,0.19376498649083038,-0.043947135462852005,-0.06913484373773737,-0.030534602627558687,-0.05014840465467073,-1.1572735029291628,0.022634609051523258,0.32681782143204896,-1.1235824691733807,2.9958796330302775,-2.472473587427892,-2.274899683306042,0.6072641419685278,3.075633037357328,0.7741300386876226,-0.7741300386876226],[-0.2304812015856562,-0.006800038496237726,0.08223877959704573,-0.28009186128228525,0.4351343217676419,-0.2304812015856562,-0.006800038496237726,0.08223877959704573,-0.28009186128228525,0.4351343217676419,0.44051766537389,1.6826971403499693,-2.191651541306837,1.145686720857481,-1.8595230927812234,0.7148660598935042,-2.3193722148793765,-2.61680150824127,5.0035807707322455,-0.6367323198885794,0.6367323198885794],[-0.07164381848756862,-0.7555088111885471,0.04512938881269006,0.389376782759454,0.39264645810012416,-0.07164381848756862,-0.7555088111885471,0.04512938881269006,0.389376782759454,0.39264645810012416,-0.2412208926352446,1.3772175771871307,-2.522274141986251,0.8241665900095276,-4.6618768773305606,4.3073748786069475,2.226940254608741,7.252214500044314,-8.562541888508742,0.3208899747853346,-0.3208899747853346],[0.3980123480284708,-0.6257193592080565,0.5112851959591778,-0.6234831226631095,0.33990493787270537,0.3980123480284708,-0.6257193592080565,0.5112851959591778,-0.6234831226631095,0.33990493787270537,5.210081037607775,0.4001905167601548,0.0032976208346827685,-0.550047909857089,-1.1237177191067405,0.10477708390323048,-2.7031602314569625,-0.8791742492782788,-0.4622461494048382,0.14655977226059486,-0.14655977226059486],[-0.16298288952241666,0.1778164134155554,-0.35532624195223056,0.1310620825971146,0.2094306354583864,-0.16298288952241666,0.1778164134155554,-0.35532624195223056,0.1310620825971146,0.2094306354583864,-1.8282494303934027,-2.0767681096508497,-0.4012545274125452,1.8395888931642208,5.248717696241373,-1.8742588638548612,-1.7124122372138615,-4.26033363576868,5.064970214891423,0.6384337438991265,-0.6384337438991265],[0.15561153977448403,-0.21501777422990434,-0.3134525557320077,0.2740862204745192,0.09877256969379639,0.15561153977448403,-0.21501777422990434,-0.3134525557320077,0.2740862204745192,0.09877256969379639,1.959606831810281,2.526758121605442,0.8785280978355952,-2.8186468418067223,-1.0120479754484464,-3.6327949887127122,2.9273219014144094,0.30815649056325234,-1.1368816372521207,-0.5866393776257428,0.5866393776257428],[0.10755086145550152,-0.21667760159487393,-0.2088546953285783,0.7262171986947137,-0.4082357632254886,0.10755086145550152,-0.21667760159487393,-0.2088546953285783,0.7262171986947137,-0.4082357632254886,3.8935886669908792,2.3264706896687657,-0.9726980470411647,-1.7275731166294699,3.6397988869617395,-8.270222024556114,5.307306432525988,-1.317324487608731,-2.8793470003168875,0.37380047400089944,-0.37380047400089944],[-0.22579512484265374,0.11539968711472894,0.11701007611763103,0.41305125784326047,-0.41966589624537165,-0.22579512484265374,0.11539968711472894,0.11701007611763103,0.41305125784326047,-0.41966589624537165,-2.9238446174609685,5.305689815612463,-3.2912304167031565,-2.6087333129589756,0.9655440942972229,0.08240672609797839,-0.9319878768950338,-3.9998202675820576,7.401975855581173,0.5942739140573188,-0.5942739140573188],[-1.044168917980048,0.27319443783354547,0.27103333819858205,-0.08029011910149794,0.5802312610452703,-1.044168917980048,0.27319443783354547,0.27103333819858205,-0.08029011910149794,0.5802312610452703,-0.16755030500030807,-0.2549503784060142,-0.5640073583572487,1.1108260295700385,-2.1357625739546124,7.32077385396218,1.2591193593173824,0.8522367959920008,-7.4206854231322135,-0.2918682928151476,0.2918682928151476],[0.23064111553908628,-0.6326454798918352,0.33291835721482976,-0.2268177231123306,0.2959037302463504,0.23064111553908628,-0.6326454798918352,0.33291835721482976,-0.2268177231123306,0.2959037302463504,2.9847150180654167,0.3454987621546747,-2.778856551820728,2.0507750202665886,1.529309758990193,-1.9819454226002087,0.23200391819980237,0.9119307212716152,-3.2934312245313846,0.3825827693975408,-0.3825827693975408],[-0.4174321792027099,-0.28475942392671233,0.15660141041002593,0.3350641685466381,0.21052602416272442,-0.4174321792027099,-0.28475942392671233,0.15660141041002593,0.3350641685466381,0.21052602416272442,1.6827799282620912,-0.017416465486688848,1.472068474296353,-1.1582101830480125,2.956949514471825,-1.2747488220117562,-3.5060871865306504,-1.2781833112127972,1.122848051253484,-0.2964418257626273,0.2964418257626273],[-0.3214626578213997,-0.8126813015747324,0.3942490263835652,0.567592465881919,0.17230246715656744,-0.3214626578213997,-0.8126813015747324,0.3942490263835652,0.567592465881919,0.17230246715656744,-4.734989459455862,-0.8648042582358968,0.7040207283681506,-0.6686563396559264,1.8043734891761511,-1.2307339507319681,-1.081842263342711,-1.927476157386966,8.000108211254503,0.8294398695231184,-0.8294398695231184],[-0.004514310477602923,-0.06773023085991892,-0.31623933781457264,0.061244234001050474,0.3272396451627845,-0.004514310477602923,-0.06773023085991892,-0.31623933781457264,0.061244234001050474,0.3272396451627845,-2.5352225063163254,-1.2179346965519589,1.8606012542851853,-0.7965015710601819,-5.138184343548829,4.472942876954119,-4.668539670877736,2.61038836039098,5.412450296737536,0.15383501332024546,-0.15383501332024546],[0.25137945540863993,0.36994890350319704,-0.009413269137773655,-0.7781477959039991,0.1662327061262544,0.25137945540863993,0.36994890350319704,-0.009413269137773655,-0.7781477959039991,0.1662327061262544,3.624096706022281,0.8525004863513699,-1.5125736346693976,0.6661561623498391,-4.0334996873207025,2.0446092596202323,0.8276332867915662,-2.659283536435367,0.19036095728740188,-0.00608301404212222,0.00608301404212222],[-0.10813644055408847,-0.1279701139678351,0.0034553081257372165,0.155023047737483,0.07762819865642649,-0.10813644055408847,-0.1279701139678351,0.0034553081257372165,0.155023047737483,0.07762819865642649,-0.046888003363959596,-0.5388599269966132,-0.5424053793981682,1.2756635156555827,-1.4154413314320864,2.3780317620360445,2.7260702096693996,0.3772324423046598,-4.213403288466074,-0.19439820926202275,0.19439820926202275],[0.12046587761739874,-0.13556496660520853,0.4197082663667843,-0.22533239271475286,-0.17927678464083632,0.12046587761739874,-0.13556496660520853,0.4197082663667843,-0.22533239271475286,-0.17927678464083632,-1.7593362528818792,0.9824594032161211,-0.03715408369540507,-0.750523457933134,0.2769787760514988,-2.1059307296525365,6.2108845159351596,-0.6674019054700934,-2.149976265561778,-0.19478186158470764,0.19478186158470764],[0.16294759648961415,-0.854374599227967,0.27223126361735817,0.36951678534681603,0.04967895375691611,0.16294759648961415,-0.854374599227967,0.27223126361735817,0.36951678534681603,0.04967895375691611,-0.0938997329211636,0.4389642225358408,2.4768642767345446,-3.0823835155078174,3.4780420644029664,-3.829323861867009,2.361502087194308,-2.9564552067820644,1.206689666214971,0.1665550162367304,-0.1665550162367304],[0.5108112392022425,0.5529446985875442,-0.1497391224235814,-0.6956489076137606,-0.21836790776633225,0.5108112392022425,0.5529446985875442,-0.1497391224235814,-0.6956489076137606,-0.21836790776633225,1.4790540690766512,1.7571927122851296,-1.0943843365291628,-0.9691957643858025,-1.9384024599319645,1.7217804062272093,-1.4203630504252998,2.3459099056570727,-1.881591481974599,0.30638738861871556,-0.30638738861871556],[0.2229771969908762,-0.059046172650358886,0.08479738987444946,-0.15801107409625592,-0.09071734011273602,0.2229771969908762,-0.059046172650358886,0.08479738987444946,-0.15801107409625592,-0.09071734011273602,-0.5241125179757433,-1.7453858021227195,1.3889485199340421,0.055909620007731364,-0.6768064814169881,-2.3988510231903546,-1.665102130958546,-5.192811008917384,10.758210824651025,0.3005276621824885,-0.3005276621824885],[-0.005479250513157289,-0.15034903130149468,-0.09484925520296883,0.4058720700674636,-0.15519453304653946,-0.005479250513157289,-0.15034903130149468,-0.09484925520296883,0.4058720700674636,-0.15519453304653946,-1.1711429145808738,-3.008288770727448,3.2344014957790423,0.09383731343073126,4.446375668404416,-1.8688170227721022,1.0190880873237882,-4.596995257526237,1.8515414006688413,-0.3199500384885672,0.3199500384885672],[-0.2113747120306327,-0.22734350199185432,0.40438959120240386,-0.4015294203443511,0.4358580431646485,-0.2113747120306327,-0.22734350199185432,0.40438959120240386,-0.4015294203443511,0.4358580431646485,-1.5032355751656234,-4.1427634642873,-0.025531678821766768,3.7925360131346553,-7.333139800200554,8.103589957760379,3.6717632038312864,5.007663772503097,-7.570882428748158,0.3757591299649057,-0.3757591299649057],[0.14264760739509594,0.2700061052262275,-0.22491378424654157,-0.40262116004518267,0.21488123169823825,0.14264760739509594,0.2700061052262275,-0.22491378424654157,-0.40262116004518267,0.21488123169823825,1.0230121309877591,-1.5478478351096852,1.2528071398091178,0.44514886407151455,-1.4722409158842,2.3211612011271763,-2.8862626274037892,-0.16580180897005192,1.0300238513765985,-0.15010816874729307,0.15010816874729307],[0.5511959005510779,-0.7397862977960957,0.03385487269124922,0.1050539786872706,0.04968154586367378,0.5511959005510779,-0.7397862977960957,0.03385487269124922,0.1050539786872706,0.04968154586367378,0.3301253448000192,1.5384874506147683,1.7633426176574085,-3.1515752671714004,-2.3196468609300007,-1.0417712817862705,-2.9814349328156604,7.1531489864575235,-1.2906760568339193,-0.150254801108559,0.150254801108559],[0.2504257723517723,-0.34545499956803116,-0.4668659300181993,0.8244605574633059,-0.2625654002330953,0.2504257723517723,-0.34545499956803116,-0.4668659300181993,0.8244605574633059,-0.2625654002330953,-1.4634777883666295,-0.9960626671212081,-1.6121627106363914,2.386948525845898,1.5400009212014691,-1.6858952815769843,-0.4556641904890637,-2.6264800313290224,4.912793222464156,0.22127685190531116,-0.22127685190531116],[-0.22829772450670296,0.1480583473750909,-0.1162093619123844,-0.03940744738398265,0.23585618641650674,-0.22829772450670296,0.1480583473750909,-0.1162093619123844,-0.03940744738398265,0.23585618641650674,-2.2885189160228885,2.626980033162243,-4.842799669457602,2.2593240856881684,4.676816377852415,-7.063259457179468,1.4899215465813318,-3.308252421252911,6.449788420633771,-0.04350444938384923,0.04350444938384923],[0.16111626492588577,-0.005811040511422325,0.15311842030469774,-0.018864197350133893,-0.2895594473693976,0.16111626492588577,-0.005811040511422325,0.15311842030469774,-0.018864197350133893,-0.2895594473693976,2.7581879470249766,-3.980682362465581,0.08123163187560234,3.699835415387591,-1.2377406929744132,0.5004487203550374,1.231329095150481,-3.4964748965874954,0.4438651422348816,0.19961531519172515,-0.19961531519172515],[0.25605091959754167,-0.1291903070264194,0.4083259247047215,-0.38794752715078107,-0.14723901011370702,0.25605091959754167,-0.1291903070264194,0.4083259247047215,-0.38794752715078107,-0.14723901011370702,2.9152486905383403,2.5384630311105694,1.4659506996619176,-4.048623620030777,-2.523245785082379,-0.3883809478962379,2.8609738555940263,3.4399703103796684,-6.260356234279014,0.044209889263306955,-0.044209889263306955],[-0.1976689221438321,0.6210156292127941,-0.20672624038957071,-0.2904380444698385,0.07381757779053465,-0.1976689221438321,0.6210156292127941,-0.20672624038957071,-0.2904380444698385,0.07381757779053465,1.4730427944764637,3.2700067286232057,0.9914119219222519,-4.14736046332356,6.7982951824644555,-6.804128729873788,-1.3351882659099652,-5.501424331247913,5.25534516288083,-0.11405818721035038,0.11405818721035038],[0.05133730812157475,-0.3376907464035307,0.2442285104129465,0.2939003326022492,-0.25177540472867843,0.05133730812157475,-0.3376907464035307,0.2442285104129465,0.2939003326022492,-0.25177540472867843,-1.6327777283976967,-0.440904497671293,-1.0468648831902387,1.0889375272835182,-1.53489971509974,-2.1768852589452807,4.862489180083817,0.8827243553468569,-0.0018189794255807357,0.39883185357543705,-0.39883185357543705],[-0.3866135196414479,0.2367487611395594,-0.010036178591770688,0.12820112792591892,0.03169980915902293,-0.3866135196414479,0.2367487611395594,-0.010036178591770688,0.12820112792591892,0.03169980915902293,1.573499141459192,1.482569175383087,-0.9852292044596647,-0.6096957464174189,0.3174911725385039,0.07422080128175645,-2.3496899280956853,-1.9648431857001611,2.461677774016116,0.11235577549592302,-0.11235577549592302],[0.17176383632066333,0.07729632772154402,0.19450852969143498,0.0992245350690811,-0.5427932288056431,0.17176383632066333,0.07729632772154402,0.19450852969143498,0.0992245350690811,-0.5427932288056431,0.6788160761936288,-0.4473888657235694,0.34562371082576465,0.9116631729091024,0.6242223372178339,4.561864988845142,-0.7805427606947748,0.399839190276454,-6.294097849852912,-0.809898018010731,0.809898018010731],[0.20186291781671828,-0.09653590932350249,-0.1767170929212461,0.1988127144029913,-0.12742262997956097,0.20186291781671828,-0.09653590932350249,-0.1767170929212461,0.1988127144029913,-0.12742262997956097,-3.2307218442051733,4.60929878003577,-4.627903672511928,-0.24710235608043907,1.320231189148432,-1.4214318736445688,-1.315478940035269,-4.169052137529898,9.082160854832253,0.26570724855965844,-0.26570724855965844],[0.11825484368780179,0.4208830379058974,-0.48118284897988617,-0.33226691973853284,0.2743118871228158,0.11825484368780179,0.4208830379058974,-0.48118284897988617,-0.33226691973853284,0.2743118871228158,2.4486041280232467,3.290929919317014,-2.4626619916249,-0.873659337166728,-0.5905990760603924,1.3257621580320085,-1.457464628700933,1.686982323704587,-3.3678934955276456,0.045391409472942734,-0.045391409472942734],[-0.08811098709932572,-0.18246521875580413,0.17447430903931993,-0.0016734185841650595,0.09777531540059282,-0.08811098709932572,-0.18246521875580413,0.17447430903931993,-0.0016734185841650595,0.09777531540059282,3.3891714984523214,0.5363042111254293,1.982293729697129,-2.4103812454586886,0.7957724330954696,-1.2367746439035527,-2.439393587854757,-2.275234310787631,1.6582419156407662,-0.10821669537063826,0.10821669537063826],[0.08001304907098174,-0.42966782442386375,0.37694611552452106,0.0989201630913802,-0.12621150325222463,0.08001304907098174,-0.42966782442386375,0.37694611552452106,0.0989201630913802,-0.12621150325222463,-0.32313654321960583,1.5075873737870689,-0.8312061762804379,-0.5731742258218782,0.4576486954303085,-1.7826162906275291,6.908428703256413,6.082430248555403,-11.445961785079524,-0.10320697166608783,0.10320697166608783],[-0.1653606663024127,0.5399753115752437,0.2676593494826431,-0.8625771307753908,0.22030313599262547,-0.1653606663024127,0.5399753115752437,0.2676593494826431,-0.8625771307753908,0.22030313599262547,-1.3460274389341773,-0.36750068404752795,-0.31542266192224283,1.6779770313837368,1.6559318503819191,-2.3557299303694803,0.5107913137268711,-2.0651905888570274,2.60517110864095,-0.99505368542261,0.99505368542261],[0.38784051343175185,-0.13249591919459128,0.2828156379140428,-0.4604053374802796,-0.07775489466624058,0.38784051343175185,-0.13249591919459128,0.2828156379140428,-0.4604053374802796,-0.07775489466624058,1.5981844040669297,0.008277491007174786,-2.4657523835955004,2.0939190678174873,4.596926871906355,-3.6078680887692105,2.4487416622197893,1.712506558895602,-6.384935583541719,0.3635558247776663,-0.3635558247776663],[0.05291511887199618,-0.36769062830351795,-0.04409749748174942,0.016702183663090862,0.3421708232622799,0.05291511887199618,-0.36769062830351795,-0.04409749748174942,0.016702183663090862,0.3421708232622799,-6.311313423735927,0.9812505068693459,1.7834105983786728,-2.1540281408336357,3.6732001515108275,-3.9091188567379547,0.15444548274385844,-4.438751854572073,10.220905536371358,-0.6106329644285104,0.6106329644285104],[0.20366595660229586,-0.2659077100535548,0.23318830295939152,0.07611800906491945,-0.2470645585781409,0.20366595660229586,-0.2659077100535548,0.23318830295939152,0.07611800906491945,-0.2470645585781409,-3.069273396509816,-0.39359168213307716,-2.8323245215648134,3.443596016899148,0.196284946888438,0.12679751473051898,4.207474313597697,-1.4790344996576223,-0.19992869223888143,-0.21767981319183316,0.21767981319183316],[0.017251818643310934,0.21001148024850264,-0.2060765595238535,-0.17276511603742886,0.1515783766703202,0.017251818643310934,0.21001148024850264,-0.2060765595238535,-0.17276511603742886,0.1515783766703202,5.0064862494388125,-3.0672896657087216,0.8274128399349313,2.70784149705885,-5.58257062185314,4.549599180089001,0.25967038152007227,4.007203490175043,-8.708353350653418,-0.46796467128685093,0.46796467128685093],[-0.06743174453443529,0.441155416958143,-0.06840025820890988,-0.4924305568898406,0.1871071426686966,-0.06743174453443529,0.441155416958143,-0.06840025820890988,-0.4924305568898406,0.1871071426686966,-0.5457129034709836,-5.519607499018036,4.342230388144945,0.9098437453694193,-3.637057929992187,-0.12099419938205047,5.078180613054121,2.0173728042214067,-2.5242550189276853,0.26753336551033174,-0.26753336551033174],[-0.6244926938076565,-0.1040248994335311,0.0038374223768671764,0.9757592567155768,-0.25107908584398336,-0.6244926938076565,-0.1040248994335311,0.0038374223768671764,0.9757592567155768,-0.25107908584398336,2.610858632067794,2.5063507210988907,-0.48775759567388355,-1.718682655551609,-2.4072920320078817,0.04794574076983499,0.6522304564462962,1.5576556791230307,-2.761308946269713,-0.29991046987070225,0.29991046987070225],[-0.1892556208867054,-0.16402937492969022,0.10203562467848303,-0.17120736161222216,0.4224567327551597,-0.1892556208867054,-0.16402937492969022,0.10203562467848303,-0.17120736161222216,0.4224567327551597,-0.15096405407510716,-1.1116874705896929,-0.5562306089825819,1.9427758005983213,-8.76350021347325,7.019562226263816,-3.6978861573863866,6.4190263921878845,-1.1010959145255266,-0.27485772101846806,0.27485772101846806],[-0.03865713180678619,-0.4253914094581972,0.49900839767015764,0.14178625443881135,-0.1767461108437719,-0.03865713180678619,-0.4253914094581972,0.49900839767015764,0.14178625443881135,-0.1767461108437719,2.1656895159249197,3.517465350352982,-1.076883561554664,-1.86455878122691,-3.397734535313406,4.589510244838159,-3.240618371529429,-0.05376864265879644,-0.6391012188288077,-0.5760230075721021,0.5760230075721021],[0.007505586725403329,0.9369175379298644,-0.5820490601679154,-0.10522909181330502,-0.2571449726947803,0.007505586725403329,0.9369175379298644,-0.5820490601679154,-0.10522909181330502,-0.2571449726947803,-2.556953201766192,0.0280947160853961,-2.452369935634028,3.0013380554169435,-1.3220100076289851,1.577340087794198,1.0152045388479471,0.19600566268605157,0.5133500841990466,-0.5770628358734183,0.5770628358734183],[0.3601810799299146,-0.4976632291765607,0.6166437003976917,-0.22126024216260964,-0.25790130897583324,0.3601810799299146,-0.4976632291765607,0.6166437003976917,-0.22126024216260964,-0.25790130897583324,4.114903654020939,0.8834903441944821,2.0032973217816887,-2.6857127882400507,2.7514655696614194,-4.600109422114981,-0.10289031893543443,-2.6226732180673276,0.25822885769544346,-0.20107487774296617,0.20107487774296617],[-0.03868459473887659,-0.35488307196457697,0.280899299362812,0.27145269094281277,-0.15878432359747613,-0.03868459473887659,-0.35488307196457697,0.280899299362812,0.27145269094281277,-0.15878432359747613,-1.057550644083873,-3.7687897129141845,6.346593609109208,-2.701979056714523,3.7365814581930157,-6.030181203124006,2.3443503450692504,4.5644824318140405,-3.433507227331836,0.12417516052161033,-0.12417516052161033],[0.12352509457327168,0.049345430181921,-0.17892456159862113,-0.15450752144114538,0.16056155827559368,0.12352509457327168,0.049345430181921,-0.17892456159862113,-0.15450752144114538,0.16056155827559368,-0.13038328817724798,-4.8259338781202965,5.22362505981643,-0.5513120142129276,-2.4976762047634247,3.0964302307007587,-0.9824186153638773,1.3445742402418455,-0.676905530118612,0.15362083251610958,-0.15362083251610958],[0.034293035601448627,-0.004642363615605393,-0.10284544613318501,-0.0011463694537127977,0.07434114361350724,0.034293035601448627,-0.004642363615605393,-0.10284544613318501,-0.0011463694537127977,0.07434114361350724,-0.18509737203365573,1.5883336031924424,-1.3828267497732045,0.20099041527277983,0.20194054881779272,-2.578199232455613,-2.846863143070979,-1.5377993812467365,6.539521311307649,-0.4064972686865322,0.4064972686865322],[-0.23322441556068743,0.30565405251157357,-0.1592286064755289,-0.23568950091921886,0.32248847044043155,-0.23322441556068743,0.30565405251157357,-0.1592286064755289,-0.23568950091921886,0.32248847044043155,0.7530389104047999,0.24237797335971067,-0.35046854966810503,-0.11395902389490983,-0.6902949089481388,-0.45183516210135566,0.8581062570428222,-0.15268085197695536,-0.09428464421294147,0.22204960019549483,-0.22204960019549483],[0.29655513051650906,0.5438219365462476,-0.5963380436902855,-0.05644947470660977,-0.1875895486657908,0.29655513051650906,0.5438219365462476,-0.5963380436902855,-0.05644947470660977,-0.1875895486657908,2.4559043433923513,3.4838084625346983,-4.708751856049735,0.7884218464555697,2.591541328903747,-2.3226917640472644,-4.293847845983073,-2.315852725718096,4.32146821049884,0.43652154704804735,-0.43652154704804735],[0.07842765794437825,0.261487369216434,0.0866881769704611,-0.4646956685292994,0.038092464369479426,0.07842765794437825,0.261487369216434,0.0866881769704611,-0.4646956685292994,0.038092464369479426,1.757319976215999,1.6402743306757208,-0.4033321343793455,-1.490510242716836,4.397506698914183,-5.090793594230548,4.81133195973678,-1.7777559832336334,-3.844041010975154,0.2535680464163143,-0.2535680464163143],[0.07194340200309615,-0.06450798158646731,0.3387377685803694,-0.42161694409176587,0.07544375510085037,0.07194340200309615,-0.06450798158646731,0.3387377685803694,-0.42161694409176587,0.07544375510085037,-3.969536693624893,-1.9293116773728398,0.5162151325410178,1.1413459843532223,5.001248408230053,-1.722550877006122,-2.8318725550411687,-2.3615979477959774,6.1560602257338815,0.27175056048001534,-0.27175056048001534],[-0.05930884524803662,0.1635050579213262,-0.09718462876463385,0.047707664504172256,-0.05471924841304959,-0.05930884524803662,0.1635050579213262,-0.09718462876463385,0.047707664504172256,-0.05471924841304959,2.6731772610909195,-2.080920740503934,0.6080453743359209,1.0854465557710804,-0.976994601765089,4.307022710528577,-2.2995090902177346,-2.062827669158567,-1.2534398000771587,0.38742881038388643,-0.38742881038388643],[-0.12453369157949819,0.13976713535323576,-0.08727661447276604,0.03766800467970595,0.034375166015185706,-0.12453369157949819,0.13976713535323576,-0.08727661447276604,0.03766800467970595,0.034375166015185706,-3.124118820096348,-0.2589190343876041,-2.273129656735643,2.7952858724416623,2.750470449576597,-0.5411983151240088,3.5816818862629827,-4.64205795786082,1.7119855759393612,-0.2632371813109288,0.2632371813109288],[0.14045390386486345,-0.053660639967056084,0.12617026554754557,-0.27428437372041353,0.061320844243858426,0.14045390386486345,-0.053660639967056084,0.12617026554754557,-0.27428437372041353,0.061320844243858426,-0.7206992379314441,-3.1614161479364897,5.658697932706224,-1.7192208746545314,-2.9813641077724755,3.365423077716858,-0.19048753342846814,5.9277465879521065,-6.1786796966806605,-0.7780609101233986,0.7780609101233986],[0.3428920857291821,-0.20950700638798964,-0.28932038933900966,0.42394555474860424,-0.26801024477628127,0.3428920857291821,-0.20950700638798964,-0.28932038933900966,0.42394555474860424,-0.26801024477628127,4.719943546300914,4.210613289579559,-2.88470698168007,-0.6964842691193683,2.7619304066054937,-2.7109149753156854,4.224813529290252,-2.3868982616179912,-7.238296284047866,-0.6294220387772764,0.6294220387772764],[0.11014942751430196,-0.05362701139067047,0.05665069085352525,-0.29393364920227016,0.1807605422192763,0.11014942751430196,-0.05362701139067047,0.05665069085352525,-0.29393364920227016,0.1807605422192763,1.8243453440749384,-0.8529238236819217,-0.17087987363248147,1.2694937144904546,-0.10122709732891988,-0.6341528870358817,-4.665229917141692,0.7448689676364455,2.585705572633438,-0.245690017173281,0.245690017173281],[-0.06899905496380132,-0.13950071492113442,0.0778091133583683,0.09328891166336667,0.03740174487315952,-0.06899905496380132,-0.13950071492113442,0.0778091133583683,0.09328891166336667,0.03740174487315952,1.483765093813657,-2.781693032030024,2.3261948625924704,0.9633031852607162,0.560484093928459,1.2467360164584966,2.4771210879092878,-1.971594542552518,-4.304316765399345,-0.5078050158225706,0.5078050158225706],[0.2944231240344969,-0.05603696851097664,-0.22587425058515304,0.2628490935325413,-0.2753609984647352,0.2944231240344969,-0.05603696851097664,-0.22587425058515304,0.2628490935325413,-0.2753609984647352,-1.575669777389866,0.9266449147559256,-0.0003740696891517681,-1.7693742561682253,-4.983377407028005,3.200489685920401,-3.018936037476109,5.272137692785945,1.948459254298998,0.8431034111076983,-0.8431034111076983],[-0.4011518683918794,0.5468255785162888,-0.10567511152518705,-0.2638989788541005,0.2239003802621492,-0.4011518683918794,0.5468255785162888,-0.10567511152518705,-0.2638989788541005,0.2239003802621492,-0.09082117956321761,-0.49237388792758185,3.318337963616713,-2.5202227214729858,1.9781322642437642,-5.41217670597486,2.936135555678224,1.8675555609175396,-1.5845668495052498,-0.3057413542165458,0.3057413542165458],[0.40396448945986557,-0.2707415879937862,-0.002373610678397642,0.3962394095769364,-0.5270887003613947,0.40396448945986557,-0.2707415879937862,-0.002373610678397642,0.3962394095769364,-0.5270887003613947,1.487614970943266,-2.0081013162536734,2.069199490012739,-1.2111204899346244,1.8620422959494596,-4.048910004518559,-2.432923335848427,-4.177168651909481,8.459367041567162,1.1500223161796856,-1.1500223161796856],[0.4439722555975518,0.2451924535467851,-0.559693509988719,-0.14937168927666677,0.019900490134501292,0.4439722555975518,0.2451924535467851,-0.559693509988719,-0.14937168927666677,0.019900490134501292,2.7081945296920678,-1.3144555222366407,3.371115681509158,-1.8379759076565876,-1.9081149205551395,-0.9650868078675185,-4.9212257708816916,-0.8555479698883381,5.7230966878892735,-0.2186842516275329,0.2186842516275329],[-0.3352850456817235,0.3452240684296697,-0.08488524527489945,0.12017851784519988,-0.04523229530982001,-0.3352850456817235,0.3452240684296697,-0.08488524527489945,0.12017851784519988,-0.04523229530982001,-2.2398173290542616,-1.4173597573275138,0.8049848989174011,0.8181290223239766,1.3619711685340257,0.9801090533804171,1.5649777453626807,-2.118613568275884,0.2456187661351159,-0.20575416390850965,0.20575416390850965],[-0.4839675990004316,-0.42941503903417605,0.47658619908840205,0.4550855529234147,-0.018289113956908576,-0.4839675990004316,-0.42941503903417605,0.47658619908840205,0.4550855529234147,-0.018289113956908576,-1.1836839470494844,1.7614179638421978,-1.5734343295626898,-0.2768754312861914,3.4459721272974244,-3.312005522977029,3.4347866381113588,-4.470124109209846,2.1739466108439798,0.08889179701759597,-0.08889179701759597],[0.16778705403920993,-0.42488078979253124,-0.45248379127345556,0.947525848644392,-0.23794832161234658,0.16778705403920993,-0.42488078979253124,-0.45248379127345556,0.947525848644392,-0.23794832161234658,-3.8129662135929037,-1.627845031722103,3.4004927142213877,-1.6609223045288108,4.691931103075309,-7.554093933701251,3.4100693504714146,-2.3806626785485414,5.5339969943096685,-0.11172537797369946,0.11172537797369946],[0.41975131906719265,0.12962499374722225,-0.5522007583180168,-0.05393294512082275,0.05675739062878616,0.41975131906719265,0.12962499374722225,-0.5522007583180168,-0.05393294512082275,0.05675739062878616,1.4636942511345234,-1.0570011680288747,-1.5906491153735318,2.340729409687583,-3.0433566024958245,4.597874514705163,-4.68270422299412,3.065800041446489,-1.094387108080241,0.30692087371989524,-0.30692087371989524],[0.08581273373892931,0.03155532486426778,-0.3423048660876364,0.1497194285943336,0.07521737888893615,0.08581273373892931,0.03155532486426778,-0.3423048660876364,0.1497194285943336,0.07521737888893615,3.65575623976902,1.4656171914278104,-1.6302484585083612,1.0646897396314525,-0.825275150619986,-0.29873294793376104,2.0636131251110523,-3.6397691475865193,-1.8556505912884125,-0.900058472557704,0.900058472557704],[-0.29811615304474176,-0.08453612209544259,0.5568627624249214,-0.05523947313932043,-0.11897101414386213,-0.29811615304474176,-0.08453612209544259,0.5568627624249214,-0.05523947313932043,-0.11897101414386213,1.5474390274469076,1.5632494244371387,-0.6339681929695825,-0.21063120250318612,0.7441182677323519,-2.572750338045152,4.575882925711938,1.9141718836248844,-6.92751179543247,-0.7186500289607477,0.7186500289607477],[-0.19173878693831445,0.707448020797593,-0.2281314957295497,-0.31642790165239854,0.02885016352347837,-0.19173878693831445,0.707448020797593,-0.2281314957295497,-0.31642790165239854,0.02885016352347837,-1.6549160635867817,-1.060735858571502,-0.786536576976349,1.7620195194281596,-0.9442067988953553,-4.645063467921995,0.7410225294012152,0.7207814805051561,5.867635236623532,0.08525291612286864,-0.08525291612286864],[-0.07208934598569378,-0.05723429830773624,-0.020620067980577444,0.24501610573781893,-0.09507239346895797,-0.07208934598569378,-0.05723429830773624,-0.020620067980577444,0.24501610573781893,-0.09507239346895797,0.2600902243233739,0.7006579996251656,-0.5780242705482161,-0.8379067189083189,-3.2523873905722875,3.3243266013858817,-4.233869261087887,2.0901640360582228,2.5269487797145853,0.7152729898211362,-0.7152729898211362],[-0.1943620697492348,0.11032111562658727,-0.0851592252713474,0.363109713178259,-0.19390953378094494,-0.1943620697492348,0.11032111562658727,-0.0851592252713474,0.363109713178259,-0.19390953378094494,-0.48060577517218284,1.6506445552684341,-0.5610184321898907,-1.3933915297497395,0.7948109481538443,2.200009423928622,0.8086556826950537,-3.0034889743670536,-0.015615898563322017,0.30376540667510876,-0.30376540667510876],[-0.23620306761909696,0.029239390994957565,-0.09905981855649303,0.2904083376069101,0.01561515756778313,-0.23620306761909696,0.029239390994957565,-0.09905981855649303,0.2904083376069101,0.01561515756778313,2.113843159983368,2.7525643331896275,-1.1490819457627282,-0.7417751566763631,-1.6598086331956354,1.709999708236224,-6.3234776857800306,-3.531995195864037,6.829731415868171,-0.8617072307583553,0.8617072307583553],[-0.12154890185993246,-0.1554332904144985,0.3882175936568806,-0.4308888091725048,0.3196534078080101,-0.12154890185993246,-0.1554332904144985,0.3882175936568806,-0.4308888091725048,0.3196534078080101,2.6991769833295,-2.367004899359993,2.1014634132831533,0.23272856254805657,-0.01216703881550174,1.9755962661597801,1.486185182337501,1.0798319733122672,-7.195810442796786,0.0328129235211726,-0.0328129235211726],[0.10604165810472474,0.428791135057797,-0.44381434651530566,-0.29973284147416135,0.20871439482845194,0.10604165810472474,0.428791135057797,-0.44381434651530566,-0.29973284147416135,0.20871439482845194,0.2329688150325837,0.4315344573541473,1.3416740113346428,-1.7393849292253598,-1.6296730420580334,-0.586794476782974,-0.044847906383742586,2.745097576121535,-0.750574505395202,-0.03382353946887123,0.03382353946887123],[0.09595673460852829,0.015030759798121717,-0.16969592616078205,0.22307299734670807,-0.16436456558467072,0.09595673460852829,0.015030759798121717,-0.16969592616078205,0.22307299734670807,-0.16436456558467072,0.0770075369412222,1.3277283293058937,-1.4426052091803312,0.23527730150594997,0.524405551532477,1.2748782548958089,-3.2681368752085076,1.1970562632721604,0.07438884693588443,-0.12040042162427428,0.12040042162427428],[-0.16836149773764675,-0.9386311468634808,0.4670724663170255,0.47441181678867417,0.16550836150310103,-0.16836149773764675,-0.9386311468634808,0.4670724663170255,0.47441181678867417,0.16550836150310103,-0.3110863520039244,-4.5212162023729014,4.060434596417954,0.10321824813635436,1.152264991242493,1.373171540613906,-1.5181874761396206,2.9890510965650776,-3.327650442467612,0.3575633578108085,-0.3575633578108085],[0.1855152612848032,-0.6967124847953928,0.18110902073992288,0.30249529913716283,0.027592903623301496,0.1855152612848032,-0.6967124847953928,0.18110902073992288,0.30249529913716283,0.027592903623301496,-3.683506624800338,3.872587507630391,-2.78533629366533,-1.2915344865269545,-2.3443710855133797,1.9746746324745412,2.691368226980281,5.8778612616892945,-4.311743138281979,0.2042832725648199,-0.2042832725648199],[0.02303188163297576,-0.4134578437237229,0.11357753358365814,0.1835055032854889,0.09334292522827345,0.02303188163297576,-0.4134578437237229,0.11357753358365814,0.1835055032854889,0.09334292522827345,0.6969806703399177,2.842288662508354,0.8350707288412049,-3.983451042655142,4.65584802873705,-3.8159595107542152,5.986032282829539,-2.9318512825754848,-4.28495853726915,0.3060916512988395,-0.3060916512988395],[0.19529071299119463,-0.19872765562604372,0.2522531005643016,0.05662747734747102,-0.3054436352757542,0.19529071299119463,-0.19872765562604372,0.2522531005643016,0.05662747734747102,-0.3054436352757542,2.1656622173302216,-0.3060855167096145,-0.003479468621856552,0.24378309136989507,1.715549144458385,-3.509338183002521,-2.852016220376059,-3.4211679939364528,5.967092929487742,0.0657818939697912,-0.0657818939697912],[-0.32115774012953036,0.04374674076151941,0.3525862998156257,0.0025361578850273507,-0.07771145837239869,-0.32115774012953036,0.04374674076151941,0.3525862998156257,0.0025361578850273507,-0.07771145837239869,0.15942188132821214,-4.903201345545617,2.7755314756938976,2.183719714843553,0.3385182001495439,-4.4243578031146376,3.2096590184176823,6.282280223437576,-5.62157136521605,-0.05604984499293248,0.05604984499293248],[-0.5751889197674867,0.5859246897273365,-0.1867739198454153,-0.1326624325836731,0.3087005824773999,-0.5751889197674867,0.5859246897273365,-0.1867739198454153,-0.1326624325836731,0.3087005824773999,-3.261189363278467,-5.558932111688177,3.893692670733433,2.125961921587204,-3.3916902231283697,4.733106130451152,0.9769905446902523,7.601131115945261,-7.1190706853052985,-0.4607224806133945,0.4607224806133945],[-0.41935468617612187,-0.36253126951912523,-0.18460262163990998,0.499504041442943,0.4669845359120042,-0.41935468617612187,-0.36253126951912523,-0.18460262163990998,0.499504041442943,0.4669845359120042,1.6592257676820035,-0.803370883443829,2.027591658179427,-1.252121101186318,1.8408340576095057,-2.9467240275007005,-0.4924937474609954,-2.260921590074816,2.227979866202899,0.027900326449314394,-0.027900326449314394],[0.15108102722278344,-0.5778244949686621,-0.014653593952375074,0.44388226755410115,-0.002485205859281109,0.15108102722278344,-0.5778244949686621,-0.014653593952375074,0.44388226755410115,-0.002485205859281109,-4.232261735151366,1.0730584557316365,-2.353239408778053,0.8007821261107704,-4.057640555266364,0.7050170552404367,7.40929027551047,4.378483078670861,-3.7234892920707896,0.47939882693433367,-0.47939882693433367],[-0.05656980175075205,0.36818975302966767,-0.056345800796425316,-0.41020444912293014,0.1549302986557191,-0.05656980175075205,0.36818975302966767,-0.056345800796425316,-0.41020444912293014,0.1549302986557191,3.9364221753074835,-0.8648119849144977,1.8718186160896926,-0.4566486583167384,0.8019744093918345,-2.034988304280794,-2.9739904564661486,-0.6221973923199189,0.34242159549609674,-0.5503579728653829,0.5503579728653829],[-0.330038789708298,0.352373209364379,0.00723336189332105,0.08080584685878506,-0.1103736283906061,-0.330038789708298,0.352373209364379,0.00723336189332105,0.08080584685878506,-0.1103736283906061,0.6870484437887397,0.6447402894278939,2.1037116568327052,-2.1149803370169287,6.831389082789858,-5.146963821134323,0.4770409822297239,-6.881615139647182,3.3996288427138777,-0.6334716092311719,0.6334716092311719],[-0.4269446253732713,0.44072639058974034,-0.11350322506843856,0.16016754689805182,-0.060446087035020066,-0.4269446253732713,0.44072639058974034,-0.11350322506843856,0.16016754689805182,-0.060446087035020066,-3.4889245133786178,-0.8804167020363145,-3.5505598608480766,4.0298355133870185,2.3644969133531584,-1.2777118017764255,0.6171486139978309,-0.6075187142071931,2.7936505515064396,0.40114104948835827,-0.40114104948835827],[-0.1509865058922529,-0.43599566512461957,0.04326271760390396,0.4317222726055415,0.11199718079196272,-0.1509865058922529,-0.43599566512461957,0.04326271760390396,0.4317222726055415,0.11199718079196272,1.1340915725934018,1.121354717553458,0.8340513017205777,-2.0118730106879057,-1.6033487615316095,5.7344327945013935,3.123903668728389,6.067596607375766,-14.400208890249994,0.056466991415347334,-0.056466991415347334],[0.40350309839331094,-0.27314986415938297,0.5564088472884913,-0.934268774801424,0.2475066932656011,0.40350309839331094,-0.27314986415938297,0.5564088472884913,-0.934268774801424,0.2475066932656011,-2.638889347469477,3.8938878484397685,-1.4560999507507897,-2.1759842354905157,0.8009830916569637,-3.6690214299412487,-4.21914280066662,2.8392826252912275,6.624984198931229,-0.26180366219963236,0.26180366219963236],[0.49883817073525166,-0.21783173960660424,-0.3966148017398773,0.4406112440440624,-0.3250028734289361,0.49883817073525166,-0.21783173960660424,-0.3966148017398773,0.4406112440440624,-0.3250028734289361,2.3804567462649544,0.5236875892966606,-1.6517223441680136,1.1499401192928418,-2.7163367598962305,2.646459141697693,-3.6423120958033124,-1.478832401303251,2.788660004648621,-0.021905364409540155,0.021905364409540155],[0.05317488510887282,-0.09911242669812378,0.12009829147407813,-0.13338180686353202,0.05922105696664241,0.05317488510887282,-0.09911242669812378,0.12009829147407813,-0.13338180686353202,0.05922105696664241,3.9444513275189794,0.18447125378046159,-1.476150722989283,1.3046118371340365,1.037354084875999,0.4124786687695079,-0.9969939164488759,0.258132892416312,-4.668355425049599,-0.012932367913478834,0.012932367913478834],[0.14781366404009622,-0.0704681795665664,-0.32307288001539597,0.23978123311973548,0.005946162416978304,0.14781366404009622,-0.0704681795665664,-0.32307288001539597,0.23978123311973548,0.005946162416978304,-2.569506545691227,1.374675868702477,0.3925216929827751,-1.8650587957332587,-1.670480503653021,2.2243305508636246,1.3246860744691291,4.392859435838462,-3.604027777790301,0.09786123404496286,-0.09786123404496286],[0.09165844015967481,-0.7595377083746202,0.49147316909968586,0.4562892160694869,-0.2798831169615545,0.09165844015967481,-0.7595377083746202,0.49147316909968586,0.4562892160694869,-0.2798831169615545,-2.6890741067769417,-0.6917793307332285,1.6683873229405881,-0.7871094290002317,-7.435846588850197,12.054854142912498,-3.6560153454523983,9.950855247865256,-8.414271912901842,-0.1894985632050108,0.1894985632050108],[0.4878424619252105,0.033492150431966516,-0.13820783669824593,0.05720837144857793,-0.44033514712779853,0.4878424619252105,0.033492150431966516,-0.13820783669824593,0.05720837144857793,-0.44033514712779853,-1.8296607177674344,0.44483203399390603,-0.15343378781181616,-0.5394010970026603,2.147278024571621,-2.1314291820180746,-3.5945392198247967,1.4639159798391321,4.1924379660062705,0.24800285081965956,-0.24800285081965956],[-0.02904809544622424,0.3830440624680649,-0.02613453715269609,-0.4023817576307696,0.0745203277469713,-0.02904809544622424,0.3830440624680649,-0.02613453715269609,-0.4023817576307696,0.0745203277469713,-1.454044696134702,1.2540363301535151,-2.280538804746769,1.3712621254604433,-5.926094251506728,4.014252712540507,7.882451354535227,7.80761473920208,-12.668939509521415,-0.3447596508716274,0.3447596508716274],[-0.6667834011392284,0.1510672435645067,0.6933827946475473,0.10897710917328186,-0.2866437462508749,-0.6667834011392284,0.1510672435645067,0.6933827946475473,0.10897710917328186,-0.2866437462508749,1.7944524115064235,1.5968904127920327,-2.1140020165658244,0.22767082689728252,4.128965741680991,-3.0153703587712113,-3.8183200373832555,-6.803640092960454,8.003353112806101,0.28944077687950326,-0.28944077687950326],[-0.33096069849827403,-0.07706224270590169,-0.16780824812080297,0.12950130349044642,0.4463298858288801,-0.33096069849827403,-0.07706224270590169,-0.16780824812080297,0.12950130349044642,0.4463298858288801,0.4061261562227638,0.8701163154111344,0.9915654133055216,-2.163957348083347,-1.0757878059263013,-0.9482456120780915,3.6629122524696824,2.1838336551549262,-3.9265630264651747,0.3022756193745954,-0.3022756193745954],[0.11386415130925268,-0.5760852434057928,-0.01377171044229987,-0.1141172225334826,0.5901100250827112,0.11386415130925268,-0.5760852434057928,-0.01377171044229987,-0.1141172225334826,0.5901100250827112,-2.9451161828681944,-3.8367533817555364,5.160762466643026,-1.963550675069515,1.573836212485372,1.2638173097408667,-1.9540083138027453,1.2426032782822984,1.4584092863410312,0.6395415901717264,-0.6395415901717264],[-0.1330702129055829,0.519294549652396,-0.10641367529131338,-0.2931616026935116,0.013350941224728768,-0.1330702129055829,0.519294549652396,-0.10641367529131338,-0.2931616026935116,0.013350941224728768,-0.5137712477999169,-2.9863117127359913,0.8859970466425979,3.2254804181117467,-1.0762681073479827,-0.026284633841076266,0.2839532787421043,-5.635179502252273,5.842384460477691,-1.12516575202027,1.12516575202027],[-0.02840044496331051,0.49318950740977424,-0.251411695317613,-0.4136379144448086,0.20026054733851067,-0.02840044496331051,0.49318950740977424,-0.251411695317613,-0.4136379144448086,0.20026054733851067,-2.305038672631408,-3.5685441897305528,2.686324694692,1.4717681292452032,-5.666366581254394,9.294509770053871,3.421429122174509,6.6186792983512746,-11.952761570896854,-0.5895486342082973,0.5895486342082973],[-0.16429407438427568,-0.07124949724408897,-0.5780071078169278,0.6352155536828994,0.17833512576628624,-0.16429407438427568,-0.07124949724408897,-0.5780071078169278,0.6352155536828994,0.17833512576628624,-0.035447342873712984,1.8626568452839218,-1.7547703577640854,-0.45687746196875034,-1.1977344342122245,4.620406392418102,-6.8556245111611664,4.929115818286855,-1.111724947996932,0.3489909744462444,-0.3489909744462444],[0.042688523010713415,0.3562813146718349,-0.24621466504626272,-0.17747966256275713,0.024724489930728233,0.042688523010713415,0.3562813146718349,-0.24621466504626272,-0.17747966256275713,0.024724489930728233,1.9329648976967957,-0.5277227608964274,-1.1527401648613425,1.6699372489247897,0.21434281414268952,-3.415761128597472,-2.3142582641021514,2.7121491273044,0.8810882303714518,0.010525676820049096,-0.010525676820049096],[0.1582729600236908,-0.0028932735411088383,-0.21617983386262962,0.057359712289855855,0.0034404350907344325,0.1582729600236908,-0.0028932735411088383,-0.21617983386262962,0.057359712289855855,0.0034404350907344325,-1.5429665947820248,0.40809280912382184,0.174700924939031,-1.2630056321727954,-2.4804262876378473,2.200524349425585,1.4248478903170818,3.5843021137106206,-2.506069572915133,0.6802118980997526,-0.6802118980997526],[0.26441589979986346,0.3381776245663365,0.025306739886005753,-0.26897520703102734,-0.3589250572006662,0.26441589979986346,0.3381776245663365,0.025306739886005753,-0.26897520703102734,-0.3589250572006662,-1.9223757015421967,-0.53258008037531,0.0016916959194372416,0.3758212134420351,-4.766333479508669,7.708769199520293,-3.0433841054039394,5.858424613254156,-3.6800333553067697,0.15506717101894582,-0.15506717101894582],[0.13682298365984255,0.41257523916490957,0.07958295962224737,-0.47991713019186283,-0.14906405223847627,0.13682298365984255,0.41257523916490957,0.07958295962224737,-0.47991713019186283,-0.14906405223847627,1.8665462939693067,-0.48552966959600985,3.757665625140195,-3.9564090653176223,-0.029951675993409643,0.8676143718639266,-0.5275441359993012,-0.7152069539312237,-0.777184790140014,0.6842731097591275,-0.6842731097591275],[0.07969374561948728,0.5313206807033977,-0.5335965599000145,-0.08126576115509243,0.0038478947168064936,0.07969374561948728,0.5313206807033977,-0.5335965599000145,-0.08126576115509243,0.0038478947168064936,1.1407951815038306,1.3848033628880216,-0.6188016563573115,-1.259764660212983,-2.452602147621429,-0.5534730241826491,0.12961296940822797,-0.11345210041393194,2.3428820749893546,0.49376295369068285,-0.49376295369068285],[0.3984614549544134,-0.016380583167937585,-0.21560531289119084,-0.6497383191601297,0.4832627602672677,0.3984614549544134,-0.016380583167937585,-0.21560531289119084,-0.6497383191601297,0.4832627602672677,0.01576406146067416,0.6304074888643052,-0.861255126314573,-0.3345228431729219,-1.24524427405699,-0.40476360944774065,4.432585683718957,1.7442710491738542,-3.9772424302270046,0.5653704806268021,-0.5653704806268021],[-0.23891189604412938,0.18492562433073953,-0.233738193033287,-0.2271834550926225,0.514907919834356,-0.23891189604412938,0.18492562433073953,-0.233738193033287,-0.2271834550926225,0.514907919834356,0.5202338907778177,-3.695525380275427,6.278724166223782,-2.0916341775752705,-5.3741211716268635,6.6645934985793485,-1.066733308376649,3.401213650297602,-4.636751168024624,-0.49156460836682764,0.49156460836682764],[-0.3735190877437782,0.5052386639496166,0.04223118259450561,-0.11364756616699534,-0.06030319262289369,-0.3735190877437782,0.5052386639496166,0.04223118259450561,-0.11364756616699534,-0.06030319262289369,1.415662583137412,1.7352608069061084,1.9956861334156406,-3.6852967498155094,-1.7130886621811454,3.4434727373595884,-5.956276560885874,-2.2674026798624323,5.0319823919182785,-0.04565019051170752,0.04565019051170752],[0.27559335053960604,0.23063142477752743,0.014767500603641015,-0.6547400075288707,0.13374773161457523,0.27559335053960604,0.23063142477752743,0.014767500603641015,-0.6547400075288707,0.13374773161457523,-5.198660525568375,-5.485264541643627,5.005095332955423,1.0882717723956574,1.0531053487090014,2.479938942136644,2.552609276313301,2.97747066661284,-4.472566271915461,-0.6081025637024089,0.6081025637024089],[0.06908358583048299,-0.5093362849824447,0.4099826727262362,-0.28324487123920783,0.3135148976394148,0.06908358583048299,-0.5093362849824447,0.4099826727262362,-0.28324487123920783,0.3135148976394148,-1.1368633829342059,-1.5161028516568908,0.11079793124396875,1.0009683963998355,3.2092138094353655,-5.994955401386856,-1.8423138223880056,0.41337971162257847,5.755875609667793,0.4043365240133473,-0.4043365240133473],[0.3615067973957046,0.009710188563242628,0.24013494038151295,-0.704140030041593,0.09278810371222748,0.3615067973957046,0.009710188563242628,0.24013494038151295,-0.704140030041593,0.09278810371222748,0.6657997771320812,-1.5568946905644654,-1.0577905369244454,1.5304546479959222,0.40191060907303433,-1.2864899358216486,3.506735771684971,2.6574750383709085,-4.861200680949356,1.0842305795001272,-1.0842305795001272],[-0.05676592460284996,-0.015458874656955834,-0.33232893549907516,0.36885136886791237,0.035702365896624705,-0.05676592460284996,-0.015458874656955834,-0.33232893549907516,0.36885136886791237,0.035702365896624705,-1.243857258795523,2.9446640718944477,-0.9184982716921855,-2.160890668968271,-5.136756697917068,6.528209374559371,-4.143204810224049,2.759922083799814,1.3704121773402884,0.1347248687626883,-0.1347248687626883],[0.3906158063125663,0.3912593442723056,0.0776619271325275,-0.6130792426211912,-0.24645783508852695,0.3906158063125663,0.3912593442723056,0.0776619271325275,-0.6130792426211912,-0.24645783508852695,-1.494976736429434,2.4134125428797066,0.6881917487231175,-2.475086125159182,2.3738861721104696,0.23912890763266664,-1.678210234058052,-1.4718357015187484,1.4054894258129624,-0.6265181664474407,0.6265181664474407],[-0.013366795101617108,0.36468061194586143,-0.2942309858057599,0.3525862424878369,-0.4096690735486191,-0.013366795101617108,0.36468061194586143,-0.2942309858057599,0.3525862424878369,-0.4096690735486191,-0.24393967709452902,-0.39327795264777393,-0.3431698635295424,-0.18205942328944857,2.0731001934425475,-1.5568207584650555,3.8146557369092813,0.23089271743438933,-3.399380972759189,0.9185072394739835,-0.9185072394739835],[-0.01867833333969693,0.009822116669225611,-0.024630720227728095,0.3212669313471047,-0.2877799944460717,-0.01867833333969693,0.009822116669225611,-0.024630720227728095,0.3212669313471047,-0.2877799944460717,-1.1127176345373797,2.0863350875525337,-2.2734737379944856,0.5921569135252382,0.12785648452270681,1.1982502528757217,3.0749664261383485,2.0129186655103397,-5.706292457577692,-0.4050182630833299,0.4050182630833299],[-0.22548067411843734,0.5912976052533505,0.1490032822987672,-0.16768535272382523,-0.34713486070542077,-0.22548067411843734,0.5912976052533505,0.1490032822987672,-0.16768535272382523,-0.34713486070542077,0.16855237432160702,-0.4832533538895439,0.5330377260791077,0.16593586528766258,-2.0898046738085982,5.329518811461906,2.6191646224818372,-0.8029482074890057,-5.440203164446382,-0.21572023747245472,0.21572023747245472],[-0.004242677538829957,0.061213370052565746,-0.06515179432140197,-0.027274790273789457,0.03545589208780206,-0.004242677538829957,0.061213370052565746,-0.06515179432140197,-0.027274790273789457,0.03545589208780206,1.4643021116510093,-2.2838122390073434,0.15445148746313997,2.2733173292107267,-4.665777827409568,7.950629768302701,-4.6898100715959,-0.022244926339411997,-0.18105563229540855,-0.1439565776710996,0.1439565776710996],[0.09060305268955898,0.014831307736683147,0.037851050147810254,0.13218160302464732,-0.2754670135975225,0.09060305268955898,0.014831307736683147,0.037851050147810254,0.13218160302464732,-0.2754670135975225,-2.342003464674894,1.9880820417949103,-0.6113483995769063,-0.5006811940668616,-2.1921911317538587,3.3853349376147337,0.7260624514898676,-1.023426605139444,0.570171364328429,-0.8760524481565064,0.8760524481565064],[0.05472220635539016,0.18101294785055133,0.19092927746858748,-0.13142795113980313,-0.29523648050545803,0.05472220635539016,0.18101294785055133,0.19092927746858748,-0.13142795113980313,-0.29523648050545803,-0.20381146663889724,1.1340383235100577,-0.9740376880245052,0.1903058788883376,2.6326773478755725,-5.0931066549905175,-2.5486093277843924,-5.11439234059989,9.976935927767904,-0.35030651438506477,0.35030651438506477],[-0.06892532531472675,-0.016948736730657443,-0.32661777192849784,0.5718219422859668,-0.15933010830277816,-0.06892532531472675,-0.016948736730657443,-0.32661777192849784,0.5718219422859668,-0.15933010830277816,1.2756005147930212,0.20060801344200274,-0.26611823470437956,-0.35452107380126036,5.714799301952926,-5.653915372278123,1.09627764748666,-3.174639498543174,1.1619087016660141,0.42003129507140435,-0.42003129507140435],[-0.2765847301477533,-0.30395858499225353,0.08220981919455564,0.30143832599167836,0.19689516996802242,-0.2765847301477533,-0.30395858499225353,0.08220981919455564,0.30143832599167836,0.19689516996802242,0.18904836026190347,2.842768870534084,3.5323154421575094,-6.052690092263367,0.5646655148760574,-2.323695321375271,2.058202849392183,-0.43240865949475055,-0.37820696409357124,-0.3223942204443363,0.3223942204443363],[-0.04891824705777254,-0.20342675190297613,-0.1536202908079015,0.08663816911700087,0.31932712065251917,-0.04891824705777254,-0.20342675190297613,-0.1536202908079015,0.08663816911700087,0.31932712065251917,-3.1265167184744356,-4.572756105305027,-0.5394574315182051,5.404165750962049,-0.13686668263276652,0.7747524289567224,-0.21351446720136513,3.5187586403982927,-1.108565415182905,-0.29195221414866646,0.29195221414866646],[-0.18111333498647214,0.03857556300645393,-0.1887472718556374,0.7054952801418103,-0.3742102363342614,-0.18111333498647214,0.03857556300645393,-0.1887472718556374,0.7054952801418103,-0.3742102363342614,0.430165942064477,-3.3028477171945743,0.4157910017558457,2.463514156843128,3.427331720055348,-6.345249180798797,-1.4444192578225243,1.1100515057821192,3.245661829323751,0.4235425586010544,-0.4235425586010544],[-0.06227377178816497,-0.41867304025845825,-0.42855399810479555,0.8007429286033549,0.10875788155291752,-0.06227377178816497,-0.41867304025845825,-0.42855399810479555,0.8007429286033549,0.10875788155291752,1.0376499543149482,-0.9170889364628922,-0.3557249213968666,1.666833518819881,-1.341093810997585,2.166528577514387,-4.28057997755525,0.9561863940358486,1.0672892017258069,-0.3940196609708592,0.3940196609708592],[-0.6073636080387419,-0.014236890547239589,-0.13058887491986867,0.3270603060639049,0.42512906744837065,-0.6073636080387419,-0.014236890547239589,-0.13058887491986867,0.3270603060639049,0.42512906744837065,0.7131846950083447,1.9356568061646489,-2.527528111041971,1.0829749070870474,-5.006965697614429,7.320372354142132,-3.6879379732872084,-1.268547685062694,1.4387907046093762,-0.49110360220094706,0.49110360220094706],[0.2655839099636526,-0.2312391566195739,0.053622358523375796,0.06706854741092005,-0.15503565928737528,0.2655839099636526,-0.2312391566195739,0.053622358523375796,0.06706854741092005,-0.15503565928737528,1.6151810569735385,-1.077844267781449,0.8858206617471696,-0.29758191645116444,0.6446831148064835,-2.1817253309419833,-3.501802797514303,3.6265408760636184,0.28672860309127035,0.4896055224785528,-0.4896055224785528],[-0.17159292825730457,-0.043451669144814575,0.2562535435787495,0.36240295932169686,-0.4036119055085903,-0.17159292825730457,-0.043451669144814575,0.2562535435787495,0.36240295932169686,-0.4036119055085903,-0.6459651672702758,0.7335965760544672,1.202963919624992,-1.8314332118058414,1.7555224396424447,-4.086081182114861,-5.127829670924646,-2.623181584751456,10.622407881549847,-0.10512728388141357,0.10512728388141357],[0.26865244568940616,0.10110349774031085,0.05980632111632142,0.022011854644008774,-0.4515741191889182,0.26865244568940616,0.10110349774031085,0.05980632111632142,0.022011854644008774,-0.4515741191889182,2.255199645041556,5.927223531629712,-3.4650540878812994,-2.771533836641578,-0.46009746729906775,-3.013172403705314,0.30628507385422177,1.6122189037037535,-0.3910693586882883,0.30936439289312384,-0.30936439289312384],[0.45853652134733225,-0.6278909297356045,-0.35646875090489005,0.28681009171556304,0.23901306757954902,0.45853652134733225,-0.6278909297356045,-0.35646875090489005,0.28681009171556304,0.23901306757954902,-4.35825837626865,-0.7655724982286595,-0.04623689829080021,0.11192495591432183,6.415904959859169,-7.9768911741459165,-0.1990590434499544,-2.2878142116970297,9.10600228632008,0.699884440608251,-0.699884440608251],[-0.02170134080137867,0.4604646790521807,0.48943135942062865,-0.6715038997629119,-0.2566907979134876,-0.02170134080137867,0.4604646790521807,0.48943135942062865,-0.6715038997629119,-0.2566907979134876,-0.7362863507157833,-0.6476637795380342,0.8770623558603503,-0.8701608565190686,-1.0749528037088214,2.40694065853629,-0.4349087893797151,1.7185312119227585,-1.2385616464565699,0.6407622801961831,-0.6407622801961831],[-0.03540974918934497,-0.22600791752756716,0.20116934292357253,0.3620674466795433,-0.3018191228980991,-0.03540974918934497,-0.22600791752756716,0.20116934292357253,0.3620674466795433,-0.3018191228980991,-3.1755171405290654,1.9288050156375145,-0.8272978168026405,0.06893931348305227,3.6957422866792,-3.8004093780794523,1.0088392054816067,-2.004423889682784,3.1053224038130507,-1.1704465123092587,1.1704465123092587],[-0.13337940577505492,0.1970885788598882,0.15648688493224525,-0.3346068786462489,0.11441082064286082,-0.13337940577505492,0.1970885788598882,0.15648688493224525,-0.3346068786462489,0.11441082064286082,-0.5463395906100628,1.4484207346673281,-2.0722153018419394,0.42398412292218157,0.04788918541511422,-3.0105100194202925,-4.105858921350425,0.2173679792077785,7.59726181102492,0.19981044425990158,-0.19981044425990158],[-0.32381605789793455,0.18932018947974064,-0.47860022580047845,-0.130741035434489,0.743837129660721,-0.32381605789793455,0.18932018947974064,-0.47860022580047845,-0.130741035434489,0.743837129660721,2.6158665503001335,0.46026376833834165,0.5601433254986186,-1.0238653972334268,1.5451034591062198,-1.2801337429658028,0.5694693650475869,-1.797441110746583,-1.6494062173522308,0.003458303383132383,-0.003458303383132383],[0.014592854086255436,-0.22860771358489307,-0.15327109905534614,0.1018874937332736,0.2653984648126737,0.014592854086255436,-0.22860771358489307,-0.15327109905534614,0.1018874937332736,0.2653984648126737,-5.378011651189723,4.190822701599491,-2.474934948965541,-1.3827923588781157,2.2136654088246837,0.06049790545213851,1.9466603042076045,-1.150830678889988,1.9749233178328438,-0.33309539375929065,0.33309539375929065],[-0.13937056821995755,-0.09822728427881268,-0.16497806978627488,-0.20633085813423213,0.6089067804094042,-0.13937056821995755,-0.09822728427881268,-0.16497806978627488,-0.20633085813423213,0.6089067804094042,1.1976968794876646,-0.42729862153200115,-0.5938257660718076,1.2170559430460062,-8.219746335709225,11.149523079675415,2.3264692442963755,3.6323659469580765,-10.282240370146955,-0.19593155544088917,0.19593155544088917],[-0.22690921985088253,-0.5942897596192153,0.37421047690274567,0.2162663163513278,0.23072218624691354,-0.22690921985088253,-0.5942897596192153,0.37421047690274567,0.2162663163513278,0.23072218624691354,2.4637833282736343,-0.802956632930447,0.6262590447972316,-0.7398358875915922,2.0671333566044527,1.0290576703626897,1.476797024847369,0.5247023947255536,-6.644940299090015,0.916533475725773,-0.916533475725773],[0.2349262220235413,0.5568695944536562,-0.16857518437496988,-0.6796623939036707,0.05644176179739105,0.2349262220235413,0.5568695944536562,-0.16857518437496988,-0.6796623939036707,0.05644176179739105,1.6951408603626295,-1.851110275793237,-0.6396471316828028,1.9127269637731243,-1.6878620927301013,0.974155213436028,1.1444114982668188,1.3929727357974953,-2.940787771450287,0.5780304437149131,-0.5780304437149131],[0.08276077966069433,0.15739816236642865,-0.2760525184310461,0.17242092720521413,-0.13652735080341954,0.08276077966069433,0.15739816236642865,-0.2760525184310461,0.17242092720521413,-0.13652735080341954,-1.8144727817859976,0.7113298410321652,-3.416847040351954,1.772326260948022,2.6898838462945056,-7.392514711772445,4.604418668957434,0.8951106034380631,1.9507653132517104,0.9331909383702959,-0.9331909383702959],[0.8476640097727495,0.0017594868883129555,0.38230378991638253,-1.0205305788017973,-0.21119670777629151,0.8476640097727495,0.0017594868883129555,0.38230378991638253,-1.0205305788017973,-0.21119670777629151,0.649502855213107,-2.161425730559601,-0.8485711790121018,1.653724837040517,-1.2175705129043646,-2.269103270351,0.101506655212249,5.607517450661412,-1.515581105307925,1.356272072528319,-1.356272072528319],[-0.09978683914474548,0.32785660116095533,-0.05948007065016693,-0.1704486022356757,0.0018589108744507393,-0.09978683914474548,0.32785660116095533,-0.05948007065016693,-0.1704486022356757,0.0018589108744507393,1.015043864140555,-2.2421062534711655,1.1934927565369033,0.9877923321609279,-2.424894152763878,-0.5554312206939727,-1.639155553437925,4.043570354319959,-0.37831212679098136,0.060821164785699926,-0.060821164785699926],[0.0038938888656599863,-0.770340165693918,-0.2859559399894881,1.2760928201852786,-0.22369060337291943,0.0038938888656599863,-0.770340165693918,-0.2859559399894881,1.2760928201852786,-0.22369060337291943,-1.975079933986796,3.5074861275360787,-1.2324599960865885,-1.807089419564307,5.1730373931243285,-7.217322772139657,2.3042505630530825,-0.1937686629697668,1.4409467010430097,-0.4679367118556846,0.4679367118556846],[-0.09710727061937718,-0.26719099775591193,0.44529102282873345,-0.06583892900905622,-0.01515382545847102,-0.09710727061937718,-0.26719099775591193,0.44529102282873345,-0.06583892900905622,-0.01515382545847102,1.106773992221709,4.702766753412045,-3.2442180294963694,-1.7153306088185425,4.860121936369844,-3.3212146736203882,1.8430360809619273,-4.774820093244283,0.542884642225371,0.25678188489692855,-0.25678188489692855],[-0.2530733437667741,-0.25384459401606485,0.3431619111853306,0.116732916543805,0.04702311004685915,-0.2530733437667741,-0.25384459401606485,0.3431619111853306,0.116732916543805,0.04702311004685915,1.834847534257121,4.387312453308334,-0.5790860485180276,-2.993370932726415,-1.4354299344651769,3.263605745725223,-0.8245336757890417,0.7779116676063175,-4.431256809411229,-0.8148554720637501,0.8148554720637501],[0.055350727272557715,-0.1707587637288888,0.6150378725404567,0.0469266458196337,-0.5465564818961658,0.055350727272557715,-0.1707587637288888,0.6150378725404567,0.0469266458196337,-0.5465564818961658,-3.1206123655677276,1.8519094037237736,0.6056004989041818,-0.9276031637512565,-2.5519693040906843,3.1527970801897967,3.117323904936246,-0.004181270483951671,-2.1232647838614565,-1.5299067388746659,1.5299067388746659],[0.07444537891059108,1.1717243959328187,-0.5735587598283147,-0.9309427478573242,0.2583317328475176,0.07444537891059108,1.1717243959328187,-0.5735587598283147,-0.9309427478573242,0.2583317328475176,1.9941628927287873,1.767795621153483,1.6639670711600312,-2.526568194236832,-4.981429791398032,6.912878335585256,-3.2382175653175715,7.009457977033059,-8.602046346686205,-0.9051944980610327,0.9051944980610327],[0.08846196625117296,-0.08032668653158195,0.6123297872421802,-0.8466199611864034,0.22615489424108787,0.08846196625117296,-0.08032668653158195,0.6123297872421802,-0.8466199611864034,0.22615489424108787,3.061822837068784,0.6821029404741319,0.7214976748327142,-1.4359335237193975,-1.6586470017977566,0.015338800930594365,1.1927425075568172,0.5632154788862334,-3.1421397142338376,0.03233290841724723,-0.03233290841724723],[0.30728359072742284,-0.002699245039740353,-0.3421120169843118,-0.04970319668272355,0.08723086795256862,0.30728359072742284,-0.002699245039740353,-0.3421120169843118,-0.04970319668272355,0.08723086795256862,1.479353109729636,-0.4198277528259797,1.4208778063568872,-1.4823055561999074,0.049510087540359404,-0.022521374154609308,-2.683281081372734,0.6783589351428346,0.9798358258044766,0.4812555026881042,-0.4812555026881042],[-0.10551091224243003,0.17676276798190194,-0.04941014386763061,0.14847430372688694,-0.17031601558875836,-0.10551091224243003,0.17676276798190194,-0.04941014386763061,0.14847430372688694,-0.17031601558875836,2.4877874226415386,-1.0134835802418596,2.3169039176958295,-0.8522910851804906,-0.9453950280731296,3.5142710564719284,4.608208832463211,2.2303990636379494,-12.346400599422847,-0.45112925228328954,0.45112925228328954],[-0.3481568918969407,0.41492124074242204,-0.04748367579255806,-0.10497913327918673,0.08569846021658409,-0.3481568918969407,0.41492124074242204,-0.04748367579255806,-0.10497913327918673,0.08569846021658409,0.6203592162426782,-5.721189593709561,3.0321184442158544,2.39042706869016,-6.277084839872538,5.707253512675329,-1.5526311581790588,5.773539167480203,-3.9727918175488632,0.29864408080123017,-0.29864408080123017],[-0.6125702808963778,0.0527377283422171,0.08960206616697533,-0.0515212967919077,0.5217517831715093,-0.6125702808963778,0.0527377283422171,0.08960206616697533,-0.0515212967919077,0.5217517831715093,3.6304398919376197,-0.5825595445307806,0.250948220922937,0.6443921247821855,-2.3154066571556564,1.0151484068504188,-2.2729674209230564,-1.448286632446161,1.0782916105546927,-0.31278080118038754,0.31278080118038754],[-0.14423124861568462,-0.23875686727686202,0.367862021981958,0.05702243399638715,-0.04189634008779877,-0.14423124861568462,-0.23875686727686202,0.367862021981958,0.05702243399638715,-0.04189634008779877,3.5400967520435627,-1.4707098577834885,-2.0811221793945416,3.4721746160769857,-5.938472060424541,4.271600096481073,-3.5650297559668704,1.5853543350875332,0.18610805388432813,0.07965742110536571,-0.07965742110536571],[-0.24312512764433525,0.14725255079986038,-0.062081977883427855,0.14117798421424196,0.016776570496238263,-0.24312512764433525,0.14725255079986038,-0.062081977883427855,0.14117798421424196,0.016776570496238263,-1.1721715474973098,-0.8995055821593531,-0.6098184630157856,0.8405406152694428,-2.6400246212773246,4.016604308965739,-1.0007012633285814,-0.36136495248951284,1.8264415055174537,0.6687834298993623,-0.6687834298993623],[-0.20203672490518232,0.354181922248342,-0.5465511375699822,0.42976143873344574,-0.035355498509673206,-0.20203672490518232,0.354181922248342,-0.5465511375699822,0.42976143873344574,-0.035355498509673206,0.7562401037099489,0.30553283195167946,-1.8379046222899587,1.4750523701481675,-3.1077270641488135,3.9225543763468567,-1.7939918819025495,1.7984812476132552,-1.518237361428403,0.05731942018355653,-0.05731942018355653],[-0.1179759854893275,-0.4728190199557257,0.36586451144285465,0.2895287068151573,-0.06459821280407556,-0.1179759854893275,-0.4728190199557257,0.36586451144285465,0.2895287068151573,-0.06459821280407556,3.5908150648416717,-3.769242900143372,0.8086366452961413,2.7289728697179605,0.9875311575692027,-1.2391852134687982,0.5833942279743456,-2.333694185071054,-1.3572276667219816,0.23163338511801898,-0.23163338511801898],[0.12744638069247377,0.1756698663486748,0.4490679767219445,-0.7252768295784702,-0.026907394184980067,0.12744638069247377,0.1756698663486748,0.4490679767219445,-0.7252768295784702,-0.026907394184980067,0.769459172150506,-2.6586399378668197,1.5417422789959443,1.5728966527818007,3.442333069576938,-2.096511857134307,-3.646140646075743,-3.825642787885173,4.900504055476775,-0.4559989938993745,0.4559989938993745],[-0.34947317820341156,0.45173880346342926,-0.40715951367769776,0.37980161714543414,-0.07490772874514416,-0.34947317820341156,0.45173880346342926,-0.40715951367769776,0.37980161714543414,-0.07490772874514416,-2.1390168903623126,-0.8071739207629482,0.34169151630516703,0.5832419192055258,-0.338513694354613,2.2989128876422273,-3.414861296005529,-2.4803269812436795,5.956046459580341,-0.11775951475191715,0.11775951475191715],[0.49889037851206663,-0.09817248593311487,-0.5808508590481771,0.22814469144798905,-0.048011724964203625,0.49889037851206663,-0.09817248593311487,-0.5808508590481771,0.22814469144798905,-0.048011724964203625,-2.0974473810097956,3.8777816899321493,-1.8986750215788701,-2.450632697737449,1.0429898325638713,-3.9625041936027676,2.5893206643232705,5.621720980254285,-2.7225538731496375,0.4715260293844101,-0.4715260293844101],[-0.01607945307692433,0.11457394969362501,-0.3073619384347602,0.3930834571549987,-0.18421601532622917,-0.01607945307692433,0.11457394969362501,-0.3073619384347602,0.3930834571549987,-0.18421601532622917,0.9904816336219684,3.8063416499476266,-5.232088923318241,1.1156945218497822,1.250720836091184,0.7433400180026326,-2.357002149894103,0.6298313472598802,-0.9473189335538732,0.3100527515225374,-0.3100527515225374],[-0.08850019654141475,-0.29549510573045473,-0.22376810418023654,0.5436826085945922,0.06408079789996135,-0.08850019654141475,-0.29549510573045473,-0.22376810418023654,0.5436826085945922,0.06408079789996135,-1.0115967272798696,-2.7321390330676625,1.7269985643370753,1.6754309194435735,-2.7951562514287085,5.419218908316291,-2.741523592142414,-0.5459282669561083,1.0046954787792406,-0.6702904507043844,0.6702904507043844],[0.23380283100117266,0.6413984358789786,-0.3991634415843433,-0.7744671165053694,0.29842929121505074,0.23380283100117266,0.6413984358789786,-0.3991634415843433,-0.7744671165053694,0.29842929121505074,2.035683808850499,-0.6637525322956126,-2.8415974502601595,3.6540409091812887,0.7045297802379367,-3.7590853005576346,2.3613138440701413,1.3417959563413362,-2.8329290155563696,-0.14869092662739736,0.14869092662739736],[0.01706918411678887,-0.21808268887121263,0.19930250611108385,-0.2665699995232849,0.26828099818554685,0.01706918411678887,-0.21808268887121263,0.19930250611108385,-0.2665699995232849,0.26828099818554685,2.0197615991429867,1.0070808773447655,-1.8205774705369513,1.310450355226993,-0.693130771471981,0.043301510612617555,3.1588632723694676,-2.0632271434746285,-2.9625222292005025,-0.4969537620325998,0.4969537620325998],[-0.1431970415399081,0.10473439813591429,0.33879343560209807,-0.25117325601251395,-0.04915753618753939,-0.1431970415399081,0.10473439813591429,0.33879343560209807,-0.25117325601251395,-0.04915753618753939,-1.0633443469023525,1.7994258802931113,-1.3329733266493635,0.042868254278402455,-2.1606044945236547,5.941499872561379,-0.05264712068634325,-2.6089049145290417,-0.5653198038368328,-0.5093208079093633,0.5093208079093633],[0.14324838722940686,0.2164745471448538,-0.5684361997239049,-0.20068137040077338,0.40939463575776913,0.14324838722940686,0.2164745471448538,-0.5684361997239049,-0.20068137040077338,0.40939463575776913,-0.023674597034630568,3.818019602751195,-6.202614402999881,1.969452046843489,0.18449001899932982,-0.8126410630803615,-1.3502474349858118,-3.334213638543641,5.751429468046432,0.4151427534056953,-0.4151427534056953],[0.20669199392261683,-0.7190285790423641,0.15273017068294842,0.2543628707845266,0.10524354366935924,0.20669199392261683,-0.7190285790423641,0.15273017068294842,0.2543628707845266,0.10524354366935924,3.0013448052495857,4.683995332835377,-4.422515151782647,0.1864565252347678,0.7822375417626853,-1.6226272006737001,3.5422238555516032,1.744230828487055,-7.895346536663837,-0.44793670629243,0.44793670629243],[-0.17840999986339443,-0.35265617698941776,-0.06436434329743906,0.26915805448369995,0.32627246566746027,-0.17840999986339443,-0.35265617698941776,-0.06436434329743906,0.26915805448369995,0.32627246566746027,0.7448386553269317,2.023415111019402,0.8859801394623268,-3.3011564595334257,-1.1734944959551854,4.290362221324429,-1.3361264342286368,2.680793299214347,-4.814612036628321,0.39176120904898515,-0.39176120904898515],[0.07353672210782719,-0.2529371432249928,-0.18071043697876196,-0.07186450203869156,0.43197536015040416,0.07353672210782719,-0.2529371432249928,-0.18071043697876196,-0.07186450203869156,0.43197536015040416,-1.3627071968048283,-0.5587157583909228,2.0224634561931785,-1.6656120831794554,1.4149982957537317,3.019084282424279,5.724953501719443,0.840774447424649,-9.435238945141444,0.20186438537670273,-0.20186438537670273],[0.4629933229044784,-0.4010118032338214,-0.13990513023203305,0.2473934533986865,-0.16946984282592945,0.4629933229044784,-0.4010118032338214,-0.13990513023203305,0.2473934533986865,-0.16946984282592945,-5.49604881492068,3.0772707003778,-2.183775015672003,-1.003109918795378,4.038213954144065,-5.424319724726535,4.885215892421095,-1.5418904028692304,3.6484433300438006,0.1096142340724891,-0.1096142340724891],[0.09538826184847857,-0.682531681353574,0.27400636097260234,0.46146670929312206,-0.14832965074011092,0.09538826184847857,-0.682531681353574,0.27400636097260234,0.46146670929312206,-0.14832965074011092,0.5803014969982554,1.6199788124326042,1.1638654681486522,-2.9781848764289123,0.5740422788213817,0.22169931981944924,2.893045405163442,0.05343441661424497,-4.128182321574906,0.19434059584315122,-0.19434059584315122],[-0.19492650654306642,0.33959816158745354,-0.11087868045822086,-0.037050035912369925,0.003257061332242961,-0.19492650654306642,0.33959816158745354,-0.11087868045822086,-0.037050035912369925,0.003257061332242961,0.29271536724925623,-1.5188624938898596,0.8930625234254088,0.39623110170214926,-4.7656525112744035,1.3147324670278138,4.1243158435875396,4.178329425325702,-4.914871723137489,0.22956886876515645,-0.22956886876515645],[0.026947083569034247,-0.4537276758190574,0.1871900780801758,0.17332298335624027,0.06626753080524923,0.026947083569034247,-0.4537276758190574,0.1871900780801758,0.17332298335624027,0.06626753080524923,-0.8557456295411381,1.6929894083915007,-0.36254508172026234,-1.2502628776766986,-2.805323680505545,5.200935235314263,-1.9277572866203685,-4.333207191162887,4.640917103521815,-0.08018144898725663,0.08018144898725663],[0.5767625214368999,-0.5904267357493573,-0.18524880426274756,0.022032316975335975,0.17688070161128452,0.5767625214368999,-0.5904267357493573,-0.18524880426274756,0.022032316975335975,0.17688070161128452,-0.731108500902337,1.1024574898564619,-1.47637257447197,-0.535127439025342,0.6297779711818425,-5.827246377549846,2.8369497527925462,2.910018518694492,1.090651159435951,0.9090425236430786,-0.9090425236430786],[0.4184154542735994,-0.3804772060923613,-0.24940644746960466,0.17913868232466806,0.03232951694013807,0.4184154542735994,-0.3804772060923613,-0.24940644746960466,0.17913868232466806,0.03232951694013807,0.642218732814916,0.5298594959960595,2.4764833523329384,-2.661109833224468,0.31017694837786297,2.227631106711039,-0.34202283886755364,2.785071287970844,-5.968308252107724,-0.3452330151051502,0.3452330151051502],[-0.18008738366747146,-0.03038066160168478,0.2284265692064818,-0.0897959580294018,0.07183743410058253,-0.18008738366747146,-0.03038066160168478,0.2284265692064818,-0.0897959580294018,0.07183743410058253,0.5626196766801517,0.7263581793656925,-3.176011335938073,2.4549852872893174,-1.6745667004231133,1.1354146683853,1.9729395149189406,-2.8771352650609643,0.8753959747781268,-0.005332130711921332,0.005332130711921332],[-0.3564781901356885,-0.07998895564697417,0.09022422741481351,0.0972230112193559,0.24901990716338174,-0.3564781901356885,-0.07998895564697417,0.09022422741481351,0.0972230112193559,0.24901990716338174,0.47433344289404156,3.244030894681316,-0.49037535822417966,-2.2277830870379898,-0.4237256056964054,4.72376568617492,-0.22473074456805642,-1.3984856488135076,-3.6770295794163,-0.5258724494144056,0.5258724494144056],[-0.15953514499682211,0.39312673787184294,0.05856587186064674,-0.14941641935201316,-0.1427410453876053,-0.15953514499682211,0.39312673787184294,0.05856587186064674,-0.14941641935201316,-0.1427410453876053,0.9167446092204357,2.1083969526082442,-0.6300212103048176,-1.3807739087018254,-1.6166432320029243,-0.6220669567981092,-0.2200796906733129,1.6745015438128519,-0.23005810715082994,-0.09760183359084051,0.09760183359084051],[-0.1631332708703192,-0.19932286850955622,0.5146276663623486,0.125323070875594,-0.2774945978652755,-0.1631332708703192,-0.19932286850955622,0.5146276663623486,0.125323070875594,-0.2774945978652755,-4.2677246273439,-1.1039050813131261,1.0386760023669344,0.08081947406330636,1.6661438376732276,0.24352780791817175,-4.708450199229841,1.4981089205673528,5.552803865307639,-0.015590395118894318,0.015590395118894318],[0.055728932847919056,-0.3460614676050361,-0.06367954072588505,0.1142471385587577,0.23976493691927095,0.055728932847919056,-0.3460614676050361,-0.06367954072588505,0.1142471385587577,0.23976493691927095,-2.369036945878734,2.6105156248944215,-1.8469251354629486,-0.5199379949488011,0.9114863460391898,-1.7147261706874328,0.05148648955642715,3.122148197772238,-0.24501041129148282,-0.24365249447573537,0.24365249447573537],[-0.04460588873115578,0.10770477962844793,0.10222227781541844,-0.10151495432833157,-0.06380621436506212,-0.04460588873115578,0.10770477962844793,0.10222227781541844,-0.10151495432833157,-0.06380621436506212,-3.1999839789677624,1.279959253668264,0.8394484771881454,-2.1051454747779954,3.0214679930943196,-3.875221551505088,-3.0594357053728753,-1.8625994355028832,8.961510422182059,-0.014262256083691513,0.014262256083691513],[0.24235092075290784,-0.29725983893787655,-0.07282436473117507,0.22970918624583117,-0.1019759033299351,0.24235092075290784,-0.29725983893787655,-0.07282436473117507,0.22970918624583117,-0.1019759033299351,-0.014323886074987802,-0.8499537101143084,-0.10766534764326363,1.0171785275355851,-1.4422549522999368,1.7586446502728326,-3.3924843079157707,-0.7423022069828262,3.7731612332196107,-0.059559469784331735,0.059559469784331735],[0.2403442129368774,-0.8075770582957131,-0.15940835904096815,0.3832897310995382,0.34335147328510707,0.2403442129368774,-0.8075770582957131,-0.15940835904096815,0.3832897310995382,0.34335147328510707,-1.8519265847152147,1.4147907351203108,-0.28880635477927497,-0.8298805901457765,-3.943442976378794,1.3901672862310481,4.20772462707057,4.707437243963118,-4.806063386373556,-0.29610379019975464,0.29610379019975464],[-0.24619222087153286,0.4870403816334521,-0.4523822077737502,-0.0598451931436642,0.2713792401527174,-0.24619222087153286,0.4870403816334521,-0.4523822077737502,-0.0598451931436642,0.2713792401527174,-0.524876527988956,0.552492643952395,-0.7559603311826697,0.041495218769793896,1.7206329623399745,2.0702434184525527,-2.2443907534013414,-3.952881095369425,3.093244464417495,0.16197246846162416,-0.16197246846162416],[0.0796177311987967,-0.06518425762687918,-0.14346491156906763,0.17455654289784472,-0.0455251049017011,0.0796177311987967,-0.06518425762687918,-0.14346491156906763,0.17455654289784472,-0.0455251049017011,-1.7299549338368596,4.32440082751185,-3.2017984832610615,-1.4404434916636142,-0.22608652828818027,4.346538553479679,-4.166178464582426,1.5733958426475274,0.5201266779932415,0.31784114740853076,-0.31784114740853076],[0.3380578285340201,-0.18532751937919428,0.2832357386854392,-0.40425618702422894,-0.03170986079673699,0.3380578285340201,-0.18532751937919428,0.2832357386854392,-0.40425618702422894,-0.03170986079673699,3.4533184436644664,1.539412893934949,-1.3839351085336598,-0.15957612642486318,-2.073493286257777,-0.5838422688555738,-1.4720031915073228,2.0605601418596198,-1.3804414978802981,0.004098341020560756,-0.004098341020560756],[0.46977815209767926,-0.07982415699692405,0.13041205952419688,0.03593568891965604,-0.5563017435298035,0.46977815209767926,-0.07982415699692405,0.13041205952419688,0.03593568891965604,-0.5563017435298035,2.1396387910058907,1.1695731306900106,1.9567796379662645,-3.197518099479039,-0.597706449131946,-2.980371642914906,1.2178949821388825,3.0229575499377086,-2.731247900215041,0.07116533082801381,-0.07116533082801381],[-0.015005198345767114,-0.504762665459348,-0.18474314707213807,0.37808724743960936,0.3264237634406026,-0.015005198345767114,-0.504762665459348,-0.18474314707213807,0.37808724743960936,0.3264237634406026,-1.6881043513697875,-0.7927099303544746,-1.0370529704702598,1.6664796934305062,3.8866605289909293,-9.880747093031458,3.5634682705866316,-2.408496450871331,6.690502303099221,0.16328320740426006,-0.16328320740426006],[0.31637252855502745,-0.07780780003186383,-0.47258576641808697,-0.052476251356880804,0.28649728924909323,0.31637252855502745,-0.07780780003186383,-0.47258576641808697,-0.052476251356880804,0.28649728924909323,-0.40112887880333786,1.7292186927898001,-3.8842203525730357,2.1924452184206653,3.5818260846146024,-4.037581586099962,1.7635564516333129,0.46352288469054287,-1.4076385146653345,-0.03744355862301635,0.03744355862301635],[0.059486224234510665,-0.22135865549068248,0.025299072253480326,0.2138441187637291,-0.0772707597692813,0.059486224234510665,-0.22135865549068248,0.025299072253480326,0.2138441187637291,-0.0772707597692813,-0.09489027074473266,-1.779862951442643,-0.40827123161632095,2.1810633726237043,-0.5891895291544988,-0.4617844973863925,-0.6763497749945121,1.2563364216707105,0.5729484610395953,0.007070810421572614,-0.007070810421572614],[0.16626337325959803,0.1468134003693242,-0.2510963624038436,0.5617962719839898,-0.6237766831881375,0.16626337325959803,0.1468134003693242,-0.2510963624038436,0.5617962719839898,-0.6237766831881375,-3.2362397060507364,-1.4340285167060003,3.321726057926292,-1.7380444840114544,0.6710321499564083,0.3933343152831644,4.7559991716183365,5.6995899911491845,-8.433368979163943,-0.14965305720924432,0.14965305720924432],[-0.4532135275728072,0.1877919280579025,0.206652868947103,-0.15200282037696936,0.2107715509467205,-0.4532135275728072,0.1877919280579025,0.206652868947103,-0.15200282037696936,0.2107715509467205,-7.477359791856948,1.8983666231932372,-0.2711464210475387,-2.2875281672688796,1.1834931393961767,5.234273990943441,-2.9885733047218705,-0.5855868851001489,5.294060816469902,0.6603079651223154,-0.6603079651223154],[0.10213119240196063,-0.3705004784596701,0.7969617935265056,-0.6009767693548818,0.0723842619044685,0.10213119240196063,-0.3705004784596701,0.7969617935265056,-0.6009767693548818,0.0723842619044685,-2.230405357859709,-2.1923071358342057,2.022916728427025,0.2509390190896308,5.333750667336396,-2.568030974771357,2.950648182930024,-2.820047506519731,-0.747463622789649,-0.08154861168072028,0.08154861168072028],[-0.018151156675659426,-0.3604293463344009,-0.11347379794839571,0.31876627777265626,0.17328802320414516,-0.018151156675659426,-0.3604293463344009,-0.11347379794839571,0.31876627777265626,0.17328802320414516,0.15141207955810737,0.07260996408496445,2.9215951453984177,-2.6526064851341458,-2.378412161667346,3.6246499965935595,-2.0551106826141883,2.1961604485797883,-1.8802983047937714,-0.3415986243492958,0.3415986243492958],[-0.12255490294505318,0.40074814296087696,0.2620927430933693,-0.698910539980742,0.15862455687930416,-0.12255490294505318,0.40074814296087696,0.2620927430933693,-0.698910539980742,0.15862455687930416,0.7282906375428427,-0.8381332298902636,1.2132762217360635,-0.2550522690008714,4.65715177505524,-10.186729530342886,0.85488766755158,-6.394426970539253,10.22073569789071,-0.12009072284287475,0.12009072284287475],[-0.5858219814034268,-0.07145736561521424,0.1594048272126219,0.5708641251172123,-0.07298960530351982,-0.5858219814034268,-0.07145736561521424,0.1594048272126219,0.5708641251172123,-0.07298960530351982,1.70406896197226,-0.28444333535427013,-1.287589236161892,1.0943799151810045,4.826879637023926,-4.7441300226602525,-3.9198921204750126,-6.156880147892477,8.767606348346884,0.47765265635063114,-0.47765265635063114],[0.2961838198785973,0.06601718038275073,-0.1555320981250229,-0.14154464100042463,-0.06512426112697559,0.2961838198785973,0.06601718038275073,-0.1555320981250229,-0.14154464100042463,-0.06512426112697559,-0.20677301079695384,4.378788796979333,-0.095922344683403,-4.249683711612076,-0.29860153408225254,1.671700538610081,2.312357635093553,-5.069228284534716,1.5573619150221356,-0.03318274068939296,0.03318274068939296],[0.6078240163488036,-0.2752349740552311,-0.24647437258218505,-0.4731621352146131,0.3870474655161461,0.6078240163488036,-0.2752349740552311,-0.24647437258218505,-0.4731621352146131,0.3870474655161461,-1.1671493767686798,-3.4152079045251953,3.0649369165155247,1.1577904733455298,-5.612580060608171,1.1632770852174086,-3.245805199538925,7.584945948558391,0.4697921177911655,-0.8075194853294443,0.8075194853294443],[-0.33658065910941914,-0.15813428134287508,0.006726979164584562,0.37362841770496297,0.1143595435862271,-0.33658065910941914,-0.15813428134287508,0.006726979164584562,0.37362841770496297,0.1143595435862271,1.1143022183609872,0.5513937201313048,0.40915662883608417,-0.6410950807087812,-0.7717538295556257,1.1664541291874988,-0.25635550343273594,1.152178664053336,-2.7242809468723146,-0.31945526825621345,0.31945526825621345],[-0.2085112905592517,0.05913184887144171,-0.9006989978425586,0.4395653123709357,0.6105131271674391,-0.2085112905592517,0.05913184887144171,-0.9006989978425586,0.4395653123709357,0.6105131271674391,2.4708745245710793,0.2544274716774013,-2.5050646544193693,2.3924654361260203,-2.675895469037037,4.757422906654683,-0.10063314123146849,2.2731535813373513,-6.866750655667074,-0.14182825337218477,0.14182825337218477],[-0.21873339026816646,0.30184169448532217,-0.27270151262030534,0.4063381221924903,-0.21674491379196414,-0.21873339026816646,0.30184169448532217,-0.27270151262030534,0.4063381221924903,-0.21674491379196414,-2.5354187777877386,-0.5486097365125088,-1.1544022843640995,1.1338691283025228,1.1768163301443155,-0.05643262982325514,-1.653069273737615,-0.13478911992416687,3.77203636369922,0.5691428925709394,-0.5691428925709394],[-0.5309116575743471,-0.39486254423720935,-0.10684773013663998,1.089362005558367,-0.056740073595966875,-0.5309116575743471,-0.39486254423720935,-0.10684773013663998,1.089362005558367,-0.056740073595966875,-0.24936974741461432,-0.9515466286611209,2.5626697310994127,-1.2837927086759464,-2.114748576126004,1.55354408202169,-5.595084154694879,2.4312958463243937,3.6470321561175014,-0.3273303937720936,0.3273303937720936],[0.28715165595931713,0.714769481760944,0.23993496665368425,-0.8274624516222389,-0.4143936527485548,0.28715165595931713,0.714769481760944,0.23993496665368425,-0.8274624516222389,-0.4143936527485548,-1.3382797787238412,-0.5783535974882852,0.3326835523876077,0.43706919304307434,-2.520806309879685,5.29065267335778,-1.2178137758718102,-0.621468508684277,0.2163165518577519,-0.1913991479329301,0.1913991479329301],[-0.29920718745206365,0.14503496923475087,-0.15634195795215963,0.02552735989469307,0.2849868162885178,-0.29920718745206365,0.14503496923475087,-0.15634195795215963,0.02552735989469307,0.2849868162885178,-3.7098751322698984,0.76459259505404,1.4739938289859276,-2.4796163247810474,-0.061597421529300034,7.238808782954427,-1.7135818911971168,-3.0210268687038724,1.5083024314749913,0.2410299007461288,-0.2410299007461288],[-0.28632548039956934,0.7953966109276361,-0.5169232869892605,-0.2309941457680707,0.23884630223238731,-0.28632548039956934,0.7953966109276361,-0.5169232869892605,-0.2309941457680707,0.23884630223238731,5.655387861706471,-2.3167894148698394,4.087129805042962,-1.4828200254948494,-5.3832458681603335,5.929079893425853,-0.3043680164432093,1.8901547634863909,-8.074528998696577,-0.2875203646751699,0.2875203646751699],[-0.09931582395618249,-0.026747034498465237,-0.1233726262195487,0.05774336083747458,0.19169212383301132,-0.09931582395618249,-0.026747034498465237,-0.1233726262195487,0.05774336083747458,0.19169212383301132,-0.769671307298869,3.5409678244746763,-0.6041551577636591,-3.2952541210380177,1.0990503603874608,0.3451012440659416,7.842306680444343,1.6551765039276534,-9.813522027193288,0.3584414543270882,-0.3584414543270882],[0.028318614105291344,-0.4321661076261752,-0.019623581877051967,0.19864812690418884,0.22482294851629392,0.028318614105291344,-0.4321661076261752,-0.019623581877051967,0.19864812690418884,0.22482294851629392,-1.7823412044264346,-2.272933546253329,-1.0107742485197222,3.3177565980074446,3.8943867401021515,-2.6218245899817907,-2.443011594026562,-4.660658426549795,7.579400271642829,-0.03404880323316811,0.03404880323316811],[0.20403145523676175,-0.1702313883362941,0.10629521842476605,0.2142923469958759,-0.3543876323127743,0.20403145523676175,-0.1702313883362941,0.10629521842476605,0.2142923469958759,-0.3543876323127743,-3.7836072891234886,3.193712564856716,-1.9320066577121449,-1.0200935974326346,-3.1326476876216374,0.77864935377138,-2.1551372216902593,0.2667013188982881,7.784429216041797,-0.2416123097125976,0.2416123097125976],[0.4560047344054028,0.37524486906306526,-0.521653855516375,-0.2358446418444632,-0.07375110610947525,0.4560047344054028,0.37524486906306526,-0.521653855516375,-0.2358446418444632,-0.07375110610947525,-2.842730020058617,0.036328412329516446,1.2009477054651654,-1.7210954874251247,4.259240895069043,-8.875698563777043,2.557874477231377,-1.8875213093491257,7.272653890520745,0.4838193696208585,-0.4838193696208585],[0.0349731785285447,-0.39827344963487843,0.40549632193904644,0.45020644733976845,-0.49240249819981224,0.0349731785285447,-0.39827344963487843,0.40549632193904644,0.45020644733976845,-0.49240249819981224,2.5103566714227266,-0.2861057177716422,2.688831885129477,-1.8901561886740155,4.2200362958746,-7.552341462344129,-3.218148393502495,-3.1977264077462606,6.72525331760651,-0.5125699786947547,0.5125699786947547],[0.48460302911427566,0.1191226324953689,-0.2386698134887028,-0.4162682212796752,0.05121237314546623,0.48460302911427566,0.1191226324953689,-0.2386698134887028,-0.4162682212796752,0.05121237314546623,-0.7150247921511129,0.8384780896443091,-3.0529030345515453,2.096420821066911,-6.975926461776149,7.3984480506614485,-1.0179156287974427,5.908288806475064,-4.479865850566755,0.11800412384841895,-0.11800412384841895],[0.2023894470493613,0.3451868427833349,-0.49324637670796656,0.32386499604956087,-0.3781949091741559,0.2023894470493613,0.3451868427833349,-0.49324637670796656,0.32386499604956087,-0.3781949091741559,6.43427574710982,-0.5377471406578584,-0.19924228186220977,1.0261736467669287,0.9882935556717471,-3.6249231939536983,-3.003344244494677,-3.975020709614462,2.891534621026243,-0.2891842242497263,0.2891842242497263],[-0.13217532724620043,-0.7522973284556014,0.5424772935222286,0.31225567772174645,0.02973968447141012,-0.13217532724620043,-0.7522973284556014,0.5424772935222286,0.31225567772174645,0.02973968447141012,-2.902021378516606,-1.8535050956259531,0.7943906707619484,0.9696629529911326,0.10542597781180518,0.9401810526390268,1.5128144613747654,-4.98677767434253,5.419829032916326,0.08945147187770597,-0.08945147187770597],[0.764624238519309,-0.3033530966221695,-0.19871231980541315,0.4590625966303198,-0.7216214187348303,0.764624238519309,-0.3033530966221695,-0.19871231980541315,0.4590625966303198,-0.7216214187348303,-1.5131547596705666,1.8505474526751142,-2.04322206158442,0.5662960720947589,0.6502729037619082,-2.017495848467567,0.574758958562117,-4.685771104155858,6.617768386792047,-0.37362146317995715,0.37362146317995715],[-0.40353979922621686,0.31330006950684264,-0.5577414336423434,0.10077397820550124,0.5472071851592956,-0.40353979922621686,0.31330006950684264,-0.5577414336423434,0.10077397820550124,0.5472071851592956,-0.5390832078320456,2.624170278416514,-3.619128660211949,0.7840085470644161,1.8420644506873258,-0.8228019450253301,0.4575405472900191,-1.3180244321086438,0.5912544217339186,0.2109498347230045,-0.2109498347230045],[0.059910033606245,0.05163582059904257,-0.1806519366702073,-0.3271673368305675,0.39627341930038645,0.059910033606245,0.05163582059904257,-0.1806519366702073,-0.3271673368305675,0.39627341930038645,3.047493337863183,0.14334801409044262,2.9553314453157276,-3.1513481583360807,1.1206803854337455,-0.4675777227739219,-4.322373161315838,-1.0219369756954741,1.6963828354201873,0.052668698933616295,-0.052668698933616295],[-0.10116932965677677,-0.10957882289608362,0.1909478749188907,-0.10497313302578334,0.12477341066520076,-0.10116932965677677,-0.10957882289608362,0.1909478749188907,-0.10497313302578334,0.12477341066520076,-0.4293200988201442,-3.313906209389623,3.003469397019864,0.8333036361395958,-2.7153596166991165,5.434178067445455,2.39252459742918,-0.35265031252283663,-4.8522394605889625,-0.5228668237862009,0.5228668237862009],[0.0722059227682759,-0.3460654756305468,0.006907097793468597,0.5224316481045035,-0.25547919302843963,0.0722059227682759,-0.3460654756305468,0.006907097793468597,0.5224316481045035,-0.25547919302843963,-1.9062624391484628,-0.7122265456218817,-0.4692736339355459,0.8376068798044133,1.4352233048515264,-4.6263801982959905,1.6758558516072202,-4.426270670504606,8.191727451243047,0.3438932997526795,-0.3438932997526795],[-0.24968385534694476,-0.21541544835658183,0.7855397537470301,-0.4553361096539408,0.13489565962002018,-0.24968385534694476,-0.21541544835658183,0.7855397537470301,-0.4553361096539408,0.13489565962002018,0.7075423647206673,0.1931783699832097,0.6928937084028968,0.12553417452610083,0.6314738564008385,-0.31733833315134363,2.310213546369675,-1.8190115126303117,-2.524486174601348,-1.011606252909178,1.011606252909178],[0.2317194638205723,-0.22311350270925756,-0.13140585157847992,0.25810089458536306,-0.13530100411546608,0.2317194638205723,-0.22311350270925756,-0.13140585157847992,0.25810089458536306,-0.13530100411546608,-0.12536904794286458,-1.1015349158519894,1.6558157780517988,-0.7990074182395073,1.0063067036656905,-7.166825407009201,5.765733968112411,2.48544519562834,-1.7205648564106881,0.24472655603120033,-0.24472655603120033],[-0.23308587452283355,0.7382876215964356,-0.2702628809532707,-0.2605941014304062,0.02565523532782703,-0.23308587452283355,0.7382876215964356,-0.2702628809532707,-0.2605941014304062,0.02565523532782703,4.443477048526529,0.1354730864759266,-1.4012843234463295,1.6704501850706677,-0.6642935683340065,-2.9392502504509204,0.8178282882853061,-2.8333794473196683,0.7709789811932171,-0.4046389481118658,0.4046389481118658],[0.09229448749587299,-0.8360242734928655,-0.030242212766599996,0.4939101257242359,0.2800618730447255,0.09229448749587299,-0.8360242734928655,-0.030242212766599996,0.4939101257242359,0.2800618730447255,4.376320498165363,-1.3074930048215057,0.9649340941061557,-0.22453636855921943,-0.4232185459326473,1.78564283981368,-3.0773122395418997,1.1787023110757016,-3.2730395842844517,0.5670952792833339,-0.5670952792833339],[0.17095725359920705,0.4839466289256243,-0.060722131068023655,-0.5223218063791728,-0.07185994508351827,0.17095725359920705,0.4839466289256243,-0.060722131068023655,-0.5223218063791728,-0.07185994508351827,4.25636335932512,-3.0767572248189996,-1.2089630751031035,3.530803645467856,-0.3605091885721986,-1.9926237855571114,-0.10520231381614686,-2.9474574785602634,1.9043460616306689,0.7549166544562582,-0.7549166544562582],[0.14846786880727111,0.14360157112166747,0.008192227463447214,-0.3817753877907533,0.0815137203999876,0.14846786880727111,0.14360157112166747,0.008192227463447214,-0.3817753877907533,0.0815137203999876,8.360654295235516,-0.5156405816253322,-0.9439608314563798,1.3279022793494177,-3.82013160861519,5.586296182456359,-5.62685399449699,3.734243971737663,-8.102509712590662,0.13169913373973136,-0.13169913373973136],[0.03961539125550829,0.1491313271913828,0.1663904083521652,-0.11905036486093165,-0.23608676191731445,0.03961539125550829,0.1491313271913828,0.1663904083521652,-0.11905036486093165,-0.23608676191731445,0.9755876934625825,1.6776652742227445,-1.8702114617383334,1.0973146379894922,2.066065027938387,1.464315829166208,4.245080137139777,-3.1240370193576257,-6.531780118833618,-0.9047684504734641,0.9047684504734641],[-0.04969708598758936,-0.23174831727191236,0.05966426669672141,0.09225819330589641,0.12952294324728314,-0.04969708598758936,-0.23174831727191236,0.05966426669672141,0.09225819330589641,0.12952294324728314,-0.3724781997614871,-3.903549903351304,3.2573150800260864,0.6572309950776025,0.4346792796262613,-2.0590452554569882,-3.112244190475803,3.5703886460729644,1.5277035482494723,-0.010996171749521055,0.010996171749521055],[-0.3251900448813338,0.1346596898274137,0.4949364666260452,0.24617130378349766,-0.5505774153401936,-0.3251900448813338,0.1346596898274137,0.4949364666260452,0.24617130378349766,-0.5505774153401936,2.2608814034877556,-0.8261960885421018,0.9816088611766478,-0.12285112254258757,-3.5293867743521234,2.336697543035151,-2.7166902698791957,-2.1128119370690195,3.728748384684396,-0.03256165008913722,0.03256165008913722],[-0.22258713143054792,0.029018432383568816,0.1390515964695482,0.578759982989526,-0.5242428804125776,-0.22258713143054792,0.029018432383568816,0.1390515964695482,0.578759982989526,-0.5242428804125776,1.2919947907094862,4.097312349472913,-2.100751427248894,-1.6881913808657183,3.320305769972089,-2.586800065464204,1.6598360192283452,-2.095615698319423,-1.8980903574744294,-0.30836954136104744,0.30836954136104744],[-0.0809424785295381,-0.5140603119374181,-0.06138191356932349,0.5231641680838763,0.1332205359525483,-0.0809424785295381,-0.5140603119374181,-0.06138191356932349,0.5231641680838763,0.1332205359525483,-2.2897245031343356,2.669948303798875,-3.51417958745973,0.8369392142180208,-1.7074978015442224,-0.5353187259324812,0.09414384293125444,2.294207023924344,2.1514822331971417,0.007292069427953782,-0.007292069427953782],[0.5158825952493513,0.22965577304852594,-0.3919302767281012,-0.32455516975282006,-0.029052921827305005,0.5158825952493513,0.22965577304852594,-0.3919302767281012,-0.32455516975282006,-0.029052921827305005,3.3099187646630845,-2.839422643697363,2.3628585959741013,-0.2987360307827166,2.8379428881151822,-5.017926752692551,2.156190246798165,-1.6927260003627413,-0.8180990680035805,0.7753000785013857,-0.7753000785013857],[-0.2238103071771537,-0.047066817400696355,0.10626985601658281,-0.12609798965341976,0.29070525821866594,-0.2238103071771537,-0.047066817400696355,0.10626985601658281,-0.12609798965341976,0.29070525821866594,2.4754324166489883,4.043881600902781,-1.2853282133211426,-2.02611920306671,0.25711388591126977,1.5407591005709071,-1.179757082656883,1.8230630454027348,-5.649045550386489,-0.7324341845126987,0.7324341845126987],[0.5004202434624833,-0.5324872776651594,0.12759046870822754,0.3667266038550562,-0.46225003837888246,0.5004202434624833,-0.5324872776651594,0.12759046870822754,0.3667266038550562,-0.46225003837888246,0.5247764820857698,-1.308124430073971,2.3609758785622685,-1.404531028956886,-4.371953309664681,6.8863147079835105,-8.200776489219612,4.3710459561661175,1.1422722331110613,0.35167958046257625,-0.35167958046257625],[0.09537226859892955,0.05786446879416516,0.0405441601584768,-0.06950862537338712,-0.12427227218116711,0.09537226859892955,0.05786446879416516,0.0405441601584768,-0.06950862537338712,-0.12427227218116711,2.3020172256064813,0.564004018555145,-3.0342592527307453,2.3664290255579647,2.4293933405797823,-2.2597277353871097,2.4914306753921744,-3.058287147712063,-1.8010001498567432,0.10382620861888794,-0.10382620861888794],[-0.5179263958522944,-0.46418344087219043,0.7043474484442571,0.0990887077796309,0.17867368049933674,-0.5179263958522944,-0.46418344087219043,0.7043474484442571,0.0990887077796309,0.17867368049933674,1.7659254603377397,0.2866220211522361,1.7906749222602163,-1.3594447975633304,-3.763098336717462,6.757671215536194,-4.411110453782754,-3.4597904435447244,2.3925504123205386,-0.717852145850969,0.717852145850969],[0.13477855966146823,0.34530540084926087,0.3853749206683493,-0.5737562377166034,-0.2917026434414674,0.13477855966146823,0.34530540084926087,0.3853749206683493,-0.5737562377166034,-0.2917026434414674,-1.8692339091861563,-2.21867695625442,0.9918488218985233,1.741326609486744,-3.7983837014815776,3.1764777946561344,2.907806037080176,9.917873414845783,-10.849038111031952,-0.5144984751271033,0.5144984751271033],[0.018042317327131588,0.4529089137778197,-0.54654324154591,0.19216638758542282,-0.11657437711243172,0.018042317327131588,0.4529089137778197,-0.54654324154591,0.19216638758542282,-0.11657437711243172,-3.493984108331099,-2.1866145098826033,-0.7224223131017158,3.222057687656215,-1.733501352528331,1.5095771005213297,-2.505066276300403,1.3672256960642661,4.5427280758991335,-0.31302086466735324,0.31302086466735324],[0.06639792760827662,0.07986292311393872,0.6845335429596522,-0.5199250095220582,-0.3108693841488776,0.06639792760827662,0.07986292311393872,0.6845335429596522,-0.5199250095220582,-0.3108693841488776,3.2184830037036622,2.1137400784937275,-3.379456084623098,2.010907794316144,-4.880701795350765,4.008259297055523,3.0842499321710046,6.8958208466493565,-13.071303072433526,-0.7451917881872987,0.7451917881872987],[-0.018660371309401513,-0.13578131035375632,-0.015798174816212374,0.14506123497438872,0.02517862149948165,-0.018660371309401513,-0.13578131035375632,-0.015798174816212374,0.14506123497438872,0.02517862149948165,4.742217980254493,-4.2164701180855015,3.74561971724443,-0.7282198867116774,1.6260410602416795,-4.35676797653247,-1.2591488261510944,-2.8131775528386993,3.2599056025683835,1.1990702875497543,-1.1990702875497543],[0.19214207697762875,0.30889242976120423,-0.7686614480662166,0.3408322189626226,-0.07320527762963921,0.19214207697762875,0.30889242976120423,-0.7686614480662166,0.3408322189626226,-0.07320527762963921,-2.7857886117131256,0.5169333345947654,-3.4200504415547504,2.9227457628242957,-4.924273198528138,3.377542187293927,2.9566815839299907,5.264320242152975,-3.9081108589946165,-0.019628655870502762,0.019628655870502762],[-0.1483525413935703,-0.12879229379432158,0.36742892168691854,-0.08577026843927238,-0.004513818041194984,-0.1483525413935703,-0.12879229379432158,0.36742892168691854,-0.08577026843927238,-0.004513818041194984,1.4193903915973207,0.15188910085804536,-2.709089827768413,1.7127704471496539,0.5009036567280796,-2.2881503150498403,0.5544636816831643,-2.404070417777459,3.06189328257115,0.8444302797664764,-0.8444302797664764],[0.10418072715024311,-0.6770586915014875,0.2395146023035677,0.11068603247712065,0.22267732957995978,0.10418072715024311,-0.6770586915014875,0.2395146023035677,0.11068603247712065,0.22267732957995978,1.538074823588403,-4.804790649348909,3.186296802330463,1.309115823843775,-1.886473612075147,4.420695847182622,-1.22320960618523,3.9113944555479683,-6.4511038848849545,0.30937802316831925,-0.30937802316831925],[0.06149803096212342,-0.031480242338688125,-0.4734680608902886,-0.07999105286230145,0.5234413251057647,0.06149803096212342,-0.031480242338688125,-0.4734680608902886,-0.07999105286230145,0.5234413251057647,-6.9046117521185195,-1.144769009799203,-0.015489059685322326,0.8199177633649735,0.8813885248737401,-1.7465475699310635,3.5084469759942447,1.1302807970640234,3.4713833302311334,0.3403403061230915,-0.3403403061230915],[0.28993445745949725,0.3496690072885378,-0.158336033173737,-0.1217147845474062,-0.35955264699189493,0.28993445745949725,0.3496690072885378,-0.158336033173737,-0.1217147845474062,-0.35955264699189493,2.5489080246829503,-2.4000180935926414,0.8250268799335447,1.6193440303820847,1.8381469792707126,-5.007087638190658,-5.73321665560974,-4.183651019831332,10.49254749295766,-0.044352816730979405,0.044352816730979405],[0.124033526259274,0.3317672611386663,-0.295702613996053,-0.2881250813843658,0.1280269079845956,0.124033526259274,0.3317672611386663,-0.295702613996053,-0.2881250813843658,0.1280269079845956,-0.3389855275596869,1.7881319912089724,0.384071364964596,-2.699536844189763,0.24436831637492074,-1.4631456038984174,5.127307641618451,2.3933714100187506,-5.435582748549881,0.527333488005145,-0.527333488005145],[0.2763049402725638,-0.9752003377328906,0.7665873899559312,0.13431268804318194,-0.20200468053667903,0.2763049402725638,-0.9752003377328906,0.7665873899559312,0.13431268804318194,-0.20200468053667903,-4.033921318826873,-0.0667374904973258,1.0570739820112007,-1.2692314262143691,-1.6129462686017293,0.1718486443036773,5.156081238484937,2.7544940082434817,-2.156661368897554,0.2788949347115987,-0.2788949347115987],[-0.2558105900542859,0.20637961636599306,0.3646876866650671,-0.1834174557538646,-0.13183925720954,-0.2558105900542859,0.20637961636599306,0.3646876866650671,-0.1834174557538646,-0.13183925720954,2.459072008427185,0.5056223520639275,-4.197675174352225,3.5880099387419166,2.221736092651862,-1.5985813012985155,-0.12599687585473718,-1.2281208221915136,-1.6240662181965695,0.10404288355191516,-0.10404288355191516],[0.22366795614099597,0.21822005166284128,0.13816429786021547,-0.4756267371302822,-0.10442556854760685,0.22366795614099597,0.21822005166284128,0.13816429786021547,-0.4756267371302822,-0.10442556854760685,-3.5044929573276318,-2.2300538416156037,2.688374590343132,-0.0686415487723463,-1.0713960281525166,4.0642052268442175,3.5265097593640204,3.8610051511659136,-7.2655103518388096,-0.3896791999620247,0.3896791999620247],[-0.21510035679857323,0.5843475961789035,-0.12562323821168617,-0.46684787268726846,0.2232238715271847,-0.21510035679857323,0.5843475961789035,-0.12562323821168617,-0.46684787268726846,0.2232238715271847,0.8239092939314491,-0.5130078836634363,0.8794064738497684,-0.8269610253535743,1.1371202431337974,-2.7701964375735373,-0.2980282149708594,-0.9365103850969738,2.504267935767307,0.46056243517216855,-0.46056243517216855],[-0.12124259624777889,0.816984087485247,-0.043009189828863884,-0.2924974443454795,-0.3602348570713868,-0.12124259624777889,0.816984087485247,-0.043009189828863884,-0.2924974443454795,-0.3602348570713868,-1.7353440431096065,-1.1924528708362394,0.5232481052095593,0.23384324118074212,2.167572763285067,-1.9499562065003042,1.5772985638677879,-0.34274231179556436,0.7185327587006984,0.4353615244484069,-0.4353615244484069],[-0.26270315691408835,-0.07218859563490687,0.2035895704263488,0.3703283973615271,-0.23902621525405954,-0.26270315691408835,-0.07218859563490687,0.2035895704263488,0.3703283973615271,-0.23902621525405954,-1.906507618318974,8.551668429525094,-5.445601790326109,-2.58375245557942,2.148090651615112,-1.1339781677396172,-0.06522005797883912,-5.118080840130205,5.553381848926353,-0.5223141836357651,0.5223141836357651],[-0.003361555241503984,-0.5790884734333628,-0.008492564558154614,0.475057503638571,0.11588508959052765,-0.003361555241503984,-0.5790884734333628,-0.008492564558154614,0.475057503638571,0.11588508959052765,-0.033358924051366534,-0.3874831852289502,2.058443996840658,-1.2718452378096028,-0.2678819366227844,1.0679319180101907,2.417815492455117,-0.9689596289910495,-2.6146624945891617,-0.399115573803778,0.399115573803778],[0.13845565710538538,0.7294703829470912,-0.3364575404792304,-0.3069176404113215,-0.2245508591593074,0.13845565710538538,0.7294703829470912,-0.3364575404792304,-0.3069176404113215,-0.2245508591593074,-2.5206977130662973,0.6798993282097139,-2.0052956830751603,1.5094581340480318,-0.512667691312768,-0.7480006990473524,5.6312352208558245,-0.5603174270946805,-1.473613469513405,-0.184061779189728,0.184061779189728],[0.054718280681232606,0.06705363111891566,-0.23377084824222066,-0.03937073520788867,0.15136967163298265,0.054718280681232606,0.06705363111891566,-0.23377084824222066,-0.03937073520788867,0.15136967163298265,-1.2618673923994883,1.518804684974182,1.2650644378013933,-2.341693858973508,0.06363958311066312,4.136155352618724,2.8553566677669306,0.4549247423121207,-6.690384217210077,-0.44217526382088207,0.44217526382088207],[-0.10634301373072573,0.4453168714565582,-0.2621773709801807,-0.03573752358742974,-0.04105896314600765,-0.10634301373072573,0.4453168714565582,-0.2621773709801807,-0.03573752358742974,-0.04105896314600765,-1.4243824330885517,-3.383720069329896,0.8413537050248525,3.390991841447275,0.6549249047969314,2.992707466626816,-0.8147204784550333,-0.14375631026171898,-2.1133986267760525,-0.8486254771543862,0.8486254771543862],[0.13336425845825217,-0.45431216669082225,-0.0964855750341981,0.5029996840789441,-0.08556620079700972,0.13336425845825217,-0.45431216669082225,-0.0964855750341981,0.5029996840789441,-0.08556620079700972,-1.8798671008581982,2.558691758292265,-1.3250006195319552,-1.332123910992009,4.819010891647213,-7.446920743397934,-0.4983196245459691,-6.8193266771674805,11.923856026561584,0.09843277223883201,-0.09843277223883201],[-0.0988480302345012,-0.018241500818092136,-0.29677445676497194,0.45674498939809116,-0.0428810015774265,-0.0988480302345012,-0.018241500818092136,-0.29677445676497194,0.45674498939809116,-0.0428810015774265,0.6085258838850046,-2.864280354364551,-1.6650170454125088,3.556954294792201,1.0048880730831249,-3.3054468263851344,-3.1151724663207303,-4.7133333754563775,10.49288181616992,0.972343104986679,-0.972343104986679],[0.1403816603380561,0.4790688682030281,-0.44690701170669156,-0.12835594662965646,-0.044187570195180145,0.1403816603380561,0.4790688682030281,-0.44690701170669156,-0.12835594662965646,-0.044187570195180145,1.8455289629724128,-0.2703339972971338,1.7254480687978373,-0.6311317719921079,-3.4492226529747043,0.6141780400915093,0.2585840381885509,0.6204144593116007,-0.7134651470994133,-0.8239822995152464,0.8239822995152464],[0.46558528762275264,0.39418724552541595,-0.2815986036149435,-0.20392044227885536,-0.3742534872499482,0.46558528762275264,0.39418724552541595,-0.2815986036149435,-0.20392044227885536,-0.3742534872499482,-1.4127798668321367,-1.410293276377447,-1.0230632268977935,2.2854524739699125,5.63020856236991,-4.6259461326251134,-5.46874084798481,-5.262628137220377,11.287790451589832,0.147904029312453,-0.147904029312453],[-0.14239099390715731,0.30377439729578704,-0.001214626460393109,0.01280979418407623,-0.17297857110819687,-0.14239099390715731,0.30377439729578704,-0.001214626460393109,0.01280979418407623,-0.17297857110819687,-1.9148888767089514,-1.4986829419323535,0.5194566284467861,1.7000945114662138,-2.819595267004861,4.64933251905291,-0.05981557129415466,3.5106082741897735,-4.086509276231753,-0.7208681979765437,0.7208681979765437],[0.007874476116206841,0.3502519709102171,0.47435193714429896,-0.5680463185998104,-0.2644320655504431,0.007874476116206841,0.3502519709102171,0.47435193714429896,-0.5680463185998104,-0.2644320655504431,4.134305420578256,-1.544707485123618,-2.120231389887882,3.430425028241254,0.0899710334691679,-2.959692683665592,0.23929717702418607,3.4558245586155367,-4.725191659243076,0.23451384677636267,-0.23451384677636267],[0.19963631428262743,0.14597964612634107,-0.26662446644588883,0.23667533374166982,-0.3156668277329619,0.19963631428262743,0.14597964612634107,-0.26662446644588883,0.23667533374166982,-0.3156668277329619,-1.3901923749591591,0.8943573104284439,-0.03137187740728756,-2.3863491650597504,1.6376325132137297,-1.4670279302523603,-0.0606425809433464,1.6376388873201018,1.165955217652698,1.5233637320300717,-1.5233637320300717],[-0.13916904632747795,0.11271289252519634,0.07237886032884501,-0.06859363448196377,0.022670927957217993,-0.13916904632747795,0.11271289252519634,0.07237886032884501,-0.06859363448196377,0.022670927957217993,1.0118130225372566,1.5852734036827578,-0.23372839619273633,-0.7833336150313133,-4.088957896527736,4.213209800746762,2.1558180103869473,0.7673881684089359,-4.627482498019588,-0.5682113924570181,0.5682113924570181],[0.20646612639608447,-0.2179183549657518,-0.28530511834650063,0.42157420181153193,-0.12481685488978157,0.20646612639608447,-0.2179183549657518,-0.28530511834650063,0.42157420181153193,-0.12481685488978157,1.7614861923262333,2.032540400884264,-5.439397909225727,2.5131262523618076,-4.481922914317888,7.799235752836555,0.4780236359114881,3.1004037194468026,-7.763495130238786,0.8937312559751759,-0.8937312559751759],[-0.3034231726753174,-0.0049130367106886876,0.09530381673142391,0.1418326766050766,0.07119971605183656,-0.3034231726753174,-0.0049130367106886876,0.09530381673142391,0.1418326766050766,0.07119971605183656,1.207555222256229,-0.9296015351550146,-0.8535352406412805,1.7017014350547768,2.970139049922708,3.9766975730755325,-1.8420338295198124,-6.895713991409549,0.6647913164160639,0.08143534073666325,-0.08143534073666325],[0.04592364083806695,0.35381052330601137,-0.03414139186611778,-0.28228157823517425,-0.08331119403670878,0.04592364083806695,0.35381052330601137,-0.03414139186611778,-0.28228157823517425,-0.08331119403670878,3.096480866297961,-0.41373666395675646,4.291185441420594,-4.180911405011429,0.02785110598160284,0.044745904195075736,-7.984575818809386,-0.09351112016099439,5.212471690034796,0.3034626275507383,-0.3034626275507383],[-0.16377079873764425,0.3742199869691152,-0.29650984148662063,0.16492269675042456,-0.07886204348952838,-0.16377079873764425,0.3742199869691152,-0.29650984148662063,0.16492269675042456,-0.07886204348952838,0.07089680693714318,1.6178580755786718,-1.1097527389355961,0.04600661673306927,4.731474389498199,-3.9450460531189497,-5.602063053392192,-1.8580840016928155,6.048709958397781,-0.5541119533887252,0.5541119533887252],[0.020517164528930498,-0.10663837975156773,0.18948451905164795,-0.33066450195187014,0.22730119810773658,0.020517164528930498,-0.10663837975156773,0.18948451905164795,-0.33066450195187014,0.22730119810773658,1.8354736790375283,5.010495851390935,-5.681374153972742,1.9786302606835404,-2.2815933598207296,2.9361954492372737,1.182605015277157,-2.361359338624334,-2.6190734032200496,-1.3077519581074388,1.3077519581074388],[-0.3856062247914568,-0.2989739175438508,-0.24526530195383264,0.7556379726837171,0.17420747159240707,-0.3856062247914568,-0.2989739175438508,-0.24526530195383264,0.7556379726837171,0.17420747159240707,-0.1526981258835416,0.4702064424174348,-1.4043863037214102,0.30001785688427485,2.252478726987558,-5.725325681631587,-1.201773481759639,-5.099020882287342,10.560501448993064,0.6341620044280689,-0.6341620044280689],[0.16050845559434762,0.42419898843812887,-0.08575525926036351,-0.07779712665120506,-0.4211550581284573,0.16050845559434762,0.42419898843812887,-0.08575525926036351,-0.07779712665120506,-0.4211550581284573,3.5747221780107905,0.060502306834368635,-1.8936491872649293,1.2835975756481428,-2.5174548987119563,4.209888851323958,3.188134683853983,3.2843149080640504,-11.190056417757749,0.549549304787861,-0.549549304787861],[0.20942005862865834,-0.3577124931321421,0.17459447710635395,0.18335232985712002,-0.20965437244832785,0.20942005862865834,-0.3577124931321421,0.17459447710635395,0.18335232985712002,-0.20965437244832785,1.3494745026885835,-0.32492401383001157,-1.4753153082556902,1.9319212617124848,-0.3383812278967542,1.303074727084876,-0.6985867065302838,5.314322345479447,-7.061585580458159,-0.13168193963982527,0.13168193963982527],[0.16041775775407674,-0.4403701845646146,0.15220888368740265,0.012171814896790242,0.1155717282377594,0.16041775775407674,-0.4403701845646146,0.15220888368740265,0.012171814896790242,0.1155717282377594,-0.23462415504532758,4.263651984598211,-0.624682188560894,-3.375772691399543,6.905129535433748,-10.034048058087008,4.841767433527359,-7.6751303569581255,5.933708496491518,-0.26319710463526286,0.26319710463526286],[-0.0584249760659398,0.3073862438742452,-0.21726960110003085,0.15947638784222984,-0.19116805453279767,-0.0584249760659398,0.3073862438742452,-0.21726960110003085,0.15947638784222984,-0.19116805453279767,-3.2022315043741942,1.6652450447950897,-2.129041285294067,0.0443378713511382,-1.4228928151144014,-1.0720953226861187,2.8179234745559585,3.1367088052213763,0.16204573155183666,0.41945836916311074,-0.41945836916311074],[-0.4156060261928744,-0.052549650125676084,-0.3742252138411527,0.34035078071953895,0.5020301094383709,-0.4156060261928744,-0.052549650125676084,-0.3742252138411527,0.34035078071953895,0.5020301094383709,-3.4819054554930453,1.0338487312501332,-2.064271173454024,1.2095173733303486,4.410685637144564,-4.365417639697251,5.58125719470155,-5.100933913944623,2.777219246157146,-0.17909493112893787,0.17909493112893787],[-0.3034470175810067,0.10802214809614155,0.3356593103136993,-0.30977679152186327,0.16954235067849133,-0.3034470175810067,0.10802214809614155,0.3356593103136993,-0.30977679152186327,0.16954235067849133,-1.3895900111253168,2.900056815876357,-1.5974055875455242,-1.4718789904808895,-1.333366058180427,2.5105256423541236,-3.9890558128963116,-1.2938045146493806,5.664518516632956,0.16922776213157859,-0.16922776213157859],[-0.21791339652613023,0.009860728955331993,0.07340685332213223,0.166249161135698,-0.0316033468758444,-0.21791339652613023,0.009860728955331993,0.07340685332213223,0.166249161135698,-0.0316033468758444,-0.23021515023222294,-1.3619211000107887,1.6902197203410392,-0.09157447725424495,1.6710466702648414,4.45759631025347,-3.6387123082584227,-7.736909182239615,5.240469517141848,-0.2367241430744061,0.2367241430744061],[-0.3157900547429208,0.32091020350283767,0.3648188003760279,0.01576930112896717,-0.38570825028919475,-0.3157900547429208,0.32091020350283767,0.3648188003760279,0.01576930112896717,-0.38570825028919475,-4.0259956992936985,0.37904852692763524,1.0855604450471872,-1.258244473747288,-2.2307157594032203,5.614569235494264,-4.586053446165631,-0.3034757712891112,5.3253069424343265,-0.20636449823853026,0.20636449823853026],[0.01561024512816471,0.3470443627894652,-0.19637039775782963,-0.1064617348853288,-0.05982247528956345,0.01561024512816471,0.3470443627894652,-0.19637039775782963,-0.1064617348853288,-0.05982247528956345,2.197068594893062,-1.0567788771374238,-1.8843151716112163,2.2894126023061303,-6.286216300485414,6.3325437857070215,-1.182802172797955,8.03742740792787,-8.446339868793082,0.6516814464379374,-0.6516814464379374],[0.22577729619298292,0.44415414067785086,0.4359222385849404,-0.7297720552032606,-0.3760816202400913,0.22577729619298292,0.44415414067785086,0.4359222385849404,-0.7297720552032606,-0.3760816202400913,-1.3984653209329285,-0.4049828164037006,0.3921832444050597,-0.4604833506098427,-2.9314010259915686,0.32963171760494436,0.10484688139701737,2.467262047888811,1.9014086226471956,0.4732829226125605,-0.4732829226125605],[0.01249779927971352,0.11818600880950253,-0.21543709976988062,0.18572817209631204,-0.10097488041754796,0.01249779927971352,0.11818600880950253,-0.21543709976988062,0.18572817209631204,-0.10097488041754796,0.960946273014295,-0.326632787742703,1.1487145528713008,-0.4402992530044689,-2.0001537976240753,3.0928109718228223,-2.120866089140416,-0.11192967502965656,-0.20259019517021626,-0.38178251211637043,0.38178251211637043],[-0.1402338722869968,0.06412167607330532,-0.048543021623255286,0.43572504430867526,-0.31106982647869413,-0.1402338722869968,0.06412167607330532,-0.048543021623255286,0.43572504430867526,-0.31106982647869413,-2.8233094795981355,-1.865056344886077,-0.8902550231877739,2.2849154164219105,0.2127376750639911,0.6156958687193332,2.401464106135533,2.86373070908459,-2.7999229277480424,0.47039595165108494,-0.47039595165108494],[-0.018610064516060565,-0.08245053911804884,0.40055532020362566,-0.37091030928655505,0.07141559270128683,-0.018610064516060565,-0.08245053911804884,0.40055532020362566,-0.37091030928655505,0.07141559270128683,-1.6582358656108835,0.007084317388441702,0.5467885496646636,-0.18097535180295252,1.428188123654879,-3.7585879718065844,0.2420065220450387,-2.052616588696161,5.4263482651674,-0.37289751523726067,0.37289751523726067],[-0.3623527001045094,0.10604816195514352,0.28999600444507867,-0.16435567121071842,0.13066420489564357,-0.3623527001045094,0.10604816195514352,0.28999600444507867,-0.16435567121071842,0.13066420489564357,4.117672368010198,-4.2502220013966925,2.334396325848804,1.615278790644961,1.1088440450423291,2.0819239721703475,-0.24289863016620394,-4.876952143780011,-1.8880427263691484,0.30054688488001347,-0.30054688488001347],[-0.28924711422346305,-0.39473574114076365,-0.2840412985333035,0.4229853888197943,0.5450387650851679,-0.28924711422346305,-0.39473574114076365,-0.2840412985333035,0.4229853888197943,0.5450387650851679,0.8192802841221055,-0.09376751281576556,-2.472456559735484,2.6215462618752037,1.4882358508833016,-3.8009180332491845,-3.454553618969795,-1.883686125859231,6.776319453753848,-0.05532218932656881,0.05532218932656881],[-0.4520707313178375,0.25011875811548184,0.1550750055991231,0.001365234938763643,0.04551173268519715,-0.4520707313178375,0.25011875811548184,0.1550750055991231,0.001365234938763643,0.04551173268519715,-0.6841654600057461,-0.3629375562519197,-0.567145588704222,0.6780730151339313,-0.07516543696097022,2.276958756374417,-0.7311086144282677,-0.49110000488541494,-0.04340911026798944,0.25201012983824056,-0.25201012983824056],[-0.03332765752520306,0.37397773836722265,0.2110688580569817,-0.23995368591989508,-0.31176525298671665,-0.03332765752520306,0.37397773836722265,0.2110688580569817,-0.23995368591989508,-0.31176525298671665,0.6889621045206893,-1.1698962453924384,-1.0818389737021965,2.6736133950979375,2.892328632723081,-2.003999580435238,0.24092665785025852,-2.8839009965683826,0.6438050058884242,-0.42187817600434296,0.42187817600434296],[-0.2746434910486393,-0.2903147851813534,-0.3205530167144067,0.5946318786388193,0.29087941432129466,-0.2746434910486393,-0.2903147851813534,-0.3205530167144067,0.5946318786388193,0.29087941432129466,1.4658539879229058,-0.6781803295730195,2.5706048443709246,-2.1981470629244253,1.4713099894381518,3.940847236642529,0.7098760822552113,0.2734558311800208,-7.55562057931586,0.3057225481275496,-0.3057225481275496],[-0.02634859621091773,0.41360584595019445,-0.12591859506290712,-0.08669524721998391,-0.1746434074519441,-0.02634859621091773,0.41360584595019445,-0.12591859506290712,-0.08669524721998391,-0.1746434074519441,-1.9290551173670698,3.5865402970532285,1.1827440693944407,-5.051238663098349,3.575863984602514,-1.5332189085348011,-1.958828075570585,0.5620720370757509,1.5651203764362147,0.28195429664679506,-0.28195429664679506],[-0.055083044571747855,0.32624773029228277,-0.06694905662907516,-0.16224002632226775,-0.04197560274511687,-0.055083044571747855,0.32624773029228277,-0.06694905662907516,-0.16224002632226775,-0.04197560274511687,-0.04530294341355607,-0.8692737124860593,-0.010860731446062033,0.8470976346475529,5.238704717672465,-6.41497424675315,0.5648874943788182,0.07118131076281209,0.6185404766289782,0.03303680928554603,-0.03303680928554603],[-0.420270554347214,-0.44189193375097136,0.49624087753030743,0.5260914771484698,-0.16016986657235377,-0.420270554347214,-0.44189193375097136,0.49624087753030743,0.5260914771484698,-0.16016986657235377,-0.13250385110240398,0.49751362339833316,2.970997974819021,-4.730966920447927,1.0883680365580861,-4.439005610040493,0.6769359617972059,-2.7062287176898154,6.774889502707174,1.2624553222200643,-1.2624553222200643],[-0.04099710073521029,-0.05122146796746502,-0.15562817287810557,0.22608195078024226,0.021764790799205735,-0.04099710073521029,-0.05122146796746502,-0.15562817287810557,0.22608195078024226,0.021764790799205735,-3.1807491097328944,1.8091319022166923,1.971754788299157,-3.987299392757537,5.754302419508644,-4.961815394731536,6.51231023798596,0.14606315844757423,-4.0636986092290925,0.20641270223835534,-0.20641270223835534],[0.044061451743777263,0.38072356911203137,-0.7466708163092738,-0.0006626543717516212,0.32254844982732933,0.044061451743777263,0.38072356911203137,-0.7466708163092738,-0.0006626543717516212,0.32254844982732933,-0.28362591434491935,-0.5965232417114423,4.001120438043614,-3.4845609088241742,1.179907957896614,-2.5516254795799065,0.14612942513515484,1.2192638053812521,0.3699139180146426,0.07996371249234299,-0.07996371249234299],[-0.03873745616049527,0.0847018606053794,0.16413798357862988,-0.23817257246898157,0.028070184477513554,-0.03873745616049527,0.0847018606053794,0.16413798357862988,-0.23817257246898157,0.028070184477513554,-1.1543307123354916,0.007417874895139842,0.09772627307222198,-1.4714928694361475,-3.9435105490259303,3.59442665057729,-1.803556969108587,5.4843515003372385,-0.8110311989773136,1.3663487214694872,-1.3663487214694872],[-0.0520609528490046,0.3010945120563092,0.41362805817291626,-0.5868573398322618,-0.07580427755214952,-0.0520609528490046,0.3010945120563092,0.41362805817291626,-0.5868573398322618,-0.07580427755214952,2.1763077484346542,1.179946757345148,-2.1163418066225144,1.0931891187219207,-1.7391339380457316,1.8507412656148674,1.0871453341681803,-1.2089031461756905,-2.3229513334219916,-0.1567940694313192,0.1567940694313192],[-0.6257186745670285,0.11048138924891968,-0.08665281015529686,0.4403569569776181,0.16153313848756065,-0.6257186745670285,0.11048138924891968,-0.08665281015529686,0.4403569569776181,0.16153313848756065,-2.8342623534590112,-0.8098151268012266,0.4310052205587427,0.8129291475566169,-3.965399351121471,3.889645625992423,0.494147684023364,-0.5284138437922459,2.5101629970529156,-0.43411924132132546,0.43411924132132546],[0.03667292716992854,-0.09899524994903569,0.3536864597795809,-0.16024557182268717,-0.13111856516055337,0.03667292716992854,-0.09899524994903569,0.3536864597795809,-0.16024557182268717,-0.13111856516055337,-4.838152251977529,-0.08165046680273336,-0.3931989898423285,0.26611938828852844,1.5617919689721214,-2.129580531377527,-1.8219364481559759,-1.769083369539158,9.205690700433609,0.20873006834713878,-0.20873006834713878],[0.09365257410415653,0.3633636806253053,-0.33393983299861213,0.09296372547566711,-0.2160401472010099,0.09365257410415653,0.3633636806253053,-0.33393983299861213,0.09296372547566711,-0.2160401472010099,-2.8699662712472644,-0.15368808872737505,0.888598658949144,-1.0129426588697676,3.8432193170145528,-2.3832744751118518,-0.05127442951804717,-1.0871990621534469,2.826527009652925,0.2780320886383539,-0.2780320886383539],[0.10002662292923364,0.14492225651710527,-0.5408264968606279,0.12888397852774566,0.1669936388752678,0.10002662292923364,0.14492225651710527,-0.5408264968606279,0.12888397852774566,0.1669936388752678,-2.1957446034086523,-3.263577810219858,3.236518803406476,0.6285935183839656,-5.257244901233024,4.2959024714856415,3.777181727408791,2.097716455829515,-3.3193456616489057,-0.6015345115653048,0.6015345115653048],[-0.0026401560194171886,0.4268393577376004,0.1510098168199957,-0.23953882913497318,-0.3356701894269263,-0.0026401560194171886,0.4268393577376004,0.1510098168199957,-0.23953882913497318,-0.3356701894269263,-2.3398668679503176,-1.414460237616324,1.3854119840289387,1.0111690438208976,-2.0779158948717296,3.2812462735106283,-2.127122278430358,-2.199690536453287,4.481228513949899,-0.9821207902439624,0.9821207902439624],[-0.5553711592836426,0.4560990904641221,0.21949430610839016,-0.33906784977299814,0.2188456124772918,-0.5553711592836426,0.4560990904641221,0.21949430610839016,-0.33906784977299814,0.2188456124772918,-4.247480776450521,-2.7185767508456435,0.4961693997139692,1.978093833073766,2.178301807719449,0.206492741607681,1.1445462308737593,-3.5697488733353095,4.532202387638963,0.24431351805932233,-0.24431351805932233],[0.3361595062968141,-1.077811137997294,0.9683343528774715,0.06985079155619055,-0.2965335127366077,0.3361595062968141,-1.077811137997294,0.9683343528774715,0.06985079155619055,-0.2965335127366077,0.7706178178746139,0.10068550018392058,1.3174977937459804,-1.0514924537300656,-0.24864670168286218,4.347265582679774,3.258718445936538,3.910126678897883,-12.40477266389227,-0.366690840199532,0.366690840199532],[-0.25374654364948845,-0.3633343056208731,0.7303952637055615,0.08505705718862702,-0.19837147164127764,-0.25374654364948845,-0.3633343056208731,0.7303952637055615,0.08505705718862702,-0.19837147164127764,0.8673429079652148,3.2207653642561755,-0.0790077227364987,-2.0712142999200096,-0.3317042252435835,1.7428557312567774,1.7453122025106234,-1.538032416406792,-3.556317541674055,-1.0705433415905201,1.0705433415905201],[0.26759569171679887,0.5268751060924952,-0.27734216806379086,-0.5051111955853019,-0.012017434175184305,0.26759569171679887,0.5268751060924952,-0.27734216806379086,-0.5051111955853019,-0.012017434175184305,0.7000312173686725,3.626019128487641,-0.4606474674931503,-2.8477020792454018,-0.41618536747368606,1.359789486289677,1.2865045548032987,2.054531180760345,-5.302340653489514,-0.31766958174157583,0.31766958174157583],[0.392029781388001,0.4360455585908902,-0.5774210326042012,-0.25312873229872646,0.0024744249296201476,0.392029781388001,0.4360455585908902,-0.5774210326042012,-0.25312873229872646,0.0024744249296201476,1.0864963587592154,-3.4430079281569173,3.4713320854134837,-0.533375750005973,0.29609663367950967,-2.0490136328325907,1.4552374798651107,0.9505199289538964,-1.234285175670475,0.5050515927466992,-0.5050515927466992],[0.36657298815654693,-0.003248039480786988,-0.563548680808819,0.08943011266735325,0.11079361947938143,0.36657298815654693,-0.003248039480786988,-0.563548680808819,0.08943011266735325,0.11079361947938143,-5.2730252368692065,-3.3576320541927074,3.7532441911058236,-1.0759508602387313,-2.504819565937308,2.9370631090572523,-1.4925630858926435,2.219913858320998,4.793769644631855,0.6803387233226403,-0.6803387233226403],[0.22141319185718908,-0.26047840625176444,-0.4444050711260068,0.23212978872009724,0.251340496794066,0.22141319185718908,-0.26047840625176444,-0.4444050711260068,0.23212978872009724,0.251340496794066,-3.565328178964232,-0.6455644235028865,-0.1988081749229922,0.6749164476487951,-5.369203148876831,10.09666896630563,0.964395636667839,7.0357528689673146,-8.992829993327206,0.16945615077985232,-0.16945615077985232],[-0.6527567711880264,-0.5270949464181864,0.5036654639908851,0.5256226206070397,0.1505636330138541,-0.6527567711880264,-0.5270949464181864,0.5036654639908851,0.5256226206070397,0.1505636330138541,0.8039177635776593,-2.2172128276194547,0.7725160392455063,1.340220935495498,1.6952652661559777,0.07727741275290168,-3.7291510583514618,-1.6798991568127564,2.9370656255613325,0.1044758528793988,-0.1044758528793988],[-0.05121782114455456,0.28377460626704637,-0.2682622677431811,-0.29210943451276805,0.32781491712616695,-0.05121782114455456,0.28377460626704637,-0.2682622677431811,-0.29210943451276805,0.32781491712616695,0.8667643446413,0.19637993562462785,-2.7843043424109775,2.912326807501604,0.2702127230248301,-0.14178376194386866,-4.517951946890541,-1.1817728988984106,4.380129139341595,-0.3244024007247275,0.3244024007247275],[0.007006508492060831,-0.005576767613426709,0.04442078731518608,-0.28172976511853587,0.23587923692492024,0.007006508492060831,-0.005576767613426709,0.04442078731518608,-0.28172976511853587,0.23587923692492024,2.323515757075664,2.2036558422568184,-0.6388238114197353,-1.2609657477539247,1.9978581725303592,0.8684037432495562,0.06864748412494182,1.1840402480174377,-6.74633168808448,-0.3038662830909786,0.3038662830909786],[-0.0068618179614590435,0.031373510267339255,-0.7634047876725379,0.4214413060996607,0.31745178925048,-0.0068618179614590435,0.031373510267339255,-0.7634047876725379,0.4214413060996607,0.31745178925048,0.9712298717945768,0.6502931343532077,-0.44072479689321187,-0.3371664636874073,2.6491243178294805,-4.836355921588337,0.6759307595256685,0.3752831483283196,0.29238595032245196,0.12759812621362818,-0.12759812621362818],[0.5973808230140676,-0.07391865331192624,0.27312961094480115,-0.07732693233373583,-0.7192648482893621,0.5973808230140676,-0.07391865331192624,0.27312961094480115,-0.07732693233373583,-0.7192648482893621,2.040942568337123,-1.9270293102239457,0.2343160368798387,1.1716284499391563,1.2647786014612703,-2.3233084734463247,-4.638937974665686,5.830481493941681,-1.6528713922089247,0.5210848234027708,-0.5210848234027708],[-0.13694193844419617,0.46244096187176803,-0.05835452925863998,-0.2762591108108488,0.009114616654546437,-0.13694193844419617,0.46244096187176803,-0.05835452925863998,-0.2762591108108488,0.009114616654546437,-1.4131810259699624,-3.329730998178868,1.4613070484534534,1.5897894759840363,0.5317547287739008,-0.30775734312358094,0.7042926959637681,0.22569546883036384,0.5378299492697325,0.278634473747599,-0.278634473747599],[0.43669946634915985,-0.24665099236811833,-0.008611151114409563,-0.037755930784005784,-0.14368139206081967,0.43669946634915985,-0.24665099236811833,-0.008611151114409563,-0.037755930784005784,-0.14368139206081967,-2.3822722328747483,-1.3135424803218905,-1.2916008081571928,2.901858456146651,-2.0089540445296556,5.054200788163339,-2.8002348035710964,-1.0593897965629653,2.899934921712357,-0.29671516766421957,0.29671516766421957],[0.38542188150550843,-0.20092644161559342,-0.3705385554626467,0.0023721020594124897,0.18367101353689602,0.38542188150550843,-0.20092644161559342,-0.3705385554626467,0.0023721020594124897,0.18367101353689602,-3.5749291331837645,-3.136737228280214,1.9494553350348123,0.4934511823055743,-4.826089475360608,7.241991371923618,1.8044636270410588,5.9703260552453035,-5.921931734735681,0.6938307109385016,-0.6938307109385016],[0.16401296255904863,0.334537378113371,0.12225490268067506,-0.5193028531440933,-0.10150239019574628,0.16401296255904863,0.334537378113371,0.12225490268067506,-0.5193028531440933,-0.10150239019574628,3.542972015835397,-2.403707338412006,2.6978857802405845,-0.5196069190818492,-3.5572439620399345,4.736473174616468,0.709235753478296,2.084152211283329,-7.2901607159166115,0.22542847725319204,-0.22542847725319204],[-0.10624023080987431,0.4351527376061619,0.31183699603657017,-0.688146137512138,0.04739663468154985,-0.10624023080987431,0.4351527376061619,0.31183699603657017,-0.688146137512138,0.04739663468154985,1.0144617908335605,-5.528975925499048,2.779996193450874,3.0423198233156947,0.5726118217215403,-1.4437684449609005,-0.5672732552116642,-1.6086776259458095,1.7393056222831516,-0.29334009126492444,0.29334009126492444],[-0.3610317302328238,-0.32867184096380386,0.4016580620596737,0.11795361274697946,0.17009189638737793,-0.3610317302328238,-0.32867184096380386,0.4016580620596737,0.11795361274697946,0.17009189638737793,-2.4768898121934226,-3.1578885051822443,1.8322954282415145,1.4939781257329832,1.2932231400346677,-4.787818187198065,5.742151081555396,-5.993050231095558,6.053998960099593,-0.1683850487959363,0.1683850487959363],[-0.4942759933194921,-0.2431164662514933,-0.049569700352714324,0.4348094406951262,0.3521527192477678,-0.4942759933194921,-0.2431164662514933,-0.049569700352714324,0.4348094406951262,0.3521527192477678,-2.3504804777810193,-5.327866069670273,5.644480580608407,-0.6991232933744587,0.6866588996203855,1.2410784622596887,-1.0435823021411728,2.280768529979434,-0.43193432950531074,0.3825087824350173,-0.3825087824350173],[-0.3191169471681371,0.2339400051828084,0.14013753470447132,0.12053266300903623,-0.17549325572620708,-0.3191169471681371,0.2339400051828084,0.14013753470447132,0.12053266300903623,-0.17549325572620708,0.06180059390927384,0.5642364334154357,1.0437016465798068,-0.6895764358934124,0.19105548497886216,-2.5948150411452566,4.872678667698009,-2.7650679104143467,-0.6840134391297559,-0.9183616440970376,0.9183616440970376],[-0.19120440630716226,0.25375104831359785,-0.03294998151167519,0.2812582508806589,-0.31085491135157034,-0.19120440630716226,0.25375104831359785,-0.03294998151167519,0.2812582508806589,-0.31085491135157034,5.673514920703057,0.7421613072156545,1.5806260812201371,-1.8208085249659538,1.7201265241306092,-3.2841914209154703,1.9958149951829918,-0.055533184714494865,-6.551710697870056,-0.5019788634738944,0.5019788634738944],[-0.06269256411681884,-0.35919655462745614,0.38978514779351925,-0.18942348750152133,0.2215274584566477,-0.06269256411681884,-0.35919655462745614,0.38978514779351925,-0.18942348750152133,0.2215274584566477,1.80815313514168,4.057400457141679,-0.9828107916472857,-2.718621371725238,2.254304155289851,-1.9895207823776309,1.0226930623405266,2.7554896443906687,-6.207087508560672,-0.3559682937774915,0.3559682937774915],[0.2766826667407155,0.46358495674049505,-0.41648989337599374,-0.17089987895564823,-0.1528778511320465,0.2766826667407155,0.46358495674049505,-0.41648989337599374,-0.17089987895564823,-0.1528778511320465,-0.12266684944314726,-0.9773296358196217,-1.0898318189809348,1.7405795721318693,0.7139372927774965,-4.15011033381679,-0.9134039547322836,-1.5635178913616012,6.362343619242811,0.3265818826793319,-0.3265818826793319],[-0.3355755905250373,-0.13006698909875303,-0.09583908280111134,0.4585539232472022,0.10292773917359067,-0.3355755905250373,-0.13006698909875303,-0.09583908280111134,0.4585539232472022,0.10292773917359067,-2.2992198973039826,0.9097248173291839,-1.6562293262022816,0.8652497474434586,0.5425930308359734,2.59402019370958,-4.942213156128387,-2.5294948463778617,6.515569436699108,-0.11874523856205892,0.11874523856205892],[0.4506891476271014,0.575729114936073,-0.5613783975701926,-0.615197856638333,0.15015799165764332,0.4506891476271014,0.575729114936073,-0.5613783975701926,-0.615197856638333,0.15015799165764332,-1.7092564485626678,-0.1694618457913406,-1.7172814179570515,1.4575075894619212,-1.8128819582808924,1.0816840984165053,-2.0202068703919824,4.9001841104567605,-0.01028725736225039,0.429235674289044,-0.429235674289044],[-0.16228311130450945,0.6808771953649042,-0.411572979361245,-0.19990456008998314,0.09288345537660367,-0.16228311130450945,0.6808771953649042,-0.411572979361245,-0.19990456008998314,0.09288345537660367,1.2235266046924511,0.49729611088275116,0.00444567131697525,-1.0625447083536683,3.3600326182374873,-1.0332816769693798,-1.6788258032955903,-2.5603659252922264,1.2497171087902115,0.5608029261569486,-0.5608029261569486],[0.4567496859684561,-0.3648131880306826,-0.20587485147367596,0.16180417394066865,-0.04786582041943044,0.4567496859684561,-0.3648131880306826,-0.20587485147367596,0.16180417394066865,-0.04786582041943044,-2.5478145730931594,0.9102105736738428,0.44646565174003094,-1.0781729610297657,1.0790888469529563,-3.3384117754496625,3.338997490756271,0.2858153255159419,0.9038214209192397,-0.2785032643902662,0.2785032643902662],[-0.4867683824921498,0.1272987773556947,0.22642768105251315,0.1999845916915352,-0.06694266760416968,-0.4867683824921498,0.1272987773556947,0.22642768105251315,0.1999845916915352,-0.06694266760416968,-1.6614563141705696,2.7847886988620005,-1.3354058437087586,-0.9204849033369824,-0.865993067586074,0.05615507481394577,-1.4116359887316476,-2.6480463347829706,6.002078678642134,-0.5288979518289638,0.5288979518289638],[-0.0004722318469835285,0.8308981599463204,-0.29339849816111885,-0.5465597226968641,0.009532292768700684,-0.0004722318469835285,0.8308981599463204,-0.29339849816111885,-0.5465597226968641,0.009532292768700684,2.362304472840651,-1.6646459756649434,1.625496352293073,0.27983941891004593,-2.6077613803664104,0.6530512862673001,2.1670411611785996,-1.0661963821376073,-1.749128953318682,-0.24068979555376227,0.24068979555376227],[-0.02105270366833533,0.11837859321964425,-0.2539370415141292,0.17438615398272955,-0.017775002026898454,-0.02105270366833533,0.11837859321964425,-0.2539370415141292,0.17438615398272955,-0.017775002026898454,-0.320427226321202,-0.5764860294715319,-2.005322016211401,2.014445052229366,1.220650212087434,2.2400272420893974,-0.9758146782643173,2.0346209204228805,-3.63169347655038,0.5673629934517626,-0.5673629934517626],[-0.42283511606873647,-0.023537576969339558,0.08443168490426747,-0.43926756487512086,0.8012085730000735,-0.42283511606873647,-0.023537576969339558,0.08443168490426747,-0.43926756487512086,0.8012085730000735,-0.961130230597182,1.8825426598454027,1.4560195721462768,-2.827299693074635,-5.207616237635082,7.888836035928408,0.3273199369263482,1.2869838039263906,-3.8456558474762685,-0.511262538918136,0.511262538918136]]},\"implementation\":{\"runtime_sha256\":\"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7\",\"shared_runtime\":{\"legal_codec_sha256\":\"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290\",\"native\":{\"dependencies\":{\"ipfs_datasets_py.logic.intent_ir.decoder\":\"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257\",\"ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar\":\"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b\",\"ipfs_datasets_py.logic.intent_ir.schema\":\"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56\",\"ipfs_datasets_py.logic.security_ir.model\":\"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39\",\"ipfs_datasets_py.logic.software_verification.program\":\"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91\",\"ipfs_datasets_py.logic.ui_ux_ir.decoder\":\"d7be6bff3a1f1464d4783567b90942258ef718bc1c2b7e02938698ed4e619e57\",\"ipfs_datasets_py.logic.ui_ux_ir.schema\":\"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855\",\"ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula\":\"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36\"},\"runtime\":\"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6\",\"scope\":\"listed_numerical_and_native_validator_modules_only\"},\"numerical\":{\"files\":{\"canonical_contracts.py\":\"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b\",\"legal_formula_codec.py\":\"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290\",\"legal_ir_grammar_decoder.py\":\"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd\",\"modal_latent_formula.py\":\"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36\",\"tree_pin.py\":\"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d\"},\"scope\":\"listed_latent_decoder_and_grammar_sources_only\"},\"runtime_sha256\":\"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4\"}},\"input_transform\":{\"mean\":[-0.12184401570843481,-0.08938719757861839,0.06662569679219943,-0.027160337656473757,0.047961838066664084,0.08070047214818653,0.1254148994487495,-0.042121741315159396,0.022298510640778108,-0.05868294088003362,-0.028796274640285776,-0.18886086691335613,0.0030877778830257045,0.04944801812095462,-0.027986818004051686,0.014111553992548587,0.019717309809442685,0.048641250601605755,-0.11268337973644381,-0.04957501345217038,0.13270013339306608,-0.09121089279219506,0.06949406382544307,-0.06476945608635493,0.046278007466999296,0.0854963126275537,-0.02872442705920661,0.01586151031318103,-0.005622844785936904,-0.39943136522080774,-0.06304995928308652,-0.07244981836296283,0.1152615441850431,-0.15774034297310024,0.017950239121368842,-0.06325189095077341,-0.11180172119008898,-0.08604539284543271,0.09786521889384073,0.001318165790805157,0.065141910321778,0.11766434011676319,-0.05426660725004065,-0.1357274401112081,0.04811378658642949,-0.10822514588738784,-0.13959768018565027,0.009006884091684209,-0.018120809209431897,-0.08353618788582022,0.02056842614622045,-0.03415729561211411,0.05511588827120085,0.0687083697542274,0.0052050871716925505,0.02470686493630447,0.0744178047261782,0.07645438235451571,-0.01867182314884821,0.04160643930960555,-0.07220862636682665,0.07895720786212881,-0.39342883479618973,-0.16059253282494024,0.06699932024298155,0.03336703424386124,-0.10784919294250975,-0.09960329663438901,-0.16733165676358658,0.0929182713500876,-0.03739689643454599,0.04063161016379711,0.08162678713673098,0.026342226659144416,0.12372178342042577,-0.11659179552721508,0.08483536656357724,0.048439674370867936,0.07101222511828478,-0.01600944781998595,-0.028137154579310413,-0.13734868012765175,-0.03645063124245833,-0.004269652810366249,0.05465558660994409,-0.07602851023162055,0.1365757483243763,-0.030446880190457402,0.10138966577304397,0.038864186387944644,0.02719203229598198,0.07452593621732942,-0.13900079042977279,0.017971732391245568,-0.08772991759672699,-0.16737502198863613,0.04442925522901316,-0.006564754181127234,-0.17861786120589257,0.3492615292616067,-0.08298654870149445,-0.04623379802932385,0.10847924482647638,-0.009826117858287386,0.04224281974402248,-0.026599679535067557,0.0567321634801561,-0.05367853027581911,0.012066503360721986,-0.14583707449327638,-0.008864897579213354,-0.04377565773865735,0.15416311364218988,0.0027735461302067846,-0.10465993951433598,0.17647110496570534,0.013701706054168736,-0.009934192539964803,-0.09280305986200539,0.01787715822357915,-0.043722194576309666,-0.0024438160151653565,0.047663161233073785,-0.022931153604481454,0.02299698225244312,-0.02398037165599102,0.1015920147673309,0.13700224525536067,-0.08662882733351154,-0.036310835866187774,0.04894068315711788,-0.15459728084358243,-0.07502485532676356,-0.09784051995466159,0.021475602771131464,0.0009765632311400166,0.017655436474852543,0.06257736920639943,0.07799886745644301,-0.006072644440584678,0.05121345995776023,-0.13975287216123808,0.05815890386453455,-0.16903677273628914,-0.13873243095640658,0.2414392103536023,-0.037385682221007056,0.03746305337176929,-0.02242377116308674,-0.11238844724600205,0.04085382622394651,-0.021227720483694063,0.0709153957638085,-0.20225726832105956,-0.001631302125303883,0.09439132826831242,-0.019866925981713503,0.08346243471863267,-0.14407734502620406,0.01650117019817396,-0.010498160749435121,0.014212902968225805,-0.20800463111896156,0.06718077633010286,0.006458369001406252,-0.07087109351377244,-0.07022213871411773,0.0015878307597723094,0.08868113885815478,-0.036092295763387905,-0.08613096386887686,0.06901280747189135,-0.06545687737827224,-0.07672778045857599,0.2365890106877725,-0.002560759857578568,-0.15734326100551677,-0.02456786743978789,0.10880239100176439,0.11923102285406346,0.009234881971101103,-0.04378213046693767,0.01279978979079123,-0.05359450346337194,0.08963833750497376,-0.08593089354291139,0.0009500804069568912,-0.06283016061777906,0.03852088861445112,0.18184206893209348,-0.05843721054758428,-0.07061953023485923,-0.13826457203524595,0.04732324868594884,0.09763359065938217,-0.0656470988534675,-0.053668439170240737,-0.07605844500993678,-0.018798145041463526,0.10769610623660142,0.01164371875078855,-0.04936846983126036,-0.047753340666980254,0.05076415180518352,0.10751632962576052,0.21825888413239114,-0.13883992066131373,-0.014756412744921796,-0.004927991387599907,0.15183830986318197,-0.09374873089243387,-0.04759966021878529,0.19347826292929135,-0.011830992798829553,-0.1146026603368508,-0.020972858583708422,-0.007278473700811394,0.0869195495150297,0.04633379038247023,0.04616008944153568,0.030443707501127598,-0.041064952979320425,0.13279903120392564,-0.2849138692439384,-0.02419484415918242,0.0017768603132139217,-0.1488410850926564,0.0814059196730007,-0.1833060143532973,-0.04680138528187015,-0.04322724476667864,0.043455003762986014,0.03873305454447957,0.046621977076897185,0.10549794837262721,-0.02335895264668134,0.125746146458494,0.04459051344637154,-0.06511981129193908,0.08658400374691123,0.0948323330465128,-0.02841052070115576,-0.03732687077734254,-0.03256242454933707,0.05648460967024879,0.031887755146895236,-0.14234683292227968,0.00651606314505539,-0.1595171625159846,0.26482205795781594,-0.04603227796751541,0.06322727527049948,-0.06379160807346343,0.08437295343593726,0.06648570649615418,-0.006121002913911565,-0.14897257583002657,0.04257563285885235,0.019338267889331174,-0.03355906626656942,0.10187998959197958,-0.028765668387532445,-0.01784292002243821,-0.006171015473651353,0.15238692908255178,0.043144869770715674,-0.1385695399805247,-0.05773312556588896,-0.05318538046432292,-0.02633298680775134,0.13907513037399838,-0.1231188623958468,0.0365985687241629,0.01954701232584329,-0.05757859445115772,-0.021253287251333904,0.05988687871897551,0.10120060212956788,-0.02203934415409986,-0.1333894230846351,0.09439101302878396,-0.053994311769249445,-0.017991894982212646,-0.017022936949790964,-0.0486487342392972,-0.05345437266278981,-0.16091434466203025,0.039096916905816015,0.09666139836091993,0.01385396377684743,-0.09168558453058182,-0.0050670491730969575,-0.1207950299823153,-0.024446230865163513,0.10480519114384579,0.13841798292408308,-0.007832008374984113,-0.00019380503069623377,0.11009419851672712,0.14069455423544347,-0.017552069697611382,-0.04161312085693329,-0.01016925990006155,0.14577944773043583,-0.1301385396965359,-0.05165751634385072,-0.014510999381863728,0.08342120625988252,-0.004184748393135901,0.10372567684461481,-0.015139519909559147,-0.0741857603583756,-0.08070752023752764,-0.05486767040273936,-0.015775260414910897,-0.05641390127901918,-0.18304463603028717,-0.07801637662535287,0.29733288523797546,-0.43614566179836045,0.0682465066806156,0.04282717783773639,0.10385784026144505,-0.026012255926984005,0.08498569035198039,0.03380115447377137,0.09750142927148846,-0.06190436247929231,0.04256924519877593,0.08311129241446728,-0.014099757075031654,0.12091999127978384,0.035173205315984286,-0.04844394426561824,0.003483725012781544,0.017639193911794093,-0.1501126418932819,0.1825205783526594,-0.04438371695807647,0.05716176305038635,-0.2103549870098092,0.20175956195006078,-0.011733896976530092,0.06909995364364821,0.08978141591995047,-0.07694391294893183,-0.04405509634241686,0.04311108176030315,-0.1710896297248742,0.049907565443489406,0.010924320941232073,0.15087930563958446,-0.09366962165045908,0.13051158445675362,0.04905751583800959,-0.015584204392855903,-0.00918827638569785,0.07060143030899395,0.15923370440714926,0.07257211814757372,-0.04629770381946503,-0.048671114468962474,-0.1390014424580476,0.1300248739943473,0.030505768335908113,-0.03170424215588412,-0.06653924098437129,-0.043453985372401485,0.08471562403577987,-0.03821191951148285,0.05345856903139079,-0.06306796318439135,-0.10455507102608215,0.0318197915128704,0.07781593749545365,0.10866026884274094,0.08074079464026135,-0.12723029396271424,-0.11290669227810969,-0.13192631833475227,-0.06990904979974988,0.022821858167655588,0.07990789211425199,0.07828234709025729],\"origin\":\"training_projected_embeddings_only\",\"scale\":0.38233789371424615},\"lineage\":{\"parent_encoder_frozen\":true,\"parent_modified\":false,\"projection_tensors_inherited_exactly\":[\"projection_down.weight\",\"projection_down.bias\",\"projection_up.weight\",\"projection_up.bias\"],\"random_parameters_used\":false},\"parent_binding\":{\"core_sha256\":\"bec522e21c4efcfa763b965f655e86cc5afca80c8e1449be7d9b8fac144c646c\",\"dimension\":384,\"domain\":\"legal_ir\",\"lineage_id\":\"current_legal_v2\",\"runtime_profile\":\"modal-latent-joint-formula/v1\"},\"parent_sha256\":\"969461ab82a2806e54ad33ba242a1eb62d032fa1b3cfc808b77c66dcc965aa62\",\"projection_sha256\":\"4e90ec5a3ff3978d3f6d40fb366ea01f2a056fe6c59b3fddcf7c50f66366afd7\",\"projection_state\":{\"projection_down.bias\":[0.02702881209552288,0.02693955972790718,-0.012335220351815224,0.045837923884391785,0.06817162036895752,0.0021782617550343275,-0.03774780407547951,-0.040577247738838196],\"projection_down.weight\":[[0.06466898322105408,-0.09810582548379898,-0.08683871477842331,-0.056220073252916336,-0.0718034878373146,-0.17768777906894684,-0.0874454453587532,0.049600016325712204,-0.14642980694770813,-0.005087248515337706,0.07333462685346603,-0.12209892272949219,-0.01653285138309002,-0.22467169165611267,-0.35406479239463806,0.06926660984754562,-0.07348794490098953,0.3798016905784607,-0.15367431938648224,0.0836157575249672,0.2697937786579132,-0.006180059630423784,0.0551716648042202,0.026255082339048386,0.040723878890275955,0.06303787976503372,0.08765852451324463,-0.05247742310166359,-0.014035237021744251,-0.015224271453917027,0.0016324706375598907,0.0046084290370345116,0.0687558501958847,-0.06524475663900375,0.06944269686937332,-0.12278956174850464,0.10279528796672821,0.043851591646671295,0.009433931671082973,0.10735991597175598,0.12102844566106796,0.1468384861946106,0.035822149366140366,-0.058550599962472916,0.0155038395896554,-0.07205735892057419,-0.06583081185817719,-0.07233728468418121,0.007059164345264435,-0.0607648566365242,0.050392527133226395,0.05634329095482826,-0.031303465366363525,0.06692103296518326,0.07897941023111343,-0.15733376145362854,-0.16421440243721008,-0.012805888429284096,0.05053570121526718,0.03401434049010277,-0.016022125259041786,-0.25826528668403625,-1.946112206496764e-05,0.02268487773835659,-0.05589814856648445,0.05426473170518875,-0.10372669249773026,-0.11930686235427856,0.041233841329813004,-0.08523052930831909,0.08626450598239899,0.0056181917898356915,0.05149395391345024,0.0900464579463005,0.025795498862862587,-0.005110628437250853,-0.028782188892364502,-0.16010616719722748,-0.1766773760318756,0.013848550617694855,-0.13297197222709656,-0.039708174765110016,-0.10323145985603333,-0.2874380350112915,-0.031415071338415146,0.19995266199111938,-0.09355652332305908,0.08492478728294373,-0.10533872246742249,0.07008779048919678,-0.12816382944583893,0.02131389081478119,0.05438694357872009,-0.20297396183013916,0.02150452882051468,0.03760765120387077,0.014484723098576069,0.02008679322898388,0.0454871691763401,0.04226844757795334,0.02650018222630024,-0.10980898886919022,0.053241536021232605,0.06340913474559784,-0.13214093446731567,-0.006212824955582619,0.09577438235282898,0.2725502550601959,-0.023708755150437355,-0.03188098594546318,0.06707213819026947,0.22559556365013123,0.005754335783421993,-0.06073545664548874,0.023132605478167534,-0.024956800043582916,0.0042699468322098255,-0.023926924914121628,-0.0009504166664555669,-0.07223442196846008,0.11041976511478424,-0.044763170182704926,0.30728429555892944,0.033525045961141586,0.0008791099535301328,0.1728850156068802,0.01056746393442154,0.06927864253520966,0.044119711965322495,0.15222090482711792,-0.09899165481328964,-0.11714576184749603,-0.07174886018037796,-0.12524062395095825,0.13308820128440857,-0.03580915927886963,0.1554003357887268,0.14406071603298187,0.04963205009698868,0.004079387057572603,-0.006076662801206112,-0.10364627093076706,0.029676387086510658,-0.09849150478839874,0.02328908070921898,0.0019853150006383657,0.2570028305053711,-0.038419704884290695,0.007904252968728542,0.15323689579963684,-0.08715542405843735,0.0958588719367981,0.028619514778256416,-0.14201869070529938,-0.03893861174583435,0.05215120315551758,0.052754007279872894,-0.07623912394046783,0.029864422976970673,0.10368738323450089,-0.150884747505188,0.10997458547353745,0.0407584011554718,-0.007883618585765362,-0.04071173071861267,0.15556217730045319,0.08756168186664581,0.004087366629391909,-0.0129695488139987,-0.08228509873151779,-0.04885030537843704,-0.05857379734516144,0.10003947466611862,0.04348079860210419,-0.058894891291856766,-0.07227800041437149,0.0885881632566452,-0.24420464038848877,0.046209294348955154,0.2387552410364151,-0.1099063903093338,0.011613654904067516,-0.04471627622842789,-0.10445969551801682,0.1409701555967331,0.03951752930879593,0.011706627905368805,0.08400789648294449,0.01686403527855873,0.03835729882121086,-0.019930444657802582,-0.028756672516465187,-0.049762170761823654,-0.12574227154254913,-0.0845496878027916,-0.06923612952232361,-0.005972685292363167,0.14868131279945374,-0.03600412607192993,-0.05713707581162453,0.04001905769109726,-0.08150073885917664,-0.06715108454227448,-0.021329687908291817,0.03875979036092758,0.03522132709622383,-0.12918005883693695,-0.05278089642524719,0.1453598141670227,0.027192372828722,-0.12696228921413422,0.09372665733098984,-0.16076496243476868,0.05841439589858055,0.06256449222564697,0.04715799540281296,0.005334134213626385,-0.2553449869155884,0.04112226516008377,-0.08125029504299164,0.016947897151112556,0.011871556751430035,-0.023987526074051857,0.031199192628264427,-0.18905006349086761,0.0022048712708055973,-0.17840057611465454,0.034600526094436646,-0.005879097152501345,-0.15274693071842194,0.21577617526054382,-0.0452951155602932,0.034261491149663925,-0.009627770632505417,-0.051685404032468796,0.20583079755306244,-0.1309507042169571,-0.14567582309246063,0.0013324787141755223,-0.02613411657512188,-0.201371967792511,-0.014737110584974289,0.3391685485839844,0.3181505501270294,-0.2529599070549011,-0.06706078350543976,0.015207115560770035,0.05933918058872223,-0.007083524018526077,-0.02091269940137863,0.05997391417622566,-0.00867418758571148,-0.03825237974524498,0.1415933519601822,0.09511056542396545,-0.02778354473412037,0.298974871635437,-0.03184689208865166,0.0646226778626442,0.04758336395025253,0.03733786940574646,0.43914473056793213,-0.3089257776737213,0.06945810467004776,-0.08679316192865372,0.03400104492902756,-0.07637541741132736,0.06452962756156921,-0.0414334200322628,-0.01524137333035469,0.005225845612585545,-0.26235806941986084,0.13590577244758606,0.2637728154659271,0.05307285860180855,-0.1251746118068695,0.13591839373111725,0.06165159493684769,-0.0026493407785892487,-0.007757463958114386,-0.009625515900552273,-0.03680594265460968,-0.11328509449958801,0.04547548666596413,0.12245618551969528,0.1545453518629074,-0.018479807302355766,-0.07516943663358688,0.1498684138059616,0.11813843995332718,6.86059138388373e-06,0.09467394649982452,-0.05514898896217346,0.051523804664611816,0.05596762150526047,-0.032835185527801514,-0.16589827835559845,-0.06814224272966385,0.03001543879508972,0.11916596442461014,-0.07411770522594452,0.05333150550723076,0.09588763117790222,0.019747890532016754,0.05948232114315033,0.07816340029239655,-0.019118087366223335,0.16499143838882446,-0.03079262375831604,0.13268686830997467,-0.1978655755519867,0.004088857211172581,0.09152495115995407,-0.16557061672210693,0.01983088068664074,-0.06268690526485443,0.03534739837050438,-0.06886456161737442,0.03598440811038017,-0.03493037447333336,-0.17899693548679352,-0.10916488617658615,-0.0813538208603859,-0.11286366730928421,-0.19177769124507904,-0.3215395212173462,-0.012636900879442692,-0.009525598958134651,-0.08799821883440018,-0.07306486368179321,-0.08930588513612747,-0.019991975277662277,-0.008874517865478992,0.022238794714212418,0.0863051787018776,-0.05484628304839134,-0.059125807136297226,-0.10620251297950745,-0.006726310588419437,0.015362540259957314,0.00889296643435955,0.1280638873577118,-0.09959903359413147,-0.08785704523324966,-0.18805231153964996,0.0338701568543911,0.03775198012590408,-0.05605702102184296,-0.033092744648456573,-0.04990406334400177,-0.04833279177546501,0.023162618279457092,0.09343845397233963,-0.0077048796229064465,0.10559744387865067,0.11362972110509872,0.14299219846725464,0.011766393668949604,-0.13342054188251495,-0.04893044754862785,0.08401224762201309,0.06348008662462234,-0.0017764490330591798,-0.0730203241109848,-0.06945507228374481,0.25991055369377136,0.08892032504081726,-0.027479784563183784,-0.032292019575834274,0.0872960016131401,0.05216998606920242,0.1147531047463417,0.08249574899673462,-0.060320813208818436,-0.21971386671066284,-0.07523728907108307,-0.22238127887248993,0.17408426105976105,0.47354963421821594,-0.11678649485111237,-0.10366073250770569,0.007599695585668087,-0.11054562777280807,-0.06695777922868729],[0.11039596050977707,-0.003987835254520178,-0.10558447986841202,0.07433242350816727,0.049587052315473557,0.005532191134989262,0.030920064076781273,0.0737958624958992,-0.053712427616119385,-0.035911887884140015,0.03573450818657875,-0.04365658015012741,-0.002313191769644618,-0.16236327588558197,0.15248557925224304,-0.007318252697587013,-0.06325284391641617,-0.16780541837215424,-0.029064884409308434,0.12146035581827164,-0.048118509352207184,-0.011823765933513641,0.12941117584705353,0.16462917625904083,0.09503278136253357,0.05106807500123978,-0.14319893717765808,0.01825905591249466,0.035642292350530624,-0.03504320606589317,0.03827446326613426,-0.005956773646175861,0.007787466049194336,0.044646188616752625,-0.03345119580626488,0.026973051950335503,0.14264579117298126,-0.008468901738524437,-0.005590455140918493,-0.04171143099665642,0.05375247821211815,0.08311547338962555,-0.09355100989341736,-0.05202066898345947,-0.06436332315206528,0.03491557389497757,-0.00627107871696353,0.07500989735126495,0.07459324598312378,-0.0027224894147366285,-0.0061435392126441,0.15855073928833008,0.014725716784596443,0.031369879841804504,0.06907831877470016,-0.086220882833004,0.018037984147667885,0.02362913265824318,0.0757046714425087,-0.043044548481702805,-0.03233623877167702,-0.01807938516139984,-0.01974506489932537,-0.0031703109852969646,0.03160133585333824,0.05946539714932442,-0.04114968329668045,-0.028014453127980232,-0.0991436317563057,-0.22326385974884033,0.14426705241203308,-0.027559395879507065,0.10876470804214478,-0.0993817076086998,0.15644381940364838,0.10979625582695007,0.0434671975672245,-0.13743284344673157,-0.41094425320625305,-0.00411094119772315,0.14038610458374023,-0.036262303590774536,0.2529579699039459,0.0693611204624176,-0.025216734036803246,0.036369193345308304,0.013299929909408092,-0.12493967264890671,0.05393379181623459,0.04921090230345726,-0.14203521609306335,-0.12442753463983536,0.11904226243495941,-0.2822363078594208,-0.00042492648935876787,-0.02919890359044075,0.021740075200796127,-0.1459665447473526,-0.03868092969059944,-0.05183250084519386,0.04418206959962845,0.017005275934934616,0.03730745613574982,0.13380436599254608,-0.2633800208568573,-0.01408273633569479,-0.027009086683392525,-0.36257311701774597,-0.05541312322020531,-0.0849509984254837,0.16607077419757843,0.14237742125988007,-0.027144622057676315,0.0704866573214531,0.004542055539786816,0.07285917550325394,0.01552023645490408,0.1119653657078743,-0.0840984433889389,-0.009752700105309486,-0.00011709771206369624,0.02720024809241295,0.12402103841304779,-0.0405232198536396,-0.0186417568475008,-0.10632633417844772,0.0030158981680870056,-0.04539959877729416,0.05798180773854256,0.010882118716835976,-0.0058792331255972385,-0.0045494926162064075,0.015265666879713535,-0.07943280786275864,-0.08090663701295853,0.09836547821760178,-0.1218763217329979,-0.03273128718137741,-0.14311626553535461,0.044664204120635986,0.06360020488500595,-0.04951087757945061,0.008644312620162964,0.0075047253631055355,0.06007348373532295,0.09433973580598831,0.05589013919234276,0.003315453650429845,0.0892605111002922,-0.07360514998435974,0.014310418628156185,-0.021042346954345703,-0.03098602592945099,-0.09878819435834885,-0.020074384286999702,-0.009279485791921616,-0.014132429845631123,0.20821602642536163,0.06432877480983734,-0.029629213735461235,-0.021641703322529793,0.020823268219828606,0.07276448607444763,0.09174901247024536,-0.004598531872034073,-0.12311296910047531,0.014357048086822033,0.010043655522167683,0.10217885673046112,-0.07242397218942642,0.08262859284877777,-0.022960610687732697,-0.06814312934875488,-0.16868074238300323,-0.011546977795660496,0.02764146588742733,0.18758156895637512,-0.1952211558818817,-0.01722608506679535,0.051288679242134094,0.09558892250061035,-0.09641150385141373,0.104819156229496,0.05787746235728264,0.10638036578893661,-0.03282266482710838,-0.04244851693511009,0.14756660163402557,-0.011703161522746086,-0.06333962082862854,-0.15799283981323242,0.08406048268079758,0.16107240319252014,-0.1091603934764862,-0.022256283089518547,0.05371236801147461,0.05359639227390289,0.07648152858018875,0.008177687413990498,0.20216338336467743,0.053570978343486786,-0.03135316073894501,0.057409413158893585,0.08226784318685532,-0.052448760718107224,-0.04357348382472992,0.1349848210811615,-0.09353958815336227,0.018594039604067802,0.01682569459080696,-0.01769370213150978,-0.01659630797803402,-0.3135836124420166,-0.04098564013838768,0.02204638533294201,0.04747968912124634,0.0007805405766703188,0.05600223317742348,0.03588664531707764,-0.006611078977584839,-0.13605916500091553,0.02952110581099987,-0.0005345146055333316,-0.07527689635753632,0.01747954450547695,0.12840516865253448,0.03285789489746094,-0.017221132293343544,-0.03196672722697258,-0.01614423841238022,-0.05900881811976433,-0.056349147111177444,0.04216337949037552,0.045301735401153564,-0.04174097999930382,-0.07812243700027466,-0.15361987054347992,0.02764403447508812,0.05943042412400246,-0.038072675466537476,-0.17263934016227722,0.08305730670690536,0.09423348307609558,0.009913219138979912,-0.11923247575759888,-0.03908422216773033,-0.007066576275974512,0.13293251395225525,0.024283451959490776,-0.09423656016588211,0.0784173235297203,0.14040109515190125,-0.004621632397174835,0.048900824040174484,0.039669468998909,0.06466297060251236,0.09063631296157837,0.003828782122582197,0.033015962690114975,0.01926300674676895,-0.03016785718500614,0.28467845916748047,-0.103823222219944,0.006551047321408987,0.12215113639831543,0.0016721527790650725,0.05814468115568161,0.1490580439567566,-0.13099047541618347,0.04031367972493172,-0.06708891689777374,-0.19738180935382843,0.18602168560028076,0.05361562594771385,-0.08169014006853104,0.029956039041280746,0.05770406872034073,-0.0442277230322361,-0.026647206395864487,-0.03657446801662445,-0.034842509776353836,0.05511854588985443,0.0008728174725547433,0.03671637549996376,0.038506507873535156,-0.15610232949256897,0.08913261443376541,-0.00212967861443758,0.04831939935684204,-0.11227033287286758,0.07580426335334778,-0.49161258339881897,0.023735411465168,0.13241428136825562,-0.33445918560028076,-0.047347646206617355,-0.0667942687869072,0.0775749534368515,-0.005839108023792505,0.07257573306560516,-0.012149418704211712,-0.0015170089900493622,0.040924519300460815,0.03371375799179077,-0.04177430272102356,-0.054193802177906036,0.05297119542956352,0.18359218537807465,-0.075749471783638,0.01153374370187521,-0.050120338797569275,-0.05348170921206474,0.12200789898633957,-0.13302156329154968,-0.03206042945384979,-0.05057531222701073,0.10201261192560196,-0.09989513456821442,-0.04466308653354645,-0.013923856429755688,-0.13482879102230072,0.04431057721376419,-0.34077900648117065,0.05240066349506378,0.11453621089458466,0.11019905656576157,-0.011373840272426605,-0.025841861963272095,-0.023294055834412575,-0.04269050061702728,0.13472355902194977,-0.0656917616724968,-0.08416244387626648,-0.08263972401618958,0.047422800213098526,-0.01185581088066101,-0.03786872699856758,-0.06637134402990341,0.03224959596991539,0.008046913892030716,-0.010765498504042625,0.030029254034161568,-0.035445425659418106,-0.021325338631868362,-0.23459646105766296,0.032412536442279816,-0.05001283437013626,-0.013909325934946537,-0.03236215189099312,0.04697404056787491,-0.030198441818356514,-0.04309637099504471,-0.04976455494761467,-0.018298987299203873,0.08869247138500214,0.01026668306440115,-0.017311755567789078,0.03918415680527687,-0.05080864951014519,0.11325941979885101,0.3195253014564514,0.39185357093811035,-0.012740332633256912,0.004511895123869181,0.025380892679095268,0.11614066362380981,0.06780901551246643,-0.040710821747779846,0.07673945277929306,0.010780838318169117,-0.08674713969230652,0.06282426416873932,-0.06647172570228577,0.07428067177534103,0.026245364919304848,0.006982302758842707,-0.10956363379955292,0.04337773099541664,0.3205046057701111,0.02156561054289341,0.04658721759915352,-0.0200355127453804,-0.0934760794043541,-0.012133311480283737],[0.04437157139182091,-0.03664742410182953,0.2166830599308014,-0.09191350638866425,-0.012359010986983776,-0.10979858040809631,-0.04851726442575455,-0.09677731245756149,0.26006844639778137,0.001513054477982223,0.13940727710723877,0.05297386646270752,0.08085552603006363,0.06420488655567169,0.06110629066824913,0.2974865436553955,0.048754047602415085,0.005741364788264036,0.07990702241659164,-0.05680489540100098,-0.15730857849121094,-0.03881991654634476,-0.10315308719873428,-0.2846973240375519,-0.02432161569595337,-0.019279127940535545,0.18454387784004211,-0.05058421194553375,0.0005419568624347448,0.08014906942844391,-0.024275733157992363,-0.04085336998105049,-0.01431996375322342,0.16661344468593597,-0.06848901510238647,-0.24006956815719604,-0.15167787671089172,-0.02455701120197773,0.09370729327201843,-0.010384987108409405,-0.14148291945457458,-0.10831725597381592,0.17013876140117645,-0.08182097226381302,-0.032036226242780685,0.0008550320053473115,0.14148277044296265,-0.25592681765556335,-0.15418168902397156,-0.1297406405210495,0.12975525856018066,-0.2999146580696106,0.06643269211053848,-0.0660712718963623,-0.07204678654670715,-0.14157900214195251,-0.07982116937637329,-0.00042196610593236983,-0.060585230588912964,-0.04899364709854126,0.03997848182916641,0.3058514893054962,-0.20155954360961914,0.035299018025398254,-0.03156709298491478,-0.10623093694448471,0.05941116437315941,0.0882994532585144,-0.050962094217538834,0.19102078676223755,0.07873120158910751,0.05492018535733223,-0.07229814678430557,-0.28131812810897827,-0.15626075863838196,-0.153062641620636,-0.008001218549907207,0.22700285911560059,0.5302014350891113,0.014102960005402565,0.07328593730926514,-0.11993660032749176,0.15356197953224182,0.19233226776123047,-0.20134349167346954,0.0502038337290287,0.03892942890524864,0.12291029095649719,-0.045205842703580856,0.061881713569164276,0.14502055943012238,0.07504376769065857,0.17642046511173248,0.0987786278128624,0.07204561680555344,-0.021347928792238235,0.015093519352376461,0.3565380275249481,-0.05838179215788841,0.027781112119555473,-0.10414042323827744,-0.018616434186697006,-0.1866043210029602,-0.02957898937165737,-0.06666067987680435,0.09481985867023468,-0.09116954356431961,0.4620509445667267,-0.24954243004322052,0.22213083505630493,-0.6884070038795471,-0.4917708933353424,-0.029186561703681946,-0.05357437580823898,-0.027590297162532806,-0.2408071607351303,-0.07597194612026215,-0.15550711750984192,-0.024634569883346558,0.274557888507843,-0.1798991858959198,0.2852739691734314,-0.030024966225028038,-0.0015297463396564126,-0.03817149996757507,0.06357914954423904,0.016056960448622704,-0.006378668360412121,-0.07903008908033371,-0.13584527373313904,-0.12282519787549973,-0.12035495042800903,0.028612863272428513,0.15484380722045898,-0.12947428226470947,0.18602697551250458,0.4484577178955078,-0.160552978515625,0.14427116513252258,-0.05980324000120163,-0.010811610147356987,0.044340793043375015,-0.03396276384592056,0.21420620381832123,-0.04753909632563591,-0.019971635192632675,-0.009563450701534748,-0.06527258455753326,0.013390874490141869,-0.05461133271455765,-0.06714338809251785,0.03343566134572029,-0.0632530078291893,-0.10684643685817719,0.09640040248632431,0.05312748998403549,-0.01025212649255991,-0.1595524102449417,-0.14934790134429932,0.07507685571908951,-0.041182782500982285,-0.18405532836914062,-0.08897404372692108,-0.15193524956703186,-0.007676498964428902,-0.0476982519030571,-0.15764178335666656,0.23472335934638977,-0.06105160340666771,-0.07612030953168869,-0.14551883935928345,0.1496880054473877,0.15748587250709534,0.02622019685804844,-0.2473151832818985,-0.07782656699419022,-0.2625753879547119,0.006729894317686558,0.431136816740036,-0.09751290827989578,-0.11956542730331421,0.10324957221746445,0.03511182963848114,-0.018553515896201134,-0.05618961900472641,-0.00435613514855504,0.1802271008491516,0.018702968955039978,0.07626332342624664,0.14769072830677032,0.011118016205728054,-0.06839993596076965,-0.18428780138492584,0.0317879393696785,-0.12347786128520966,-0.08366601914167404,0.04211623966693878,-0.23645201325416565,-0.0013385036727413535,0.2960221469402313,-0.14819559454917908,-0.028880568221211433,-0.05474570021033287,-0.09329470247030258,-0.03184540569782257,-0.053566597402095795,-0.08395933359861374,0.33214741945266724,-0.17525963485240936,0.08025413006544113,0.17605742812156677,-0.09370440989732742,0.03444482386112213,-0.01106971874833107,-0.010170836932957172,-0.0036777982022613287,0.12027545273303986,0.1442728340625763,0.03894561901688576,0.013577645644545555,0.0870441123843193,-0.03798392787575722,0.02136797271668911,0.1574466973543167,-0.01308856438845396,-0.07683996856212616,-0.0970548689365387,-0.00402299128472805,0.08526251465082169,0.04128699377179146,0.42914748191833496,-0.12731391191482544,-0.06280214339494705,-0.17475788295269012,-0.027686230838298798,0.325743168592453,-0.1424502432346344,0.05518313869833946,0.18395139276981354,-0.0265226848423481,0.17208120226860046,0.006739155389368534,-0.06483983993530273,-0.2706139385700226,0.15065665543079376,0.2136654108762741,-0.016945544630289078,-0.03201775252819061,0.031709615141153336,-0.03620357811450958,0.2359302043914795,0.08514294773340225,-0.01995537243783474,-0.031024852767586708,-0.2836182415485382,-0.24278803169727325,-0.13085252046585083,-0.05157089605927467,-0.08219240605831146,0.03811643645167351,0.009703561663627625,-0.17700737714767456,-0.006438883952796459,0.00012935152335558087,0.18328239023685455,-0.06825265288352966,0.10456135123968124,-0.005081575829535723,0.1212240681052208,-0.06825286895036697,-0.07972460985183716,0.579132616519928,-0.10359034687280655,0.06594941020011902,-0.13175760209560394,-0.0200133565813303,-0.11295425891876221,0.011712846346199512,0.06476142257452011,-0.1153518408536911,0.03601449728012085,-0.05667131394147873,-0.1359441727399826,-0.04245651140809059,-0.10682360827922821,0.07492339611053467,-0.18678799271583557,-0.0634375736117363,-0.023644333705306053,0.03741375356912613,-0.13593384623527527,0.7620850205421448,0.15099099278450012,-0.14195674657821655,0.44593656063079834,-0.04063498228788376,0.45563918352127075,-0.06309303641319275,-0.12177729606628418,-0.29449358582496643,-0.19575557112693787,-0.09646444767713547,0.023606151342391968,-0.048450812697410583,0.15280532836914062,0.06530822068452835,-0.03912670537829399,-0.178686261177063,0.1303430050611496,-0.004223158583045006,0.1229126900434494,-0.13307160139083862,0.2833004593849182,0.1094379648566246,0.05849382281303406,0.0561244897544384,0.10178032517433167,-0.11756713688373566,0.030610933899879456,-0.08185332268476486,-0.057553187012672424,0.048019889742136,0.5654394030570984,0.012838502414524555,0.17446255683898926,-0.11056429147720337,0.039740853011608124,0.042576588690280914,0.08403663337230682,-0.12098981440067291,-0.21016354858875275,0.03775421530008316,-0.16765369474887848,-0.20762279629707336,-0.06030987948179245,-0.11796487122774124,0.05062047764658928,0.15421290695667267,-0.4522850811481476,-0.05390166491270065,0.009588601998984814,0.10278221219778061,-0.1840745359659195,-0.19776397943496704,0.5594706535339355,-0.12637662887573242,0.011417314410209656,-0.14727380871772766,-0.03269709646701813,0.06648693233728409,-0.07991372048854828,0.059435829520225525,0.08551733940839767,-0.03221232816576958,-0.19942468404769897,0.000787768978625536,-0.09339485317468643,-0.11715178191661835,-0.0122686130926013,0.29719480872154236,0.025439927354454994,0.10837941616773605,0.004427620675414801,0.10446096211671829,0.1457393616437912,-0.2350919246673584,0.09729157388210297,0.22399967908859253,-0.06627409905195236,0.01133618876338005,-0.07261406630277634,-0.057084329426288605,0.0023324694484472275,-0.21192289888858795,0.21351920068264008,0.0375724695622921,0.03223290666937828,-0.21086853742599487,-0.21573811769485474,-0.12376514822244644,-0.3901374340057373,0.036515507847070694,-0.024302219972014427,0.0685979500412941],[0.051224347203969955,0.01310925092548132,0.0988563522696495,0.03442506119608879,-0.033325448632240295,-0.19643262028694153,0.024541085585951805,0.041271697729825974,0.03680294007062912,-0.15541616082191467,0.017095481976866722,-0.19137521088123322,0.03180345147848129,-0.004182363394647837,0.06615392118692398,0.3969586491584778,0.10500864684581757,-0.006067011505365372,0.015275919809937477,0.03381234034895897,-0.14946532249450684,0.06965354084968567,-0.06677073985338211,0.12010089308023453,0.04575277864933014,0.026680780574679375,-0.10473741590976715,0.03050367534160614,0.001632868079468608,-0.12488406896591187,-0.05854973569512367,-0.019868988543748856,-0.07300595194101334,0.19601154327392578,-0.0495443269610405,0.08328888565301895,-0.08452306687831879,-0.04269396886229515,0.11118464171886444,-0.12616026401519775,0.04171847552061081,-0.007457859348505735,-0.0006164666847325861,0.009632846340537071,0.08621841669082642,0.0322413332760334,0.012878958135843277,-0.04928511381149292,-0.0014656797284260392,-0.16341015696525574,-0.013541512191295624,0.03677702695131302,0.16869671642780304,-0.09888272732496262,0.015727655962109566,0.09309595078229904,-0.11858170479536057,0.009331855922937393,-0.009675378911197186,0.003640207229182124,-0.014627502299845219,0.060313113033771515,-0.11122281104326248,0.04876448214054108,0.05117219313979149,-0.1330503523349762,0.09348997473716736,0.010920069180428982,-0.14373131096363068,0.0729498639702797,0.0039248112589120865,-0.007558015640825033,-0.007516178302466869,-0.2328653782606125,0.19869303703308105,0.006913548801094294,-0.06343909353017807,0.19734416902065277,0.13246484100818634,0.005610202439129353,-0.19984549283981323,-0.017537981271743774,0.1372043490409851,0.37507930397987366,-0.058410294353961945,0.11157290637493134,-0.11572332680225372,-0.04419674351811409,0.03959367796778679,0.05479598417878151,0.08188749104738235,-0.01732194796204567,-0.12981367111206055,-0.10013648122549057,-0.05250680446624756,-0.03542371094226837,0.16531577706336975,0.08725682646036148,0.004139691591262817,-0.05306372418999672,0.019404465332627296,0.052512072026729584,-0.01223236694931984,-0.1652260422706604,0.05440293997526169,-0.05550125986337662,-0.012529611587524414,0.02886345610022545,-0.3166309595108032,-0.03343125805258751,0.045554183423519135,0.008218147791922092,-0.033327825367450714,-0.022962026298046112,-0.014037725515663624,0.027011556550860405,-0.06674747914075851,0.03405297175049782,0.0907849594950676,0.012038146145641804,0.012153951451182365,-0.07453028112649918,-0.01747368462383747,0.1423410326242447,0.033297546207904816,-0.002516843844205141,-0.025156447663903236,-0.013637230731546879,0.07239390909671783,-0.07945417612791061,-0.08084721863269806,0.025163019075989723,0.08736801147460938,0.04989048093557358,-0.014501356519758701,0.27738767862319946,0.1313827633857727,-0.07822516560554504,-0.023927928879857063,-0.06683864444494247,0.032209284603595734,-0.05348506197333336,0.06997446715831757,0.28252437710762024,0.042478036135435104,0.09821166098117828,-0.007431195117533207,0.05328742042183876,0.11044100672006607,-0.10019376128911972,0.021985726431012154,0.07241273671388626,-0.024800864979624748,-0.023567866533994675,0.052200499922037125,0.10440937429666519,-0.042126815766096115,-0.13272488117218018,-0.06404948234558105,-0.07700283825397491,0.005395302549004555,-0.08039243519306183,-0.05335955694317818,0.04227536544203758,0.024552244693040848,-0.23461991548538208,0.026338927447795868,0.18364734947681427,0.12698140740394592,0.004108659457415342,-0.019097356125712395,0.11693413555622101,0.06800477206707001,-0.03778337314724922,-0.1344669908285141,-0.0552922859787941,-0.09707234054803848,0.10430677235126495,0.3997359573841095,0.043023984879255295,-0.018431467935442924,0.01609671674668789,0.04427504912018776,0.08407540619373322,0.26401394605636597,0.047883763909339905,0.056359510868787766,-0.06493460386991501,0.009671906009316444,0.1426127851009369,-0.14881755411624908,0.03301562741398811,-0.15718872845172882,0.08300838619470596,0.011032718233764172,0.015039280988276005,-0.021746933460235596,-0.010763142257928848,0.18363147974014282,-0.05833663418889046,-0.08050175756216049,-0.1152195930480957,0.10534262657165527,-0.057057470083236694,-0.0505802184343338,-0.03357468545436859,-0.037298060953617096,-0.02962842956185341,-0.15853384137153625,0.04592230170965195,-0.024455906823277473,-0.04173576831817627,-0.001370734185911715,0.011130737140774727,-0.010687949135899544,0.06999493390321732,-0.029246238991618156,0.2132548838853836,0.041499584913253784,0.016881629824638367,-0.131117045879364,0.02152692712843418,-0.02894413471221924,0.03456587344408035,0.0005373596795834601,0.044356659054756165,0.07610774040222168,-0.10469148308038712,-0.005787958391010761,0.09895322471857071,-0.04868638142943382,-0.03406708687543869,-0.07023515552282333,-0.09860166907310486,-0.0913415178656578,0.0202887412160635,-0.23602931201457977,0.31413376331329346,0.1003793403506279,-0.027842456474900246,0.2599426507949829,0.07474590837955475,0.005049633327871561,-0.12142501026391983,-0.05712193250656128,0.04119597375392914,0.06850878149271011,0.09782595932483673,-0.041274990886449814,0.007697856519371271,-0.06459224969148636,0.05456359684467316,-0.028233245015144348,-0.0040281168185174465,-0.22852997481822968,-0.008597219362854958,0.16276119649410248,-0.03602812811732292,-0.038215551525354385,0.01429769303649664,-0.0066948928870260715,0.03466438874602318,0.03125936537981033,-0.04101366549730301,0.038554251194000244,0.02377793937921524,0.034348130226135254,-0.05417891591787338,-0.04066651314496994,-0.1839306503534317,0.01251798216253519,0.2691349983215332,0.12880408763885498,-0.01719891093671322,-0.22638024389743805,0.035251617431640625,-0.11655394732952118,-0.12943556904792786,-0.003916201181709766,0.04772787541151047,0.05898868665099144,0.0006843177252449095,-0.1496945023536682,0.0495796874165535,-0.09675206243991852,-0.01446955744177103,0.0470283217728138,-0.06491359323263168,-0.0711802989244461,-0.1024506688117981,-0.008861462585628033,-0.13115595281124115,0.09582876414060593,-0.005076614674180746,-0.03858070820569992,-0.06393283605575562,0.18395212292671204,0.021105341613292694,0.004907439462840557,-0.20279979705810547,-0.08679458498954773,-0.056578975170850754,0.0014584147138521075,0.014384227804839611,-0.10573470592498779,0.01971333846449852,-0.10096719861030579,-0.151702418923378,0.10200828313827515,-0.0775267481803894,0.05674033984541893,0.053868431597948074,0.02465026266872883,-0.059475257992744446,-0.028797365725040436,-0.06970133632421494,0.11502096801996231,0.15306606888771057,0.019360419362783432,-0.005335626192390919,-0.02347511053085327,0.15605972707271576,0.024902930483222008,0.08794856816530228,0.34427791833877563,0.16701729595661163,-0.005222484469413757,-0.01799353025853634,0.128475159406662,-0.07141108810901642,0.10710080713033676,0.03107813186943531,-0.1151958703994751,0.029456334188580513,0.06612624228000641,0.012921544723212719,-0.03083801083266735,-0.020771095529198647,-0.16002216935157776,-0.07217864692211151,0.04843323677778244,0.14941342175006866,-0.016166821122169495,0.06323036551475525,-0.22150453925132751,0.12939029932022095,0.047674842178821564,0.03040696680545807,-0.042768798768520355,-0.005898444913327694,0.031049469485878944,-0.10943713039159775,-0.08393184095621109,-0.085483118891716,-0.02157461829483509,-0.028240425512194633,-0.10475204885005951,0.01665210723876953,-0.0012003195006400347,0.1530577391386032,-0.027891207486391068,0.45793429017066956,-0.048537954688072205,0.04419232904911041,0.013018406927585602,-0.135554701089859,0.12372887134552002,0.02811148762702942,0.032177165150642395,0.07745371013879776,-0.13046349585056305,-0.10653477162122726,0.057321999222040176,-0.08484005182981491,-0.051017940044403076,-0.11366388201713562,0.038773853331804276,-0.14100947976112366,0.2420346885919571,0.05662556365132332,-0.27366191148757935,-0.05510161817073822,-0.0612778514623642,-0.0845383033156395],[0.10858312994241714,-0.0493447370827198,0.02630051225423813,0.022177409380674362,-0.12040536850690842,-0.4366576373577118,0.012382881715893745,0.047102827578783035,-0.06261800229549408,-0.11922325193881989,0.08175303786993027,-0.08907268941402435,-0.07212776690721512,-0.038432396948337555,-0.3431885242462158,0.288202166557312,-0.035791054368019104,0.36195018887519836,-0.12363219261169434,-0.006294907536357641,0.2765241861343384,0.0410754419863224,-0.11434847861528397,0.06383408606052399,0.14968286454677582,0.0968698188662529,0.036831874400377274,0.016463343054056168,-0.05839536711573601,-0.0861668810248375,-0.020651116967201233,-0.014891973696649075,0.051453087478876114,-0.0016935677267611027,-0.019450867548584938,-0.03499428927898407,0.059226397424936295,0.0536503866314888,0.007934154942631721,-0.14105048775672913,0.08728110045194626,0.017947763204574585,-0.14176732301712036,-0.10528062283992767,0.06842558085918427,0.11177810281515121,-0.062250807881355286,-0.012971481308341026,-0.019120527431368828,-0.15069438517093658,-0.08483338356018066,0.19733284413814545,0.05862971022725105,0.07121007144451141,0.10072119534015656,-0.016441363841295242,-0.19730660319328308,-0.012700345367193222,0.014113345183432102,-0.0018929552752524614,-0.07553616911172867,-0.3711014688014984,-0.1368226259946823,0.047910723835229874,-0.07482703030109406,-0.008824887685477734,0.0008026964496821165,0.06120007857680321,0.02067318744957447,0.03551582619547844,-0.12887628376483917,0.14550410211086273,0.00171575543936342,0.07026588916778564,0.11802279949188232,-0.07139571756124496,-0.10436511784791946,0.16120372712612152,0.09924210608005524,0.1607450693845749,-0.32912465929985046,0.01277026254683733,-0.13382698595523834,0.24364686012268066,-0.057106394320726395,0.18238113820552826,-0.07374052703380585,-0.10944931954145432,-0.039666615426540375,-0.026031453162431717,0.008982960134744644,-0.09866568446159363,-0.20770922303199768,-0.12816122174263,-0.06277940422296524,-0.05206147953867912,0.15667742490768433,-0.029690667986869812,-0.016043126583099365,0.029726935550570488,0.14135116338729858,0.04205337539315224,-0.014457570388913155,-0.03333935886621475,-0.1377958357334137,-0.05966247618198395,0.13201206922531128,0.049790702760219574,-0.20520366728305817,-0.08734937012195587,0.26609233021736145,0.15451432764530182,-0.05923253297805786,0.013981178402900696,0.03441956266760826,-0.27807021141052246,0.06091270595788956,-0.06231125816702843,0.05652023106813431,-0.08633752167224884,0.18512873351573944,-0.22740137577056885,0.21923138201236725,0.003163994522765279,-0.0625230073928833,0.03268327936530113,-0.008695787750184536,0.1226421594619751,0.05014386028051376,0.033173657953739166,-0.15240556001663208,-0.1212950199842453,-0.07878713309764862,-0.13420072197914124,0.08113591372966766,0.14326560497283936,0.1741558462381363,-0.08683755248785019,-0.03348816558718681,-0.07147928327322006,-0.0847451239824295,-0.17659911513328552,-0.007475853897631168,0.2340194284915924,0.041642650961875916,0.07579705864191055,0.13694149255752563,-0.02410774677991867,-0.14897602796554565,0.11234022676944733,0.06070082262158394,0.17115184664726257,0.034552864730358124,0.04103490710258484,0.12167660146951675,-0.034761689603328705,-0.01695866324007511,-0.2288912832736969,0.14943382143974304,0.08279316127300262,-0.07157465070486069,0.1734984964132309,-0.01359119825065136,0.0328529067337513,-0.05085661634802818,-0.07605312019586563,0.22693175077438354,0.01056172139942646,0.08166493475437164,-0.05601700395345688,-0.10130905359983444,0.04853637143969536,-0.019490737468004227,-0.019548621028661728,-0.04999791830778122,-0.014351243153214455,0.12497900426387787,-0.147399440407753,0.32922640442848206,0.2933647036552429,-0.034995123744010925,-0.005432717502117157,0.09550159424543381,0.03341418132185936,0.32722121477127075,-0.010476035065948963,0.05769602954387665,-0.10351311415433884,0.102671317756176,0.0074578262865543365,-0.08584532886743546,-0.01697513461112976,-0.04198892414569855,-0.04664997756481171,-0.01240906585007906,0.06124309077858925,0.07649081200361252,0.14529789984226227,0.03300075605511665,0.05625838413834572,0.09117734432220459,-0.14943015575408936,0.07304146885871887,-0.03414132818579674,-0.008992210030555725,-0.08952666819095612,-0.07545456290245056,-0.13168758153915405,0.06041177362203598,0.1020164042711258,-0.14939537644386292,0.06608972698450089,0.08296038210391998,-0.014633319340646267,0.01242948230355978,0.04032967984676361,0.06801820546388626,0.020978031679987907,-0.0349033921957016,-0.04119979217648506,-0.10413973778486252,0.10459741950035095,0.008712845854461193,0.06843562424182892,0.013987259939312935,-0.11766829341650009,-0.030876589938998222,-0.09558535367250443,-0.10871061682701111,-0.04172881692647934,-0.09335467219352722,-0.08687200397253036,0.07075170427560806,-0.04920677840709686,-0.10045887529850006,-0.0683281421661377,-0.23270513117313385,0.11320272833108902,0.061235710978507996,-0.050294868648052216,-0.2392408847808838,-0.05682849884033203,0.46950411796569824,0.33612868189811707,-0.1841774433851242,-0.0547366701066494,0.10225965827703476,0.04831664264202118,0.02140919119119644,0.006994316354393959,0.013078134506940842,0.0018711513839662075,-0.07460497319698334,0.1328151524066925,0.002604942535981536,0.009462323039770126,0.3421171009540558,0.0851789191365242,-0.038042910397052765,-0.02388220839202404,0.019975336268544197,0.431469202041626,-0.2413545697927475,0.052272990345954895,-0.039633430540561676,-0.02165411226451397,-0.04402848333120346,-0.03043602593243122,-0.1335456818342209,-0.18176567554473877,-0.1068110316991806,-0.04017293080687523,0.06645361334085464,0.1734292209148407,0.003136926330626011,0.011812190525233746,0.027794750407338142,0.006087104324251413,-0.02282409742474556,0.09020590037107468,-0.04045800492167473,-0.0194268599152565,-0.05723000690340996,0.1507609486579895,0.06685342639684677,0.09513499587774277,0.12506473064422607,-0.06441739201545715,0.008908587507903576,0.02722911350429058,-0.019773123785853386,-0.1847289353609085,-0.03850311040878296,-0.059251900762319565,-0.02200550027191639,-0.07492756843566895,-0.08713091909885406,0.13559189438819885,0.05612531304359436,-0.18223166465759277,-0.15519148111343384,0.057420700788497925,0.09473399072885513,0.022342678159475327,0.0036037571262568235,0.05595984309911728,-0.09898821264505386,-0.2150467336177826,0.0177591685205698,0.03563564270734787,-0.046416766941547394,0.14807458221912384,0.03116598352789879,-0.0776221826672554,-0.01550918910652399,-0.08195236325263977,0.19925852119922638,0.3376622200012207,0.017358727753162384,-0.08139049261808395,-0.181508406996727,0.026261450722813606,-0.16071045398712158,-0.0800776258111,-0.01810215786099434,0.0033565727062523365,-0.016771918162703514,0.013506194576621056,-0.05189834535121918,-0.033492863178253174,-0.09671870619058609,0.0591704398393631,0.0019252138445153832,-0.00593954510986805,0.15019440650939941,-0.06071389093995094,0.04913083091378212,-0.050680868327617645,-0.006959717255085707,-0.018815767019987106,0.034998223185539246,0.14665672183036804,0.10147790610790253,-0.05206314101815224,-0.15516839921474457,0.23356299102306366,0.004018761683255434,-0.021843818947672844,0.004761698190122843,0.0024947745259851217,0.01248927041888237,0.00781978014856577,0.0873899981379509,-0.015746118500828743,0.09470651298761368,-0.01731819659471512,0.1621459275484085,-0.03278574347496033,-0.07675475627183914,-0.2550058960914612,0.015511492267251015,0.21068325638771057,0.01927652209997177,-0.020633162930607796,-0.06297888606786728,0.0471203438937664,0.09323367476463318,0.022988127544522285,0.08251732587814331,0.0748506709933281,0.10373564809560776,0.008058145642280579,0.10945658385753632,-0.08440577238798141,-0.3271293640136719,-0.12243510037660599,-0.13838821649551392,-0.12783581018447876,0.5660580992698669,-0.024891477078199387,0.01564081944525242,0.033084698021411896,-0.10507915914058685,-0.07490497827529907],[0.12825362384319305,-0.10885591059923172,-0.02441994473338127,-0.060126278549432755,0.03321058303117752,0.012254828587174416,0.0028076337184756994,0.014853790402412415,0.06225442886352539,0.22205497324466705,-0.04824068769812584,0.256928950548172,-0.018755847588181496,-0.09969504922628403,-0.02439996786415577,-0.4937824308872223,-0.08403246104717255,0.25874093174934387,-0.18977896869182587,-0.045785024762153625,0.07713672518730164,-0.06651876866817474,0.18707653880119324,-0.11268752068281174,-0.036548979580402374,0.11468363553285599,0.11779895424842834,-0.020022118464112282,0.026750316843390465,0.10960935801267624,0.0685402899980545,0.11280018091201782,-0.11596552282571793,-0.24187475442886353,0.033253274857997894,-0.0782935842871666,0.03643596172332764,0.02065098099410534,-0.18664157390594482,0.18363051116466522,-0.141277477145195,-0.09209414571523666,0.02981634810566902,-0.03820614889264107,-0.01363019272685051,-0.11862201243638992,0.11871851980686188,-0.12136810272932053,-0.13476234674453735,0.14639824628829956,0.0371210053563118,-0.2017781138420105,-0.09317532926797867,-0.006556754931807518,0.031936995685100555,-0.15348389744758606,-0.048002198338508606,0.022961130365729332,0.06225355714559555,0.007268921472132206,0.09149082005023956,-0.2674036920070648,0.04432036727666855,-0.038682375103235245,0.01521089393645525,0.19077305495738983,-0.0491146482527256,-0.05693446099758148,0.0365915410220623,0.021827097982168198,-0.09746737778186798,-0.026252271607518196,0.03791707754135132,-0.0017543702851980925,-0.09965118020772934,0.02744344435632229,0.012460549362003803,-0.0365842767059803,-0.23007550835609436,-0.10138175636529922,0.3176586329936981,-0.0034423184115439653,0.2475205510854721,-0.17147023975849152,-0.1289401799440384,-0.045883696526288986,0.04905393347144127,0.06160694360733032,-0.09486108273267746,0.03380117565393448,-0.11214705556631088,-0.03934497386217117,0.4111681878566742,0.19924330711364746,0.03835698217153549,0.00012283105752430856,-0.23568567633628845,0.04445638880133629,0.00850929506123066,0.02403571829199791,0.04379177838563919,-0.03125907480716705,0.04580315947532654,0.13523632287979126,-0.183187335729599,0.07952886819839478,-0.014015458524227142,-0.044804852455854416,0.02849900722503662,0.08258657902479172,-0.3091634511947632,0.07474604994058609,0.008083155378699303,0.022396164014935493,0.03250753879547119,0.011955169960856438,0.014073350466787815,-0.020325763151049614,-0.24391698837280273,0.003137524938210845,-0.1374535858631134,-0.013154903426766396,0.20566418766975403,-0.0658821165561676,-0.009754839353263378,0.03693744167685509,0.02125283144414425,-0.014850177802145481,-0.05005520582199097,0.0604185126721859,0.06399836391210556,-0.0005727015668526292,-0.007092480082064867,0.0954345092177391,-0.09818291664123535,-0.075276680290699,-0.01588989980518818,-0.27872785925865173,0.10574325174093246,0.07009901851415634,0.0029762890189886093,0.055059440433979034,-0.025966394692659378,-0.19289034605026245,0.07134898006916046,-0.013884340412914753,0.02753036841750145,-0.011905352585017681,0.09868281334638596,0.055058617144823074,-0.02053901180624962,-0.0010679335100576282,-0.01702064648270607,-0.07073118537664413,-0.08110804855823517,0.179429829120636,0.09511788934469223,0.2465342879295349,0.0313311368227005,0.10833791643381119,0.01033126562833786,-0.07435847818851471,-0.015079211443662643,-0.033535465598106384,-0.1529371589422226,0.16884945333003998,-0.14466652274131775,0.1167902871966362,-0.08959389477968216,-0.04807324334979057,0.11139518767595291,-0.04945404455065727,0.04757979139685631,-0.02201935648918152,0.018997518345713615,0.04833297058939934,0.29752248525619507,-0.46866562962532043,-0.020210521295666695,0.09594111889600754,0.11604923009872437,-0.06885191798210144,0.018178265541791916,-0.13140155375003815,-0.2353409081697464,-0.07281671464443207,0.032766472548246384,0.5077434778213501,-0.07466109842061996,-0.048113711178302765,0.13528379797935486,0.016306376084685326,0.0706678032875061,-0.1999007910490036,-0.007680471520870924,-0.19518832862377167,0.12704840302467346,-0.0026963273994624615,-0.17763404548168182,0.2756390869617462,0.09306995570659637,0.04401770606637001,-0.0952850803732872,0.11607982218265533,-0.1257721185684204,0.047765154391527176,0.3433457314968109,0.10330235213041306,0.015338873490691185,-0.04334993287920952,0.06087520718574524,0.02983536571264267,-0.096396803855896,-0.1105717197060585,-0.08864708989858627,0.010869275778532028,0.1747284233570099,-0.1293601393699646,0.06429310142993927,-0.02825387753546238,0.24678544700145721,-0.023714130744338036,0.026959149166941643,-0.09934135526418686,0.05789867416024208,0.15124808251857758,-0.16366678476333618,0.16577769815921783,0.12810289859771729,-0.19318093359470367,0.07115884870290756,-0.03243279829621315,0.06806562840938568,0.017154335975646973,-0.0018167563248425722,0.11916276812553406,0.22730015218257904,-0.19083821773529053,0.018808944150805473,-0.10956361144781113,-0.4449343979358673,0.14689373970031738,0.1270042508840561,0.10501086711883545,0.13226045668125153,0.05780670791864395,-0.2084013968706131,-0.023881949484348297,0.01394468080252409,0.028269972652196884,0.3282580077648163,-0.09065039455890656,-0.045220132917165756,0.09555163979530334,0.2647062838077545,-0.034387845546007156,0.10900981724262238,-0.02811407670378685,0.08852118998765945,-0.06809680908918381,0.03596844896674156,0.027386421337723732,-0.3175492286682129,0.01919967494904995,-0.0178484208881855,-0.08401066064834595,0.09938044100999832,0.07529862970113754,-0.030629556626081467,0.25037357211112976,-0.10792627930641174,-0.12001735717058182,-0.16373424232006073,-0.007090294733643532,0.0018392398487776518,0.011624393984675407,0.020688578486442566,-0.0312099177390337,-0.013997993431985378,-0.2094573676586151,-0.0355401337146759,0.07567136734724045,0.11361152678728104,0.05818743258714676,0.14930416643619537,0.06316879391670227,-0.08758927881717682,0.05377527326345444,0.10846873372793198,-0.10747500509023666,0.2069471776485443,0.22957055270671844,-0.03068196214735508,0.09636499732732773,-0.11658560484647751,-0.028481630608439445,0.07931125909090042,-0.2282884567975998,0.0432499535381794,-0.1335010677576065,0.03202373906970024,0.10962998121976852,0.09996441751718521,-0.04307904839515686,0.12352292239665985,0.02842702716588974,0.1896573007106781,0.32673248648643494,-0.17403623461723328,0.06278007477521896,-0.01685870997607708,-0.140843465924263,0.1531667560338974,-0.00035678778658621013,-0.012393779121339321,0.059384532272815704,-0.19194307923316956,-0.4619032144546509,-0.02180003747344017,-0.032463498413562775,-0.1854551136493683,-0.11433631181716919,0.02880292572081089,-0.16930803656578064,-0.17670276761054993,-0.121517114341259,0.023802967742085457,0.027975207194685936,-0.03150712698698044,-0.046919338405132294,-0.22286713123321533,-0.005181480199098587,-0.16434575617313385,-0.1162373498082161,0.02240840718150139,-0.06307961791753769,-0.04717279598116875,-0.00509622460231185,-0.31442195177078247,0.02709035575389862,-0.0018956325948238373,-0.03435656800866127,-0.18778583407402039,-0.16926920413970947,0.4602821469306946,-0.06110904738306999,-0.13975700736045837,0.0389678068459034,0.028815312311053276,-0.01449674367904663,-0.03654928877949715,0.20898212492465973,0.12259063124656677,-0.022541413083672523,0.1398572027683258,-0.05728811025619507,-0.08198336511850357,-0.025578513741493225,-0.11284720152616501,0.08482874929904938,0.26136457920074463,-0.1580824851989746,0.06522427499294281,-0.018367361277341843,0.03887956961989403,-0.10626745223999023,-0.17470495402812958,0.07870783656835556,-0.15920326113700867,0.06685908883810043,0.19516123831272125,0.09142579883337021,-0.16143295168876648,-0.005496280733495951,0.13726632297039032,0.04558892548084259,-0.20130646228790283,0.26836085319519043,-0.24610698223114014,-0.13724884390830994,0.1654234379529953,0.13820283114910126,0.010965765453875065,-0.021886905655264854],[0.028765900060534477,-0.026909196749329567,0.13570627570152283,0.046106573194265366,0.04664880782365799,-0.04311294108629227,0.024200135841965675,-0.024871380999684334,0.08397383987903595,0.05823345482349396,-0.01344529539346695,-0.044608257710933685,-0.007997711189091206,0.03341129794716835,0.20622074604034424,0.06096985936164856,0.11418315768241882,-0.15202662348747253,-0.01568176969885826,0.08483540266752243,-0.2693660259246826,0.09397981315851212,-0.03219391778111458,0.06418918073177338,-0.023691775277256966,0.1437893807888031,0.037026457488536835,0.0403931550681591,-0.013716969639062881,0.11096513271331787,0.027327917516231537,0.22990500926971436,-0.04333458095788956,-0.06169458478689194,-0.06656653434038162,0.020543787628412247,-0.10135241597890854,0.04241011291742325,0.034263961017131805,-0.02635904587805271,0.03430246561765671,-0.029341096058487892,0.08274855464696884,0.006387932691723108,0.10253741592168808,-0.05675880238413811,0.041268255561590195,-0.1395980268716812,-0.12449691444635391,0.023511681705713272,0.03506998345255852,-0.1747201383113861,0.0746825635433197,0.048110850155353546,-0.016199598088860512,0.14841778576374054,-0.024678664281964302,-0.07143080979585648,0.040976785123348236,0.061274126172065735,0.07246268540620804,0.0690704956650734,0.050048474222421646,-0.004158864263445139,0.009215027093887329,0.025446107611060143,0.016351988539099693,0.0170728899538517,0.007709088269621134,0.0521501861512661,-0.10410525649785995,-0.00327693996950984,-0.07726187258958817,-0.3351602554321289,0.04584469273686409,0.049926113337278366,0.06082821264863014,0.00487144710496068,-0.07679521292448044,-0.08596508204936981,-0.17291297018527985,0.015646498650312424,-0.09486181288957596,0.14590781927108765,-0.018930891528725624,0.028657451272010803,-0.03398585692048073,0.01710539124906063,0.2512986958026886,0.10132037848234177,0.05145292356610298,-0.03558473289012909,-0.0481320321559906,0.05901147797703743,-0.033221226185560226,0.005481105297803879,0.032586291432380676,0.15626348555088043,-0.036805398762226105,0.009881007485091686,-0.02462048828601837,-0.022232573479413986,0.09522667527198792,-0.05816495046019554,0.38815924525260925,-0.025537988170981407,-0.007863933220505714,-0.27513447403907776,-0.06942081451416016,0.025775419548153877,-0.16597603261470795,0.021323153749108315,-0.010986979119479656,-0.06243012472987175,-0.05212072283029556,-0.007586287334561348,-0.06799324601888657,-0.02495480887591839,-0.05509321764111519,0.006404319778084755,-0.10128051787614822,0.003574030939489603,-0.08660372346639633,0.03916788101196289,0.01811586506664753,0.13639812171459198,-0.040813665837049484,0.00938458926975727,-0.06304360181093216,-0.08714403212070465,-0.04988757148385048,0.10571247339248657,0.08204267919063568,0.07198955118656158,0.032504353672266006,0.08001071214675903,-0.21972641348838806,-0.07275859266519547,0.039034053683280945,-0.009644159115850925,-0.061159271746873856,0.09393704682588577,0.014972821809351444,-0.02484525926411152,-0.04588509723544121,-0.02367556467652321,-0.2060759961605072,-0.11551060527563095,0.18786488473415375,-0.01647545024752617,-0.027739929035305977,-0.06976768374443054,-0.05820799618959427,-0.25365498661994934,-0.0501847006380558,-0.052596405148506165,-0.06593191623687744,0.02873222902417183,-0.06791660189628601,-0.04727210849523544,0.04308689758181572,-0.1615253984928131,-0.010240531526505947,0.020881973206996918,0.03954446688294411,-0.12863396108150482,-0.08523443341255188,0.034756146371364594,-0.24701012670993805,-0.06173501908779144,-0.0011513803619891405,0.15288065373897552,0.04363621026277542,0.03415437042713165,0.10915913432836533,0.055900938808918,-0.05456197261810303,0.12529349327087402,0.0046956478618085384,-0.02287324145436287,-0.02669999562203884,-0.010527409613132477,-0.0509861595928669,-0.021135548129677773,-0.03052869439125061,0.0363520048558712,-0.02536863088607788,-0.04963725805282593,0.020226528868079185,0.18016265332698822,-0.005882000084966421,-0.026139220222830772,-0.11956989765167236,-0.009838576428592205,0.055241961032152176,-0.2361512929201126,-0.05379677936434746,-0.10581700503826141,0.09608403593301773,-0.09882073849439621,-0.06335103511810303,0.07962872833013535,-0.003427128540351987,-0.09687113016843796,0.006811246741563082,0.20390504598617554,-0.05520937591791153,0.05640367418527603,-0.07855045795440674,0.024291763082146645,0.03622334823012352,-0.04169122502207756,-0.03391065448522568,0.0002986828039865941,-0.066014364361763,-0.03702825307846069,0.04629142954945564,0.13879206776618958,0.06546993553638458,0.019470451399683952,0.15468361973762512,-0.007422503083944321,0.041942182928323746,-0.009864496998488903,0.03867778927087784,0.002174963476136327,-0.024677792564034462,-0.23144765198230743,0.005599428433924913,0.014481293968856335,-0.08219508826732635,0.22248153388500214,-0.02300364151597023,-0.008294286206364632,0.022844964638352394,0.10248345136642456,-0.0034253490157425404,0.04831376299262047,-0.008293548598885536,0.030608970671892166,0.17934328317642212,0.018257124349474907,-0.2768051326274872,-0.054129134863615036,0.12753117084503174,0.09053916484117508,-0.011554062366485596,0.0858767181634903,-0.05032873526215553,0.10401538759469986,-0.03354160860180855,-0.10632514953613281,0.07182047516107559,-0.0484921857714653,-0.043779563158750534,0.048588838428258896,-0.05467290058732033,-0.06399936974048615,-0.00365658407099545,-0.025740493088960648,0.06557221710681915,-0.005212981253862381,0.11558133363723755,0.06262798607349396,-0.09140141308307648,-0.01847553625702858,0.07293539494276047,-0.06186521798372269,0.14629293978214264,-0.1669449359178543,0.07872980087995529,-0.03804923593997955,-0.11666945368051529,-0.07084260135889053,0.005368827376514673,-0.022003376856446266,-0.0553019642829895,-0.06403708457946777,0.029784156009554863,0.009391014464199543,0.15148426592350006,-0.04032512754201889,-0.14101749658584595,-0.043042004108428955,0.004531859885901213,0.02863878384232521,0.03521532937884331,0.029062587767839432,-0.14503704011440277,0.09527464956045151,0.0019224485149607062,-0.15010112524032593,0.1324472874403,0.013183539733290672,0.19351860880851746,0.05249838903546333,0.2755104601383209,0.0012806137092411518,-0.0004276649560779333,-0.20261071622371674,-0.06989605724811554,0.030307138338685036,-0.08434111624956131,-0.06486330926418304,-0.020436156541109085,-0.07231455296278,-0.061503294855356216,-0.18394587934017181,0.09050485491752625,-0.029719995334744453,0.08864527940750122,-0.005264636129140854,-0.11952362954616547,0.04830017685890198,0.0017157678958028555,0.034639257937669754,-0.06224052608013153,0.2208193987607956,0.0029483973048627377,-0.04434901848435402,-0.15468691289424896,-0.037476636469364166,0.24515245854854584,0.09687475115060806,0.07150226831436157,0.2007073014974594,-0.02675868570804596,-0.048540860414505005,0.10507381707429886,-0.02789296768605709,0.032781489193439484,0.08474276959896088,0.11056944727897644,-0.05566467344760895,-0.09340959787368774,0.017957819625735283,-0.005333594512194395,0.027432313188910484,-0.1821964532136917,-0.010664792731404305,0.021439844742417336,-0.0004154653288424015,0.03838704526424408,-0.07382900267839432,-0.1050216555595398,-0.11502781510353088,-0.07069825381040573,0.021997861564159393,-0.024243570864200592,-0.04252288490533829,-0.0445418506860733,-0.0816895067691803,-0.1076190248131752,-0.018783848732709885,-0.033708613365888596,-0.05170121043920517,-0.09057651460170746,-0.0022543377708643675,0.12421301007270813,0.18591973185539246,-0.1742856353521347,-0.08567588776350021,-0.0031576238106936216,0.04696781933307648,0.07712075114250183,0.044788651168346405,0.022833049297332764,-0.022073643282055855,-0.10714544355869293,-0.022296488285064697,-0.1348373293876648,-0.1261391043663025,0.15104450285434723,0.16680586338043213,0.3495108187198639,-0.04497731849551201,0.17701861262321472,0.09477824717760086,0.06743299216032028,-0.011174799874424934,0.006341179367154837,-0.0488211028277874,0.11101606488227844,0.02194533869624138],[0.006430154200643301,0.020064733922481537,0.16093705594539642,0.03102181665599346,-0.005110489670187235,-0.22336973249912262,0.022097459062933922,0.003861169796437025,0.11722864955663681,0.0720188245177269,0.019293202087283134,0.0957903042435646,0.00810534693300724,0.06822539865970612,0.26896563172340393,0.08709367364645004,0.05870531126856804,-0.05813070759177208,0.03710173815488815,0.017163919284939766,-0.3093337118625641,0.04223993048071861,-0.04230981692671776,-0.04007613658905029,0.0014917365042492747,0.3013788163661957,-0.01840454712510109,0.008274925872683525,0.014659430831670761,0.13699907064437866,0.02795955166220665,0.2684355676174164,-0.009831349365413189,-0.06804127991199493,-0.09341025352478027,0.012398443184792995,-0.17843376100063324,-0.03901099041104317,-0.03368239849805832,-0.007864450104534626,0.0007535114418715239,-0.11595592647790909,0.09736815840005875,-0.04657231271266937,0.1354570984840393,-0.06070896238088608,-0.03830369561910629,-0.13514643907546997,-0.13933300971984863,0.043554335832595825,0.05661424249410629,-0.12467104941606522,0.05303964018821716,0.0017339448677375913,-0.012757586315274239,0.12431740015745163,-0.07814472913742065,-0.046096306294202805,0.0031090944539755583,-0.00852539949119091,0.053011517971754074,0.03857126832008362,-0.03151194378733635,-0.002433524467051029,-0.0039018529932945967,0.018981629982590675,0.06270303577184677,0.06155918166041374,-0.04863801226019859,0.07651430368423462,-0.2721535563468933,0.044513873755931854,-0.022823233157396317,-0.4720706343650818,0.06578880548477173,0.014167443849146366,-0.00479025486856699,0.1839112639427185,0.10001054406166077,-0.05446196720004082,-0.16563530266284943,0.013337275013327599,-0.11511261016130447,0.3661494553089142,-0.09271503239870071,-0.07845531404018402,0.08730683475732803,-0.07973388582468033,0.21806271374225616,0.07180968672037125,0.07857145369052887,-0.03873049095273018,-0.13944731652736664,0.1793602555990219,0.01960877887904644,-0.013389858417212963,0.036477893590927124,0.22553929686546326,-0.033132508397102356,-0.032241079956293106,-0.004044394474476576,0.03006133809685707,0.07600647211074829,-0.08292097598314285,0.34021541476249695,0.06136950105428696,-0.021091800183057785,-0.4033288359642029,-0.13295601308345795,0.025855492800474167,-0.23585043847560883,0.06884502619504929,0.029629124328494072,-0.04037315770983696,-0.004569875076413155,-0.10774191468954086,0.025497278198599815,-0.10371331125497818,-0.039315562695264816,0.010093869641423225,-0.10397642850875854,-0.038595542311668396,-0.10039333999156952,-0.01578693278133869,0.03013450652360916,0.11084938794374466,-0.0302287470549345,0.021718602627515793,-0.043139904737472534,-0.12891675531864166,-0.009215888567268848,0.08024028688669205,0.12103940546512604,0.11693938076496124,0.06331019848585129,0.2088184356689453,-0.23178744316101074,-0.2532137632369995,0.04524791240692139,-0.06552477180957794,-0.030005784705281258,0.10178539156913757,-0.022190315648913383,-0.07969982922077179,-0.01453003566712141,-0.030709896236658096,-0.22021830081939697,-0.06902332603931427,0.18307837843894958,0.030125414952635765,0.008717307820916176,-0.02439408004283905,-0.074720598757267,-0.22686409950256348,-0.01458959560841322,-0.034854479134082794,-0.07266230136156082,-0.013095641508698463,-0.0009890816872939467,-0.06438770145177841,0.08282315731048584,-0.21393072605133057,-0.006823123898357153,0.003328432096168399,0.02993478812277317,-0.05983049422502518,-0.07804494351148605,0.0354585163295269,-0.24692821502685547,-0.09283825755119324,-0.00384991685859859,0.1276269108057022,0.012349138036370277,-0.04289694130420685,0.03699371963739395,0.05600355938076973,-0.08373436331748962,0.10119850933551788,0.08998512476682663,0.0317031554877758,0.06304632127285004,0.003683958202600479,-0.05137772485613823,0.0021835414227098227,-0.0012555606663227081,-0.011193229816854,0.07175736874341965,0.04541977494955063,0.015463738702237606,0.20723778009414673,-0.09679403901100159,-0.006338027305901051,-0.18268342316150665,-0.017711030319333076,0.11359592527151108,-0.35778021812438965,-0.038364529609680176,-0.11395222693681717,0.08498984575271606,-0.0017738464521244168,-0.02714611031115055,0.025511818006634712,0.055313147604465485,-0.04198552295565605,-0.06954652816057205,0.1319207102060318,-0.030372461304068565,0.06595227122306824,-0.05732334032654762,0.10601861029863358,-0.0649213194847107,-0.08995594829320908,0.013989784754812717,-0.011819025501608849,-0.04276347905397415,-0.08575444668531418,0.0008075729128904641,0.2430090308189392,-0.06627322733402252,0.03290674462914467,0.2954005300998688,0.06743920594453812,-0.024213775992393494,0.06835521012544632,0.09896493703126907,-0.04026355594396591,0.022292131558060646,-0.23091475665569305,-0.008442973718047142,0.010478240437805653,-0.14417071640491486,0.17150434851646423,-0.053850024938583374,-0.0006580041372217238,0.0497591607272625,0.06473243236541748,0.04322853684425354,0.11306145042181015,-0.004558738321065903,0.12818658351898193,0.06176025792956352,0.025425825268030167,-0.23992757499217987,0.010408279486000538,0.12512998282909393,0.14833930134773254,-0.05109435319900513,0.046667106449604034,0.028769884258508682,0.12227466702461243,-0.040654122829437256,-0.04830733686685562,0.014100578613579273,-0.06854557991027832,-0.08756307512521744,-0.008484017103910446,-0.060271911323070526,-0.07885657995939255,0.008925029076635838,-0.02575194276869297,0.08500751107931137,0.003367653815075755,0.04818706586956978,0.06167508289217949,0.0036870967596769333,0.0008902374538592994,0.08164476603269577,-0.09018698334693909,0.08279361575841904,-0.19811466336250305,0.029346324503421783,-0.042823951691389084,-0.16071373224258423,-0.13839766383171082,-0.1469702124595642,0.014825871214270592,-0.06499224901199341,0.027780722826719284,0.06546234339475632,-0.015929032117128372,0.14670424163341522,-0.02245212160050869,-0.18702958524227142,0.03686142712831497,-0.012321972288191319,-0.028237635269761086,0.05457497760653496,0.035517387092113495,-0.06702608615159988,0.08823245018720627,0.011315843090415001,-0.10867873579263687,0.1629856526851654,0.003103440860286355,0.16196919977664948,0.01586586982011795,0.3728707432746887,0.008671248331665993,-0.10009405761957169,-0.40109512209892273,-0.08519961684942245,-0.040327806025743484,-0.054299820214509964,-0.0765349417924881,-0.016325904056429863,-0.02403922937810421,-0.07854929566383362,-0.22759371995925903,0.01741492934525013,0.033182062208652496,0.24876649677753448,0.050681982189416885,-0.03738284483551979,0.027637751772999763,0.0586821585893631,0.06577444076538086,0.04542944207787514,0.18536341190338135,0.01944795809686184,-0.013478389009833336,-0.18149790167808533,0.024149885401129723,0.22774763405323029,0.07108219712972641,0.09619197249412537,0.21249325573444366,0.06501248478889465,-0.05288969352841377,0.02139013074338436,-0.016301777213811874,-0.1339527815580368,0.13042768836021423,0.06983954459428787,-0.1644386351108551,-0.09364710003137589,0.060232218354940414,-0.05841268599033356,0.0315450057387352,-0.30008378624916077,-0.03153807669878006,-0.058375027030706406,-0.006300115026533604,0.022711127996444702,-0.015477553941309452,-0.009389660321176052,-0.11792058497667313,-0.15111827850341797,0.06686652451753616,-0.038111016154289246,-0.05255497992038727,-0.07485411316156387,-0.08713997155427933,-0.010734555311501026,-0.05975782498717308,-0.05600997433066368,-0.19004827737808228,-0.10420749336481094,0.002223987365141511,0.05960676446557045,0.1511525958776474,-0.08910619467496872,-0.11804568022489548,0.04477754607796669,0.10341776907444,0.015084152109920979,0.0032403485383838415,-0.054017458111047745,0.041544463485479355,-0.09201612323522568,0.08617087453603745,0.06092430278658867,-0.15943223237991333,0.04842425137758255,0.09498926252126694,0.3624526560306549,0.0700015127658844,0.08036923408508301,0.044957954436540604,0.09583576768636703,0.01533292606472969,0.020038500428199768,-0.04521280527114868,0.11059749871492386,0.004672891926020384]],\"projection_up.bias\":[-0.06358232349157333,-0.04367072507739067,0.02041577361524105,-0.020960712805390358,0.04763839393854141,0.06633716821670532,0.044036127626895905,-0.06739610433578491,-0.030115028843283653,-0.0712677463889122,-0.06061502546072006,-0.12382811307907104,-0.034156303852796555,-0.0009037578711286187,-0.034769292920827866,-0.010787874460220337,-0.015962883830070496,0.014685855247080326,-0.033365700393915176,-0.07185810059309006,0.07150813192129135,-0.08439197391271591,0.08624884486198425,-0.01741454005241394,0.0495757982134819,0.061351288110017776,-0.012007330544292927,0.0316179096698761,0.029557425528764725,-0.15405865013599396,-0.06016594171524048,-0.05194903910160065,0.07628469914197922,-0.09630488604307175,0.015350881963968277,-0.02123640850186348,-0.06629228591918945,-0.08749043196439743,0.10320728272199631,-0.05372773855924606,0.039611123502254486,0.10941505432128906,-0.024133050814270973,-0.09976907819509506,0.11134226620197296,-0.07240422815084457,-0.11584608256816864,0.04675576090812683,-0.03125797212123871,-0.08792935311794281,0.020163463428616524,-0.029297256842255592,0.0067353625781834126,0.029410531744360924,0.030353490263223648,-0.013665713369846344,0.007674486376345158,0.023650115355849266,-0.07207394391298294,-0.01151839829981327,-0.10247684270143509,0.021583115682005882,-0.21448740363121033,-0.17868438363075256,0.032766517251729965,0.021956127136945724,-0.049500107765197754,-0.055237215012311935,-0.14153122901916504,0.011291547678411007,-0.015414885245263577,0.013868802227079868,0.0772891715168953,-0.023934319615364075,0.11631420254707336,-0.08087631314992905,0.1353081911802292,0.07201816886663437,0.041836630553007126,-0.04698222130537033,-0.018489733338356018,-0.11612769961357117,-0.03287495672702789,0.01143436785787344,0.0924844965338707,0.003964934032410383,0.13458101451396942,-0.01833346113562584,0.011915599927306175,0.004215769935399294,0.04295289143919945,0.10466932505369186,-0.10133626312017441,-0.006014594808220863,-0.05931614339351654,-0.17590315639972687,0.025637825950980186,-0.03549153357744217,-0.17148357629776,0.1472238302230835,-0.07971818745136261,-0.05914514511823654,0.0945403128862381,0.008347093127667904,0.05906457081437111,0.03794300928711891,0.05613849312067032,-0.06365734338760376,0.03696901723742485,-0.14565013349056244,0.019664213061332703,-0.01062654796987772,0.10360784083604813,0.04095827043056488,-0.10344366729259491,0.1054564118385315,0.0022590633016079664,-0.05250296741724014,-0.07656919211149216,0.002364168409258127,-0.02950027771294117,-0.03021211363375187,0.0064426907338202,0.040404245257377625,0.025506651028990746,-0.009528469294309616,0.05286901444196701,0.042356938123703,-0.0893491804599762,-0.006606129463762045,0.011473803780972958,-0.12453893572092056,-0.03199673071503639,-0.058020349591970444,0.04563354700803757,-0.012971811927855015,-0.010768178850412369,0.021162236109375954,0.027612006291747093,-0.02473103441298008,0.061524566262960434,-0.02823701500892639,0.06792974472045898,-0.11333538591861725,-0.10676552355289459,0.1298844814300537,-0.0017391558503732085,0.008117799647152424,0.019384466111660004,-0.07496391981840134,0.07445530593395233,-0.038029663264751434,0.10427015274763107,-0.14641381800174713,-0.013640745542943478,0.10090630501508713,-0.07287213951349258,0.04366597160696983,-0.09853315353393555,-0.01396581158041954,0.0029615690000355244,0.055935606360435486,-0.1731296330690384,-0.048134833574295044,-0.04888493940234184,-0.0638776645064354,-0.045400768518447876,0.04928118363022804,0.09147422015666962,0.042703356593847275,-0.09567172080278397,0.06634654104709625,-0.01029776968061924,-0.08352702856063843,0.16212718188762665,-0.035305965691804886,-0.10444656759500504,-0.07344293594360352,0.10449700057506561,0.07375911623239517,-0.010278546251356602,-0.019415199756622314,0.024237561970949173,-0.09882999211549759,0.07726850360631943,-0.0597996823489666,0.0023007539566606283,-0.025792045518755913,-0.02591266669332981,0.1284894496202469,-0.014961537905037403,-0.07792700082063675,-0.07265516370534897,0.059217669069767,0.10018312931060791,-0.03468552976846695,-0.06906598061323166,-0.05247912183403969,-0.022891538217663765,0.12825243175029755,-0.031342003494501114,-0.021229451522231102,-0.0004416628507897258,0.02865091897547245,0.09915834665298462,0.1733662635087967,-0.09417178481817245,0.020457256585359573,-0.06344863772392273,0.04268898442387581,-0.061824310570955276,-0.04842478781938553,0.15118275582790375,-0.018267272040247917,-0.08820575475692749,-0.03585486859083176,-0.05413109436631203,0.08805929124355316,0.0336855985224247,0.027736041694879532,0.00574461929500103,0.03702962026000023,0.19370010495185852,-0.023497750982642174,0.015390947461128235,-0.04890264570713043,-0.11152103543281555,0.05855438485741615,-0.14108899235725403,-0.044705335050821304,-0.003697255626320839,0.02660738304257393,0.04453355073928833,-0.02889101579785347,0.11472238600254059,-0.008594336919486523,0.11286698281764984,0.0729316771030426,-0.08469156920909882,0.016710525378584862,0.07568910717964172,-0.01266503520309925,-0.012368369847536087,-0.029642585664987564,0.00936196744441986,0.09467899054288864,-0.0815281867980957,0.011823559179902077,-0.10288818180561066,0.04919871687889099,-0.08398035913705826,0.0075913406908512115,-0.01801447570323944,0.0924418643116951,0.07329440861940384,0.039640627801418304,-0.08031556010246277,-0.03526948392391205,-0.029282258823513985,-0.020895028486847878,0.053654491901397705,-0.019125210121273994,0.036504004150629044,-0.00876628328114748,0.11475202441215515,0.08705629408359528,-0.03026001900434494,-0.0391368567943573,-0.04396656155586243,-0.01809932105243206,0.10880943387746811,-0.0611225925385952,0.029095321893692017,-0.014164197258651257,-0.037228070199489594,-0.04884904995560646,0.012092581018805504,0.04996784031391144,0.040949996560811996,-0.046577222645282745,0.05703875422477722,-0.047692522406578064,-0.012728041037917137,0.007910098880529404,-0.029164986684918404,-0.05970079451799393,-0.15257176756858826,0.02097201719880104,0.07262329012155533,0.014762694016098976,-0.055355243384838104,-0.03567550331354141,-0.1149660125374794,-0.05030326917767525,-0.0021052288357168436,0.13900907337665558,-0.023130204528570175,-0.04112131893634796,0.07826894521713257,0.0790533497929573,-0.025083404034376144,0.002027232199907303,0.04319190979003906,0.1177230104804039,-0.11860954016447067,-0.06982363760471344,-0.029971418902277946,0.07537422329187393,-0.022050965577363968,0.07891994714736938,-0.023717572912573814,-0.09760923683643341,-0.04842345789074898,-0.05273717641830444,-0.02494802139699459,-0.04929250106215477,-0.18360038101673126,-0.08589516580104828,0.2909405529499054,-0.1787879765033722,0.048851046711206436,0.06352568417787552,0.10564390569925308,-0.02880479022860527,0.1029747948050499,-0.015812717378139496,0.08193979412317276,0.051061101257801056,0.02200199104845524,0.08857601881027222,-0.011729409918189049,0.05264139547944069,0.03749265521764755,-0.06295228004455566,-0.01627650298178196,-0.005532753653824329,-0.07455433160066605,0.13656842708587646,0.009582976810634136,0.0018323528347536922,-0.25658130645751953,-0.011275780387222767,0.006304263602942228,0.04491150379180908,0.0653136819601059,-0.09883710741996765,0.02509123459458351,0.0016499615740031004,-0.14455905556678772,0.04370046779513359,0.022866684943437576,0.05761157348752022,-0.08551522344350815,0.07377468794584274,-0.034884076565504074,0.00018489178910385817,-0.045382142066955566,0.030236197635531425,0.17960095405578613,6.101969484006986e-05,-0.005294651258736849,-0.0339217372238636,-0.1488042026758194,-0.006386857014149427,0.027784928679466248,0.040410447865724564,0.006993954069912434,-0.01665244624018669,0.03000844642519951,0.0016952083678916097,0.0006142233032733202,-0.07705817371606827,-0.08986519277095795,-0.001804469502530992,0.03027167171239853,0.14893482625484467,0.07791560143232346,-0.07497934997081757,-0.08667333424091339,-0.14553040266036987,-0.013843085616827011,0.014494084753096104,0.038642965257167816,0.07371596992015839],\"projection_up.weight\":[[0.04313176870346069,0.10107730329036713,0.08706186711788177,0.07028323411941528,0.12059178203344345,0.11283253878355026,-0.18741115927696228,0.1952020674943924],[0.03457597643136978,0.12743306159973145,-0.09729824215173721,-0.00970698706805706,-0.2175496369600296,-0.08168891072273254,-0.12096167355775833,-0.1821616291999817],[0.12589368224143982,0.04308771714568138,0.05452899634838104,0.03664641082286835,-0.11660447716712952,-0.024410750716924667,-0.22474274039268494,-0.025252817198634148],[-0.04804667457938194,-0.03507154807448387,0.030462007969617844,0.065208300948143,0.0357363298535347,0.04247770830988884,-0.04916248098015785,-0.08676347881555557],[0.0010028554825112224,-0.006516492925584316,-0.13942427933216095,0.20311327278614044,-0.026144037023186684,0.005129847209900618,0.2985880672931671,0.015445508062839508],[0.0738249197602272,0.16296222805976868,0.14296139776706696,-0.3398820161819458,-0.00870850682258606,-0.1831483691930771,0.22983132302761078,-0.027171185240149498],[-0.08426261693239212,0.0649082288146019,-0.03774741664528847,-0.05351446941494942,0.04407135769724846,-0.00372291705571115,-0.07923250645399094,0.20935657620429993],[-0.32256442308425903,0.18802747130393982,-0.10838000476360321,-0.0020320776384323835,0.2352367341518402,0.10458657145500183,-0.2863079011440277,-0.032724980264902115],[0.02930101938545704,0.09707166999578476,0.10919516533613205,-0.1539502888917923,0.08891709893941879,-0.028690872713923454,-0.06691106408834457,0.058122146874666214],[-0.10594761371612549,-0.061941079795360565,-0.023816285654902458,0.12528206408023834,0.17594990134239197,0.12407800555229187,0.01433583628386259,0.006649685092270374],[-0.08670222759246826,0.10987337678670883,0.04690948873758316,-0.03222430497407913,0.10220176726579666,-0.012770513072609901,-0.10723014920949936,-0.09894443303346634],[-0.19193734228610992,-0.03933406248688698,0.0481816828250885,-0.05418360233306885,0.24956466257572174,-0.024861561134457588,0.11953911930322647,-0.23188547790050507],[0.22727403044700623,0.22993411123752594,0.13989847898483276,0.027022873982787132,-0.09339746832847595,-0.010972404852509499,-0.1228354200720787,0.08857929706573486],[-0.14289316534996033,0.12889063358306885,0.07614071667194366,-0.20281046628952026,0.16124849021434784,-0.04134996980428696,0.0824938490986824,-0.12227834016084671],[-0.05342767760157585,-0.1369323432445526,0.005527275614440441,-0.04321352392435074,0.1597764492034912,0.004555373452603817,-0.08600201457738876,0.05289807543158531],[-0.00972222164273262,-0.005262152291834354,0.08462248742580414,-0.07623717188835144,-0.044845450669527054,-0.07932496070861816,-0.08015408366918564,0.01636197417974472],[-0.016789304092526436,-0.21158044040203094,-0.057641491293907166,0.1516961008310318,0.07828748226165771,-0.035437896847724915,0.27480340003967285,-0.15219800174236298],[0.0012514031259343028,0.04027784615755081,-0.041147179901599884,0.04185307025909424,0.02783273532986641,0.04793323576450348,0.1418834775686264,-0.019552895799279213],[-0.21771961450576782,-0.012751434929668903,0.11488452553749084,-0.23013898730278015,0.04049400985240936,-0.11332639306783676,-0.03774535283446312,-0.04208401218056679],[-0.008700461126863956,0.07023968547582626,0.11032750457525253,-0.17910802364349365,0.22350789606571198,0.04588640108704567,0.24262607097625732,-0.3104628622531891],[0.19860483705997467,-0.025509551167488098,-0.08065567165613174,0.129411980509758,-0.08291573822498322,-0.022089069709181786,-0.0851365327835083,0.07935263961553574],[-0.14478576183319092,0.02319576032459736,-0.02930236980319023,-0.15975721180438995,0.3828256130218506,0.11627347022294998,0.1687726378440857,-0.28147053718566895],[0.10065388679504395,-0.02773311547935009,0.03242677450180054,0.08960160613059998,-0.21135026216506958,-0.017328796908259392,-0.08139178156852722,0.13014310598373413],[0.06160151958465576,-0.004622271750122309,-0.061575356870889664,0.1412346065044403,-0.08806487917900085,0.09427814930677414,0.06379256397485733,0.004153361544013023],[-0.04773012921214104,-0.11195696145296097,-0.15849438309669495,0.039908308535814285,-0.17990775406360626,0.08065004646778107,-0.22010646760463715,0.15488457679748535],[0.09251284599304199,0.09839965403079987,0.11683157831430435,-0.0047719161957502365,-0.16663488745689392,-0.05932626873254776,0.11769381910562515,-0.19324812293052673],[-0.0283469520509243,-0.1530589908361435,0.10711437463760376,-0.021681170910596848,0.14168956875801086,0.2728379964828491,0.07866040617227554,0.0028194717597216368],[-0.02314971201121807,-0.26946768164634705,0.0683765709400177,0.052569158375263214,-0.10637851804494858,-0.11304328590631485,-0.12489572912454605,0.2986721098423004],[-0.2838970124721527,0.12900720536708832,0.12403522431850433,-0.2669990658760071,0.26463526487350464,-0.202114537358284,0.20547930896282196,-0.3486400544643402],[0.07401381433010101,0.10034302622079849,0.056725721806287766,-0.3106096386909485,3.1093273719307035e-05,-0.05498126894235611,0.3733662962913513,-0.1223258376121521],[-0.2416299730539322,0.06135182827711105,0.13428421318531036,-0.276031494140625,0.3030568063259125,-0.17026802897453308,-0.1935652792453766,-0.15908211469650269],[0.04421195387840271,-0.13198235630989075,-0.08601351827383041,-0.056372858583927155,0.028719164431095123,0.020189406350255013,-0.2833521366119385,0.24711591005325317],[0.15333333611488342,0.10110177099704742,0.14321370422840118,-0.285604864358902,-0.11421913653612137,-0.14175578951835632,0.15327167510986328,-0.043415557593107224],[-0.16824105381965637,-0.0011776243336498737,0.16095244884490967,-0.06865765154361725,0.08506835997104645,-0.07821323722600937,-0.14408963918685913,-0.24593272805213928],[-0.02672034688293934,-0.15085211396217346,-0.04388434439897537,0.4017459750175476,-0.14204411208629608,0.07101358473300934,-0.09114012867212296,-0.27101290225982666],[0.05815616250038147,-0.11134879291057587,-0.05259224399924278,0.2768658697605133,-0.06012440472841263,0.1367550492286682,0.07066769152879715,-0.08596573770046234],[-0.0476420633494854,0.035041213035583496,-0.014127764850854874,0.01659764163196087,0.018318144604563713,-0.02376559190452099,-0.03330666571855545,0.06802858412265778],[0.02680390141904354,0.07724699378013611,-0.017575204372406006,0.10864119231700897,-0.04462650790810585,0.13049118220806122,-0.07777627557516098,-0.23124131560325623],[0.24955984950065613,-0.1624583899974823,0.050380367785692215,0.1920003443956375,-0.3711707293987274,-0.04339084401726723,0.23041510581970215,-0.06914205849170685],[0.08839888870716095,0.03184645622968674,-0.10246971249580383,0.2029958814382553,-0.038945138454437256,0.12256322056055069,-0.12318095564842224,-0.045933425426483154],[-0.012385256588459015,0.02794521115720272,-0.0020073624327778816,-0.15919682383537292,-0.014005073346197605,0.05148548260331154,0.24019983410835266,-0.03561190143227577],[-0.0037867818027734756,-0.05997225642204285,0.06627243757247925,-0.2181236296892166,-0.048917096108198166,-0.22618314623832703,0.09996923804283142,-0.007369670085608959],[-0.10147523134946823,0.008057021535933018,-0.023492710664868355,0.21340596675872803,0.10985200852155685,0.17597877979278564,0.027862919494509697,-0.2186345010995865],[-0.19226527214050293,-0.08204125612974167,-0.04295272007584572,0.12150692939758301,0.21019861102104187,0.16463571786880493,0.11019740998744965,-0.13469718396663666],[-0.020833691582083702,-0.19002842903137207,-0.08166136592626572,0.0755784884095192,-0.04254597797989845,0.0868765264749527,-0.07823869585990906,0.3076857924461365],[0.14107760787010193,0.15899106860160828,0.09654773026704788,-0.09599698334932327,-0.05489329621195793,-0.054849740117788315,-0.16600821912288666,0.10405151546001434],[-0.18264754116535187,-0.22311758995056152,-0.00547799002379179,0.1806521713733673,0.23709312081336975,0.10751675069332123,-0.15208056569099426,-0.18971632421016693],[0.19152942299842834,0.014116864651441574,0.15778854489326477,-0.07944519072771072,-0.27393290400505066,-0.07241240888834,0.19700808823108673,-0.1462491899728775],[-0.1355128139257431,0.0781974270939827,-0.08292696624994278,0.08920043706893921,0.08327654004096985,-0.12060443311929703,-0.2258974313735962,0.0375157855451107],[-0.12322019785642624,-0.10797934979200363,-0.047794777899980545,0.15572836995124817,0.12832242250442505,-0.030588602647185326,0.18015407025814056,-0.3303303122520447],[-0.2109789401292801,0.14623893797397614,0.02057829685509205,-0.17884336411952972,0.2003505676984787,0.049017924815416336,0.08741606026887894,0.03033176250755787],[-0.12179722636938095,-0.3031352460384369,0.14335882663726807,-0.2073269635438919,-0.0020277416333556175,-0.2669861614704132,-0.24551177024841309,-0.04059277102351189],[-0.14998260140419006,-0.11042375862598419,0.1770809441804886,-0.09509382396936417,0.03641919046640396,-0.22662736475467682,-0.03747576102614403,0.012115229852497578],[0.012419016100466251,0.02743106335401535,-0.01907270774245262,0.11336395144462585,0.07407370954751968,0.1778315007686615,0.13698448240756989,-0.04137039929628372],[0.008581923320889473,-0.06929479539394379,0.018244991078972816,0.3511897623538971,-0.29470008611679077,0.13671937584877014,0.10748833417892456,-0.20537492632865906],[-0.03220421448349953,-0.02617531456053257,-0.09907568246126175,0.1610976904630661,0.11234302073717117,0.008192815817892551,-0.18933342397212982,0.11184666305780411],[-0.16172254085540771,-0.031356003135442734,0.007765672635287046,0.030430641025304794,0.12495281547307968,0.04083086922764778,0.1499652862548828,-0.16064999997615814],[-0.04858444258570671,0.13761112093925476,0.13244833052158356,-0.0893196389079094,0.03619571030139923,-0.10287704318761826,0.19818682968616486,-0.29306045174598694],[-0.07265019416809082,0.2769775390625,-0.08705291897058487,-0.041359517723321915,0.2763681411743164,-0.1045818030834198,0.10356568545103073,0.08503301441669464],[0.06654369831085205,0.12353669852018356,-0.10338893532752991,-0.11959262192249298,0.2529822587966919,0.12688784301280975,-0.021153133362531662,0.1221277266740799],[-0.16099539399147034,-0.0034137147013098,-0.07456748187541962,-0.03316306695342064,0.11553157866001129,0.11222003400325775,-0.13242115080356598,-0.1432281881570816],[0.0696830227971077,0.14837493002414703,-0.008869717828929424,-0.022076569497585297,0.053983330726623535,-0.03720807284116745,0.02988901361823082,0.026329858228564262],[0.020875487476587296,-0.1827917844057083,0.02189541794359684,0.0016638207016512752,0.027997879311442375,-0.09297601133584976,-0.1246112808585167,0.11543121933937073],[0.13448801636695862,0.07663904130458832,-0.09541356563568115,-0.15633586049079895,-0.044080186635255814,-0.05075262859463692,-0.16974525153636932,0.3014155328273773],[0.07584846019744873,0.059952154755592346,0.16891877353191376,-0.24536259472370148,-0.08649499714374542,-0.08953922986984253,0.09177744388580322,-0.0923994705080986],[-0.19498246908187866,0.18719762563705444,0.22559593617916107,-0.3855145573616028,0.20808030664920807,-0.24498127400875092,0.22186414897441864,-0.19519326090812683],[0.045350637286901474,0.2126452624797821,0.00940017495304346,0.07109815627336502,-0.03774837777018547,-0.011019369587302208,-0.3340691328048706,0.15716512501239777],[-0.2714567482471466,-0.10640698671340942,0.08660934120416641,0.07362763583660126,0.07496844977140427,-0.2349228709936142,-0.19857846200466156,0.171900674700737],[-0.2057671695947647,0.0694374367594719,-0.07574243098497391,-0.05667455494403839,0.25652316212654114,-0.03782951459288597,-0.3176380395889282,-0.03781125321984291],[0.07726632058620453,-0.320807546377182,0.009087221696972847,0.10044869780540466,0.16690556704998016,0.15414057672023773,-0.1187501773238182,0.14492560923099518],[0.06168737635016441,-0.09283450990915298,-0.12042882293462753,0.2947379946708679,-0.19589191675186157,0.1573724001646042,-0.2412905991077423,0.08070895820856094],[-0.0412772037088871,0.04317322373390198,-0.11005986481904984,-0.017538748681545258,0.07570677995681763,0.06450637429952621,0.1408301144838333,0.12352979183197021],[0.05420880764722824,-0.17016930878162384,-0.22270093858242035,0.13124139606952667,-0.1547437608242035,0.12202738225460052,-0.14481669664382935,0.39515769481658936],[-0.09098239988088608,0.019646842032670975,-0.06094851717352867,-0.12667201459407806,0.22398033738136292,0.017100224271416664,-0.2125600129365921,0.2575364112854004],[-0.10737469792366028,-0.2355588972568512,-0.052352868020534515,0.2471066117286682,-0.2440495491027832,-0.056867364794015884,-0.19135308265686035,0.03821816295385361],[-0.3327016532421112,0.10139688849449158,0.04409044235944748,-0.3281683623790741,0.32223525643348694,-0.19685760140419006,0.19034890830516815,-0.19983886182308197],[-0.10521072894334793,0.19303828477859497,-0.04731959477066994,-0.13062982261180878,-0.266863614320755,-0.08606330305337906,0.13345199823379517,0.006776240188628435],[0.2115766853094101,-0.08345366269350052,0.12182750552892685,-0.0983290746808052,-0.2395913302898407,-0.17337290942668915,-0.04187960922718048,0.06424018740653992],[0.014234259724617004,-0.15576665103435516,0.1065826267004013,-0.2996217608451843,0.017160335555672646,0.006650165189057589,-0.026182113215327263,0.14712965488433838],[-0.16896267235279083,-0.07013565301895142,-0.041735947132110596,0.08491362631320953,0.14495499432086945,0.06025794520974159,0.0521455816924572,-0.01708686724305153],[0.056193623691797256,-0.04002458602190018,0.02223651483654976,0.09687140583992004,-0.06720194965600967,-0.04841751977801323,-0.2632828950881958,0.13673926889896393],[-0.16348911821842194,0.06380238384008408,-0.015327916480600834,0.21151474118232727,0.10099046677350998,0.1731884479522705,-0.019795697182416916,-0.13267670571804047],[-0.13707315921783447,-0.11020856350660324,0.015785494819283485,-0.147813618183136,0.23856723308563232,-0.1014033779501915,-0.25255662202835083,0.23715360462665558],[-0.29409894347190857,-0.13562443852424622,-0.12557674944400787,-0.03536978363990784,0.15333051979541779,0.1339680701494217,0.02490999549627304,0.04156479239463806],[0.03591812402009964,-0.12041015923023224,0.08452418446540833,-0.165191188454628,-0.25157612562179565,-0.08477026224136353,0.2150147408246994,-0.2480856329202652],[-0.062042951583862305,0.05434219539165497,0.1366805136203766,-0.1403622329235077,-0.2669887840747833,-0.20719099044799805,-0.23924247920513153,0.04131016507744789],[0.06596881151199341,0.13976940512657166,-0.0604790635406971,0.11954513937234879,-0.24703902006149292,-0.016077693551778793,-0.08746176958084106,0.15559843182563782],[-0.08179254829883575,-0.11353575438261032,-0.12976309657096863,0.1944049745798111,0.062019232660532,0.16990846395492554,0.03511017560958862,0.002087076660245657],[0.13067331910133362,-0.21301396191120148,-0.14498722553253174,0.1394018679857254,0.09677847474813461,-0.00921978335827589,0.1030949130654335,0.06751871109008789],[0.012713693082332611,-0.13450539112091064,-0.10279157757759094,0.28400400280952454,0.13669054210186005,0.1489706039428711,0.24383112788200378,-0.14875689148902893],[-0.07236071676015854,0.21132411062717438,0.02406170964241028,0.11054101586341858,0.014060615561902523,0.03537760674953461,0.13565783202648163,-0.009996481239795685],[0.20268550515174866,-0.005626169964671135,0.1615592986345291,-0.07701637595891953,-0.3493300676345825,-0.18628515303134918,0.10160253942012787,-0.10727089643478394],[-0.08329004049301147,-0.14859768748283386,-0.038645125925540924,0.2808736562728882,0.11672089993953705,0.18346843123435974,-0.06599173694849014,-0.17109908163547516],[-0.196085587143898,-0.10526259988546371,-0.17664141952991486,0.15756776928901672,0.16703452169895172,0.1734345704317093,-0.23599115014076233,0.28337711095809937],[-0.10641350597143173,-0.13291162252426147,0.08034195750951767,-0.08875666558742523,0.0337752141058445,-0.027324184775352478,-0.16315756738185883,-0.10417920351028442],[-0.05454139783978462,-0.05131949856877327,-0.01950676739215851,-0.0786566212773323,0.27053844928741455,0.1602565348148346,0.015915637835860252,0.009637193754315376],[0.05492283031344414,0.11600195616483688,0.004428590647876263,-0.05929718539118767,-0.11946891248226166,-0.06669171899557114,-0.13819241523742676,0.19144552946090698],[0.06729808449745178,-0.15239757299423218,-0.1068841740489006,0.05773176625370979,0.28352513909339905,0.04430433362722397,-0.1572735756635666,0.18996615707874298],[-0.019932975992560387,-0.3362119793891907,-0.04340032860636711,-0.008625977672636509,-0.02110271342098713,-0.05947545915842056,0.2855103313922882,0.054124440997838974],[-0.03545652702450752,0.008350386284291744,0.021361926570534706,0.08179690688848495,-0.13669323921203613,0.007345974445343018,0.30651041865348816,-0.3355218768119812],[-0.17774222791194916,-0.1854970008134842,0.0354267880320549,-0.17523989081382751,0.07655566930770874,-0.09435681998729706,-0.012240086682140827,-0.09300867468118668],[-0.06218210607767105,0.20164354145526886,-0.04672804847359657,0.13480420410633087,0.15256153047084808,0.0967104360461235,-0.02003188617527485,0.16834497451782227],[0.16329075396060944,-0.1379963755607605,0.00014001879026181996,-0.10811585187911987,-0.012003316543996334,-0.022591527551412582,0.24111638963222504,0.05936126038432121],[0.2623274326324463,-0.2071179896593094,-0.26349419355392456,0.29484274983406067,-0.09799604117870331,0.23664015531539917,0.24079999327659607,-0.14356164634227753],[0.13052810728549957,0.17561426758766174,0.1111202985048294,0.13121281564235687,-0.28219524025917053,-0.08592589199542999,0.04005942493677139,-0.22929765284061432],[0.15055060386657715,0.08208506554365158,0.18587049841880798,0.019738100469112396,-0.2887052297592163,-0.08606310933828354,-0.050777602940797806,-0.23360714316368103],[-0.1357237994670868,0.011649721302092075,-0.2852058708667755,0.30872753262519836,0.050575703382492065,-0.04251260682940483,0.044202130287885666,0.2238599807024002],[0.21627037227153778,-0.19420339167118073,-0.006664273329079151,0.07595507055521011,0.11548587679862976,0.1666867434978485,-0.18285821378231049,0.1751568466424942],[0.16386619210243225,-0.028706887736916542,0.06443055719137192,-0.12043842673301697,-0.16966885328292847,-0.18734745681285858,-0.21543093025684357,0.20136073231697083],[-0.08098888397216797,0.004169315565377474,-0.04621975123882294,-0.04141118749976158,0.20708312094211578,0.018657317385077477,-0.011801027692854404,-0.20167472958564758],[-0.01073406171053648,-0.11290308088064194,-0.1021803468465805,0.09410068392753601,-0.2516973912715912,-0.08334895968437195,-0.07667046785354614,-0.24035823345184326],[-0.24605493247509003,0.10908117890357971,-0.024037117138504982,-0.15587283670902252,0.14133909344673157,0.033291518688201904,0.35356515645980835,-0.21205061674118042],[-0.044786591082811356,-0.1439836621284485,0.1637374609708786,-0.25716632604599,-0.0794050395488739,-0.1952044814825058,-0.0791892483830452,-0.12492795288562775],[-0.15456177294254303,0.1327587515115738,0.0669650286436081,0.09221334755420685,-0.12825679779052734,-0.02857910841703415,-0.03562858700752258,-0.016102591529488564],[-0.08668060600757599,0.0621117502450943,0.015376156195998192,-0.08655675500631332,0.19420279562473297,0.011135723441839218,0.12584011256694794,-0.060220975428819656],[-0.014280120842158794,-0.0871875137090683,-0.12723971903324127,0.03744397684931755,0.1642407774925232,0.11236336082220078,0.20230095088481903,0.09995414316654205],[-0.04736379161477089,0.11407960206270218,0.0545867383480072,-0.08115775138139725,0.13087192177772522,0.059910040348768234,0.23134484887123108,-0.004719886463135481],[-0.2336825579404831,0.010492207482457161,-0.1654777228832245,-0.03115471825003624,0.41243118047714233,0.16753657162189484,-0.22928281128406525,0.163072407245636],[-0.10867646336555481,0.19490039348602295,-0.037058331072330475,0.0021136924624443054,0.03578275069594383,-0.04577542841434479,-0.1987428218126297,0.019601944833993912],[0.04675266146659851,-0.2494492083787918,0.055628061294555664,-0.21685928106307983,0.03494477644562721,-0.2098701000213623,-0.06164044886827469,0.19621562957763672],[-0.03108210302889347,-0.1188950464129448,-0.04846363887190819,0.020375311374664307,0.04829566180706024,0.03848240152001381,0.19550614058971405,-0.13316558301448822],[-0.006505003198981285,0.005962863564491272,-0.1341465413570404,0.07016272842884064,0.17972734570503235,0.08226121962070465,0.059141382575035095,-0.04815763980150223],[-0.02917722798883915,-0.06523893773555756,0.050262726843357086,0.056824591010808945,-0.06484328955411911,-0.002675618976354599,0.20311838388442993,-0.3656364679336548],[-0.011763135902583599,0.10399679839611053,-0.05042603984475136,0.15829424560070038,-0.14952054619789124,0.032132796943187714,0.22953294217586517,-0.2171628773212433],[0.06256058067083359,-0.23362046480178833,-0.17136934399604797,0.10191109776496887,-0.03783201426267624,0.25134801864624023,0.0007910631247796118,-0.2405369132757187],[-0.20579776167869568,-0.041279930621385574,-0.12179256230592728,-0.1745442897081375,0.18645408749580383,0.012932864017784595,0.07766793668270111,0.16267257928848267],[0.19275352358818054,-0.10237805545330048,-0.14895527064800262,0.18681691586971283,-0.16580989956855774,0.08161921054124832,0.16886958479881287,0.16945675015449524],[-0.20548340678215027,-0.04664858803153038,0.012492289766669273,0.05493948981165886,0.12919758260250092,0.06957720965147018,0.0014012468745931983,-0.24482852220535278],[-0.09122797101736069,-0.0028554676100611687,-0.13975895941257477,0.13287368416786194,0.1513454020023346,0.03212634474039078,-0.2770645022392273,0.20752649009227753],[-0.1485399305820465,0.2718448340892792,-0.0025588329881429672,0.0006864011520519853,-0.01280051190406084,-0.002877389080822468,-0.03894268721342087,-0.22266723215579987],[-0.1791900247335434,0.12467128783464432,0.08575425297021866,0.07434425503015518,0.07721056789159775,-0.09230422228574753,0.20695316791534424,-0.3372182548046112],[-0.03484746813774109,-0.12291847169399261,-0.10024465620517731,0.13430579006671906,0.18434597551822662,0.02720574475824833,-0.24975770711898804,0.015532211400568485],[0.07046575844287872,-0.0020766286179423332,0.10321518033742905,-0.0854790136218071,-0.07682178914546967,-0.1741763949394226,0.11512816697359085,-0.29048049449920654],[-0.2114754617214203,0.2208472639322281,-0.0022288556210696697,0.2570488452911377,0.0004391457187011838,0.09673003107309341,0.3131384253501892,-0.09811314940452576],[0.1326862871646881,0.06798200309276581,0.02461051195859909,-0.11679303646087646,-0.18250039219856262,-0.08008138835430145,-0.29305320978164673,0.2486819475889206],[0.1716204732656479,-0.21267476677894592,-0.11426704376935959,0.302877813577652,-0.04588127136230469,0.08008504658937454,0.03670063242316246,-0.16024036705493927],[-0.05275719612836838,0.11573848128318787,0.23270130157470703,-0.2010679841041565,0.1037469208240509,-0.021761663258075714,0.2532464265823364,-0.18671409785747528],[0.19671356678009033,-0.19654586911201477,0.12516865134239197,-0.16707515716552734,0.06408539414405823,0.001242562080733478,0.29536449909210205,-0.14210118353366852],[-0.03363749012351036,-0.2761513292789459,0.10276883095502853,0.2105388641357422,0.156197652220726,0.007728430442512035,-0.3249477744102478,0.17947852611541748],[-0.14691568911075592,-0.025376979261636734,0.12425494939088821,-0.19772930443286896,0.12637698650360107,-0.017846740782260895,0.25146833062171936,-0.25652122497558594],[-0.04774213209748268,-0.06262840330600739,0.08563453704118729,-0.08029044419527054,0.09391726553440094,-0.012413420714437962,0.0046107955276966095,-0.09520760178565979],[0.1591210812330246,-0.03582974150776863,-0.15389809012413025,0.21496786177158356,-0.15411312878131866,0.08958031982183456,0.13431891798973083,0.19054917991161346],[-0.12330662459135056,0.11442379653453827,-0.03239280730485916,-0.13828282058238983,-0.0212141964584589,-0.13788549602031708,-0.0839814692735672,0.055589478462934494],[-0.038861583918333054,-0.1195492148399353,0.06262512505054474,-0.1644924432039261,0.07191745936870575,-0.16640913486480713,-0.23206932842731476,0.057280343025922775],[-0.024132326245307922,0.04665280878543854,-0.06129376217722893,0.125553160905838,-0.060823120176792145,0.056320469826459885,-0.021501757204532623,0.10758578777313232],[0.06349707394838333,0.1664288341999054,0.036392197012901306,-0.10823507606983185,-0.13077156245708466,-0.06956695020198822,-0.12042516469955444,0.17771753668785095],[0.015190208330750465,-0.0005885954014956951,0.08119427412748337,-0.1357329934835434,-0.04309895262122154,-0.132517471909523,0.12598498165607452,-8.292795973829925e-05],[0.16638757288455963,-0.010720442980527878,0.11865641921758652,-0.023190287873148918,-0.17665605247020721,0.020690755918622017,0.15863630175590515,-0.2348150759935379],[-0.2391861081123352,-0.2683561146259308,-0.1862681806087494,0.2177722305059433,-0.06994331628084183,0.1453990787267685,-0.03518204763531685,0.011875868774950504],[0.08669479191303253,0.18591314554214478,-0.08051395416259766,0.17146287858486176,0.0007891025743447244,0.14395485818386078,-0.039025940001010895,0.05335293710231781],[0.33168402314186096,0.06913039833307266,-0.08661660552024841,0.2003893107175827,-0.3562999367713928,0.08306947350502014,0.20343729853630066,0.16336287558078766],[-0.05839981138706207,0.14297722280025482,0.17131082713603973,-0.2330489307641983,0.0010852109408006072,-0.19024039804935455,-0.05170974135398865,-0.14680767059326172],[0.022288303822278976,0.17773206532001495,0.057202789932489395,-0.1639757603406906,-0.02723618596792221,-0.06877503544092178,0.20210514962673187,0.10447598248720169],[-0.15626490116119385,-0.011903549544513226,0.0009333240450359881,-0.10433345288038254,0.1315016746520996,0.0023505007848143578,-0.2613430619239807,-0.04028385877609253],[-0.05992210656404495,0.01875201426446438,-0.01187875960022211,0.11112518608570099,0.11230851709842682,0.08435411751270294,-0.03522111475467682,0.15632660686969757],[0.15793946385383606,0.02310764044523239,0.0330057367682457,0.14779122173786163,-0.2007327824831009,0.02922203205525875,-0.03236174210906029,0.10177380591630936],[0.110721156001091,-0.0013066186802461743,-0.10600759834051132,-0.004099524579942226,0.13996316492557526,0.05512107536196709,-0.1100560873746872,0.2628995180130005],[-0.06375894695520401,-0.13915123045444489,-0.05115635693073273,0.07389962673187256,0.11832503229379654,0.05992584675550461,-0.08008109033107758,0.046694185584783554],[-0.05260222777724266,-0.14793793857097626,-0.11828458309173584,-0.2178521603345871,0.04789116978645325,0.07351121306419373,-0.0817481279373169,-0.1389482617378235],[-0.0997251644730568,-0.12009980529546738,-0.07719079405069351,0.0656432956457138,-0.003793545765802264,0.017763571813702583,0.07058240473270416,-0.13445571064949036],[-0.19668366014957428,-0.11372467130422592,0.22697234153747559,-0.05239569768309593,0.07912629842758179,-0.08565942943096161,-0.23019635677337646,-0.002843041205778718],[0.03877042979001999,0.004104848951101303,0.060196224600076675,-0.10084804147481918,-0.10224264115095139,0.01774469204246998,0.034605320543050766,0.13208672404289246],[0.03391244262456894,0.06610793620347977,-0.06441657990217209,-0.14694684743881226,0.14707712829113007,0.2076943963766098,0.18349555134773254,-0.1896834671497345],[-0.03692853823304176,0.013858839869499207,0.04261663183569908,-0.013985343277454376,0.16524773836135864,0.034020278602838516,-0.058259058743715286,-0.19517743587493896],[0.1568676382303238,-0.10101767629384995,0.09248020499944687,0.128239706158638,0.26507291197776794,-0.16368530690670013,0.015598831698298454,-0.08620660752058029],[0.03503822535276413,-0.13283821940422058,-0.17502059042453766,0.44807547330856323,0.03169185668230057,0.2173788696527481,0.18280580639839172,-0.07545363157987595],[-0.005131916143000126,-0.0676303580403328,-0.12992028892040253,-0.07192825525999069,0.09689471870660782,-0.005315639078617096,0.1820831298828125,-0.10835948586463928],[-0.19458895921707153,-0.04457109421491623,0.14946720004081726,-0.17270176112651825,-0.19372066855430603,0.17268788814544678,0.01705298013985157,-0.2656986713409424],[0.1734382063150406,0.010644331574440002,0.023691780865192413,0.11791079491376877,-0.189560204744339,-0.046077899634838104,-0.026908760890364647,0.07540501654148102],[-0.0655292272567749,0.07675439119338989,-0.12263419479131699,0.1404334008693695,-0.2282768338918686,-0.08050238341093063,0.1128610372543335,-0.24282725155353546],[-0.25015637278556824,0.2653707265853882,-0.014279698021709919,-0.17383213341236115,0.22065265476703644,-0.05695105344057083,-0.24427419900894165,0.07887168228626251],[-0.22050675749778748,-0.26183512806892395,-0.13296395540237427,0.2268729954957962,-0.22037293016910553,0.01136188767850399,-0.11202695965766907,-0.16967730224132538],[0.05775514990091324,0.14767813682556152,0.14398963749408722,-0.13777610659599304,-0.05479174479842186,-0.06393700838088989,-0.023565223440527916,-0.005978654604405165],[-0.054746635258197784,-0.09639610350131989,-0.006570231169462204,-0.09380016475915909,0.11254239082336426,0.1292080134153366,0.25790733098983765,-0.2888897955417633],[0.24154210090637207,0.016662251204252243,0.06138753890991211,-0.11022643744945526,-0.23674631118774414,-0.11772339046001434,0.027462715283036232,0.11273954063653946],[-0.24567511677742004,-0.08018861711025238,-0.07603099942207336,0.1190696507692337,0.1602223813533783,0.021481366828083992,-0.34275946021080017,-0.037892524152994156],[0.2695072293281555,-0.040611088275909424,-0.021932655945420265,0.1168113648891449,0.12715978920459747,0.21382221579551697,-0.07042288035154343,-0.11599390208721161],[-0.12813623249530792,-0.21338780224323273,0.1519678831100464,-0.18231438100337982,0.20777347683906555,-0.0503506138920784,-0.21607889235019684,-0.13542313873767853],[0.13608159124851227,0.13087835907936096,-0.02552068792283535,-0.029010416939854622,-0.25463294982910156,-0.08299615979194641,-0.14043645560741425,0.3515528440475464],[0.12354627251625061,0.19872742891311646,0.1568705141544342,-0.07187460362911224,-0.2127390205860138,-0.019957367330789566,0.33059635758399963,-0.1509072631597519],[-0.28594353795051575,0.27033233642578125,-0.030726268887519836,-0.08774025738239288,0.2410694658756256,0.09525074809789658,-0.06106945872306824,0.047368984669446945],[-0.12074975669384003,0.0208287313580513,-0.0827701985836029,0.20568418502807617,0.054493144154548645,0.1594323217868805,-0.07408798485994339,-0.005945533514022827],[0.05496085062623024,-0.012326166033744812,0.10893335193395615,-0.21393948793411255,-0.06706064939498901,-0.0951228141784668,-0.040764689445495605,0.29506441950798035],[-0.3188391625881195,0.24797794222831726,-0.0031637479551136494,-0.03789563849568367,0.3237752914428711,0.033628933131694794,0.030625710263848305,0.01600293256342411],[0.028606178238987923,0.021537713706493378,0.020141568034887314,-0.07626507431268692,-0.04377729818224907,-0.01839589513838291,0.01831982284784317,0.009455396793782711],[-0.07897135615348816,0.06356516480445862,0.0955723449587822,0.09178254008293152,0.024877706542611122,-0.07048498839139938,-0.13872140645980835,-0.18943439424037933],[-0.07620958983898163,0.05203869938850403,0.2228623628616333,0.10208145529031754,0.09219066053628922,-0.03693114221096039,0.22946467995643616,-0.17390210926532745],[0.08387819677591324,-0.10191050171852112,0.10564438253641129,0.16842903196811676,-0.19718922674655914,0.016623996198177338,0.0962962955236435,-0.2918068766593933],[0.31286633014678955,-0.09568554162979126,0.184171661734581,0.050714246928691864,-0.06140174716711044,-0.21010039746761322,0.08654570579528809,-0.10324663668870926],[0.12226371467113495,-0.07564260810613632,-0.07017572969198227,0.08313263952732086,-0.1724914163351059,-0.03518688678741455,-0.29433128237724304,0.3037615716457367],[0.16689559817314148,0.13742563128471375,0.053956665098667145,0.12521663308143616,-0.28508827090263367,0.04100186750292778,-0.12106876820325851,0.14413726329803467],[-0.04638996347784996,0.191045880317688,0.05383468419313431,-0.10568408668041229,0.018214499577879906,-0.09390590339899063,0.14704065024852753,-0.2309969663619995],[-0.006037761457264423,0.18772761523723602,0.08052856475114822,-0.16237576305866241,0.16976329684257507,-0.022194357588887215,0.11125561594963074,-0.05934372544288635],[0.2810041010379791,-0.18396447598934174,0.05226200446486473,0.04608157277107239,-0.40536126494407654,-0.04061635583639145,-0.006039716303348541,-0.034965213388204575],[0.04138718917965889,-0.1812421828508377,-0.23215937614440918,0.3088361918926239,-0.032615192234516144,0.10621118545532227,0.22353264689445496,0.0985528826713562],[0.07078065723180771,-0.014481364749372005,0.03936570882797241,-0.2125846892595291,0.010209075175225735,-0.0696936547756195,0.04637781158089638,0.029457101598381996],[0.01150842197239399,0.01662837713956833,0.05170772597193718,-0.1177966296672821,0.18881338834762573,-0.0935460552573204,0.1103513315320015,-0.13221997022628784],[-0.20773138105869293,0.04551462084054947,-0.01987336203455925,-0.05697878450155258,0.12758615612983704,0.03152894228696823,-0.13698440790176392,0.1717333197593689],[-0.03353571519255638,-0.11787690222263336,0.025762028992176056,0.1830296814441681,-0.02811935544013977,-0.02241923287510872,-0.2509438395500183,-0.05468573421239853],[0.2543896436691284,0.1354442834854126,-0.026546228677034378,0.15243291854858398,-0.34296107292175293,0.01124406699091196,0.04952375590801239,0.2945236563682556],[0.05575157329440117,0.25029993057250977,0.039909906685352325,0.17955772578716278,-0.023893313482403755,-0.004139013588428497,-0.07265876233577728,0.00691280048340559],[0.057363782078027725,0.06252249330282211,-0.0734722688794136,0.2813430428504944,-0.0856909230351448,0.19494473934173584,-0.056891828775405884,-0.21954505145549774],[0.06885886937379837,0.06342894583940506,0.013384096324443817,-0.07014010101556778,-0.15949881076812744,-0.001770639093592763,0.3621647357940674,-0.15024998784065247],[-0.046072617173194885,0.2298324853181839,0.03374811261892319,-0.28079405426979065,0.12473198026418686,-0.11482942849397659,0.1351340115070343,0.19008338451385498],[-0.11287108808755875,-0.019456492736935616,0.00467791547998786,-0.14605535566806793,-0.18980751931667328,-0.16604377329349518,-0.017988745123147964,0.04052295908331871],[0.2801361680030823,0.005506167653948069,-0.1324230432510376,0.036267753690481186,-0.14673882722854614,0.08151426166296005,0.05981878191232681,0.3544926345348358],[-0.23215064406394958,0.2048085629940033,-0.03397699445486069,-0.15648123621940613,0.11359775811433792,0.009793977253139019,-0.043601036071777344,-0.18654930591583252],[-0.07514165341854095,-0.2121860682964325,0.03818752244114876,0.26714715361595154,-0.31655511260032654,0.24399517476558685,-0.2701629400253296,-0.11325564235448837],[-0.21696139872074127,0.04034457728266716,-0.06164726987481117,0.07261339575052261,0.22123827040195465,0.008052172139286995,0.15150189399719238,-0.13664624094963074],[0.01706036366522312,-0.15642599761486053,-0.06478428095579147,-0.10772401839494705,0.10428908467292786,-0.014477758668363094,0.10226605087518692,-0.023573454469442368],[0.006500585936009884,0.1495458334684372,0.108114093542099,-0.08139297366142273,-0.0807209238409996,-0.1360403150320053,-0.16248200833797455,0.02514525316655636],[-0.1214638352394104,-0.03969600796699524,0.02598658949136734,0.031151466071605682,0.02901483327150345,0.06006551906466484,0.17335627973079681,-0.2844047248363495],[0.19168998301029205,-0.09969580173492432,-0.038515377789735794,0.037317611277103424,-0.3002732992172241,-0.011223290115594864,-0.17150048911571503,0.1652984619140625],[0.23541805148124695,-0.26099643111228943,0.19561956822872162,-0.049292441457509995,0.1068304181098938,0.09960522502660751,0.0774378851056099,-0.1993493139743805],[-0.06153927743434906,-0.0810922309756279,0.015763187780976295,0.10629841685295105,-0.004572890233248472,0.04711556062102318,0.1600259691476822,-0.23860010504722595],[0.10573938488960266,-0.05863719806075096,0.057855479419231415,-0.018440382555127144,-0.09427117556333542,0.11507324129343033,-0.2979239523410797,-0.018721360713243484],[-0.1676318645477295,0.02373342216014862,-0.2616289556026459,0.11839330196380615,0.18089914321899414,0.23698948323726654,-0.006457706913352013,0.18830156326293945],[-0.11786262691020966,0.20666444301605225,0.056353867053985596,-0.14555951952934265,-0.0038359020836651325,-0.007056958042085171,0.09844149649143219,0.06782310456037521],[-0.06133618205785751,-0.13124588131904602,-0.19559992849826813,0.018729906529188156,0.22091597318649292,0.17452505230903625,0.2580002248287201,0.1450122892856598],[-0.19834774732589722,0.052733033895492554,0.015846796333789825,-0.06196001544594765,0.1146659180521965,0.03422550857067108,-0.2878704071044922,0.14317502081394196],[-0.1488114893436432,0.12183249741792679,0.026440339162945747,-0.10532975196838379,0.12607349455356598,0.025892747566103935,0.11857274919748306,-0.09216707944869995],[-0.062207095324993134,0.058225199580192566,0.07957898825407028,-0.09459695965051651,0.02431313507258892,-0.0055220481008291245,0.1742989718914032,-0.09863542020320892],[-0.0835849791765213,0.1120385229587555,-0.05403340980410576,0.017370035871863365,-0.05311897024512291,-0.06697991490364075,-0.3191290497779846,0.11548963934183121],[0.28455883264541626,-0.09039805084466934,-0.112394779920578,0.2755647897720337,-0.3267458379268646,0.11126257479190826,0.07767900079488754,0.13999797403812408],[0.23521341383457184,0.25233110785484314,-0.07058246433734894,0.05033951625227928,-0.14631149172782898,0.06542594730854034,0.028882242739200592,-0.06567863374948502],[-0.003911865875124931,0.19221387803554535,-0.047247570008039474,0.05174485594034195,0.2512143850326538,0.19772297143936157,0.06231788173317909,0.17357930541038513],[-0.14119386672973633,-0.09230739623308182,0.15513011813163757,0.08481615781784058,-0.09859240055084229,-0.19940321147441864,-0.330660343170166,-0.23536057770252228],[-0.19432833790779114,-0.14568889141082764,-0.04914397373795509,0.016564780846238136,-0.18940754234790802,-0.06496834754943848,-0.21793417632579803,-0.01933782920241356],[-0.07647282630205154,-0.211232528090477,-0.019004758447408676,0.025546103715896606,0.09994712471961975,0.061456795781850815,-0.07370460778474808,-0.18106745183467865],[-0.05859266594052315,-0.01529755350202322,0.20032164454460144,-0.09457527101039886,-0.10964702814817429,-0.09422851353883743,0.0350516140460968,-0.3898477554321289],[-0.029928678646683693,0.05906512588262558,0.17549313604831696,-0.06304943561553955,-0.18966078758239746,-0.10156269371509552,-0.07143384218215942,-0.12448534369468689],[0.036508709192276,-0.1516413390636444,-0.045216381549835205,-0.03418039530515671,0.11186670511960983,0.14687834680080414,-0.09540418535470963,0.3216383755207062],[0.26758599281311035,0.0817839577794075,-0.029166826978325844,0.20204049348831177,-0.23661334812641144,0.10271250456571579,0.010673806071281433,0.15436315536499023],[-0.23731085658073425,-0.055949609726667404,-0.06342747062444687,-0.06991128623485565,0.3353305160999298,0.12189049273729324,-0.09565969556570053,-0.08898356556892395],[0.18269433081150055,-0.2027807980775833,-0.18349561095237732,-0.030664773657917976,-0.03707895055413246,0.12270373106002808,0.02749696560204029,0.2040509581565857],[-0.1981017142534256,0.058287668973207474,-0.015531939454376698,-0.22162795066833496,0.19080892205238342,-0.05719756335020065,0.014341001398861408,0.22550813853740692],[0.29261624813079834,-0.2548806369304657,0.027172645553946495,-0.11445128172636032,-0.29508572816848755,-0.11799925565719604,-0.17216573655605316,0.12518033385276794],[-0.11793383210897446,-0.09629286825656891,-0.08987832814455032,0.05461545288562775,-0.16438652575016022,0.14965808391571045,-0.16058363020420074,0.08519405871629715],[-0.09029405564069748,0.1923617273569107,0.33211076259613037,-0.30266404151916504,0.22431789338588715,0.03659205138683319,-0.22375361621379852,0.0064613716676831245],[0.17270857095718384,-0.22358113527297974,0.12125954777002335,-0.11945543438196182,0.27585405111312866,-0.2247951626777649,0.14743134379386902,0.0009700673981569707],[0.15969045460224152,0.1239592432975769,0.03111625835299492,0.14336204528808594,0.0037228912115097046,0.008945192210376263,0.19306674599647522,0.18166828155517578],[0.02856992743909359,-0.09604517370462418,0.03129757568240166,0.12904320657253265,0.06702744215726852,0.2087819129228592,0.19396047294139862,-0.1908443719148636],[0.1101880669593811,0.03852173686027527,-0.05003645643591881,-0.17215496301651,0.009711709804832935,-0.15511924028396606,-0.09415315091609955,0.1002289205789566],[0.2164931744337082,0.20286643505096436,0.20013855397701263,-0.1506684571504593,-0.1451864093542099,-0.06221133470535278,-0.14243842661380768,-0.0579134039580822],[0.10992264747619629,-0.0035627447068691254,0.06189451739192009,-0.16833636164665222,0.13561221957206726,-0.12588107585906982,-0.07441747933626175,0.0873546227812767],[-0.08707063645124435,-0.021768944337964058,0.11477679759263992,-0.07953803986310959,-0.28408995270729065,-0.027382267639040947,-0.07668978720903397,-0.02658037841320038],[-0.08195734024047852,0.007270005531609058,0.05409920960664749,-0.18263517320156097,0.03927060589194298,-0.06832300871610641,0.007076452020555735,-0.056567225605249405],[-0.09491711854934692,0.029746243730187416,-0.008506938815116882,0.20137494802474976,-0.16392222046852112,-0.07828917354345322,-0.003346026409417391,-0.19669318199157715],[0.15644270181655884,-0.01888258568942547,-0.10169091820716858,-0.03459008410573006,-0.18431797623634338,0.14676910638809204,-0.27163803577423096,0.31887954473495483],[-0.10660618543624878,0.17005765438079834,0.09433083236217499,0.10543470084667206,0.019160056486725807,0.040426529943943024,-0.10202606767416,-0.16852378845214844],[-0.1257709264755249,-0.14561641216278076,-0.23569658398628235,0.09599363058805466,0.3163367509841919,0.35245925188064575,0.2464328110218048,-0.2108449786901474],[0.19729472696781158,0.14448046684265137,0.12189999967813492,0.10612988471984863,0.11695000529289246,0.04408007115125656,0.31056082248687744,0.01531432569026947],[-0.3572540879249573,-0.03261961415410042,-0.33613675832748413,0.1531754434108734,-0.027712946757674217,0.1224353238940239,0.2631447911262512,-0.14153167605400085],[0.04179494455456734,0.07996369898319244,-0.0392041951417923,0.11157546192407608,-0.28980910778045654,-0.026010187342762947,-0.2546160817146301,0.25026530027389526],[0.21130800247192383,-0.015541241504251957,-0.029537077993154526,0.1433606743812561,-0.14401787519454956,0.059351369738578796,0.1972537487745285,-0.05282214283943176],[0.1982804387807846,0.21458925306797028,-0.15524519979953766,-0.15144139528274536,0.06706023961305618,0.17765061557292938,0.06639691442251205,0.31243982911109924],[0.015224713832139969,0.12770411372184753,-0.013262559659779072,-0.1582358330488205,0.12317553907632828,-0.02321135625243187,0.2302694022655487,0.24200069904327393],[0.1124395951628685,-0.11633242666721344,-0.11207400262355804,0.02319788560271263,0.04701342061161995,0.08929990977048874,0.16227924823760986,0.3249099850654602],[-0.1283726543188095,0.056195881217718124,-0.03888260945677757,-0.1381450742483139,0.1817629337310791,0.14003680646419525,-0.22000940144062042,-0.0475531741976738],[0.10047844797372818,-0.0014784781960770488,0.015057014301419258,0.06471766531467438,-0.08058122545480728,0.026597587391734123,-0.15313291549682617,0.05600864812731743],[0.010086435824632645,-0.0007024430087767541,-0.07842543721199036,-0.08478672057390213,0.2100449800491333,0.06873742491006851,0.16272397339344025,0.2449743151664734],[-0.0039646620862185955,-0.15594719350337982,-0.15604999661445618,0.36763831973075867,0.02613666281104088,0.24157339334487915,-0.023011935874819756,0.1467163860797882],[0.23037320375442505,-0.05353483557701111,0.10852887481451035,-0.18821649253368378,-0.32991477847099304,-0.25478896498680115,-0.06998564302921295,-0.13983434438705444],[0.15274131298065186,-0.19519861042499542,-0.17130576074123383,0.07758816331624985,0.0881725549697876,0.13079465925693512,-0.05404791980981827,0.32311978936195374],[0.0817255973815918,0.10249833017587662,0.18395894765853882,-0.2775459587574005,-0.1207992434501648,-0.21046411991119385,0.09694357961416245,0.08713588863611221],[-0.20767967402935028,-0.15929560363292694,0.10382392257452011,-0.12285182625055313,-0.2039184719324112,-0.2969234883785248,-0.24933581054210663,-0.12400269508361816],[0.07104936987161636,0.16796231269836426,-0.10691004246473312,-0.09581610560417175,-0.028529400005936623,0.1022614911198616,0.08948764950037003,-0.0677042007446289],[0.093778096139431,0.07538828998804092,0.0190703347325325,0.14499928057193756,0.0379641130566597,0.10495254397392273,0.330204576253891,-0.02919871173799038],[-0.18860779702663422,-0.046988170593976974,0.04419087618589401,-0.1208360493183136,0.2605745196342468,-0.030562197789549828,0.14639431238174438,-0.13860376179218292],[-0.0060913716442883015,-0.012959165498614311,-0.0432065911591053,-0.11639384925365448,0.044867802411317825,-0.027978388592600822,0.0912880077958107,0.04148685559630394],[0.2488163858652115,-0.2237977683544159,-0.13676992058753967,-0.10156527161598206,-0.2600793242454529,-0.14869359135627747,0.06088585779070854,-0.18114107847213745],[-0.023729218170046806,-0.1134020984172821,0.10388045012950897,0.1355510950088501,-0.1689176857471466,-0.17515398561954498,-0.14307881891727448,-0.24515636265277863],[-0.0787297859787941,0.1092873215675354,-0.0904306173324585,0.0601099357008934,-0.10740210860967636,0.04766812175512314,-0.20831076800823212,0.1935933530330658],[0.16746237874031067,-0.0080148009583354,0.05740853026509285,-0.12545055150985718,0.09688376635313034,-0.032429397106170654,0.0625353679060936,-0.04805494472384453],[0.16470016539096832,-0.10645294934511185,-0.05775509029626846,0.1454811841249466,-0.11610078811645508,0.04183114320039749,-0.11989258974790573,0.08138874173164368],[-0.2063152939081192,-0.1929733157157898,0.07701147347688675,-0.26090601086616516,0.13385573029518127,-0.1977117955684662,-0.1705266535282135,-0.019215654581785202],[-0.014978732913732529,0.12354278564453125,0.012021251022815704,-0.21610938012599945,0.08607368171215057,-0.07828618586063385,-0.1621079295873642,0.2431756556034088],[-0.17065714299678802,0.09029486775398254,-0.10126186907291412,-0.08156342059373856,0.23349809646606445,-0.02894514612853527,0.22605670988559723,0.06365368515253067],[0.0071568419225513935,0.04809560626745224,0.05925702676177025,-0.07429011166095734,-0.09957427531480789,-0.055445898324251175,-0.037335652858018875,-0.060118455439805984],[-0.12857769429683685,-0.13074515759944916,-0.039405833929777145,0.12192679196596146,-0.002840357832610607,0.027646485716104507,-0.05562987178564072,0.14042825996875763],[-0.09831362217664719,-0.17732666432857513,-0.03242143616080284,0.22695554792881012,0.06645174324512482,0.06830157339572906,0.02023162692785263,0.09071680903434753],[0.04553048685193062,0.0894722267985344,0.14097218215465546,-0.029556242749094963,0.020049607381224632,-0.14753609895706177,0.08188080042600632,-0.15623588860034943],[0.03647041320800781,0.09640711545944214,0.05513259023427963,-0.06089988723397255,0.03109532967209816,-0.006876417901366949,-0.01833515614271164,-0.05605488270521164],[-0.08951842039823532,0.22173498570919037,-0.22422705590724945,-0.2029448300600052,0.2874816358089447,0.09923910349607468,0.21314014494419098,0.21303875744342804],[0.02422206662595272,-0.10356500744819641,-0.057078950107097626,-0.04451454058289528,0.11675302684307098,1.4334284060169011e-05,0.013588710688054562,0.15814465284347534],[-0.11378632485866547,0.025414537638425827,-0.1358836144208908,-0.20583531260490417,0.27578282356262207,-0.029966242611408234,-0.07034546136856079,0.18063989281654358],[-0.03331293910741806,-0.031101839616894722,-0.13261446356773376,-0.23216551542282104,0.3555631637573242,-0.031490668654441833,-0.20059938728809357,0.2284572571516037],[-0.1027061864733696,-0.023731835186481476,-0.15104222297668457,0.08035758882761002,-0.04970155656337738,-0.13167685270309448,-0.1944013386964798,0.20740187168121338],[0.10283663868904114,0.014996500685811043,-0.08365418016910553,0.07011191546916962,-0.060660358518362045,0.08707449585199356,-0.06938619911670685,0.2105274647474289],[0.030243385583162308,0.09783922135829926,-0.0022412631660699844,-0.2443387359380722,0.03815656155347824,0.018142251297831535,0.18655967712402344,-0.00042361783562228084],[-0.18155449628829956,0.10294122993946075,0.06916967779397964,-0.3201538920402527,0.22808778285980225,-0.17337018251419067,0.26049312949180603,-0.15594802796840668],[0.31475600600242615,-0.09431242197751999,-0.05404786020517349,0.03680216148495674,0.12301904708147049,0.27287423610687256,0.03327137231826782,-0.013935873284935951],[-0.010034571401774883,-0.17997443675994873,-0.018563834950327873,0.21012301743030548,0.16139326989650726,0.04654376581311226,-0.18141937255859375,-0.027551952749490738],[-0.0581301748752594,-0.03607622906565666,0.043738044798374176,-0.19768382608890533,0.17050473392009735,-0.12302659451961517,-0.1446610987186432,0.22456809878349304],[-0.1662970334291458,0.008337575010955334,-0.09322844445705414,0.12305041402578354,0.18260422348976135,0.1500622183084488,-0.19117456674575806,0.1386767327785492],[0.21822407841682434,-0.12655530869960785,0.22093017399311066,-0.06618012487888336,-0.2580205500125885,-0.2108631134033203,-0.2203322798013687,0.202370285987854],[0.21319220960140228,0.024911586195230484,-0.07206723839044571,0.24013371765613556,-0.11925126612186432,0.16192418336868286,-0.024182520806789398,0.16942857205867767],[0.053164925426244736,0.007487081922590733,-0.0829700157046318,0.23737162351608276,0.00546776968985796,-0.01274172030389309,0.0624396838247776,0.03928535059094429],[0.1455281376838684,-0.1905653178691864,-0.05925917997956276,-0.21919527649879456,0.04887563735246658,0.05518938601016998,-0.012031885795295238,0.3688960671424866],[0.19045552611351013,-0.17610080540180206,0.10860346257686615,-0.042089611291885376,-0.25403955578804016,-0.16604328155517578,-0.092194564640522,-0.07582215964794159],[-0.09599943459033966,-0.15362238883972168,-0.018130244687199593,0.017158444970846176,-0.03703472763299942,-0.2325674593448639,-0.25772878527641296,0.005493714939802885],[0.0996781513094902,-0.11432231217622757,-0.1370805948972702,-0.05226296931505203,-0.22404475510120392,0.05986356362700462,-0.14339762926101685,0.05587971583008766],[-0.026279529556632042,0.11098813265562057,-0.028463637456297874,0.0569026805460453,-0.24699118733406067,0.24816948175430298,0.24428686499595642,-0.07587762922048569],[0.13393740355968475,0.12030355632305145,0.05414019525051117,0.0715775340795517,-0.3250789940357208,-0.0784265473484993,-0.02201506868004799,0.1916460394859314],[0.10946774482727051,-0.16560333967208862,0.14614500105381012,-0.110862135887146,0.04637047275900841,-0.13247458636760712,-0.21174222230911255,-0.10650819540023804],[-0.0669577345252037,0.16162309050559998,0.09898313879966736,-0.2850019037723541,0.18433968722820282,-0.07712372392416,0.06469081342220306,-0.07493352890014648],[-0.11277732253074646,-0.040743790566921234,0.05142431706190109,0.02428799867630005,0.0689946785569191,-0.037011537700891495,0.10463432222604752,-0.17090564966201782],[-0.21693381667137146,0.002080187201499939,-0.05343210697174072,-0.24506889283657074,0.13686200976371765,0.0002700088080018759,0.2932974100112915,-0.05662255361676216],[-6.135180592536926e-05,-0.11831942945718765,-0.14013706147670746,0.18382294476032257,0.023840660229325294,0.17270416021347046,-0.028426291421055794,-0.004192392807453871],[0.09085364639759064,0.20608189702033997,0.0628150999546051,0.04501606523990631,-0.1471371054649353,-0.053391166031360626,-0.04581567645072937,0.023409711197018623],[-0.038493622094392776,0.04147188365459442,0.002165587153285742,0.016512377187609673,-0.031445249915122986,0.08347216248512268,-0.1958257257938385,-0.014947189949452877],[-0.09026291966438293,-0.17114336788654327,-0.0630609542131424,0.23541846871376038,0.24762052297592163,0.13264866173267365,-0.08095397800207138,-0.21063144505023956],[-0.02532634511590004,0.11804185062646866,0.04877118021249771,-0.157271146774292,0.07992798089981079,-0.10057312995195389,-0.03161660581827164,0.0014782773796468973],[0.025112541392445564,-0.2064698338508606,0.019380873069167137,0.1713520884513855,0.03527846187353134,-0.05250898376107216,-0.36997106671333313,0.14371678233146667],[-0.02880413830280304,0.1610165685415268,0.15686823427677155,-0.11300309747457504,0.11636441200971603,-0.10057071596384048,-0.24539437890052795,-0.05167821794748306],[0.016952885314822197,0.040012773126363754,-0.041762709617614746,0.2447366565465927,-0.06916191428899765,0.026454055681824684,-0.30622586607933044,0.1444653570652008],[-0.054609909653663635,0.18522004783153534,0.05623144656419754,-0.09613393247127533,0.22408045828342438,-0.042343541979789734,-0.15870828926563263,-0.12916362285614014],[-0.17216190695762634,-0.1357700526714325,-0.0503469817340374,0.12483491748571396,0.28754451870918274,0.159885972738266,0.23464661836624146,-0.2953020930290222],[0.24538767337799072,-0.2490827888250351,0.1610550731420517,0.1566830277442932,-0.0734764114022255,0.0972486212849617,-0.014676986262202263,-0.17917568981647491],[0.257667601108551,-0.1188298761844635,-0.04603000357747078,0.12593890726566315,-0.1481124311685562,-0.010235542431473732,-0.17116309702396393,0.26712489128112793],[0.06282200664281845,0.04047270119190216,-0.01903601922094822,-0.06339242309331894,-0.041549164801836014,-0.045591242611408234,0.09980706870555878,0.07401790469884872],[0.0019292848883196712,0.08380033820867538,0.05836261063814163,-0.06953158974647522,-0.22769752144813538,-0.08598857372999191,0.09910038113594055,-0.20420964062213898],[0.24633720517158508,-0.01391199417412281,-0.0759505182504654,-0.0645524188876152,-0.15390996634960175,0.01748417504131794,0.02311832644045353,0.15122994780540466],[-0.3195197284221649,-0.04967866092920303,-0.13598476350307465,0.14758911728858948,0.232894629240036,0.13492421805858612,-0.1622408926486969,0.12419087439775467],[0.003544856561347842,0.08915875107049942,0.15272177755832672,-0.18196074664592743,-0.132248654961586,-0.18402333557605743,0.11193113774061203,0.11714914441108704],[0.027675509452819824,0.04702647775411606,0.049357715994119644,0.08799903839826584,0.020085928961634636,-0.016630422323942184,-0.1517413854598999,0.04311009868979454],[-0.13974180817604065,-0.14140170812606812,0.06754302233457565,-0.02613263577222824,-0.004793833941221237,-0.05692978948354721,-0.019415678456425667,-0.1514202505350113],[0.16129644215106964,0.03551299124956131,0.030415410175919533,0.0768153965473175,-0.21693862974643707,-0.04715026915073395,0.13348877429962158,-0.030067166313529015],[-0.09403868019580841,-0.17277374863624573,-0.15516702830791473,-0.0478719025850296,0.21961934864521027,0.0972338616847992,0.17130634188652039,0.14373569190502167],[-0.15400688350200653,-0.23586343228816986,-0.011414900422096252,-0.0027774174232035875,-0.07125120609998703,-0.04875825718045235,-0.0010381242027506232,-0.10721632093191147],[-0.12709327042102814,0.28026100993156433,0.020140474662184715,0.17416690289974213,-0.018923046067357063,-0.0641542449593544,0.1416538804769516,-0.18193991482257843],[-0.006657600402832031,-0.22508680820465088,-0.11199058592319489,0.1322588473558426,0.09863347560167313,0.07379292696714401,0.07908657938241959,0.08004200458526611],[-0.14250034093856812,-0.06704012304544449,-0.08848173916339874,-0.10304809361696243,0.0936269536614418,0.08865819126367569,-0.1158166155219078,0.3369789719581604],[0.10133510828018188,0.1619870513677597,0.025633884593844414,-0.14487306773662567,0.14415758848190308,-0.0007150854798965156,-0.032475244253873825,0.08862969279289246],[-0.11838151514530182,0.033240750432014465,-0.03800977021455765,0.03323976323008537,0.19955505430698395,0.08569388091564178,0.17498429119586945,0.04175256937742233],[0.013994337990880013,0.20244534313678741,0.057898424565792084,0.09633089601993561,0.010287079028785229,-0.019339537248015404,-0.19067344069480896,-0.020676447078585625],[0.19614890217781067,0.23031646013259888,0.10879221558570862,-0.12130700796842575,-0.1528511494398117,-0.14952515065670013,0.09816236793994904,-0.18760068714618683],[0.30092722177505493,-0.20901252329349518,0.012948291376233101,0.08991247415542603,-0.31657570600509644,0.027190156280994415,0.16954174637794495,0.05944659933447838],[0.28013893961906433,-0.23045895993709564,0.15302971005439758,0.16425029933452606,-0.28274083137512207,-0.011168831028044224,-0.1542074829339981,0.023538578301668167],[0.10257340967655182,-0.2426450550556183,-0.19839999079704285,0.06353640556335449,-0.2452458292245865,-0.19817659258842468,-0.18123501539230347,-0.006735624745488167],[-0.1709689497947693,0.02249881625175476,0.06230170652270317,-0.19598786532878876,0.16329918801784515,-0.07588580250740051,0.04782085493206978,-0.16491343080997467],[-0.3795205354690552,0.10206924378871918,0.004882193170487881,0.03486834838986397,0.32676151394844055,0.1377391815185547,-0.1321668177843094,-0.29006141424179077],[0.0006166632520034909,-0.08737704157829285,0.08473600447177887,-0.15168191492557526,-0.04623127728700638,-0.09834522008895874,-0.1752677857875824,0.1613718420267105],[0.07424315065145493,-0.13405030965805054,0.05111510679125786,-0.23814387619495392,-0.026994766667485237,-0.16229933500289917,0.02418092079460621,0.049941644072532654],[-0.08626987040042877,-0.07576596736907959,-0.09170763194561005,-0.12469177693128586,0.07563730329275131,0.024069273844361305,0.1908464878797531,0.046276602894067764],[-0.16629523038864136,0.0712699443101883,0.055652569979429245,0.03528406471014023,0.31884071230888367,0.10835849493741989,0.0395076721906662,-0.09456067532300949],[0.07529575377702713,0.28523507714271545,-0.03138604760169983,-0.2121003419160843,-0.35870954394340515,0.030750269070267677,0.02876155637204647,-0.29882699251174927],[-0.1982506364583969,-0.006694813724607229,-0.14388783276081085,0.21279899775981903,0.17367996275424957,0.05717748403549194,-0.08759407699108124,0.04628206789493561],[-0.1264384537935257,-0.15656815469264984,0.16326679289340973,-0.10808826982975006,0.11768529564142227,-0.1479731947183609,-0.04884390905499458,-0.12922251224517822],[-0.14381884038448334,-0.2458653301000595,-0.028301149606704712,0.109492726624012,-0.19795158505439758,-0.07961171865463257,-0.04711489751935005,-0.21290208399295807],[0.11616530269384384,0.18533611297607422,-0.15393978357315063,0.040880825370550156,-0.28094664216041565,-0.11969318985939026,0.09969786554574966,0.225230410695076],[-0.013909339904785156,-0.17441923916339874,-0.1617373526096344,0.15315598249435425,0.028679724782705307,0.04191618412733078,0.18787844479084015,-0.13644151389598846],[0.022408805787563324,-0.11026214808225632,-0.08376018702983856,0.06873250007629395,0.14248314499855042,0.12710514664649963,-0.05496463179588318,0.16273516416549683],[0.25158512592315674,-0.16080601513385773,-0.06923511624336243,-0.06116536632180214,-0.05920657515525818,0.04766376316547394,0.10942665487527847,0.18273182213306427],[-0.1361154168844223,-0.2147543877363205,-0.1633094847202301,0.09452620893716812,0.33898717164993286,0.04521556198596954,-0.25034576654434204,0.19666297733783722],[0.2653874456882477,0.10638714581727982,-0.090297169983387,0.0039057449903339148,0.043089352548122406,0.12076549977064133,0.09209331125020981,0.16484592854976654],[-0.0462772361934185,0.0693167895078659,-0.025217555463314056,0.27327844500541687,0.02272168919444084,0.18268750607967377,0.013041813857853413,-0.2404707670211792],[0.16199891269207,0.10413505136966705,-0.10005209594964981,0.16739094257354736,-0.041974760591983795,0.052783846855163574,-0.13645130395889282,0.05714385583996773],[0.22455845773220062,0.035619836300611496,-0.07656575739383698,0.013167984783649445,-0.1212916150689125,-0.00472992705181241,0.12407326698303223,0.33208638429641724],[-0.03782762214541435,-0.2232016772031784,-0.1695234179496765,0.1753881275653839,0.010851473547518253,0.0800381526350975,0.053278204053640366,0.14190012216567993],[-0.11231144517660141,-0.005791893694549799,-0.10082519054412842,0.3474167585372925,-0.011625220067799091,0.11094475537538528,0.2315385490655899,-0.22886426746845245],[0.08107132464647293,-0.15235160291194916,0.06793726235628128,-0.08353874087333679,0.13861198723316193,0.13798493146896362,0.14627772569656372,-0.0838356539607048],[0.17721688747406006,-0.0090482821688056,-0.023069515824317932,0.0007617230876348913,0.11781293153762817,0.10764910280704498,-0.147812157869339,0.15749506652355194],[-0.06918443739414215,-0.04757082462310791,0.04721442610025406,-0.025092029944062233,0.05130098760128021,-0.056676097214221954,-0.04306657612323761,-0.13292497396469116],[0.1499476581811905,0.12103884667158127,0.09961909800767899,0.1768595576286316,-0.03889469802379608,0.28259921073913574,0.26807448267936707,-0.23871006071567535],[0.12891890108585358,0.22622963786125183,0.04687142372131348,-0.14136844873428345,-0.24846036732196808,-0.0480356328189373,-0.07287754863500595,0.21214903891086578],[0.3161563277244568,0.14754001796245575,0.13265587389469147,-0.03787964954972267,-0.2051268070936203,-0.2891486883163452,0.2636648118495941,-0.19928568601608276],[-0.02135511115193367,0.20849446952342987,0.07174060493707657,-0.08329511433839798,-0.2108406126499176,-0.12035452574491501,-0.04767141491174698,-0.12026052176952362],[0.06556154787540436,-0.2983722686767578,0.050855666399002075,0.10836029797792435,-0.1592739075422287,-0.06368963420391083,-0.18465295433998108,-0.27572721242904663],[0.14563941955566406,0.16589221358299255,0.22444100677967072,-0.23679213225841522,0.015121002681553364,-0.06605558097362518,0.31807857751846313,-0.22307518124580383],[-0.09593059122562408,-0.13202089071273804,-0.09908302128314972,0.031856462359428406,0.15614071488380432,0.055311743170022964,0.15799598395824432,0.057585883885622025],[-0.10102105885744095,0.13948863744735718,-0.009149987250566483,-0.16936855018138885,0.09528262168169022,0.043596260249614716,-0.08082704991102219,-0.02638041228055954],[-0.04769238829612732,0.1488262414932251,0.12008283287286758,-0.047045934945344925,0.07565739750862122,-0.023962896317243576,-0.293316513299942,-0.008619815111160278],[-0.07264360040426254,0.1212499812245369,-0.01026585791260004,0.09446298331022263,-0.10283246636390686,-0.06685354560613632,-0.061422500759363174,-0.22580598294734955],[-0.09999535977840424,-0.13416121900081635,-0.10973387956619263,0.006596025079488754,0.11101660877466202,-0.08020922541618347,-0.2127389758825302,0.20379763841629028],[0.06307332217693329,-0.2047949880361557,0.08702526241540909,0.12426968663930893,-0.3063911497592926,-0.04697348549962044,0.1917879432439804,-0.06206131353974342],[-0.054222386330366135,-0.21939419209957123,-0.04400978982448578,-0.16861175000667572,0.051717620342969894,-0.029986251145601273,-0.02903994731605053,0.21668744087219238],[-0.13623124361038208,0.14160923659801483,-0.10836216807365417,-0.01240620668977499,0.09897249191999435,0.019720813259482384,-0.18615035712718964,0.12733209133148193],[0.06870587915182114,0.05119270458817482,0.016495659947395325,0.18145474791526794,-0.03068213351070881,0.19064615666866302,0.18564967811107635,-0.2467147707939148],[-0.11106971651315689,-0.017306474968791008,0.041425954550504684,-0.07471613585948944,0.2391401082277298,-0.0027320771478116512,0.03440423682332039,-0.18649108707904816],[-0.037257369607686996,-0.20968464016914368,-0.1753799021244049,0.2970544993877411,-0.24967753887176514,0.03458230569958687,-0.1872854381799698,-0.07976572960615158],[-0.06637628376483917,0.024340368807315826,-0.014698815532028675,-0.07690302282571793,-0.21262498199939728,-0.06108446791768074,-0.023270420730113983,-0.07646600902080536],[0.24044111371040344,-0.13765880465507507,-0.08789538592100143,0.019144318997859955,-0.07291901856660843,-0.11308132112026215,-0.17155814170837402,0.22413882613182068],[0.03210354223847389,-0.006320569664239883,-0.07879267632961273,0.2432411015033722,-0.1535019427537918,0.0636231005191803,0.10193558037281036,-0.11511441320180893]]},\"projection_width\":8,\"proof_authority\":false,\"publication_performed\":false,\"qualified\":false,\"schema\":\"structured-source-384-autoencoder/v1\",\"source_semantics_verified\":false,\"target_schema\":{\"origin\":\"training_only\",\"schema\":\"fixed-typed-json-consensus/v1\",\"shape\":{\"fields\":[[\"document\",{\"fields\":[[\"attributes\",{\"fields\":[],\"kind\":\"object\"}],[\"evaluation_order\",{\"items\":[{\"kind\":\"string\"},{\"kind\":\"string\"}],\"kind\":\"array\"}],[\"expression_id\",{\"kind\":\"string\"}],[\"kind\",{\"kind\":\"string\"}],[\"operand_ids\",{\"items\":[{\"kind\":\"string\"},{\"kind\":\"string\"}],\"kind\":\"array\"}],[\"operator\",{\"kind\":\"string\"}],[\"source_ref_ids\",{\"items\":[{\"kind\":\"string\"}],\"kind\":\"array\"}],[\"span_ids\",{\"items\":[],\"kind\":\"array\"}],[\"symbol_ids\",{\"items\":[],\"kind\":\"array\"}],[\"type_ref\",{\"kind\":\"string\"}]],\"kind\":\"object\"}],[\"kind\",{\"kind\":\"string\"}]],\"kind\":\"object\"},\"slots\":[{\"classes\":[\"expr:capacity\",\"expr:length\",\"expr:position\",\"expr:quantity\",\"expr:volume\"],\"path\":[\"document\",\"evaluation_order\",0]},{\"classes\":[\"expr:capacity\",\"expr:length\",\"expr:position\",\"expr:quantity\",\"expr:volume\"],\"path\":[\"document\",\"operand_ids\",0]},{\"classes\":[\"!=\",\"*\",\"+\",\"-\",\"<\",\"<=\",\"==\",\">\",\">=\"],\"path\":[\"document\",\"operator\"]},{\"classes\":[\"boolean\",\"integer\"],\"path\":[\"document\",\"type_ref\"]}],\"template\":{\"document\":{\"attributes\":{},\"evaluation_order\":[null,\"expr:threshold\"],\"expression_id\":\"expr:result\",\"kind\":\"binary\",\"operand_ids\":[null,\"expr:threshold\"],\"operator\":null,\"source_ref_ids\":[\"source\"],\"span_ids\":[],\"symbol_ids\":[],\"type_ref\":null},\"kind\":\"program_expression\"},\"whole_target_memory\":false},\"training\":{\"base_checkpoint_sha256\":\"be2ec82a1d2a71171d86c3ffee3f9023a884df13302c33879b38f401f34ff843\",\"centering\":\"two_pass_global_training_mean_then_add_centered_shard_statistics\",\"gradient_training_used\":false,\"head_weights_averaged\":false,\"history\":[{\"classifier_slot_accuracy\":1.0,\"classifier_slot_correct\":480,\"count\":120,\"exact_targets\":120,\"ridge\":0.0001,\"selected_at_step\":true,\"semantic_leaf_accuracy\":1.0,\"semantic_leaf_correct\":480,\"semantic_leaf_count\":480,\"semantic_metric_scope\":\"correct_variable_leaves_only_for_native_valid_candidates\",\"teacher_forcing\":false,\"valid_candidates\":120},{\"classifier_slot_accuracy\":1.0,\"classifier_slot_correct\":480,\"count\":120,\"exact_targets\":120,\"ridge\":0.001,\"selected_at_step\":false,\"semantic_leaf_accuracy\":1.0,\"semantic_leaf_correct\":480,\"semantic_leaf_count\":480,\"semantic_metric_scope\":\"correct_variable_leaves_only_for_native_valid_candidates\",\"teacher_forcing\":false,\"valid_candidates\":120},{\"classifier_slot_accuracy\":0.9916666666666667,\"classifier_slot_correct\":476,\"count\":120,\"exact_targets\":116,\"ridge\":0.01,\"selected_at_step\":false,\"semantic_leaf_accuracy\":0.9916666666666667,\"semantic_leaf_correct\":476,\"semantic_leaf_count\":480,\"semantic_metric_scope\":\"correct_variable_leaves_only_for_native_valid_candidates\",\"teacher_forcing\":false,\"valid_candidates\":120},{\"classifier_slot_accuracy\":0.9583333333333334,\"classifier_slot_correct\":460,\"count\":120,\"exact_targets\":100,\"ridge\":0.1,\"selected_at_step\":false,\"semantic_leaf_accuracy\":0.9583333333333334,\"semantic_leaf_correct\":460,\"semantic_leaf_count\":480,\"semantic_metric_scope\":\"correct_variable_leaves_only_for_native_valid_candidates\",\"teacher_forcing\":false,\"valid_candidates\":120}],\"optimizer_steps\":0,\"plan_id\":\"fcab87ade962350c30a3e80d2f7bd3385d60bcfc666e0ba74955ca8e4008074c\",\"prior_training_statistics_recovered_from_weights\":false,\"recipe_sha256\":\"03484d2bd935ef04ec317c78f29a735bf6af7822606cfb61afc56849bbcb2026\",\"selected_ridge\":0.0001,\"selected_validation\":{\"classifier_slot_accuracy\":1.0,\"classifier_slot_correct\":480,\"count\":120,\"exact_targets\":120,\"semantic_leaf_accuracy\":1.0,\"semantic_leaf_correct\":480,\"semantic_leaf_count\":480,\"semantic_metric_scope\":\"correct_variable_leaves_only_for_native_valid_candidates\",\"teacher_forcing\":false,\"valid_candidates\":120},\"statistical_merge\":\"sum unique declared shards before global centering and solve\",\"test_used_for_selection\":false,\"trainer_id\":\"global-centered-ridge-sufficient-statistics/v1\",\"unique_training_examples\":360},\"training_manifest\":[{\"embedding_sha256\":\"d258421ef13acf08356b96cf992edcb3005796850e338a0aeed001bfbe09fe0d\",\"id\":\"v3:security_ir:0:0:0:0\",\"normalized_source_sha256\":\"02ed3fdcf613c7166db70046613c3a272893644a4bc4cc9ad6bc6da91f257e10\",\"source_sha256\":\"10b91f530e244b6adcb9e14999de4e00a53d2988335fb9da06bf6ae0a682c3c9\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"db654a58b027fabd1bd06cb3a874b31cabe76cadc89ef20bbc92ae60a234b800\",\"id\":\"v3:security_ir:0:0:1:0\",\"normalized_source_sha256\":\"aa7a35b788e1ebd69248601d64dea095be7855a2d9a27253f961b817281882ae\",\"source_sha256\":\"c90337cfc982d37ca3be7e25f3bf9a9e9b4cbf452051667a2d1943202f62122c\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"a538d1ff558aae8db5d8ad821db33f316894e00777596c857af62c4d98749c1d\",\"id\":\"v3:security_ir:0:0:2:0\",\"normalized_source_sha256\":\"eaa04ada5964c44801814ad25bbf35a80eca045acaa2965e09aaf0d42c448225\",\"source_sha256\":\"ba282853b8e2f2591abe964af06efd09431c62571a726636e1a12b87a863b8aa\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"3ad6fb6c82ac927e4add89f98a30afbc7436eb7231089f3cd8ec09a20db6ece3\",\"id\":\"v3:security_ir:0:0:3:0\",\"normalized_source_sha256\":\"14ad1edbe14719efafae34929a07c41eb09199115de0ab1aec2a16cd18a0de27\",\"source_sha256\":\"035d781f6a743401d13addf6d917eeb7bb5939a350ae7f80d17ec19a43b58ae4\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"1e61c19fa0ed90cd7c68a6538e141c02f2a3036c4ff72c2b4938e81d452a408b\",\"id\":\"v3:security_ir:0:0:4:0\",\"normalized_source_sha256\":\"342d3f5e86abe0815f8dc8d66ec41c9d7d258b874d70326efe1dd641f640bd50\",\"source_sha256\":\"156efebebb4618d309d3482cacd6c2ba1058b808bb9931edfb4db5a462d30ee2\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"f6559041e86aa97aa108f78231de5ac0b10793bedde4d25a6af51ea72fed6d47\",\"id\":\"v3:security_ir:0:0:5:0\",\"normalized_source_sha256\":\"64784abb356d2c38991ba860fb4999f9a013aa5597a54f03dcdf0959e3b02c31\",\"source_sha256\":\"c4e65c60a7dcc78f6da62fcb4006f7c0d289e4ea1214b13af56f7b8fc9177efe\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"635391ba9a825c68d3cb523562a0f0875270f60ede707ebb5d34ed09fd346502\",\"id\":\"v3:security_ir:0:0:0:1\",\"normalized_source_sha256\":\"dbd1b94c13c69c8aa917a1d2b41410cf2210e3cee6c137016bfb870b4b64f733\",\"source_sha256\":\"c0711c5eb829fb6db69022d14fccfc71252d00abe431afb67426719062614ee1\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"3bdefef3c7654d3a972b97c4567b977f6f1e409ac0277d35b6b31c13f101f0e5\",\"id\":\"v3:security_ir:0:0:1:1\",\"normalized_source_sha256\":\"7209494cfe41629271127beb2c34aef6096a63ad910c1e2b37824fb11b683d73\",\"source_sha256\":\"637ffaccf15e269b2115421a136024c7ffd90154893dac11223ba30771797bf5\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"ea03bda9fa37cb124d1c6a66c4652b966aeaa0d36a0d987542f89b2abc68271f\",\"id\":\"v3:security_ir:0:0:2:1\",\"normalized_source_sha256\":\"d5493979131e3a8a3d165492889a5a33286c0e8d265df21c7d89a77e830d38a0\",\"source_sha256\":\"b8bb91f374aed396356b78ebab39c0dd14d29db431a02336ca823808eecafc32\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"bfddccf21f0ec6a0c794eb6134eb630012bba82f0d011c83ba06eb26c43e06da\",\"id\":\"v3:security_ir:0:0:3:1\",\"normalized_source_sha256\":\"50f90c3019ce452518264da5b82019d6509325b6532cc8ab0ee9e599454a89bd\",\"source_sha256\":\"8543536aef14b81f9a8b0a5dea8c22f371f812c47d0925a8a884767390300908\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"404a38b42b45bb4016e5a966cb2a6418cfe7b12a4e197a147564c471f1836fc0\",\"id\":\"v3:security_ir:0:0:4:1\",\"normalized_source_sha256\":\"a187ac8e55607d413751c7932419a63ebb03dc6d2397cc6dc453795b31268be4\",\"source_sha256\":\"4946b74310b1c1e301d7cb99e5f71a581884279faa5fb01a78c3333f24416000\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"8937153acc5b13dfd6690e93834760b24a2eb07f56f9def5c2349e9dc8cd14d5\",\"id\":\"v3:security_ir:0:0:5:1\",\"normalized_source_sha256\":\"04bd7eb8696571a9b5fd0128c1728ac70e813244e359bb3aadcbc42d8d233041\",\"source_sha256\":\"a8fef59e87a84ea1f50704de2910e33028e798d82d7b838e007cfc317ec02cdb\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"425f3b465fb08248412b2618a1a98ee8580e68986e6efcad78ba8a5e7d2725a2\",\"id\":\"v3:security_ir:0:0:0:2\",\"normalized_source_sha256\":\"7f72e45e38f102fae4bf3bfe61a0ac09e6b94da753b52a4be2cdc34673b32043\",\"source_sha256\":\"48202ca663131fcb9cb114dac9ec3c3de9b25ba1158c10f58cbc46df936a1acb\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"9d8f34e0098c0f8688158ff88cbf7087757f24f9d563019411c3e3c2edc7c6a7\",\"id\":\"v3:security_ir:0:0:1:2\",\"normalized_source_sha256\":\"d4d395502c16ab7bfd26aa8846fa747acdfebe86292502548757f65e140f8558\",\"source_sha256\":\"8bb11ee661941212ca4488c16760f5394c8711f70ab91ac121504cd214c4bed2\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"45335ee05b5a76a4b58a33d77fdec22e284ad553ab0ce9090a95f22566a4757f\",\"id\":\"v3:security_ir:0:0:2:2\",\"normalized_source_sha256\":\"e794ef46e678b2bab07c085379e3fc5a77baf80b8f452e1377e7b6f23e34af22\",\"source_sha256\":\"551b8024383c3136e9de78f8166d56a0356072a3eb01328d4a90dabbd309b7f2\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"1ae996a4e6a2c222ef65427e7143c0610be74d2128c0f9e7f0984ea49a00cacf\",\"id\":\"v3:security_ir:0:0:3:2\",\"normalized_source_sha256\":\"0f2bcbf6b5c952123ade13ac5b92cc17c6ddcf0e2fd21ee98e7c2f24f8f4a41e\",\"source_sha256\":\"70f52072ebcb640e412f8fcb3d4b64bfc02d34c65beb9da395b588da4d167e9b\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"761f87b6e94de160fd07e77f3e0159db3849f21a9065d67158a6d43009c05964\",\"id\":\"v3:security_ir:0:0:4:2\",\"normalized_source_sha256\":\"b537c98cd96c40645a6b3b980e9a4671a4760d97f8455144c5e3700d640df214\",\"source_sha256\":\"e5aa8ca175ce54a1b5a5bca4137e53b1c70ff12e6d73ea7805e926e7e90b05ce\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"7b8070aa3a60c592c95e8d76c4b8e927b861e8b4cc55283957db7e18ef88b352\",\"id\":\"v3:security_ir:0:0:5:2\",\"normalized_source_sha256\":\"d06aeaf930cb263ae071a56fb0629477bcdda208e6687999c98e4482868ce31f\",\"source_sha256\":\"e7009bc396eca471aa1000b5f4a6a803065d8dec67bc114513fefe1bbfddb5a3\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"50f1b4d7e19cd14767ae6b372b84c06adb7ff6a4e60d6e579e870e7cadfee6a5\",\"id\":\"v3:security_ir:0:0:0:3\",\"normalized_source_sha256\":\"6482792ebce91c9b5765a8993c666ffd91364b09d8911352b11310ed59ce4375\",\"source_sha256\":\"5bede293491353d2a03f4c3de9f4a0623a1ab6f6cdc576003e29ec98483aafff\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"595da88533de4842437fd33b520618b84721f47921fc16601b3f14cb7816c6c5\",\"id\":\"v3:security_ir:0:0:1:3\",\"normalized_source_sha256\":\"247682e3e4fc368d3e7ed3d5ae2cdcf3d085200e6cc4731ab33b59432489801a\",\"source_sha256\":\"c354c0789df74318ca36a57a30acff051d3ac5aa5c03899a7e02be6d224eea4e\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"ef6f352b538e626f3bf4289008ad7cf9cb06a901057ecf7357ff5f2586394811\",\"id\":\"v3:security_ir:0:0:2:3\",\"normalized_source_sha256\":\"1ded0f4e5a6d510907a4a8f45fc3c52c45e7f61902455ab972b52e5d9841f7a1\",\"source_sha256\":\"a3ad931884fede8142c1c2c5e71765249fd3b0f5ce479afef3ee4e52d2f55b33\",\"target_sha256\":\"3cbbc43010f0a11fcb121b0e62b00eea3033cc22322ac37838e68a5bee36d3cd\"},{\"embedding_sha256\":\"8c830446faa85902f2cfb6352ef75739742600df1ebe78a09e32eaecf7395580\",\"id\":\"v3:security_ir:0:0:3:3\",\"normalized_source_sha256\":\"de81a2ec64defee9f0f0f5ed55bdaf5f317af92f82beab8ca02086d6505ee8b4\",\"source_sha256\":\"79f28e5625a9371561e8f4f3fcf985e5e4511afd0c80b881d1ffc0b9d2b439a2\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"1df3eba4c106c5e8e09df7d5f6b28e9a557dcfc7faee641e774d6cffd3e2dacf\",\"id\":\"v3:security_ir:0:0:4:3\",\"normalized_source_sha256\":\"f3300fd41dcae3dd790c018ff8c566e03f585494e505f4997f6c6615661bd815\",\"source_sha256\":\"f2cd47aa56f10653d02d6eea074739ae87af3c357bd97d92d973ab49ecc3bbfb\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"d2fd8df8cf2a4feb423adb28af6952c393e0de5d5fe69e452d6cacfccb67265f\",\"id\":\"v3:security_ir:0:0:5:3\",\"normalized_source_sha256\":\"273cf4fe0839fe8ec9f8bcf875fcdc1d251a6d76aaaa667774f999e818a2570e\",\"source_sha256\":\"7d30466c35f6f2620c9dee1381c1b32d218686f6bfde1640c3a2a5f985228de6\",\"target_sha256\":\"c8308216a6bfe59cbaf6c82074090c06feb6fc10d0ce01da054ca0cef8c413e6\"},{\"embedding_sha256\":\"83940d9cc2a187d67522dc68f3232bb59464cdaa3d76dda4cf904885f3c3f6a6\",\"id\":\"v3:security_ir:0:1:0:0\",\"normalized_source_sha256\":\"6130435fa3eeccdb0692427be200a18e6dfc3977674ee458fc786d1bba4fafa7\",\"source_sha256\":\"5fea8cb7deb58b28ec31df7c1c4169a7abb52b027d815e2a21089e5bed34a3b4\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"4e09089ef2980212ef92762ffe7ad99ac670904a9f61b7e1e17052afa819792f\",\"id\":\"v3:security_ir:0:1:1:0\",\"normalized_source_sha256\":\"d2b1eebe538cc74aa0d76938654f0661399dcc965710f968a04598d61d30ea2a\",\"source_sha256\":\"bb314d7c05b03c3566254c5608a912a779565150be28cbf6e310f5fe56ce31c5\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"dac6a13e1791b327cdd25e3b7b7b96f9d70881533155de5adcae2f294593683e\",\"id\":\"v3:security_ir:0:1:2:0\",\"normalized_source_sha256\":\"823b55c7bd3ddcfe47b98b0b510add7260fe9d2a909d9390d9a3073dbdc5be6e\",\"source_sha256\":\"9b3c01973be5626e6fe859a923d8c314c7acdea449875f324a80d3e0f069b997\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"3e7957951eaa21d40f4d609dd8a9f8d33883d23c36d20f58293e989288cef71f\",\"id\":\"v3:security_ir:0:1:3:0\",\"normalized_source_sha256\":\"431fd102048f8e845d2955c84dacd965b35cd00a24994d1f04e6b82a64f76379\",\"source_sha256\":\"0a5d8cc98d162f01e9c0fc933167a4c5d76c7a92a5b0e43e04ab6cd2ad26c5cb\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"253e813c3cf47c19c73c61ad079ef660a472b72497792048e978af2370ea0b2a\",\"id\":\"v3:security_ir:0:1:4:0\",\"normalized_source_sha256\":\"48931606718ceed993c0f616492b9f04106f025cf5951e8ddfd7b26a0a1a0704\",\"source_sha256\":\"04fbd69a3c6b56426dcd20abc18f5f7bf72e67f5e3d5586bbe80974208e5e01c\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"188cd11f9e35aecb570e7c18fc9ff91cc84c8f4299b976a1c34ffb9d26f2859a\",\"id\":\"v3:security_ir:0:1:5:0\",\"normalized_source_sha256\":\"1adc42dddc2a55d48cdf1d448445918f9b2b5a56db81c8658e11c4317988ec25\",\"source_sha256\":\"c2d33c4853da064d9056b49ec2f5843ad6412525851a5c9f5cd134f9d68f4357\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"7ba7ccb6ce8bcedfac73b63c9a3cca81caf93cfd0886465400adae66b83b63f4\",\"id\":\"v3:security_ir:0:1:0:1\",\"normalized_source_sha256\":\"983636cfee7b8e656453e7aa2fad6b0501b017ca5448689c3f7aba4eea99801c\",\"source_sha256\":\"f57f786f66f21c06f6475cf7ba78cbf42228596a7fc7c45075e17a30f897e732\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"1cf846942d6157418402663f249503661852abc955a34c2adedfb388d833d203\",\"id\":\"v3:security_ir:0:1:1:1\",\"normalized_source_sha256\":\"4a211a50600c9e73a70fc330f96bee67fed0f9d456cbdd9b5aed0843b24bdba5\",\"source_sha256\":\"bdb0becdc31c68b5f599906cab2b0300b96bc4d0d44852599b1f47511392bf39\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"7de3522e3f346c4e7cc38fe2166014985b61013bba91e8d45872587b60683e75\",\"id\":\"v3:security_ir:0:1:2:1\",\"normalized_source_sha256\":\"7ef35eab9b10f11c9db6eb2fd83423c1ee9248c2e16bc5b08304a3c9fd1b24e3\",\"source_sha256\":\"439f6eef089a00fd78b2837e81197af9dba871f7fd3c601265d1227701f8d555\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"ca36fe73a9a1efdb544b43ff34dc3a9c459e52f83cb818fbfe32cf9fe6e5562a\",\"id\":\"v3:security_ir:0:1:3:1\",\"normalized_source_sha256\":\"f358443cea7aafe26c22fc1fa128d0a5ec5c3913f5c55ba98704864eb86c447f\",\"source_sha256\":\"ae7b4f0f5a30e2dc6a085cbe5c2c509600d50ae466369d96e2ef4284d12fe1c1\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"cee7d907a28e6d13e4710e95581192c80713a044a7d3dd8d60a3f024f2c1050d\",\"id\":\"v3:security_ir:0:1:4:1\",\"normalized_source_sha256\":\"f362fa53ab8b2df39ae1937324db112450b74a19fda185fecf1f391a940e465a\",\"source_sha256\":\"28322d8336e9310431c86c0661f02bcf929a3bb6d18c5ff7b42dac23d5a59f49\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"3e210e20f74cd890d0ae7743ad5730c6a2ffb60caf50955cf15a18007f313898\",\"id\":\"v3:security_ir:0:1:5:1\",\"normalized_source_sha256\":\"34d610966d118bfbd213ca7c24462056035cd436cfe0c9b13c06ad29982ee7f3\",\"source_sha256\":\"8841102fdc001d3db15a0424cf5c45570a28c61b225addb7f7931f4ed2be9543\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"8cb0782c2cdfefea6f43bbaf4eff1d5dd9da827a761d2d41d4c11c2afb9230a0\",\"id\":\"v3:security_ir:0:1:0:2\",\"normalized_source_sha256\":\"85c78f661e84b174c7a9d23eb0d70a61337ad236947e9eb264d3165c616610c7\",\"source_sha256\":\"84cd55dc4290910eb494ef893d893fde6a2d81499173f8b8370b9079d3d75ed7\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"b57b87f49814485889e803b3589e998a5856117d3b270852e46ca0915b5e0392\",\"id\":\"v3:security_ir:0:1:1:2\",\"normalized_source_sha256\":\"cf60bb3cc4115a4fa13b117fa3c9711766484d2120d5e316b7451d89b9b94da1\",\"source_sha256\":\"2482c6feb1d9f5986c34e523f3f93e95f0f2056c2f4d35f7642db9d0d09d3839\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"177975353bf8c938a671fbfd56e19d748b14cfff02d876f544ef2b66d2d3d4de\",\"id\":\"v3:security_ir:0:1:2:2\",\"normalized_source_sha256\":\"799b50518212c5d3103f2061122feb43e6ece6095567bf7865eaff305dbb6b19\",\"source_sha256\":\"9db61dc933d448f535b72b0635f627461f499b524c5687375709e7709f0d256e\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"8a193b51e775c350a2f29de30813de1f3e1e3c32b354e6b6a6e8f147f14516dc\",\"id\":\"v3:security_ir:0:1:3:2\",\"normalized_source_sha256\":\"a6bcd1e6b34379fefe3f82688de2b32c573721801aa0d12f46b782a557b2e9d1\",\"source_sha256\":\"2a93d653e677cab13ac9954598937c6d7d3dc1df7086b11b6c13a4c4fd613842\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"d62ceb7ddc61ff8d0520ecb10286db158142a76def6f048a709eb0ee8d9bb137\",\"id\":\"v3:security_ir:0:1:4:2\",\"normalized_source_sha256\":\"a2bf376ce9e93bb089f2c786873445e6aed165428bcbe859a6268a5160693459\",\"source_sha256\":\"d02644ab99cc3f2271d7ea21182f4f722611ea7ee1e1a0aa7111907451d0fbea\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"aa82efd152437bb7aa8475d21f4bfabb11b2e1211dfc3a3d20eeb670ca223d2e\",\"id\":\"v3:security_ir:0:1:5:2\",\"normalized_source_sha256\":\"bea84b95fcb415fb5630e29263ee0cd9a39cde83daf7ca4fe5257d5de7e41e62\",\"source_sha256\":\"1f47d8fc2da7de16de3352e2a6dd7dda2df4406c182c1993ec565c0fa2e9ea84\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"1d24fa06b6a53f686991d1e550a67a9b76b1416543ebec6b5c0df1edf2da3dec\",\"id\":\"v3:security_ir:0:1:0:3\",\"normalized_source_sha256\":\"ba646cf9a35ec33fd5edd05aecefef0378c1bc96e9c35c549d252c771cbdc8e8\",\"source_sha256\":\"59d478728103f88cea2bc52897ccb7dcd5526a0994c4ea0d5afc45d939e0f341\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"cad9488e052ba5d9bc1e2e0cfeb26a05a4c3739540bde4373f08975ccb4565fd\",\"id\":\"v3:security_ir:0:1:1:3\",\"normalized_source_sha256\":\"afc44e5da6905da9aba78eb15e377510076d0d402da062330c1fe90a1121ac6d\",\"source_sha256\":\"aea28029faaa02fd9c1d5df495b1f078f7ab9a9e4dca64245c1d48783c96a316\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"48deb800d8a1b106d51cf4c8f0c8f9517c2209815f1e79f1667c53167a43130f\",\"id\":\"v3:security_ir:0:1:2:3\",\"normalized_source_sha256\":\"2c80e6138538b8b2dea52b8b6d0dbe4be7f4be59a2e39f624194e5f714ce1ec7\",\"source_sha256\":\"4458d23bc0385adae5ce9b8af7cbbb296b704793bb149e36712ba862a0eec00d\",\"target_sha256\":\"450660242456d5e7e9dd74bd6ca4d77fd7c02ec49130c0ffa2127885f88439b5\"},{\"embedding_sha256\":\"eed62ae7a51f4020c0a5f8243c482ece1f50a0a54d422925bdc2916800ea26b8\",\"id\":\"v3:security_ir:0:1:3:3\",\"normalized_source_sha256\":\"a20f5d9fca372aa3fdc2928a55130343c473819de0868dd9f8e3d1d201ff4234\",\"source_sha256\":\"d9edc1356f678750a7174f3427a09e0d540d5ef2918620a8291b3c4c6c9cd3ac\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"85389aa0395ae5903d25aa3f0d33c2d9291365fea530efe2a6af39dd23a0b64b\",\"id\":\"v3:security_ir:0:1:4:3\",\"normalized_source_sha256\":\"9f1ae2e5c42bf2aeb1e9febb51130371a68d8214fbb34aa9953a356d07e10363\",\"source_sha256\":\"44e5ac2bc14a7df4653bc51527ccdd5cf3d4b08232f8d0b4cdcbfd88dcfffa53\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"1b540e7ad7d1e589ccedfa932f3f81db5222bcab46908b6d40b328ca6131a8ef\",\"id\":\"v3:security_ir:0:1:5:3\",\"normalized_source_sha256\":\"1dc90cca6fb74ed555265708a32e1f352859e768655d93be824e0a9c33e30da9\",\"source_sha256\":\"2cfb8084a7be196108235e7b8d7b26a5a3020f296f5d566529329955229315d9\",\"target_sha256\":\"e99a152de0136129fa493cfb4e84811767ae3c584a5f9e2dab29114030510358\"},{\"embedding_sha256\":\"f4f2731506c3915bf6b30eb9262b7eaf84ec9c2b6e928e90fd679611ced33a49\",\"id\":\"v3:security_ir:0:4:0:0\",\"normalized_source_sha256\":\"7d3adc1dc9ad558ded8eb70bf4db9064aed5bf513a912a6a9ac5df1ccc1a9ff8\",\"source_sha256\":\"2ea3b1c944e63ec7747a72a8e2978c436f62cfc19fa392d906f6e13e13e0aade\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"37d5ff902b4740cbfca4ef48410e3b7453cce35658e97c01c0379f669a9a95bc\",\"id\":\"v3:security_ir:0:4:1:0\",\"normalized_source_sha256\":\"fcd66a53d5bbd8721a9a4c06f56c4bdb034a1b0052454b55cae7fbc54f4de19e\",\"source_sha256\":\"654d4178131b24e06b1d4dabeda4ceefbb20555d81f489091b6c6b3636856f1f\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"a4cb8c56da43784effc0f2e5cb19d5221c131191f926687a2c9f469563e1763c\",\"id\":\"v3:security_ir:0:4:2:0\",\"normalized_source_sha256\":\"40a92f3c44251df4cc84958db1e86518f1577b3636eac24c590698afd467f0be\",\"source_sha256\":\"3f496d2f64f22cb032148a1d2d3433865f2086a1a45012cce2c63a24754ae3e3\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"1847b16aab5c5dbef74ffa66a638dad7898ba4f947acee25faafd21587b9e6b2\",\"id\":\"v3:security_ir:0:4:3:0\",\"normalized_source_sha256\":\"1cfeef728467feca4f5670c7d03c2e9f719f36d291f25aae8cce9aa0c82ac391\",\"source_sha256\":\"e01284d2257aa5afc0781456bd437d9f1417af966b180680e34e8bedff524175\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"ba03d8d31429a8764ca9de7a4d665ec879c8cdbf05c42110e811fb5b729b01a9\",\"id\":\"v3:security_ir:0:4:4:0\",\"normalized_source_sha256\":\"d27c9a721d596d8c51f572ca5fcf9a91a4b05e0c0286ee96726e162e2f3bec66\",\"source_sha256\":\"9f6af1b884ec00036fdd680d1e9693b3a357ffad9dff206e0ff55be3682f7dae\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"474ac4d7514c1443f3688b701de9bea1493bce6c5424014cd86ec27240b3fc2b\",\"id\":\"v3:security_ir:0:4:5:0\",\"normalized_source_sha256\":\"5de04f4b8fdd25287f98fabbc7148987293c1351c2990b450733f2e654592565\",\"source_sha256\":\"959957319669ba898301cfaac4bf922d26fdb180e04e92a05f077736c2083818\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"deb4f3e5863f5a808262e40adaa66d1990db817549d2fc53d0344b77e353c680\",\"id\":\"v3:security_ir:0:4:0:1\",\"normalized_source_sha256\":\"c9bf260f145b9640195fca2af2568c60ed79e1a20e33a4ee0a89cdcc30f5fb77\",\"source_sha256\":\"05933467e9b0bfe70db3832cc9c52231d58d6f0ff0ef51e23b4949c0ece3891c\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"ef11eca15e8e965e13f8ff137de8e88c40a763cf7db86f3ff3e4a4b3f7644682\",\"id\":\"v3:security_ir:0:4:1:1\",\"normalized_source_sha256\":\"a586934f29c3075fb1d2a6f855e5b725324cbd4d8e050ab84aa9ec322c2ceacf\",\"source_sha256\":\"67c9b459c35202d7d9cdcd2ca4a7846a9feb9220c14c33420e4a699044998fb6\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"b4d49745f2dcd545944a0c81fdf6337fe61113d4c3a87898420162f4b9070ea5\",\"id\":\"v3:security_ir:0:4:2:1\",\"normalized_source_sha256\":\"7756c77f2699eab2435045d3ff1f667f88984f719ac1cf664aaa477ff567902c\",\"source_sha256\":\"421f8c3207cd4ea49e2a40eae2db58a0fce82a2954bafbe89159f48c951b37c8\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"140e8de0e596697501a7a17daa8b0ba104a0034bb7c61c7d0c496415561f35ae\",\"id\":\"v3:security_ir:0:4:3:1\",\"normalized_source_sha256\":\"2dc1c0c93107892d2afc0a36c4a2ab991d59d7fede251583fbc58d15c0e58c7a\",\"source_sha256\":\"7e8aeb504b2aeb23e01bf6e779d77e0f394c7381809fc91232e5e4e2a9abc68f\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"c3208f337d408cbe32fd1667bb067795d325f439925be5b8d1e085e44a890106\",\"id\":\"v3:security_ir:0:4:4:1\",\"normalized_source_sha256\":\"05b7d7fe6266789221f6f1b6758ea8d5633d18722f35337c3ceac4d93fd1a661\",\"source_sha256\":\"34dede17e743d0d0013345b47ea3478f1f166a734104007de0a3b03bd8a21f3c\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"0a61f5a18463c6515bbc2e948656b3f5a204e168c2b2e8ff4577da792448d989\",\"id\":\"v3:security_ir:0:4:5:1\",\"normalized_source_sha256\":\"be70443818c8fa0437e4416147631dab7cc3aa94eecef201d434253679574b50\",\"source_sha256\":\"6e2ac398bcec85c434f109e4683793731e82d1501c62a7059376b5cba6d87763\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"722e53a0e9496cc588b47c5d440422dcfe3b6df9caa0821f2f114ecff4f22c48\",\"id\":\"v3:security_ir:0:4:0:2\",\"normalized_source_sha256\":\"3a03d7c7b61d930a6c66dcf2a246804d4645d73476cbf933d4627a19f8a2f74a\",\"source_sha256\":\"57df8897102cfafcf7ea400d9c556bd8965399f86a378b1267c81bbdc06169c7\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"8e76eb787d8a55e5a86e693e5469dbe3783f14af8f26891169da8d4bf9fc4a3b\",\"id\":\"v3:security_ir:0:4:1:2\",\"normalized_source_sha256\":\"d3c1d16e708769d1dc677ed3e947adf2e3752f973d74f705c2c7b43ba21f5253\",\"source_sha256\":\"4e19a23c03d00feafe2d5a52001520df439394fa86ca5fccfd20ea3e8de6daea\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"a2c86f9641849dcc736be3014c50e3341bdf6b5e7b6d2d02be42b3c6d7b194b3\",\"id\":\"v3:security_ir:0:4:2:2\",\"normalized_source_sha256\":\"2e2120da4729077697e585fab0fce78f6d1f95bc7b010c12c6c199cf0964197b\",\"source_sha256\":\"7b31bc6e7ca26cb30efb143729f3e4c3ba81ffbf97bbc48b4545fdcb2f7929db\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"43b02c888f8dc37b6563b434dbfb5bc949870010d69261594bae715fe1dd092f\",\"id\":\"v3:security_ir:0:4:3:2\",\"normalized_source_sha256\":\"dcc32c4b25847fd430556619fe7bcacd2d9e39061c904318de417dc27e17fe96\",\"source_sha256\":\"8b46f10c53ec896fbca91e39b38e80a921f89b04b8c9ebf2518530698c37c844\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"74de3f49d54fec7361134b1cfeb4773930edffe10ed37de5ff4d2da6ef4832d3\",\"id\":\"v3:security_ir:0:4:4:2\",\"normalized_source_sha256\":\"11eb2d865cffc084cd43af598bfef5db6f3ee7756d65f6ea139668ad9211d51a\",\"source_sha256\":\"c30692346a42ceeb92bf286063b01db6b6d769973099098dc671bb3b860f2380\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"cfff064469a0ee7882dc97117937ac8fedb2a2ed223e22e18f20006a89360c0a\",\"id\":\"v3:security_ir:0:4:5:2\",\"normalized_source_sha256\":\"becb22434c9193c1ab4f3df56b5b6043f9348620f272e41cd5341f15f13579b4\",\"source_sha256\":\"49aa2e1103cfce32b1c300af7acdde7ea1e0ca6e072b6d667bec1ca94e9d3cf1\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"2f832c1cfa8b22aec16e81a674ab8e5a73b0fd0db6d998c306232e8640f0c2f6\",\"id\":\"v3:security_ir:0:4:0:3\",\"normalized_source_sha256\":\"8b4aa6c2d898cf1f571405e9bad7d90518e7558710f4c8f161a677433460fb95\",\"source_sha256\":\"b395557bb86c9fed3ae1964a6f77b1e5f4f4c8f949b5bff8f794bb58ae0d560d\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"b3ddf4376fc53c135aecbb5a0f58fa17bb9da15c6535f0885fcd884705826170\",\"id\":\"v3:security_ir:0:4:1:3\",\"normalized_source_sha256\":\"f929847de0e1429e59c0d6accf978766acaec5c9053021501cd79252354a4bdd\",\"source_sha256\":\"68bab81245f9fac918e89f75f7ecd1993dca4c057a053b6584f0bc8f70bd1aa0\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"0b08a55f7ea0213f20721705589eb7f8a16f946185b845171ff813e7b457fc2d\",\"id\":\"v3:security_ir:0:4:2:3\",\"normalized_source_sha256\":\"66cf6dae163a6ad9090ee56162f9ffaf00cddd1e5d39711ce8b2b46134690eaf\",\"source_sha256\":\"9672481c024a93b97a341915a306c0e0c354f3d03a89977d1e5bde5510716a87\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"c9a9c7a73692b488f124efc0064b4456b42734929f9796497b6157c24b92e6c1\",\"id\":\"v3:security_ir:0:4:3:3\",\"normalized_source_sha256\":\"bf41503845ce08cf12ea6154bc88169f1611ea9e1d2e9651dcab9f078174ecc8\",\"source_sha256\":\"e3b567f4edc8857e397cdd349bc14a56a15f4c52ec5391789ec787b574e73a23\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"d3c2b3d61654548ae3f88384d60297b50a2dc558326e54d3406126c6191bcc5f\",\"id\":\"v3:security_ir:0:4:4:3\",\"normalized_source_sha256\":\"ac8a0f35035d407a0dfb3e6119ed1a0ac056b8639931bfa03a3b4e6bc6c899f7\",\"source_sha256\":\"ea0189169d24d3ee8577c7292aff3e69a80596c1bfd04abf491567fd37d651a4\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"150c033211034583260ad6d0774d754c1ad24fc292e71ec73ba5e31e4d6097a6\",\"id\":\"v3:security_ir:0:4:5:3\",\"normalized_source_sha256\":\"3943a687e8598596771ea3386cc276035e8db9d97e8f1e23c513fda392602c7d\",\"source_sha256\":\"a580f2e620cce572405027b34062e253f45e36c7a789c3f4de884f2e93c27529\",\"target_sha256\":\"af4bd483415592e5add5d0f4dce103c28d416f89a8066474ff7a5599ee303166\"},{\"embedding_sha256\":\"31faf7370a33d36b2763d5e570809077964ecb3ff2b67c30844fe4af81826846\",\"id\":\"v3:security_ir:1:0:0:0\",\"normalized_source_sha256\":\"595b4d6c11b04d30a50d952af84e4613b8239509b1aae21fc7666b616505ee22\",\"source_sha256\":\"e10b3b0101e96fb0bef303c78133ad616e0a60ccabc3fe9c73e5927106a98d5e\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"d5c9c7f12bfa4f0beae962a194ea42c297d564c0a59ce013983497182d4c62b4\",\"id\":\"v3:security_ir:1:0:1:0\",\"normalized_source_sha256\":\"8bf8a956bb968fefcee14f2d1ddc1be247d65e5bf876db2ff38a7b6967ea4270\",\"source_sha256\":\"5ab0ec980a73e8a4db0d32dac441057c6f3c5b5152d55797266efe652e84e3f8\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"1caf3a7fdff48be133408cb82287aa63c296e3a91680f19d5b1921098fb53f5c\",\"id\":\"v3:security_ir:1:0:2:0\",\"normalized_source_sha256\":\"848247d3757b289894f8b7dc119b21e7cfe2fb73058c1b3a4e84ed8b9282aa3c\",\"source_sha256\":\"361661c0b6055b87015acfb1abe3c092d9158c074de73b05e8fe49a9ed21546a\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"541f5375be3edee7512211b2cbb30fccfc2cd0b1da9095b58df09c15a8145a61\",\"id\":\"v3:security_ir:1:0:3:0\",\"normalized_source_sha256\":\"29802b323ed477f32395428a22e6612aa511e20b06cd4542078640fc220ac4d8\",\"source_sha256\":\"ec77ddb7508376aa14ac198cdce6e0aeb234d42d51bede264bdbcc7818b3ce95\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"cc367cf88d0eb2adf3faaba208ecd6abefad87687e239bdebeb584b59ba2eb6a\",\"id\":\"v3:security_ir:1:0:4:0\",\"normalized_source_sha256\":\"ce0c83f3b9ce77c68e532544e24202ce3906435ae73852fab834bb0794631d6b\",\"source_sha256\":\"69c094de3b7c64e224081bb143e465929abfb204cfcf08504921e5010a2a7454\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"43222ad5afe5513209b506ce7e95e1c782429b53b07e7c85d8c196b12c55af07\",\"id\":\"v3:security_ir:1:0:5:0\",\"normalized_source_sha256\":\"3dca86033dfcfcde16eacc69a4e77626b942f403e3b8c3517e1943da9b51a05f\",\"source_sha256\":\"a037abd4a93f1b026e374b8fb67ccc7de36fa23fa3059ca93ba50cd6b23586c5\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"fc35b2ed9c8513aa2a43861388edf86a16eed41e54ad1e57629c8c81487ee395\",\"id\":\"v3:security_ir:1:0:0:1\",\"normalized_source_sha256\":\"3e0660b858d6162262f3966358a4c564ce295694167b4128217e56389629657b\",\"source_sha256\":\"84803e07a99b1851a1a5092ea72c0fc49eca5cefb4b533c0d9c6a5b9f408c505\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"0c55c044c7cd8e8a0e693f957ec554337b2435282c03f0230b57ef17a6cbf06b\",\"id\":\"v3:security_ir:1:0:1:1\",\"normalized_source_sha256\":\"4eaf40a037dcc99598bbe9c685942d311077617be721b3bac3b63bdb16881b3e\",\"source_sha256\":\"0466fe40708d7f024f2c1a53d97464a9922a8692c36039c87eb967d1f773ace5\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"39a99ef55ba60e52d5b4d0a25a3044e9b5d869ccf76bce690b2ace094964c727\",\"id\":\"v3:security_ir:1:0:2:1\",\"normalized_source_sha256\":\"b4ff2ed9f496f83f79774587a721e25b3a6a9684a4306c4f611a286a5accc17d\",\"source_sha256\":\"94f2fa2292d5fe844cf7a703ff47b0619efec273e7b92cf3d3b6ed2c74787eed\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"24cc59b0b2cefabf630ce3b24e0d385998787bc6a2e02b7d8ec52f1183e5f938\",\"id\":\"v3:security_ir:1:0:3:1\",\"normalized_source_sha256\":\"636487755242ce387042918446a589d17c923d2d62aa14c91e6f4dd54cf97fdc\",\"source_sha256\":\"a5bbc740d3feb2b2e2a8866c73dd6a8028dd309b8518470f88459aae27dbb9d1\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"0988d9c8b9f89cc9015c2ef3414272e6bf34fb8b0cbce7ca04b99940ba564a55\",\"id\":\"v3:security_ir:1:0:4:1\",\"normalized_source_sha256\":\"ff238416848bebf85285e36c92ab33cb229f5d423e9b2f7468fc690c04afaee3\",\"source_sha256\":\"a32eef6d4181229ceee4e4020467d0657d793e8294b713b96d4121aff7494433\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"f7bac722b943cc60134dd546a395569e640d0652164597b08d4815c80da9b68e\",\"id\":\"v3:security_ir:1:0:5:1\",\"normalized_source_sha256\":\"6ac9374d203b820e6e630136f7089065192fe8c45f9c24b9060a78c101143b38\",\"source_sha256\":\"01774e33655e2aace17f9a9798c934dfdfdeedc2dd67df6793e4fda77b94a3e1\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"8398ae47e670fe14455317b1b7536d2d233e7a2509d0fd02b743e93f7754eed8\",\"id\":\"v3:security_ir:1:0:0:2\",\"normalized_source_sha256\":\"c3f5d5e58ea2fbe027bdf43d4ef2df20f687de14bc6cef3d5848441ade3ece69\",\"source_sha256\":\"48a0f2724be87a966a30f64db8bf571bd4bef4038f09a05c167e52d4144a7ddf\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"ad0b84005477456636f56e7efceb92890e4dca652b58d301b668cdc59483c2dd\",\"id\":\"v3:security_ir:1:0:1:2\",\"normalized_source_sha256\":\"a2c3dff31dec0279fb2c6454bb8f9ca09364f3e2433ee0f9008642bd78d3ffdf\",\"source_sha256\":\"35826c767c30cb5499bbe240b6c746580ac1d5fc6740fdb20b6ba9103ee6b5a6\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"07dbc49ae07117df4b7d11f07c2a3cfebe3d12e3b8fdbdbbbea4a2b239b5e6fb\",\"id\":\"v3:security_ir:1:0:2:2\",\"normalized_source_sha256\":\"723c44e950fb0740cf81eb191828e87a37a225abec4960f334d4f70255a45890\",\"source_sha256\":\"ad854942fb72e1e2e6b3ea522a2171801811f500b2a5eded9d182fe094258563\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"6ab68b71b749ed95034c9092906336829928b5bb2116ee9bc049bac2813171af\",\"id\":\"v3:security_ir:1:0:3:2\",\"normalized_source_sha256\":\"3c543542ed9dc313a67d968eb29560e221739749a2e4bfd7ae48d98d2f5a6513\",\"source_sha256\":\"2366f710503f7042a9eb77f9622e70ed0f0bf20f066ffde8eec62e3f91f12eb8\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"68a2e3de57301fb33d3de6dcca9daa6ee2fa3dff21e125185c57ae2ce0ee4736\",\"id\":\"v3:security_ir:1:0:4:2\",\"normalized_source_sha256\":\"e51be2be7593ce075840c626d58fe29fd551263e5c38afe5bb2a1d94ca4bf065\",\"source_sha256\":\"55d736a23a3aeb0e40bccd9ef7d46529bc8093d586889424da8e5181fa62a81d\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"365af24260df7dd7c6560fe44112ea11a62080ad6f8b26785c98f43f04ef6212\",\"id\":\"v3:security_ir:1:0:5:2\",\"normalized_source_sha256\":\"2001fefa64220160cad7221a2c290726c6a0ded85bfa38b2492b643f063fd267\",\"source_sha256\":\"859bcb3142294cd9fde6c971de1373d93d9246ff0ae2e1e182cf4435e7bebac5\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"bf82543e7b8750622ab4b51b64153138e7aba0d4aa9cc992b03ac63b2a7a7d9b\",\"id\":\"v3:security_ir:1:0:0:3\",\"normalized_source_sha256\":\"4078335fe17b679468b1eed84a2a5b1b89f99243b09dc215181778f6a1acc474\",\"source_sha256\":\"d0a7f229ad105d753c2f40f3f98be83f9eef8f6eca9c5d03ea2a64401c53cfc7\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"37e1a37b1e60990624f79cf829e061a155ce326997d04fbf757361b8db7d80e1\",\"id\":\"v3:security_ir:1:0:1:3\",\"normalized_source_sha256\":\"f0e240a5e74086c2511766d140e2e28c9478052db2cd4f0833eb1c10c19770dd\",\"source_sha256\":\"6343c30324e4ea455eb1cde560f762ee1629fe99c2435c8006323f2816a5d846\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"dac2ca616e342bd9bac7d3250ec1c8b653809902755b76edde73afcc1f262117\",\"id\":\"v3:security_ir:1:0:2:3\",\"normalized_source_sha256\":\"c05728a8b8dcadece0837290b1858e01b4768691c661dcddbe67ac4fcf229549\",\"source_sha256\":\"38fad99e2d54ba4abab2140143bf46581e7bd407a6739fda97cfc098d821f287\",\"target_sha256\":\"7158aed1a0ee3cd860cf6fa23d8a56bb5e770e4d6327ca09ab8553081fc59466\"},{\"embedding_sha256\":\"fd00836a92e6c96c1a0a2cda74a8966ebd75ff1f439ebacaad9c230e242331f3\",\"id\":\"v3:security_ir:1:0:3:3\",\"normalized_source_sha256\":\"7461c01f523b16f1d7462ba7d5ebbbe602ac5a3364bc8f8332209cbb8e94fab4\",\"source_sha256\":\"183b739ea4aace61fd6180db0482443331d20ef4fa6ca4200990b15f5eb871f9\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"1cf1477082a50929147b8df914518acf75b09933004d416849c5bf02dd3c03f9\",\"id\":\"v3:security_ir:1:0:4:3\",\"normalized_source_sha256\":\"6e8437bee019792eefb61a9cae169b827d7d8bcf22f04c4efe555b5746d23efe\",\"source_sha256\":\"2912d622d23c41626101d9a9637f7e66325230dd78dfe5819f45c05015ea2969\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"3de6a9c9fd2d4a7607efa10935f6791ab9fa239afb4125c780269a8e29d57951\",\"id\":\"v3:security_ir:1:0:5:3\",\"normalized_source_sha256\":\"7383e4c8f78e1cc7376c1e0d96077b4dd2436973fc771c4ed96d84165d58bdb3\",\"source_sha256\":\"96236d553040104554db91ca1319aee4a634026087eaf242a5eb2eb4380c917f\",\"target_sha256\":\"5436c50200d402b19d077de2aa3b5b7dfedf1f83bde17630e5a30502b1ac9f14\"},{\"embedding_sha256\":\"2da35788c103cf111e4db4d46fcce17a93b16ce3a653cf91d03b30712f0452ca\",\"id\":\"v3:security_ir:1:1:0:0\",\"normalized_source_sha256\":\"fc7f5564e9802e79154aa7c084ccf8a86f32b97866ea0820fe1391b901d162b2\",\"source_sha256\":\"1b76b45a55685d9f4fea8e7a05f32632e5b5bb63d7e2c31e715b9fa6f34563ab\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"c8632189d78d0e701edcb350d38b2d0ffd5853d786e2803c3e91a8c0f2b00d0b\",\"id\":\"v3:security_ir:1:1:1:0\",\"normalized_source_sha256\":\"72030193609206a350b574e033fab6a8ddf675cd2ce2fb10deed4277f8cd0878\",\"source_sha256\":\"1536e525b8c3c96c70b0e8fda0814a99b99d15c247f38da8ff965fd7ada8afcc\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"59f43dd3486232d720981b83ced5765ad8673350f6e103d1b57540aedd9d17ec\",\"id\":\"v3:security_ir:1:1:2:0\",\"normalized_source_sha256\":\"13db7bad70174c7bdd9610d921d02bfbee719ec83ef63753136ebfcf09a01091\",\"source_sha256\":\"6a2fd75d1612bfd156169cba6507c8aa0152dc9661379eae86d4f2f94bf4724e\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"8d6ecb5411417876b3c8b3bc3c88e6b3ff7312ebe020d028747d4347cd1e5154\",\"id\":\"v3:security_ir:1:1:3:0\",\"normalized_source_sha256\":\"8a5659412a4e58b97679615d6c4dbc427a4a584584c7caa33860a5a8a3203a07\",\"source_sha256\":\"b7f7ce5a351c3ec608ddffa054c4b4bd40a3486b89093fdee653517e761b2303\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"7bea656b94f53ed0fb18f61d2602960b68a46335bcf77511c76a7ea40e2049b7\",\"id\":\"v3:security_ir:1:1:4:0\",\"normalized_source_sha256\":\"e089e9dd2a6370f2d46345087d116c7b417316dc7f6fc802e4c1a125067b1d5d\",\"source_sha256\":\"49e815882f46196ca34dc431fa04fe8ee422ba50f9a0e3f2ed5218dda3801f17\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"5de4c79c8c1c66dd4fca030648847b1e9141f18875f11e9dd4c196fa491f4e36\",\"id\":\"v3:security_ir:1:1:5:0\",\"normalized_source_sha256\":\"d00172c320a86b7252323752bd8d335b458a2da4ca1cde2defcd7a8ea7200e8e\",\"source_sha256\":\"8baf2c46612adf976d6c363333d39f6b893619b49e3de6f8258fae5bc376472c\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"a6972df55519cc406e74436a94a5251fb02ac65d456d5360c71c18127b3d950b\",\"id\":\"v3:security_ir:1:1:0:1\",\"normalized_source_sha256\":\"ccd912d25a61ee18dd6d8743682c9a93b4e74a5eb22933f25c43de4c9a6b3710\",\"source_sha256\":\"46fd08e5ae81747c3e60cab864e9978abc583675948c808b79a1fc9235795e34\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"3b9d5d081f5bcf6314987a7ec09946d97e0edc80aa7376cd37712d9bd6e2f9e5\",\"id\":\"v3:security_ir:1:1:1:1\",\"normalized_source_sha256\":\"a1fa589d6291e3eb2ff3a4c09f5a3f2405273403fd41554fb9dbfd86881a054d\",\"source_sha256\":\"29a57a689b2847d5a5c2cac0437d5d5ef0d0a595ba716f2f874b5c13ff35f167\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"9195ee210b43fba82a893431cf95577019e4f769da5183da0c85d265e646bcd4\",\"id\":\"v3:security_ir:1:1:2:1\",\"normalized_source_sha256\":\"5a56c74596c0a64472f35c4a4d799f8bb93ce228d657cc43890284bb75fc5170\",\"source_sha256\":\"a732a51f3001bb17355c3da2ebbe9b0c83a22b32e9ae77472d5306b96e0cade8\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"b379120bd808d034ab895edef68776a261726268c2e5766fe639133b3606ea1e\",\"id\":\"v3:security_ir:1:1:3:1\",\"normalized_source_sha256\":\"07a6e079cfcf6269370a21ce432eb86c59e16382ec958a1b31643d1bd36d5a5d\",\"source_sha256\":\"3aad59fad68e28bd06b4d0edd6dcf03f3bb1ca3b5a515ed64bbf1469e93a2453\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"108d48811881037ca15ec234050b83c791f6b9dc5df6f8a5e9b95a3a1b900342\",\"id\":\"v3:security_ir:1:1:4:1\",\"normalized_source_sha256\":\"2444cd655c8fd7719714ddefc9dee82694a7f94a09c1107162c55a07f0a34f97\",\"source_sha256\":\"3758ca98081751d88146dace74ffa687693cc5da8eb1ac03cd65efbbcf48d32a\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"f2e5a67ef47d123e4ca1445fae748e73774c4a6587e74580ab2ac5c7861c9349\",\"id\":\"v3:security_ir:1:1:5:1\",\"normalized_source_sha256\":\"8a0ee620c04c759b54429b29e05a164edf8c223387ce4dbe72db1ce6c772a41b\",\"source_sha256\":\"02bcf396a20bbba287fd54e30f26133e3e2f4132e4ba69b16cb8b6a6eb623ae4\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"ea247cd6928aa6d1eaa67ab3850971b39db0f4f90f7bef6c522a893930e0def8\",\"id\":\"v3:security_ir:1:1:0:2\",\"normalized_source_sha256\":\"f012164c9c2f322d57e7b2e3050d8d0df79f5d74707623abaf3e50808ed54a94\",\"source_sha256\":\"bc74790c75902c92e216efea4812a169e10eeadb772e60fd66b9a0b34d69ed08\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"e3c00fa8a6dcfcfb22ea356b3c53e5b191ef6ad36ad5c75558a1896f02ed678b\",\"id\":\"v3:security_ir:1:1:1:2\",\"normalized_source_sha256\":\"335f96da53e86d2c6640618065ea9e0034b20e3b32c8e8a5a3c91b203e2606a5\",\"source_sha256\":\"7f9165666ec7b4e420461402c4592391d08b04b419deee65de49770d2507da08\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"488527484b3cd8f5b711a53a6ccea346175be20a6fb0a496d896cf3bdf8216a5\",\"id\":\"v3:security_ir:1:1:2:2\",\"normalized_source_sha256\":\"14ff09e19accbec90f317049b305638abaaf4053aed348128a795d7d04426b5b\",\"source_sha256\":\"c4262cc46382a0b685f998e4effab541e37b809f0e05743bbc8b8d5d7e3bb351\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"3d81d976d330b6fab6d37080b4460751eff634b61addb2a591a689effdc00329\",\"id\":\"v3:security_ir:1:1:3:2\",\"normalized_source_sha256\":\"b49e0ef81288cab21eff3fd1c4f111300e0f1cfbd5381bb9668294386215e60f\",\"source_sha256\":\"fe6547da37c0dc4a8644b83c96a0a8ebea1739d648dd5883668cf52685e90187\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"6cb09e7de1927fb51e066aefd7fe6c96bdb92ce5317f24a676d7a9931a95ab2f\",\"id\":\"v3:security_ir:1:1:4:2\",\"normalized_source_sha256\":\"47e340f27b0baf2925df1dfbe4dd4fb28c9064381db88bfe9335f2d7dae8a4fa\",\"source_sha256\":\"f4835b139bc8e1c3fa2a68f23e69ace8d2c016a72efd953e61f7580c53132a80\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"70c488ced405be14fd2631b23322870ab9c829bcf9a8bd1bb2b59b3fcde78a0d\",\"id\":\"v3:security_ir:1:1:5:2\",\"normalized_source_sha256\":\"b717e1f0d25fc5740b78d8c5add49a7e2e74745d2d37def3a13cc3ca5356a0a3\",\"source_sha256\":\"01e5564836f374ff1222b5128e7f009772d7c02cca47cf5cf657da6088d7261c\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"721266a1702b66fd707c8404e7e3d886201d37162d1fae5f97a1c5f6259b2535\",\"id\":\"v3:security_ir:1:1:0:3\",\"normalized_source_sha256\":\"d82458686869b43a9bba60b920e826faa43469ac1c5bbf22135822288648749b\",\"source_sha256\":\"ab5eefb77e85a02180965a16af3f07f9b2a7e0b30aff68d2835a43cae36db76a\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"48d1a9216c2eefcb452251f68ff8c4e880b9bdab79c407f3719c380a05aba078\",\"id\":\"v3:security_ir:1:1:1:3\",\"normalized_source_sha256\":\"1125697305662f371b8cb08e19eccee23d378bda4d2761fe74be610097316242\",\"source_sha256\":\"9d6b030fa9bd8756189e590111cfa22b764961af815a161af5f83626a4d1fe3e\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"7497ba8d53805ca2a0d5f87a090f818b9eda477c30bcd2fbf818d57c7c5c333b\",\"id\":\"v3:security_ir:1:1:2:3\",\"normalized_source_sha256\":\"4e3e0c2a8f82b288e470d57fff2565bc4a0691aab7f9accbe0fd5e4aabfe8173\",\"source_sha256\":\"2b86118f04629400e5b4b1be08d9b1ee8481556a19e7add79e280833925a0946\",\"target_sha256\":\"cb784f9d7f3d4f50f53752123de312759014f982307624b9082bb4ecdcaf2804\"},{\"embedding_sha256\":\"785f192059f243fab6e9982f8d6610cde66dba05ad66ad215f4c73cb959ded89\",\"id\":\"v3:security_ir:1:1:3:3\",\"normalized_source_sha256\":\"7dc4d6890d1e7124bc224dc0e7c83d7dd8c99a2c432f1b5aa2d0876797025e69\",\"source_sha256\":\"1c5a87be9295332db730e2f2179f65ad143dd68065c779e4087e28776a765257\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"98034cc4e421c8d46e089e169e6a744ffe4cab79858b8d833dee2449fdcbe458\",\"id\":\"v3:security_ir:1:1:4:3\",\"normalized_source_sha256\":\"daddfccc20234a661b5ff0e05e1dc2899361c050be3a0348618c47676e1bb88c\",\"source_sha256\":\"c4d2c27c77aaead079dc2e5edefdd5cf8eb8c8daf28e4a1dc86026a1e780b6c7\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"fd6408948c411915f84071859d39a03d70ddb0c40abbb1b77665f39877193466\",\"id\":\"v3:security_ir:1:1:5:3\",\"normalized_source_sha256\":\"07a519bb98a44d3b2468516f2d14188060c60b8c9663802f090a97a064ff6db0\",\"source_sha256\":\"2db9f53f4a44e95bdb77cab6452594979afe93a3d2a2fafa9bb378b7e576be13\",\"target_sha256\":\"10b6dad60080dd72c3f528ee8a98808549afb419f60caafce082a69b1483043b\"},{\"embedding_sha256\":\"21ca6142e6425b3d0f885cba718882e9e4f0f36f67463d5701b231659e193946\",\"id\":\"v3:security_ir:1:2:0:0\",\"normalized_source_sha256\":\"77561cc5b4e45baa5321af042f29ec3a65efd7606b12a28717a429b673f6cdbc\",\"source_sha256\":\"73184a7af9eb50dd957dc24865c944c97fd8365098ada632d0e883b411c4951f\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"e2d970a9fc185a22d215bdeeabd6e8ea2fc558403294ccfe73b0a6b2de7d51a5\",\"id\":\"v3:security_ir:1:2:1:0\",\"normalized_source_sha256\":\"3a832b49f562748d26f05cba7a5bff5c2ffb9cf2812d8b5299dd04086b8c696b\",\"source_sha256\":\"4153854a8a53f0f1945d214025955c9462366481b8a2e16780b33ac2b0af967f\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"df51017da22e90205d838de266b9ca28fe96d33fe87a5581661c38bdea23fe8d\",\"id\":\"v3:security_ir:1:2:2:0\",\"normalized_source_sha256\":\"2b7f6a3ae2ad0eb5f7805fefc93f59d1e8bec2c7a4892dcebc6084afbc78c2a1\",\"source_sha256\":\"7bab1afd458dbacacf0f04f6b4600c67f39dd02eaf74767a0900880c1ba70564\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"8a181877f1d6c4e69d66c1c2536eb46fbe326a95dca8254091f543f87d1af021\",\"id\":\"v3:security_ir:1:2:3:0\",\"normalized_source_sha256\":\"c6f032ee99c0108efee8920187c36382979fc3e0839ac0342c6d5a7a275c7b29\",\"source_sha256\":\"9de50aa35863539b2651d6a8cff117262661a2f0fac1fde8a11adf3d1af61127\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"de32bf992647ca3064cb593bc057d2e66dd05ff908f357a5ad23b6599fe82bc5\",\"id\":\"v3:security_ir:1:2:4:0\",\"normalized_source_sha256\":\"2dad7a74567fd740101193af1ae7d9afdcdc345bda6fc7ebfd783140ac3232b4\",\"source_sha256\":\"6819898a17bbd73988a4e31796d914da4d4dbb5abbc867b0919f370bc0160a58\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"b5f597e1b68b40f20a096c3ee7132872e29ec4bff43285b048fe93e97b03f9e2\",\"id\":\"v3:security_ir:1:2:5:0\",\"normalized_source_sha256\":\"e56a19692b9c57f5bdc1505046ce171093d51c699587429161c3e8dde271d958\",\"source_sha256\":\"c121ae501abf06d049e533aa3c3e7017be259de8063526eaca9066596e3e1c4d\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"09f2416e8dcf60632a05d2eeaf5f5a4f71798e33a452abbdc58a3062c039c55c\",\"id\":\"v3:security_ir:1:2:0:1\",\"normalized_source_sha256\":\"2529464a8357720a8d3b045ce979dad3d0ac2ae2a223a95e77b1af3ba4cb0842\",\"source_sha256\":\"93820c648b90436578cc13dceb6e0765342432792901e5754c24772d3fca321d\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"909cdbe375692bd392d46171a11d3a0da856da0c161af220a729b0e4e058622f\",\"id\":\"v3:security_ir:1:2:1:1\",\"normalized_source_sha256\":\"87aaff19e878a594c659c967dec52ff04e33c366b83ed0ebc7392cf2c96303cd\",\"source_sha256\":\"333581dcc007c6828bc2cb0f604bf707bccb2d3a568437dde1138176b8eda0ae\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"586c625090ea0b7e819af0e3730e588c8a1295e93555fd6dedf7dc990339f0fc\",\"id\":\"v3:security_ir:1:2:2:1\",\"normalized_source_sha256\":\"1c0e89200e60e0b2a057a9ad1c5c33e6036a7c4ab9df71616fe4aba7feec68d8\",\"source_sha256\":\"ee1085c0fd6f8a8394978408a213a63e255c71c42183259ba573cbc89355ab2d\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"bfcd1f749abc78352472af10d763a9500cd90f75c3d3cbe95a45eea374ebbfb2\",\"id\":\"v3:security_ir:1:2:3:1\",\"normalized_source_sha256\":\"d79eb81789d84e3bc94d0428bfb905dc7e3680324c001774a09a527cacd87a18\",\"source_sha256\":\"5ffab4643378703f0342bd69f03a6db4fce191e271d83d986cba186baf417305\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"fabfdbf2064ea0355a3f372d6003c6d50970b7104fe6812c76b81ea663a542ea\",\"id\":\"v3:security_ir:1:2:4:1\",\"normalized_source_sha256\":\"52a3cf6a36ca34cc41872bc43fbd26b8a088db141f7e8fe5ac4b4094fccf1434\",\"source_sha256\":\"910217442f8506c310a1862f2e9d086ecdb39c8dedf8b191350d68167b69d398\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"6c2e41fe0cc6a1c146b3e7f512d628485354222580e471cf76c4038fe92107c2\",\"id\":\"v3:security_ir:1:2:5:1\",\"normalized_source_sha256\":\"35e7daac4c3c430ace9c5bd4fc1c6cc6d756f99ce8f34ecd00c937bbfe075ec1\",\"source_sha256\":\"664a46b3807eba8d57d5e61903e707fec3c1b9fa4a213f0ada7f4689651f5d9e\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"02045f319ce15118157350e8cb077957375810f45e9e31540c9419c6dc05500f\",\"id\":\"v3:security_ir:1:2:0:2\",\"normalized_source_sha256\":\"4fd704451309fc0c9aec559b2e758099a3527a4e325317c1cba0c1090f89c5f7\",\"source_sha256\":\"74b3b865bd2f3255e1a24576e4858d8c16df19f25e8f3c1a11b87ac5bdbc394c\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"ecb67b09d4b504639c517a147b444d088fc0934aa0a095ed940dddf6de0ac8a4\",\"id\":\"v3:security_ir:1:2:1:2\",\"normalized_source_sha256\":\"f39523f05b0412fe738f421bb14684fcf68a22be0c08d382e8bfb2382f32d316\",\"source_sha256\":\"042b921340b8e6428ae3d791baa4a3749754f67d0a06525a75cee50345ab8066\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"7bf0cb70caf8d941ef599d23b1bf53771681f7865680a8e3ca9b2d9eb77cf8c9\",\"id\":\"v3:security_ir:1:2:2:2\",\"normalized_source_sha256\":\"fd04409af40f6d3e108cbe7d1ba3a6b49a3a558096c73f440e21fc599afe7a7f\",\"source_sha256\":\"efa18390ae7fa38f592c1ee9db71a1ee64d3077bf748b70a820d02704779d860\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"d8937cc89f1ae1562fe075e2a3a309a12cce5c0874c7fbd9f9251f45c80d2f59\",\"id\":\"v3:security_ir:1:2:3:2\",\"normalized_source_sha256\":\"e063e1fbcf5524383211028be660e514810c87287e1cb111a0d50a50bfc84950\",\"source_sha256\":\"7382b6041c647b0f9450a7ab1c06aaa5be232bb757d48c7cf5110bb7fbce1375\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"df66eeff23a5b873ae3befb1f23905c0fee94c6df2882f19720937a3a935d9bc\",\"id\":\"v3:security_ir:1:2:4:2\",\"normalized_source_sha256\":\"cd8d9d8fd8dea23ba5fc1c6941387a7dfa3cbc388f777f44c41423ae37f5d155\",\"source_sha256\":\"3ba18a3522efdd0331cf081f45fd8daec3567017c58722492b8e769b53460bc2\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"fb3cc01374189996ed67cdd804d4f79d11aa999bbcb7399ba8b7a206d385c17e\",\"id\":\"v3:security_ir:1:2:5:2\",\"normalized_source_sha256\":\"54b40d02c6dfe2e8aaf985fd2bb1265016e733174f51a8a105e9e13f662266fa\",\"source_sha256\":\"7910fef25c858b4ffc0bce71de50aacd0a7b6037ecba04e4cd0e184eb68ffc27\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"66ea66a22e56e70750efe6f5d56f2abf6b707780b5fe5239b80fb23c01a83f9c\",\"id\":\"v3:security_ir:1:2:0:3\",\"normalized_source_sha256\":\"3d7a28f507b10126725089e7f12733529cf5091425b372afb1b1e9daddf84917\",\"source_sha256\":\"f95c9bae426554130499c818ed777c67faded273f2391b0fcded39539a31a5f0\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"e1ca34ccfe7ee1eb524855b00a700cc805ec6aa7a77d96da34b8be0dd6f4f3f4\",\"id\":\"v3:security_ir:1:2:1:3\",\"normalized_source_sha256\":\"f5be130a171321736649d28ea84c964c4a26d1ad5b7c6fd3911501685acadf86\",\"source_sha256\":\"139822c89a10f8a6181b79f40e1c59dcf142f362e3f92946c5b39b5214fe822e\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"a73f20af9dd00c842e3a4ac9c67bb857a04ea5daaa6de68956ba444fb4e76691\",\"id\":\"v3:security_ir:1:2:2:3\",\"normalized_source_sha256\":\"fe1be5fe0d10975a771a8ca4be36febeb83ac56bb4611bae02d5256f881dc42b\",\"source_sha256\":\"b07459c130a5f4d8cade948046d217e24a5227490959924391fd22d332186d16\",\"target_sha256\":\"9ea6caf7516f24b8e8f3cb9f42860f2de716b6ab173a29d249964e9e20246730\"},{\"embedding_sha256\":\"b5a042571d230bef7d9d9c306bef66289ef46f20d985a4d2ead30a9569f7acdc\",\"id\":\"v3:security_ir:1:2:3:3\",\"normalized_source_sha256\":\"050f11d0a7c129d34951b54a1183c3e21154908fed1c1f0f39751eeb67fcc46b\",\"source_sha256\":\"a5d80233b4525341a814514a38b972a6c19d0be02d6b9bd05dca9603299af548\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"28cc06e0b013d68b59ecaa0ec09f37cbd9a2688c1911835f1b27bf55b718a886\",\"id\":\"v3:security_ir:1:2:4:3\",\"normalized_source_sha256\":\"a9e81c46367602c7086a9632a43607a0349c996d3e40ae583fdccb52d9dac077\",\"source_sha256\":\"046992894eded4d5faecf09235e948185ecbbe06cd3205a815454e737f8d8b39\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"5729bffa6f6cccc260b6bbe630fe331b413968bce9dcfefa25b3540c6f4811ca\",\"id\":\"v3:security_ir:1:2:5:3\",\"normalized_source_sha256\":\"9564b1caf6eb4abec40b5283c6db34d8d6d4e9fdee393f8ed263fd1193d834e0\",\"source_sha256\":\"a32e915e096986c89b2d8045e9b5c6b8eb57b236ce6aac558c5c513230d1a7ac\",\"target_sha256\":\"e8de412a2d46f91e0e199cc2f678706f6016050cdeb07c0da91f2142e6cf7731\"},{\"embedding_sha256\":\"f40fd0092f9a3c60834183d17c6deb9a5c3564bcf4de770d68fd64de936cda09\",\"id\":\"v3:security_ir:2:1:0:0\",\"normalized_source_sha256\":\"7e93857bf328a12e90fe0e54ddbdf8481be874ca2524a6c9b8bf41982b0af13e\",\"source_sha256\":\"60ea10b34a9cd34b37e4bb883e88ad9621ef96dc5370369f8d6c73f448831233\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"8f1b13b609f418b95853d68642b296a353d838297a09e9b6867ae19cbf4e631a\",\"id\":\"v3:security_ir:2:1:1:0\",\"normalized_source_sha256\":\"c8e2fea874de758c30d5ee51c16da765b921449b96c2736182bba1405673a842\",\"source_sha256\":\"c09bb3af701c64c0a01b9524e29df8e0a125c690d2ec7a6c2b42a037801a42c7\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"d61308f11c90474b4c741bf67540020c455c2b99241a29716de13adc6d28ea91\",\"id\":\"v3:security_ir:2:1:2:0\",\"normalized_source_sha256\":\"6d64d6f32ecddfcc7a78a80ae22b1a3e0f2f40a0c359ee7fc408a84e12f97d27\",\"source_sha256\":\"d762315ed85cde1b62002dfe82d9b7887d17eccaa782aaa800880e95d8fa1fbf\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"341f49b329ffc1159c17e1a8bfb2ed465e665716002e165420c29189e9f2fcb4\",\"id\":\"v3:security_ir:2:1:3:0\",\"normalized_source_sha256\":\"e41f4dbba2ec7f5c5e3c8d5ca1518482a54d8c24a5a708399220ea0e9979a7be\",\"source_sha256\":\"aeb0c7190231de1011c3a1123e4276f113b9c3a6c5bc9b07844de6cc41ad07bf\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"36aba593a51fff0ec79b27d035953563f18a304290efb8b6faa0f797d37fe2b2\",\"id\":\"v3:security_ir:2:1:4:0\",\"normalized_source_sha256\":\"92f5d0f07b47c3fe3354cec507a503ec47087e829acbed11a6dcfd49b9d93e2b\",\"source_sha256\":\"27cfe9cb86eab846200a6d10db37d91fb3e5dfca9f72c4d1a20a32053c8ba970\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"e779b860d1a49aba22f43f7e2166aafa48939bed2f32e822a833c130bdd7b68f\",\"id\":\"v3:security_ir:2:1:5:0\",\"normalized_source_sha256\":\"fc300829ff7cd65901f4000b8881dde165b5ed748593981ae0cc7a67c2edb841\",\"source_sha256\":\"26a674803c8e39407b10d70ff0940626c18b04724fb18a0e31cf3e5dfadd3b37\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"7d4e424597e913d230224141cfea9308d23720dc43e8792ff180c3c930fbcf1f\",\"id\":\"v3:security_ir:2:1:0:1\",\"normalized_source_sha256\":\"5163d86d0e8c6dbcf90c57fd4f6d6b9a8356e08d0f39f8176a78325551651428\",\"source_sha256\":\"2526ac8ca84825eb1f3ee1c89079b0fdf7f67c8b780c4ee2e0a02c9231d4bd74\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"86495663456158e7e025415443e5b4df9e3071ca1645f25f100945cfc1028a84\",\"id\":\"v3:security_ir:2:1:1:1\",\"normalized_source_sha256\":\"0af7bb28479aaa5c813baf17ab42205a96ecfff329769a4b609a3c3e8c843d5b\",\"source_sha256\":\"519297d26ea06ec1a64f3290d461fd57daede123f089a102b6c0b6231e8c8c74\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"7c2394156b42596f191304e5ce37c5f6a277e6c835b1d661692c895acde36e08\",\"id\":\"v3:security_ir:2:1:2:1\",\"normalized_source_sha256\":\"016a645bf07eb685a2fee03bb13fb231ab2acec862940ad4ad8b6e1591478b9b\",\"source_sha256\":\"3a0156c1888c72e3fe895e9daa09f958d45ff403ef2a4145efa2f6bd9d8e09a9\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"20d79a5e9b011199ed160079e52e914dcf59f01e628f3f7b8b94a66a61f38844\",\"id\":\"v3:security_ir:2:1:3:1\",\"normalized_source_sha256\":\"0809644427ca8d708485e83aadc895fe9e2441f7329ae2580f385e395ee72fc2\",\"source_sha256\":\"66080e06a783022debcf6a69642004b92b8616f072928a8660e1289cfcc26e7b\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"4d6cc7a07550ce040ddd546d6f044532914788ec8ae86894be038bfdfb8f6573\",\"id\":\"v3:security_ir:2:1:4:1\",\"normalized_source_sha256\":\"e4eaa4ad37b961ff4dc7284db795b6b190335eddecbce71775f5d914f803a482\",\"source_sha256\":\"ba9232012370dca08257834d99d520159467f3e977898a3bc6fae4d83eba48a8\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"2dfc7e41e633c43615c88ff93f2e972f801789cccf458f2df4b91d088e964649\",\"id\":\"v3:security_ir:2:1:5:1\",\"normalized_source_sha256\":\"ac34983427cb9e18995e90c3d1338f1abb89e0f2fa00f703ae8d6c899e88a72d\",\"source_sha256\":\"b762cb7a55e398054cc45e7a1bb4955aad8636eabff931853e87e89c2e3c5492\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"7d3e2080756203bdff305526f370fad31e4ee02ec93a8db1564d55a72d746fef\",\"id\":\"v3:security_ir:2:1:0:2\",\"normalized_source_sha256\":\"c18d8f28912dd6d8954af7760a4d7ca372e84f0693fd2e26548393ee90d346d1\",\"source_sha256\":\"0d388637c07aea4f4945c0d6cb70f3f1a0f9001b4521941ea64e93f1defa6f30\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"1ce0aef2dc6757a03243af77beb9f6cc5f7cf6e8e5cbbe6a10cc60c6e44fd044\",\"id\":\"v3:security_ir:2:1:1:2\",\"normalized_source_sha256\":\"c5ca9ceded47226608f7c045d13cf58ad9a70e739ab862a1ecf6907988655d11\",\"source_sha256\":\"c0291bc2c3bb569e1f20964a58773b24b187ac03ec397c635cb5ce71fbe79868\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"16e26204eba38c310524502ffe61737b054fce39531ce37a3edcad3bca7c23af\",\"id\":\"v3:security_ir:2:1:2:2\",\"normalized_source_sha256\":\"961bdbfc232060d5bd080cca3ad6cece2ac0a4a8d8f6f521e0c248a61409df9e\",\"source_sha256\":\"8d6376aaa57e085836d2c462b51e14ad6b3a5283b104856591b2fd75c523c213\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"ad356f5f7d7eeacfb5717e53f4c6350927c47fc4928a907b3b075052dbf4108f\",\"id\":\"v3:security_ir:2:1:3:2\",\"normalized_source_sha256\":\"b00709aced57628a601709cb13ec716985cf95d7da9b001314d2c1a953a89c64\",\"source_sha256\":\"a934ae3ae2586079a9c5bf156166a6a4b195e2d57416db90aed67ba466bf01ee\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"3d98a6db09b9ffc924d1a4a504ce37fd4215ec5d82d4877d86a2d2485eb660d0\",\"id\":\"v3:security_ir:2:1:4:2\",\"normalized_source_sha256\":\"10a375b7da1e2e77dd68142e56ae95ef34286ec14174ff70f1d549abd5da7543\",\"source_sha256\":\"a6aee89ead0c48fdd78715df50564e3f72806428d971aa8b5672a9f438871f8b\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"5313bcb1608b29806e64aabaeeaedc1cccad06a0a2b7575f0eadcdd98c4c9dd0\",\"id\":\"v3:security_ir:2:1:5:2\",\"normalized_source_sha256\":\"ed44b7d63a8ef5c2351866989a95ee53097a1f411de507833bdbeabaed060f88\",\"source_sha256\":\"f6b5e7c9b6bea9fdc0bba4de85e9415ddbf4dd8cd15d783ddaaccb111659cfe5\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"48df2b1c3388b61e557ae042e621db2a345b9ef4a1936d584cc8163e9e13d9f3\",\"id\":\"v3:security_ir:2:1:0:3\",\"normalized_source_sha256\":\"20f153c7c1b5dac9ac5a4113d208d0042fd24047f1e41bff3044e85500ebb01d\",\"source_sha256\":\"10706c335033b4b196ce8f1b0332e37050664fe196e0fc32ebfdca07111cc5f0\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"406eb37c8bc7e8503fd7cd53a4c2a5bd720c13aff1a5794a4b5f6583603d81bf\",\"id\":\"v3:security_ir:2:1:1:3\",\"normalized_source_sha256\":\"cb32e462cbc0da9b73ad7e1cf55305839206f22b3b54cd534f54f82c93ed3c74\",\"source_sha256\":\"c66eec70db32b85963208278d9bf428d6cadfe9356bd5f64054a9b1305683357\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"50e79b2d2fe1336e67c0f1a819b2aa4b69d3f429884bcf20f7b7bbd16c12233d\",\"id\":\"v3:security_ir:2:1:2:3\",\"normalized_source_sha256\":\"1d88a76fb3b59f71c906e293111b4e406940be6c6b481c29f2878e5708940c47\",\"source_sha256\":\"34b70904e659284b53d99a195f2ce1467d25619a74f811bb3c4ec48ac82e14c1\",\"target_sha256\":\"2fce7be43a963cf92b825db9615c7fd30241a1c49aca8a5a4782171a01279efd\"},{\"embedding_sha256\":\"f991ba040b2396a594741c8b7abaf3371ee50ffe1a189c90d414eeb5f188c0ce\",\"id\":\"v3:security_ir:2:1:3:3\",\"normalized_source_sha256\":\"48e2dfde94b0870159b2699ef28212eb3536f11c36fca604c44ff6eb92dcc242\",\"source_sha256\":\"032bbde98c9e8e5d1975755f229cacaf6b45cdea7c14bb11873065be3103e2ba\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"1f1dd435e811c14f529009cd77d52b5ea07f42bd828a89bf92456a91e319b342\",\"id\":\"v3:security_ir:2:1:4:3\",\"normalized_source_sha256\":\"4378829f9f8b82e0d33f35d54d4e00645193515bef70ad1e17e803e483833baf\",\"source_sha256\":\"4e394b541918270273a58154ac260f15d30642d9608990e20946d959befdb1e9\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"a503ce77be327d4b979b5541ae9fb9c9b2fec4e61792d6453e41f8e346dc183c\",\"id\":\"v3:security_ir:2:1:5:3\",\"normalized_source_sha256\":\"54f1f4a9c292c4b3aa263471fb234e347f41a529788524c48ec3a53d4bf9f21d\",\"source_sha256\":\"3d7f3cb2ea6b92f33e8889c82178e5abee6ffb04182405078f810c01f77f9ea6\",\"target_sha256\":\"032e28802ea0534f7aa5527377f4b9348b22fd0213c8b87e62933b7534025c76\"},{\"embedding_sha256\":\"baf4b2e456804ea735ff708270b86dbda7d067bd8f69914ee98feba3c212932d\",\"id\":\"v3:security_ir:2:2:0:0\",\"normalized_source_sha256\":\"173ac09d1068ce29a31c12ae7ff16c39d3a7fe3bb46b923008c209fb72b71ef9\",\"source_sha256\":\"e1c7f0000c9d943b7b132d4828b0d44b33e9fdeb15e0be17ddf986f8d5c18896\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"16bd3dfbd973011dc629c61771988e0651ac8320ad7f930a115f571a819f8228\",\"id\":\"v3:security_ir:2:2:1:0\",\"normalized_source_sha256\":\"e27ba479ce365436b4d88d064913adcb4ed93cf7e0c06e82ed15af8c89e07862\",\"source_sha256\":\"21328b46fadfd39d1de6e6badd10d92816dc346b3f70f38e2bc6eee930d0566a\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"7ebc1acf4b84c38a0791b06794208bdc016a98ef6b2ffa0d1f37159ae8f00be4\",\"id\":\"v3:security_ir:2:2:2:0\",\"normalized_source_sha256\":\"3a1b518e96d04937df908ce1359e9147cc8ec9d8710a286b9e538236b812d0a0\",\"source_sha256\":\"57a72606d1febe8e134388b95f0c97a51e0eac2e7e7c01862c260894696789f9\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"576a689083a1d5249cd4e585bcda87ef7306081771969055fdfd124a1918965f\",\"id\":\"v3:security_ir:2:2:3:0\",\"normalized_source_sha256\":\"395adea35a73e77676923eada051832edf93aac2d21ad3b491aded59b75fe889\",\"source_sha256\":\"94dcb1c2d5a57c3d1176fa65ea633a8a9f09b20714a66b829eaab7e4282075c5\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"6c8162a4932454ae8165d0e33a73611f92d03a2ded2043b75fe4477b8657555b\",\"id\":\"v3:security_ir:2:2:4:0\",\"normalized_source_sha256\":\"549a538b5b1e5c030f578ea712cb998835bf088db81d6e8b1285381d3076ad20\",\"source_sha256\":\"7dabb331b695ba2b357106ac9345ded755d9b3cc22f28a29bd924508c8e42e30\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"e6626d7218e9914b348f5c690d17c8d4fdf8c4c6a071c39b0f2c2d8fcf78e517\",\"id\":\"v3:security_ir:2:2:5:0\",\"normalized_source_sha256\":\"2d360a3acd7462c02976a36125e3656b1c02b2129ecea84a6b1999c41a2926cf\",\"source_sha256\":\"c76ced12909d34b71d124a16506bd9413f0de3772398f6590c98b55b6179f3d3\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"93a7f8a38d7a9a439e78f89a8424e23fe128495651ca6adede89d93a9dc7ced6\",\"id\":\"v3:security_ir:2:2:0:1\",\"normalized_source_sha256\":\"f038514ee55bbecc40ffd20f7c389d6dd357fe8b2d04d56ca618e65743fc24b7\",\"source_sha256\":\"130afdbd831b92c2cdcd0a22442e151b272f8cc5ee9c48b16f87a3a8e3a75308\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"0e0d2a5b5ed0f69d06e98ef2ea86afad1ae74de43a697af6e045fd6764e7a662\",\"id\":\"v3:security_ir:2:2:1:1\",\"normalized_source_sha256\":\"a3c28e3fd8520a140c8f0c33b1d1641bee18ed210959a25ee13b7700b34f5eb8\",\"source_sha256\":\"e06fa3df18e977ed3959a2b58b29992d03732815105e0f96f25a646a32ba23d3\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"a3a66fec3363bc54cf83a7ca6db65af95c8a00292f70405f08cb70295363af63\",\"id\":\"v3:security_ir:2:2:2:1\",\"normalized_source_sha256\":\"513386276d0eb36c8bf497587d8cd43fcd528bdb6099f29ac756b848197c16ff\",\"source_sha256\":\"12075132b34ebf254324edada9f6e391fbc5b878a19df1cc61a7b44f04fe62cb\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"b2e0219ad9a278ef3313911c7fecac817f805d84eafdfb10f2e456530cfedf81\",\"id\":\"v3:security_ir:2:2:3:1\",\"normalized_source_sha256\":\"a6332a21d92b683f017737d89e1d7b3a11c07179378191141b396cf5575a0c9b\",\"source_sha256\":\"385a2fdf3d87a080e852babe62563ad10ae151a097aa184bfe6169c566a672db\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"f21587b6227c95a7b81a9652c8899d02b020073fbada089ed3ae4393a4565cd6\",\"id\":\"v3:security_ir:2:2:4:1\",\"normalized_source_sha256\":\"be2463aabf47390ff47d66af682da92d179b527e264737fe77f731afe812e6fb\",\"source_sha256\":\"fc444f313b1cef84df988a0ea2b526770048b70464fb338c317bf954f3d550b5\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"be28ecf285841e03abd1b3dacc5966a9515fa3b0300f1a80f034112103fc4a1d\",\"id\":\"v3:security_ir:2:2:5:1\",\"normalized_source_sha256\":\"db1b9ea9b396d4064097de2e0cfe6dcd10d23e1ef9fae213a2c5311f2bae44d6\",\"source_sha256\":\"af2440151b69c9eb19d3f68b0a2d733dba6c53a65ad83b50f232880a035f75a3\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"10818ef737f31a0eec4d0b928e92d85d44ac9e0dcf8e06242919c79ed320af4b\",\"id\":\"v3:security_ir:2:2:0:2\",\"normalized_source_sha256\":\"0fd91acc64e8e620131f190dacc9787f2c5e45242ea94418abf06b9b1a98c102\",\"source_sha256\":\"e90c65ef05c789f89549026ffcc7901bc72a3f9962c22e8ce8cee2ec923ab63a\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"bd6b287ed020ef6c826aeeb869ef9f5f730a42b9a9ceee4495b43b2c63210b14\",\"id\":\"v3:security_ir:2:2:1:2\",\"normalized_source_sha256\":\"a617b7dcd19da444387dd36bfa1a21bb5a11bc8cf4b2526ee8767a1a49a2c216\",\"source_sha256\":\"7ecc2d3a38668ca7dc581530170c140982ba8e155a5ba4d3435b9f454ccb6fe5\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"bb6e08bb456fc25a9ede3466e4865d3e3bead19a14dc958606a9e61537a234c7\",\"id\":\"v3:security_ir:2:2:2:2\",\"normalized_source_sha256\":\"8170dd36f78e3d610fe587f8b679215bcccdae9118184b43833f2b8597193711\",\"source_sha256\":\"1eaf7cbf5530e214870d9cb00be2b439ff1425da5939e69ab6fe8300de133402\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"e921418d9fc0511072ac00a09cc14f15f94327941c7ff7731ecc546017a655c3\",\"id\":\"v3:security_ir:2:2:3:2\",\"normalized_source_sha256\":\"e4fa573476e84e0563d712e4e54b1ee7a7eb311afdb1a1a1b336431c56323cee\",\"source_sha256\":\"7070e595bdb973260ce6fe804195f6ae9cbfe511d48e5fc36c94b5047897256d\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"bd5bd03912f2c23aa91a9e1cde8631a455928a6a8600ad919747d104ae814add\",\"id\":\"v3:security_ir:2:2:4:2\",\"normalized_source_sha256\":\"3d3e3303954e13afd2128a796df03e835876927eb6e6d79fb70c599ab9e5ddad\",\"source_sha256\":\"88edc0e01b39de8f90e498fde4ba77992be2466a75b11bd36819733e10928aef\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"8142b6d1dac973bda63dfffdce7cd7fea068b32641a44ff9bc382e22235f85c9\",\"id\":\"v3:security_ir:2:2:5:2\",\"normalized_source_sha256\":\"e41861aeddeb4da7f33ffa81d5de3ed069f357d3b115da75041c9526151611be\",\"source_sha256\":\"105f5e599e1702f42f5e14bce8653cc2d12430c25d0238e198e6295fb0a68e55\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"4f92853a564ecf3a58b4cb9a8fb405a92037cba1700afb7e7078cba7fe7c6d6c\",\"id\":\"v3:security_ir:2:2:0:3\",\"normalized_source_sha256\":\"ca6f1bdf70095d6269d0cfd54ac06d8f6d80ab1d4c3c629a1d70dc2072f04155\",\"source_sha256\":\"feb02ab07bf8b375ebc4ea20ae0dd39bc9d2992c99775e763b29c036c4b80508\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"7b4b7d0373f9792f702be1ce007820f90d6f5a0113ffa66e6dd3e2a187a986b9\",\"id\":\"v3:security_ir:2:2:1:3\",\"normalized_source_sha256\":\"78b6fc02e69199fecbea69c8ac102e6876c76d00c05358fa7367db2becd0bf61\",\"source_sha256\":\"2b82ec9fb5517891c5e20a8cf686cad77302b7f0272a8c0b2f5d40205ea47139\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"e76a24455d249404bfac8f632759e728378fc54664ea71cccd3fb0205e1bb0b2\",\"id\":\"v3:security_ir:2:2:2:3\",\"normalized_source_sha256\":\"694b0be467f5945924f99fead4e87ddaa5f70dde3d08f076536b9da9acda3469\",\"source_sha256\":\"7f5c2b21556ff12f3348f8a68256bb0de708161e7fff49d7ba6e855512877661\",\"target_sha256\":\"d2dff7c9dfa476ea498404441f76f560cfeaa4b744efbe2e65c653e6c406e621\"},{\"embedding_sha256\":\"6fa82154cca82bd5af532f5d662eae6b30920499f537311b8df0c96c5f1efc75\",\"id\":\"v3:security_ir:2:2:3:3\",\"normalized_source_sha256\":\"d70336b16c022758115d3c73fdce4b2f70d133d1a00e3ab2942b4bcc08a3f92e\",\"source_sha256\":\"43cd90cb4807ce9df4807176e4ad549f0044384bb086bf3e90b78140435b6957\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"3b8c12f6f08cb08bf77451b3ba652bf7c271a2f68d7717b5317d753a350967c2\",\"id\":\"v3:security_ir:2:2:4:3\",\"normalized_source_sha256\":\"1a182a5f4e1bd72d37fb2d1aa3dadcb02267f897f47dd73d4ef0b40ed164ee29\",\"source_sha256\":\"f6136b73140f56a95fdc907380df9b5f925be7f9de8c542628689dcf430121d2\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"87a498f174721c362ab1d54b04caf261115cc701281d83d4220479b7c0f81337\",\"id\":\"v3:security_ir:2:2:5:3\",\"normalized_source_sha256\":\"f06f44f96f226a4019160465426485323032cdf3463568a1cf21a41a0e3519d4\",\"source_sha256\":\"9a6c6261b344662cb42ab78df5e309235014993fba21d794af6e3781288b06f5\",\"target_sha256\":\"e16f09121b2dd64f65b5a4394109ba99a4f2849751b81cff69df8c732aac97ce\"},{\"embedding_sha256\":\"f072fada6bd29ac50ffa80771555bb3b377d47e108f79aefd3b033f92abe4a5a\",\"id\":\"v3:security_ir:2:3:0:0\",\"normalized_source_sha256\":\"4565c5f99822d852fc0c93ac08a1d4962d85dc8aede40e2f2721e26742c7c1c9\",\"source_sha256\":\"9e3259f831d04826aabffddb0a75faaadd5bead3767fd6a851c23c3509afd903\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"01d98f7fb3f37d14128de57fd93b8d8269e07368faf9c315f87bcff44d5f58e6\",\"id\":\"v3:security_ir:2:3:1:0\",\"normalized_source_sha256\":\"d9e10eb4bd9fe8d8ce1c282a92bec1c4c18870628deab058d6cf94e9a2d60913\",\"source_sha256\":\"5b6f2b4ec6f6df882717bd46c9c1082e2c73018ce5ff2819b533acd4b46429e3\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"e4f65827155a94d6181decdcd453d6b31af5b8533539b1e783acf51d16f41391\",\"id\":\"v3:security_ir:2:3:2:0\",\"normalized_source_sha256\":\"255e6dc664e6e2dfad7ea76d5b9aa6192f0a9500cea4844e7e5537b636318ef4\",\"source_sha256\":\"3615fa90165621b7389f06a6fa6db4ab394bf06c25541db806c18cfbc860c785\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"ad2a494e2d8a13c3198eadb85f9257b8c298c2a2819a29bc48286919fc4a8ec4\",\"id\":\"v3:security_ir:2:3:3:0\",\"normalized_source_sha256\":\"12159852544355f67e8b1ac3c6cbaeb9b09b556327e18846ee223b36b4cf3b4b\",\"source_sha256\":\"1df24e71bf03ea17cb684198f6c73c8420de6fbf41a31d5dba06730fbbd775e9\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"4cb649dad594ac6de1df8ab42d3354ca32105c121d2a0ab3d7c574cf34816ff9\",\"id\":\"v3:security_ir:2:3:4:0\",\"normalized_source_sha256\":\"66de392f206e9124cef4b69a3ed51231b685f7a180f9d59a99ed347c42db5437\",\"source_sha256\":\"c3878118941583cfeedbb26dd31ca378ee9985bd66411c1b823ca13432bc4244\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"79fff46b0c34d427b953b959656e9709593b6a394446903a0e29b46ea8b702a9\",\"id\":\"v3:security_ir:2:3:5:0\",\"normalized_source_sha256\":\"7498e4a513ca8f5663133dbe069a8e88cf417c0c30d338287ceffef720a0c1ff\",\"source_sha256\":\"0d52a0802de5098cd70babab4ec3073db6b2aeba732cffb743080e18e8484aa8\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"98b3dc72b1cd3d54ef9e1bcd6ba99270cfdea176a49678ffa9661173916f7769\",\"id\":\"v3:security_ir:2:3:0:1\",\"normalized_source_sha256\":\"144d58570d5a0d0d6f5ec982848ee353bba4085adf3af8e45591741e2863a18a\",\"source_sha256\":\"b6677647539e621f9d54e8565f331255d8ca5196647eb6f6d1094a1ae0bb3f8a\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"5e8d5c120b8d7aebca9064f2c8c2176fcc157806abbb922f455874b04d6906ec\",\"id\":\"v3:security_ir:2:3:1:1\",\"normalized_source_sha256\":\"f1cf00a2edabc02b7d7c18a3e6d94adddb17caac48dc1319849e9f61c67c61e2\",\"source_sha256\":\"a62fcbb323c63c57638fcea720d1c2adc0c22370955c4efe49f558dbd0103a5b\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"a6c20d58f831e42cf643ea557d2a6d8fab86bc5107d1ead173a01c32f3f0c881\",\"id\":\"v3:security_ir:2:3:2:1\",\"normalized_source_sha256\":\"e2b195a3ffaf779bb4d7d9ab305bed87ac75c24c1088dcc8282a8622e3a03efe\",\"source_sha256\":\"2e985b4b3c25fe5d6a2ba437cfb482346f083803ba76d104762e4c51b5640db2\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"27c5a03aeeaae2c55f770ba1d09c57720586e9cd421f9bcf4639d95c063c59be\",\"id\":\"v3:security_ir:2:3:3:1\",\"normalized_source_sha256\":\"0299345e0b0286fcc54e5e1448673c2439cd992f4a7fc6e270eae3c3ed9bc06c\",\"source_sha256\":\"36d20b5a1357e58ea3c0ef07b8f9c6a976bbb669f535a78db680f4c890df72a1\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"83d11fde31ee961a95e424efb16ffff774cb8da0e8a2e2f79677898e5840d958\",\"id\":\"v3:security_ir:2:3:4:1\",\"normalized_source_sha256\":\"f7032e3fdc9d8149d64576a247b6f317acb320ce27e9cd476ac7f8657bf158ce\",\"source_sha256\":\"6e4bef4a404f0f611d64a128c20f95b6a6b68c8039528002c402be0eeaa0d2d0\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"e63fc435e99598b80346dc1a36505f0d2cfb184da10ccb8941ab145da984a272\",\"id\":\"v3:security_ir:2:3:5:1\",\"normalized_source_sha256\":\"ef695f01733769dbccaca9ea34f01a11c37496dfe9b0f4830d1de9e5d83ca90e\",\"source_sha256\":\"45f1ad51a4d6d9c5d33c3686cab39770fb74877f451d04a4e122facfe7aa1a3c\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"1eca7b5f00d1b8ca56a1f2cb87ae561b1e712c77344c616b14782da854aff49e\",\"id\":\"v3:security_ir:2:3:0:2\",\"normalized_source_sha256\":\"2ba150fce0110920159f5c3b71a3e4bc01b8a9d6df5bb297db49bea53a9067be\",\"source_sha256\":\"87c88183b5cd077ae286c10f036b23e3688dde94668a63349d04c4db5bff3ad5\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"da777d11592ae821f42491445e6ed9a60ed00518848a74635346268b646aa292\",\"id\":\"v3:security_ir:2:3:1:2\",\"normalized_source_sha256\":\"72204a0d950934fe4c292d45103893ceee84374d72a0648bedd871466abbd468\",\"source_sha256\":\"ccc4cf3182a84184fcfd4517661e6e1a00cb3499d7e075d534abdcb92a6de2fa\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"945a8cca9d4de8171591f0c37b95dcead0d75845856cadc068eea56ec09edc4d\",\"id\":\"v3:security_ir:2:3:2:2\",\"normalized_source_sha256\":\"5007144cd7cedaa42b9103b9634be0fe0bbc5c00cba9ca077da97491f8960ca4\",\"source_sha256\":\"0dc26092b1f347fb4d9afe50b7f50418924b4ef5abd6bf789b8554b136075b28\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"9db40c39324a6472242a04aa370fca61a4bf24c212a3128b2b5b1befa86a69c0\",\"id\":\"v3:security_ir:2:3:3:2\",\"normalized_source_sha256\":\"9e68bb6a8525e3bad1d18e6c40892412d685d560b8d068cec65ea506a67dd378\",\"source_sha256\":\"4e973b442a2c1b672d4add65d0142a17c46b120cacf25f8c8097e188d3c9e162\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"99d93a7d43ad99c4ec706d25904e828c2d816cafbbf65cad21b85ea4603fdb69\",\"id\":\"v3:security_ir:2:3:4:2\",\"normalized_source_sha256\":\"de4568156fe9da38ff75b664449be688ba8b98bbb54f939d0babc46cff7bc118\",\"source_sha256\":\"93486880c999a68a143eb6be003300d5bde1a1fa0da50684a94356b0be910d3e\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"a4637aebf52f04b06cb8b03197aa8575cd5cd7412646cc038aba5800e9e8fff9\",\"id\":\"v3:security_ir:2:3:5:2\",\"normalized_source_sha256\":\"f87710b1575a07ad8024617f9aa8d9504ba66b39977b3d9cc59098f4d4034750\",\"source_sha256\":\"fd665594743e1cff91a111cd3c0a9885f19ecff22d840482d81c4a9db19380c3\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"252018e8a833507f1d01f6c0a18c9830e0c48f25a50d70275ab596ee6b99d56f\",\"id\":\"v3:security_ir:2:3:0:3\",\"normalized_source_sha256\":\"b1fc5fa0f278ee6b593267a6f725a1e06f398c9a5d1f58e35b310c5407c60508\",\"source_sha256\":\"8fc7c6a8541511bed7281fefaf4833ba2a6b8c82a50005635c4491d3177b1fc1\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"f290a258a02897dafd3d6dd84f8acd81fa2ea1cbd748aeddb79ee3fd8798484d\",\"id\":\"v3:security_ir:2:3:1:3\",\"normalized_source_sha256\":\"6de6fe108b083d1812b1060844b09987d4f0c2c7810b56eac91d6ee322e4e345\",\"source_sha256\":\"2d55245902facd6791ad21885615f71185aca39e1f469e138680ef5b584b7820\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"6c3ff54ac582499bd4db26708714084cdaaf299ee19852055d9c6e6bc616717a\",\"id\":\"v3:security_ir:2:3:2:3\",\"normalized_source_sha256\":\"7685589f135f72fff9c298694316d90c8a8533f0dec183620d41886be79194b1\",\"source_sha256\":\"f59c845a7a1349f70ac1cd682b66ec49f47bc627ea32cdf9ac435264b1e8e157\",\"target_sha256\":\"6fdcdd3c4c3f1e8a30fb6b1a9d34317f8c2f797a9d1d612d01082d00c15a96a0\"},{\"embedding_sha256\":\"bf4ad81e4d2d491ca7f28cf1c2256a199d694e3df9aa9c76fd528a0f0f49a29d\",\"id\":\"v3:security_ir:2:3:3:3\",\"normalized_source_sha256\":\"d802f86b527968a005983952033b9eb76ff8bcfe7204d8b3c5200a53871373ac\",\"source_sha256\":\"ca347b3db6c4f3f7d20a6e749299a69a3bdb1ec694764de010eb040235c5f59c\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"4eda2fbee8d49b130064015bec0bf5d7eb0421603c16dbe472f08327503a68d7\",\"id\":\"v3:security_ir:2:3:4:3\",\"normalized_source_sha256\":\"289c84c30368540b4ad164a8ba5bad19f4d29ef90ff297ae4eee695e3359cbea\",\"source_sha256\":\"3c9856aced9e5973ad45f9d48108afe8ff6bc735829cbcb68e81a3d93ded8cf7\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"2349d068670e4eeb515555247db1d1b1c98293baf58dd2335d4c1aef16a9ebda\",\"id\":\"v3:security_ir:2:3:5:3\",\"normalized_source_sha256\":\"e6191fa12c87876ec1a49191f24436388c40b429ffdee2cec1b732d43b88dd23\",\"source_sha256\":\"2e25d20a856ed359400938e657e95b0f00beb8ce66a8d337c49b27c82ca006b7\",\"target_sha256\":\"94dd07afe78300bd2de092854a319582e39bcca5c8cbb85855f149b9e3dba318\"},{\"embedding_sha256\":\"b9c14b838a6e70be7655dfd857082cd64c544c86dc263878a53ad8e5120a767a\",\"id\":\"v3:security_ir:3:2:0:0\",\"normalized_source_sha256\":\"8ee565bfacf7b3269828adfaa4019e5baa561e28c3be0fc8722410fc4e0ad38b\",\"source_sha256\":\"5b02680b531487eb1941ae507b5c3ab1576021b98f6906cdadc7b01748a07388\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"c39e82af70aa2608a6985ec171397efae2156be4d3bf4b0a875d96e477bda8d3\",\"id\":\"v3:security_ir:3:2:1:0\",\"normalized_source_sha256\":\"8ece8f3bf78eba9b2f7da8058225c4620831fbc6fae70dd578aa1f54b6fd55ab\",\"source_sha256\":\"72b41169b65bd0db2dadbf027944cf7bd6bbb6b86b789aa6b5816bee0618dfcd\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"3ccffc88726bc10ad90ea57e45758427f572eb745c88ff007777b6407a9337ba\",\"id\":\"v3:security_ir:3:2:2:0\",\"normalized_source_sha256\":\"c132f43298e112639e873fdd252b3132d56896768317fdf2fea5df8c4e0e745b\",\"source_sha256\":\"3eab046bc81c6deab26ea51523a7d30b8e97de29de9610e35266c391ccbe0177\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"66fae25d936ad80af34615924c247ce1e0d33ea642c5ec1ed92d76d0bf62de0f\",\"id\":\"v3:security_ir:3:2:3:0\",\"normalized_source_sha256\":\"b205747359b7cd78737ccd5c0838d011806a08479dc83b26f8194a491e137047\",\"source_sha256\":\"a8719ef29aeff02d622b28f1dab9eb10e48332ad8e38cf816f9520979f6cd281\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"47330f72dd4af76bf6abaf1d8b0849c9d8b1f85eeb3d808f6dbe46bef745469a\",\"id\":\"v3:security_ir:3:2:4:0\",\"normalized_source_sha256\":\"2b6f15f98c5fa55f8011826b24e3109d46c66f33565f5af0dc01ff081fd35aec\",\"source_sha256\":\"d7a06750257b69531adadc4413ec6d7e4d3b3c7e4993920472bd0ccee6a0adda\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"9b5989eab8bee9d98aab3c4a5a486ec4e2f68ef9fffd9a025701d9c9d5bc2744\",\"id\":\"v3:security_ir:3:2:5:0\",\"normalized_source_sha256\":\"ff91f948215571b0c8a42ada7578520538904ed1d2c4badb237a8b82a2f3ec6e\",\"source_sha256\":\"87fd0b333cf7d9dcbe4c7653f8193dc1bdf6626c1159f02f938942a29c4b4245\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"c02132ac6c9588e67fe2a3a7abf30b37c14d8c3869b4396456b7c20fa3868d1f\",\"id\":\"v3:security_ir:3:2:0:1\",\"normalized_source_sha256\":\"e93829294315f24d40c99729a51356277d196eaa9c9b479c7ae920f6e487aaba\",\"source_sha256\":\"4c1fbe2c7e760310ac9dff4bcc6113aeb0921b8a90758c4688b6563c84caa3d3\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"a1c08a9fd461ac282c50a986e26747d9ac7564eb324316da31e8fb4214eb05d2\",\"id\":\"v3:security_ir:3:2:1:1\",\"normalized_source_sha256\":\"787934987bb719788fde2a722613fea000a507c6aebb6815b71477d66473ddae\",\"source_sha256\":\"af0a06799b3caf43c8096d254da4fd0463af5fb4f48db78f9fab207f0b4d2fbc\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"0aa71f7debb4fe83874218b82a17b3be820122677848a635e4d2b2c5ea26382a\",\"id\":\"v3:security_ir:3:2:2:1\",\"normalized_source_sha256\":\"f091adcf8ce91df034522ec51388dbd88bed2bb6b010204da344cabc4b30aad5\",\"source_sha256\":\"cbb19ee11a7b552144480c5ab9019dbdc3f51242306653ba2f58a27b250bec22\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"6fa7064893ae16e96f8bde14660ccd2d70f371160c7327844eb5d521c65acdd1\",\"id\":\"v3:security_ir:3:2:3:1\",\"normalized_source_sha256\":\"0f7a7d9f47ef1baa6f5b517d93d2a9990c379d968ab3ee9cfe2b2c3f0464ba83\",\"source_sha256\":\"1e78f2c983c7a7bbe3282b2869bc20b2f06228cf3a12d2a87f6b0a0126b20ba6\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"5a4140cf41de106953bb22f6625eea7baaa9191f5f75c8e90f98a17689792ce9\",\"id\":\"v3:security_ir:3:2:4:1\",\"normalized_source_sha256\":\"bc8cff1dd0aaf33e6d3ec95e5cbc0d41b241bb2ed690bc73e3d4a223d2fa8973\",\"source_sha256\":\"5e5268fc819289d16abf533a189338ef1cf832a0cc26b4b04495b8d2d45a2733\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"cdef1126f777870404b6c1fb3f4efb3326c900ad4240e7ee2b916d63fbf03654\",\"id\":\"v3:security_ir:3:2:5:1\",\"normalized_source_sha256\":\"27947cec01fb65adacd538667d744fdbc3b6450bfa386a01765a9d389ac0d2cc\",\"source_sha256\":\"387f72e4210cbeeb278b8b2f7e3f911c5ba81db6dd50c74aec58cdfa0ad2a1e2\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"cf436a1d85f6759c371fa83a9c9d0eeaa72e6f3b84e2802747417ab96ed8e1f1\",\"id\":\"v3:security_ir:3:2:0:2\",\"normalized_source_sha256\":\"6a93af82f402efc7db56329a1f18edc0a856cf00db940f060f4dd91adb85c838\",\"source_sha256\":\"d8808247faa6271809071427c1e40763e0acea5569722bc4277c53a63ad4a581\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"abc32ef729a11ca7c1ef9ed30f7d30a191f98cbeac4570849fbed6ec27916171\",\"id\":\"v3:security_ir:3:2:1:2\",\"normalized_source_sha256\":\"4105260ae8ea2eaa454faacb9eeddb98ce8fc4d6744be21fb7371b198c8c64e8\",\"source_sha256\":\"7148abc9b1e30d3716db8379750bca0472d302ed21a14d30c00fc9f07b1dc724\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"33025caed9f0e1b277261e1886d8df6eab471fa755041f7bfcc4086260ee1bb1\",\"id\":\"v3:security_ir:3:2:2:2\",\"normalized_source_sha256\":\"7d56aced212b0832583ac5dd9a2eaab090a34982800e549e492212a5fcacbc06\",\"source_sha256\":\"5b20b166c07e78c7d99f8ee41ab29621ced380eaf08c5b133534ad0225befc33\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"8414726a62c017a1227a14dc6529e2c4723a0b12d6ef5278ec74c747bcc452f6\",\"id\":\"v3:security_ir:3:2:3:2\",\"normalized_source_sha256\":\"c0f8e32eb564c5445044b7f3f6aaeee458a0705ed5bd2e1e243fffb5c639a66a\",\"source_sha256\":\"150f5eb343e5ba9fb8d5bfacc9fb5d6cecadab3cc20feb9f4278c5a451dc32b7\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"2e1b2a7ed6a2423816372f25023ffa74f5f1854663117fad5b40c023ddb44b56\",\"id\":\"v3:security_ir:3:2:4:2\",\"normalized_source_sha256\":\"41ee716010cd977684f1eaef586e407887898ad6d9a86e8b213d986cb76f49ba\",\"source_sha256\":\"8f2927ea9a4af1bc5e853e5fdb810ff22ff5dee3cf28a83cd5b2fedbe6461580\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"323ee995ca7d46bddcf5c937ea5c50f059d39dd6c97b71fc913b1e80f8e25c06\",\"id\":\"v3:security_ir:3:2:5:2\",\"normalized_source_sha256\":\"8a1f51f229bde460cd029ccadef6bc0c8ac2599a86ff098572fc7efb9e96d78b\",\"source_sha256\":\"22509e0ceb509f4a4bf19f58b3305345c587f18f0e1c9bb52637a3cec34e6da0\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"9ab608aa27794c10fe2c343fd5ae326a5c6825c506da0f96656ff97bf1015488\",\"id\":\"v3:security_ir:3:2:0:3\",\"normalized_source_sha256\":\"c9c5974ac40786681eb7c2e8685db274619b0de37cfd6f1590e9d7c9fb4f6e44\",\"source_sha256\":\"0fa5beb39c6777eb2bd8572e818c43c9563b1c764c7b73f2ef1ecfce39a34902\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"b43225336efd1b892beb49e37708afc1f098f345058f66b23a98870fdd594f65\",\"id\":\"v3:security_ir:3:2:1:3\",\"normalized_source_sha256\":\"2d32b2b79376235cfb5c01dffb087ec7ccc4850520abe5005c7154ac01779d51\",\"source_sha256\":\"d1267f48f106ee9fe5f8477a4203c4a86b756a2bf36255db6e6d00a31cf60dbc\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"5e9f37b2a3c15db83409d6ef7f421e338a70e65eeaf199a28738d4ef329972b8\",\"id\":\"v3:security_ir:3:2:2:3\",\"normalized_source_sha256\":\"76759f12370f9a1ef0aaa595e3948962fd44b856745d04e4b9d484bba46340ae\",\"source_sha256\":\"54844af585dc2676e8f9be4b5c45f7cf7d81b631cdadc91c831eace25fafa8c6\",\"target_sha256\":\"47b39c080aa2421df9bdca4cf7eab2e3f9bb8e99174973bb1b12fa45b99149ee\"},{\"embedding_sha256\":\"6c78499472681411b62287074ced66a6abc5bf7836cfde6466139d876e062617\",\"id\":\"v3:security_ir:3:2:3:3\",\"normalized_source_sha256\":\"e8260cb0c7566961969f9ae4b818004e81321b6d2c38e740a03dc40376da6672\",\"source_sha256\":\"b5bc2d4f91e3f0106f55aa3cf13a72319da8e8d6f5c7b86d4b65256e738a717a\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"f8f9cbaecc01f1a87714a9975db0d6fd5ae22a21cc817c43078c516e35a92f1c\",\"id\":\"v3:security_ir:3:2:4:3\",\"normalized_source_sha256\":\"507a9486c860433533177fbd2d93ee845a7ff0894c3ba8e58fe81c1a2c065b6c\",\"source_sha256\":\"7f82a4adc250d0c950f3145e2aec396cb852c0029ce9acacb43972af76c21ad4\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"f4f1d477dbaf25605d297b8ce5288c28834eecd97bb6166bd231a9992a3efeae\",\"id\":\"v3:security_ir:3:2:5:3\",\"normalized_source_sha256\":\"4345d55a7ad3a89d728a6118ec8fbc276827de93aabdf3353a801b47f18983f9\",\"source_sha256\":\"ff3316d6890e5b5f2c85f3cde116091279a1ef9315aded73fb6a48939f2c89f0\",\"target_sha256\":\"de05a57fcae18263d711dbf418777f28083637dbdee0b9294b9419c2a4c7fd73\"},{\"embedding_sha256\":\"31c60a932a18c35c479c7e088cbc40ee5fb4bf50ee16c074d40263ed3b0dafa1\",\"id\":\"v3:security_ir:3:3:0:0\",\"normalized_source_sha256\":\"c53519c65ac463774d02e8dc813efe680d0e7c1a10ebbce88733e5d981d5e7ab\",\"source_sha256\":\"078f791c36490c9bf9cb37831d2c9b46d0ef10dbdd4cf9685ed375ff003ee2de\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"6233c83365b74deafadd324531841ca27b4039ca31649943a13052d57989b65a\",\"id\":\"v3:security_ir:3:3:1:0\",\"normalized_source_sha256\":\"94f80e337929e0184c8c01de5d8f2a2b87d6ada6ef14f81d3d0f1365a4f87456\",\"source_sha256\":\"014641fe3fc46352060959f9982be1ad4879448e0148ccc8d8fb55232e358475\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"b4dc5fc109ca055b77cf82e22ead1cd7b59fce994fbd5c1e329b34e89b4f4bf8\",\"id\":\"v3:security_ir:3:3:2:0\",\"normalized_source_sha256\":\"d4effcc10b6557c844d97149ccb708324b86f6f97db73faa00373625ef1975d9\",\"source_sha256\":\"96e309b7fefa695e8c0f9766cd6cedf6b5d5f69f6612b6ff847634e2f062a297\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"80e15cafd25bfcb2f7a728dfc3413571dde94a8f4002181f76d2fb10c6a13191\",\"id\":\"v3:security_ir:3:3:3:0\",\"normalized_source_sha256\":\"7a14495da2f1eb708e8dd43eebbae910611b2d813813b76a3ff613ca3c6c3ab2\",\"source_sha256\":\"9747c775ce3b0eb95ab7e3508d2e4821e05d5260ce937bc49973d79a9ab6315e\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"f570e113b8fb78c51f1f4c90dcd00d671b13f73af93ecb522e6fe598ac723396\",\"id\":\"v3:security_ir:3:3:4:0\",\"normalized_source_sha256\":\"57903552d0d6c18303ea0f56478b542181a0c668f734af6f438dd11e9127a64f\",\"source_sha256\":\"274cf2a9872a545ca0d2807d60abcda9bd396e2e7292e1a570c1e1c6164c855d\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"93707c8b37382b4861458a811f58def7a889d958258201e830d621cae80661b0\",\"id\":\"v3:security_ir:3:3:5:0\",\"normalized_source_sha256\":\"0c392f69e43abd749045f3d80326562fb1d48aaf30f234bbda5d0bd43857cfc1\",\"source_sha256\":\"8db16992e5eb3fe8ab8cb74d26cf0b6d936f748849be24204ce8bc9f299f6497\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"218238dbcc6b851ac88a49a5efe2aebdd1cd6eafa1800bfc986b32b312b89267\",\"id\":\"v3:security_ir:3:3:0:1\",\"normalized_source_sha256\":\"ca56926d3aeba395c81a72ca834763c47cec0c3bdf0a2b162f981ee99b1fa1fd\",\"source_sha256\":\"a6a904e6c33001c137d7203150179b0416b1854298b01636cfba57582208bec9\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"afb1ccd58598be08fb9cacfbbadc93fde1739e61d7df63d0f0d976b40f235e4c\",\"id\":\"v3:security_ir:3:3:1:1\",\"normalized_source_sha256\":\"05bbc062b77b49fc9826a7a64dd07d4af887b119b3c255ed6c5cdfd144faffb6\",\"source_sha256\":\"4c761692ae37bddaea84f16e3676af807ccf203ad6f03c49da7ba0108ff9d2d8\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"36a64e4cf808cde7b52b24c3c82b09ad2e4c32c5970361d3ed2dbe72498d5a24\",\"id\":\"v3:security_ir:3:3:2:1\",\"normalized_source_sha256\":\"e42401e60e62edac51fca19cfe6dd524cf66c85f89a32206237038cb8e0e3c07\",\"source_sha256\":\"ba72fec5320de029b39ff3e8c0f327d09b469dfdb60480c70853fde3148c3e4e\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"2f2c871a4fcdbb8c4865d0305731559830cb8efcf10b0f5db4c343143ef37381\",\"id\":\"v3:security_ir:3:3:3:1\",\"normalized_source_sha256\":\"02aeff1cd5b5c06ca11e9bf3ac5c372eb9115a3de9ca421149f37738bc47ffc3\",\"source_sha256\":\"bbe0bcb9974e856a43cb165ca5c30ba5d5d7592519e3a3ffeef0df9ea35520ff\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"c3ee58510ced03797bdcf2bbea08b13235abb42ed977f3d6f8f705746e281100\",\"id\":\"v3:security_ir:3:3:4:1\",\"normalized_source_sha256\":\"8812db5371321f0c26106de38e3141c8ad2cde5aa49377b7c0f1bb93781e8c28\",\"source_sha256\":\"2318c9e32db7caf6c28f733230c52829304ee49b122c42775845781405a52f3c\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"f4d51055d03fa31a6cc4127c6b2a93db90ecbbc82fe2a4dce420c03b976ddc0f\",\"id\":\"v3:security_ir:3:3:5:1\",\"normalized_source_sha256\":\"eb457da238ec5e1767da8edf4661f9b12f19149cfabf41a65ce90a08fd76b23b\",\"source_sha256\":\"367cb7cde6e9c23edfbf35d4b408a96c758bee52e274f05ea1c29c6ef4fa945a\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"19f851a56ab61ccecc503aa34a3c041edb3c43484518551f08c1c806083dfca1\",\"id\":\"v3:security_ir:3:3:0:2\",\"normalized_source_sha256\":\"5c13c1ed10276206a389d4ff0f291e1a78d5550002263f18bcf939e3b44900c6\",\"source_sha256\":\"78753387dd2e3ac77bf1fba0f323a82b18a5130f9a835e14fbd9c66a29dd281d\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"33c93e91a342403a2c45d5b21eed48b806b5d1d6b918fcd99c1e5fdfa79ec569\",\"id\":\"v3:security_ir:3:3:1:2\",\"normalized_source_sha256\":\"518b51d383b648506d5d93993da645f6ecee94cc6b4d92f0bd0ee3a3fe9989e4\",\"source_sha256\":\"212e2343dc31f73bdd30cfb4eb48a3fed4f373d93a0e807fc23dc98b7e4452b9\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"915e50ecf8f93bb79f555ec1e09f45567fcb1cbf0e2b32d26bd0256cb65692fd\",\"id\":\"v3:security_ir:3:3:2:2\",\"normalized_source_sha256\":\"a034ead601e28b3f6766bfc4fcbf703741c18e8549bbe4303b2a9a349fd00b9d\",\"source_sha256\":\"93c7eb3dc29b3774b57d55efc49ca108138eab4abc8135b602e723e3ddc5e385\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"0bb9916134bd9bf4a47fdc1f008eaac3ca3a244d682aec0773fc7f6946783784\",\"id\":\"v3:security_ir:3:3:3:2\",\"normalized_source_sha256\":\"8d1c4cc5f480cf3f17370123dc461f006706f2dd8dbdee8f21e24fe97db8638a\",\"source_sha256\":\"7f44c94c38b8d2b15fe5d788668f4e0472e25d58e5e97f2b3780ffd199e0e280\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"6a75e1478eb1b08a328b283562e5e1d8014381d573a60771c178fc0ca835ca2f\",\"id\":\"v3:security_ir:3:3:4:2\",\"normalized_source_sha256\":\"b307d265ff47d742d1c54f2b86543145bc8be7632580774aafcce8fa917bd069\",\"source_sha256\":\"7e1c81ebd81d6a2b173f2180f97faa88bda5fade51158dba3355b21b12586906\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"08c987eff40ba176199785b10cfb7d89ebc014f9e672cb288c9a1b50b1034ee9\",\"id\":\"v3:security_ir:3:3:5:2\",\"normalized_source_sha256\":\"736fa770e9788cb888a08b0fc070ef19323296544107538a8b853ebb487b4411\",\"source_sha256\":\"db57112f5812bffdb58e39c6ea1adb66d2362aaa8aace186af0ebc5007b1a26e\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"18c4ce2488565403f6919d9c55d90a12f96bbf091172ba974b7c3b101a986edf\",\"id\":\"v3:security_ir:3:3:0:3\",\"normalized_source_sha256\":\"bff08e3e3780cceac6a99c4564b6d529e5b5a6f1a93c30e8dcfb62f5f5d1b5e4\",\"source_sha256\":\"4fd006faddc44e7231bc118df120cc6fc005429eb74758b97eddf2a7d230bd7f\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"0e32d7c99f4c1ed8bc49830df7fb7f45c0e48912483af0f2c2b06ab2c962b403\",\"id\":\"v3:security_ir:3:3:1:3\",\"normalized_source_sha256\":\"55d29508d64e4be7030db3a808cc8fd55de168817f198493e0ca1d54387febcc\",\"source_sha256\":\"10cdcb1114968ffd403a08b6c1379a038e4522fe56c90146244989218941739e\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"cfe07cddd33ed5ffa56471f059df5678457a404b535c2cba6d3da99075fe5b9c\",\"id\":\"v3:security_ir:3:3:2:3\",\"normalized_source_sha256\":\"46fae129ae6dbb5bbe18b6262c0eab089c62b424984fa03f3b14e8cfa0849594\",\"source_sha256\":\"bea8e8c8fb2b3d90d1fd0ebf135fdb9a98b0d36211ec8d66170519dd127e08c0\",\"target_sha256\":\"435cb5a4f3a5497954c19af152ca2b124259813be4036d360c6bd2adc6ef42b4\"},{\"embedding_sha256\":\"13cd3d7b022519376756b5c567ab44576c3a316af9fca7bfa0e8cad5821c579d\",\"id\":\"v3:security_ir:3:3:3:3\",\"normalized_source_sha256\":\"ae520fea1929410d79d9917163cf0905bb11a4a5e0ce4caf4833caaadc5d6359\",\"source_sha256\":\"fa8720356f870783a00d0af8ba8d5c06fceb4e9e1b5ddfe9d76cc227b055a8cd\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"a173835b33af5f2b8a650bed0f3e33e590be88bbf49ead8af3a8e03897b46779\",\"id\":\"v3:security_ir:3:3:4:3\",\"normalized_source_sha256\":\"e6bb24d723acfdc9d5c01a8b881f5f4c5f9d48e3e046516c4d079070b6ca454c\",\"source_sha256\":\"782e5c64a5398761b990312144f1b5d80ecb5e07086c119ead34ebad6a16d98c\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"70ded854d32b4f045935976e4f3b9b768a24d333e85d8379d9728fb31abe237c\",\"id\":\"v3:security_ir:3:3:5:3\",\"normalized_source_sha256\":\"a28fc3b71cc14b59715b3a2176b4b10909ff31d875a3d7a7af4ec904285d16d8\",\"source_sha256\":\"0863db5557fe4d3260f87b4724ae462789bfeb160acce98372355da1ce6ad809\",\"target_sha256\":\"f8258eca850b9344b3e10e946f7cbefa1255539dafbc8c0854b37d070f35e587\"},{\"embedding_sha256\":\"454184ecb3b5c10fd9621c37a32be43969e80ea4aea410eb69bab52109ecd8a7\",\"id\":\"v3:security_ir:3:4:0:0\",\"normalized_source_sha256\":\"e1d87181da2b064c9e912494d03161fa93f250e9559cd21288054b54c68eb6dc\",\"source_sha256\":\"8681d9e8846d7babe43c35eab1e075c09eede5da8e8f6f2b6748802aef92a2a7\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"1c5dfbdc31f5741a08c9100364e53a3b4b7a522de514fe17a2baa4a0a2c47baf\",\"id\":\"v3:security_ir:3:4:1:0\",\"normalized_source_sha256\":\"b3fd33c600d06cbd250ba3c83c927201a68f18a402778d68b141803f38cc3aaf\",\"source_sha256\":\"d479f149ef28b3fb94eadb8b7ae26a20d53bdac82c492c14e841cd241e076b3d\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"dc7e2a6699a650274bd6de7c79c0564fde4a3d9cfeaadce45867004c9b928ccc\",\"id\":\"v3:security_ir:3:4:2:0\",\"normalized_source_sha256\":\"1b6858356424624808e0c6d9afce5a7b5efd8eed863273ac2d46e6cb057e197c\",\"source_sha256\":\"a6aeb3712277b88165378bce630c459e230d2e654803e23220526f8fd7505547\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"f476e8c238dc16670e1b7b2ee0b84166c4449a069c393ffa8a3cfe91cf9bc47f\",\"id\":\"v3:security_ir:3:4:3:0\",\"normalized_source_sha256\":\"84ebef0146dc19199fd5487fc6d792d8d031c84a9748b950f2b96352b54fd752\",\"source_sha256\":\"81825d23381f55b3acbd211a829d36c16f04aad2a5abb211389c7d2935eb7ef1\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"031e0af772e262bfdfbf6fa39dfc2a02f3ab4fc912b0c660a603ae250ac85ee8\",\"id\":\"v3:security_ir:3:4:4:0\",\"normalized_source_sha256\":\"49b9efa8b5bdc4b444f7a0dbdc4dff1046775f4f449297c2b06e378a97ce43e8\",\"source_sha256\":\"cf113476a8aa5605b60df18fe9ef1cdfaba5ec3cbdea3127265437edc97bda4e\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"49f2a85645d94a10399a04901a2c5805c42e1a2845aec8b4ca5d9e6263b8b56f\",\"id\":\"v3:security_ir:3:4:5:0\",\"normalized_source_sha256\":\"3f40c4f132bd876ccab4e9df5679c8fc2ba8d9e015601406e080f882e34c3f7d\",\"source_sha256\":\"f867d2445f2cc8db012d335b7168a56b9957db15e74c4d747b3fb453b9178431\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"ccfa8c1819504b777111bb1babaac07155a3b4f8861ebd7bc9492c074abc7e1a\",\"id\":\"v3:security_ir:3:4:0:1\",\"normalized_source_sha256\":\"aeda838d37ddb295e29960a1727d0fbf17c51222401af35c44fa70567e4ae32e\",\"source_sha256\":\"e8f6d228def45b05af2dd4e86c2c1bd24eec665cf7001bda0ac232982304517d\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"cae91a8592967b22a00f565b7268a663af34712552c340bd9691826509a91aa4\",\"id\":\"v3:security_ir:3:4:1:1\",\"normalized_source_sha256\":\"8aeaef51482fe6782f121dff723819671ecda737f91dd9a8b491e3a750b6cf96\",\"source_sha256\":\"f54592b66e239a7a4a89d5016c377d5a19611cd82b64234a869df4199a4ddb1d\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"cdc651b4ec3bd23e9d221a5305269e04fb2a88d37706133a066b70958f1d94ac\",\"id\":\"v3:security_ir:3:4:2:1\",\"normalized_source_sha256\":\"d769eda1f71acd5a703c3608ceca62d44a1cb374f52f48e9196203838870d411\",\"source_sha256\":\"f7b392a88414dadf9a8184a81e2ae0aee366d96ed78334aa2b2cdd50f660c855\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"e3a5229449c58725bb1cdd7e1069b45b0f9736a14bf2aa3519f5a73f493f51e9\",\"id\":\"v3:security_ir:3:4:3:1\",\"normalized_source_sha256\":\"e47110d82f57f96cb29694df6c91bc87d5db5019d3a8ab5ec3a824cf00b532ea\",\"source_sha256\":\"829f82dfc059c1dca76d1c46c9e7658e4a9610383e740bceb7c9ef233eefab02\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"77925b09f143b8c0dacd8c30ef8b5b2aafe226b750be3532fa1ffea5d31721ab\",\"id\":\"v3:security_ir:3:4:4:1\",\"normalized_source_sha256\":\"a83f328b5336fb09bc9b74fc9f3d2fe7c3a647a3ffdb2d82b9ffe6d3b98fc26c\",\"source_sha256\":\"bf0cc3a482116bba7c779531cc0d3793875cba685fc1b0170a0558558fc20736\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"892c2480f48e696b86640f7b1abb31ba7cb711081e36031417f41a287165c062\",\"id\":\"v3:security_ir:3:4:5:1\",\"normalized_source_sha256\":\"a4fa6adc682e92cd43546bb3e0d0954b3734a102322002e107d6025e3ecd9cc4\",\"source_sha256\":\"c4181dee058715c514c126cc9c183011bd8090518335ec09ebc1cb034921f578\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"3f8962149018b50a6705d5448e4e93c72d659d8106c6b48c66f85e3b04dfce9e\",\"id\":\"v3:security_ir:3:4:0:2\",\"normalized_source_sha256\":\"f33700d4854ae9a8f4cdd99b6ff130e3651212baebd5e1e90e4a17ed2a1767dd\",\"source_sha256\":\"4b3d5a3beb7818c8d088c42420aa4b7433b851fa786454c5ef1c485b89c6b7c1\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"39813e664f2669e286d8f87166c9896931ea65b7507e1c4535aacd9925ea83c2\",\"id\":\"v3:security_ir:3:4:1:2\",\"normalized_source_sha256\":\"ffbb2d02e80b76e17d1079d6c833c02434cd12d4f1b5220bf97fb5c1d8157e98\",\"source_sha256\":\"9f47bb737f8e29c709694258294be16b62946cbef4be92de8b89b7feb5bb11ae\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"f4018cc8c5b4c6c1eacf00966b307cd664af2ecbaa1cd360bdc0d9404185ce4e\",\"id\":\"v3:security_ir:3:4:2:2\",\"normalized_source_sha256\":\"26c9f9ce8ea1a7d36cf7c695ef9dbb92cb7cb81e6eeba85fd084724799759227\",\"source_sha256\":\"c70701a6152c8d9e695b46890517d321cd25fa94222990495f35f83c348a1d48\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"04b47cd6e615d026a4b32f1310c47142b72a93493fd04cd96d30565d462a1549\",\"id\":\"v3:security_ir:3:4:3:2\",\"normalized_source_sha256\":\"855b04f535c69d68f151140543b05a669031df399e343fbb346129e6f12713e1\",\"source_sha256\":\"a8be5cbd3585aa4466f289cfb5ca87a3394f3aa8d437f036ef375846a1af8c29\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"6ba7ece80eb2d513eedd83d786ca2cd8382d6b96e2b5235621a5b9d3225732e4\",\"id\":\"v3:security_ir:3:4:4:2\",\"normalized_source_sha256\":\"a34bfffad528167d0a1413cf2d0d457dbac6eda8badd67a916cc372d46487d67\",\"source_sha256\":\"935452c7c23a3d9c4146874d1b0c02e8613fdc899c1a792ad962353ea0f46fdd\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"8c4758f470f608f1f70c1110bbefa9ae75aca8851afb14066bac97c5c060a25c\",\"id\":\"v3:security_ir:3:4:5:2\",\"normalized_source_sha256\":\"6d55db2d74e84d8a1127d70e84276c67360f1ca7d7f726ec5f31631f37abd734\",\"source_sha256\":\"884c8735ce0daa24c010f5f2aee9640807a9cea73b6e28f6a49b69051526c68d\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"a3d919fafc58f00181b8647e581685e651d5f8e4714f9abda3c2f4a57a5611df\",\"id\":\"v3:security_ir:3:4:0:3\",\"normalized_source_sha256\":\"768de5cd5e3a555a71d81c298ad11ca816619e0235428696b921d76e494a5545\",\"source_sha256\":\"c6c5096965a7ece390f90185235868c6ee84a7db4e472c9d113a395f44b1032f\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"592599c628e5357930824019fefe84836e60b3cd901f610bf9fbc591b5cab985\",\"id\":\"v3:security_ir:3:4:1:3\",\"normalized_source_sha256\":\"51011bf1567a06756e983ca5aca68b1c6b630cc91661337e0a5e02539784ca05\",\"source_sha256\":\"1e781cf81b27c3c7227e7364c6fdf8678c421fd649fd1eba56d4da81cedf39f0\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"f569564ae01983fad63d8cee339e3a9516ebb5bca460d465118ec57a5a75cd1c\",\"id\":\"v3:security_ir:3:4:2:3\",\"normalized_source_sha256\":\"e24ac9cd650d6696eb1100f324d6e87ee48907d5cbe6ccdb0ba6086d2b6fda5d\",\"source_sha256\":\"79023050a3047767b4b798d23e255e7dc54eaae206598e95b086fb2fbd356ddc\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"f4d9410eeeb9a7dca38d1348e5596b6ad2b24066296ae5ca198d75321f58d93c\",\"id\":\"v3:security_ir:3:4:3:3\",\"normalized_source_sha256\":\"6fb6c8df41eaba756f25a4ed2fc9b58e7c9bd54c9519e4538cf33ae93dcfae23\",\"source_sha256\":\"e7b5c6b73949892f7ccc8c51091350c7aba1d3db2ae0425a977076b771264ffb\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"f1476a68406c7c7ae3713b97b578f72d4ba03b76d2b29e0d1e13b4e1c2fd9a2c\",\"id\":\"v3:security_ir:3:4:4:3\",\"normalized_source_sha256\":\"00e20683265e03617ea8e3a81733e8643b136b451525bec133309c66ff95556f\",\"source_sha256\":\"5458bedd0572c4fc0272c2b5ad8d469022e344f575dcc8a4d74e815039a3de7c\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"659ff4b98cd6d358884ed0af82a02c3f58d54497b8b250639c2ba67edf7a10b9\",\"id\":\"v3:security_ir:3:4:5:3\",\"normalized_source_sha256\":\"d1c7452b1b32fd47cae18078c20c51cdc78387383ae1276fa23a7b9fa9608956\",\"source_sha256\":\"c58492b7cd47f5035fdcee2721dd60402a1a1865e201050bbd55f0b030614675\",\"target_sha256\":\"97419650c7919b3252bf9857e7422ce884acf7e1abcc1abb00b4e9f735ae9b7b\"},{\"embedding_sha256\":\"501e9ce3805a3960cc63870cfe51c5dbace4e2b66ea38c132273d42db04ac75f\",\"id\":\"v3:security_ir:4:0:0:0\",\"normalized_source_sha256\":\"dff9c4c249a2df094a1a1ab68723b5a2a59b08773a97b338077a8f4d5c883d0f\",\"source_sha256\":\"083412a03bf09a4db893457e63ddc5183bd538034667cf5e13fa2cef658635af\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"262189ca4b094acd2cee3afc9c986e5068961d78164aaeadda7d62852eb7b968\",\"id\":\"v3:security_ir:4:0:1:0\",\"normalized_source_sha256\":\"e6c373beed472f693c6d668d4ec800eab4c98af2e02fba103b84a8d376025c47\",\"source_sha256\":\"6061f6ca5caea9ea0211b96cf4606b3273051b64bf03e312410f8e7091b3ffe6\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"e3c5fd2304f399c289e9c7100ad826ce6e419d10f731f786f32ec2bc25694181\",\"id\":\"v3:security_ir:4:0:2:0\",\"normalized_source_sha256\":\"a5fc09262c1e9aff032b6b1e41af5b7713bda30167e3a81536dbecacd28b72d3\",\"source_sha256\":\"1cd3a81d62d05a9897f0a81235559fb9fa301ed702cff98408a2334bcc48524b\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"0dc714f1d603de0f93ce30cf3f2c38e3c553300293407e9851fcfe45c7709cc3\",\"id\":\"v3:security_ir:4:0:3:0\",\"normalized_source_sha256\":\"a030136f0b329591386795e1424d59d1508a1a2d179154ddad325f578fe7eba3\",\"source_sha256\":\"f9ef83288fffd1f635d16f44115a9878f5ff7a36ffbb0cada7c9121d161534b1\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"6fa9eee94938c50fed8d3d2876386465812749a11485e18e120ca109f731b860\",\"id\":\"v3:security_ir:4:0:4:0\",\"normalized_source_sha256\":\"5894428f07aa6081a2de05e07872ca1bd48912d14f1e6598effcdf9d7239daf9\",\"source_sha256\":\"4f0ba93da51f3a1f7c096a54eb81eeb462e659954a2f1270e2ddd9029b920b7e\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"e54fb68b6136e558313799a83a63949acd88a3190379698061995c7d2976901a\",\"id\":\"v3:security_ir:4:0:5:0\",\"normalized_source_sha256\":\"e20464d543f4f58c89deca8eb8628a0c846c0f98ddd69445b2be55d7a6518047\",\"source_sha256\":\"a577777f9e7f896595228b2a53ab6345aa98e35d7870118a5c9dc5359545fce8\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"f8fdcecf3f4d2dab33847699cd7545ae13b03f877c327b20b93de2bb3ffc1e05\",\"id\":\"v3:security_ir:4:0:0:1\",\"normalized_source_sha256\":\"3937461b758c140a34ad393d36f9ee5ce1c6cfb2886d4a03a4a0c7d2f57f27cf\",\"source_sha256\":\"3b1925b9cfd9299a16edf60632c8958ae546a1d9c008d5e49e1339efe78d39c8\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"5a00bcf8319bd2868c9d832e72ac655a3ac59ec659fc2e8452bd5cacef993a3c\",\"id\":\"v3:security_ir:4:0:1:1\",\"normalized_source_sha256\":\"c477e5a5d05d0cef732af91aa4c34a43a8849af20ac1b0314caef4ee8b636da5\",\"source_sha256\":\"ae944c4be9d206a250d81162c2b56651b0a0b4d492b4ac19b8737a4fb32d4fe2\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"3afd45a2f83ec2c0ab6d3b373f25a66ba0111924526ffa2ca5ccd1c824194e41\",\"id\":\"v3:security_ir:4:0:2:1\",\"normalized_source_sha256\":\"605fed9a623a4924658c0f0d4c8f362f965d3b31aa335f446157e136d014a205\",\"source_sha256\":\"21e4e018834f6d2ce17947a062e0a1298a81dcbe46c9bf7491f841b70da9fbe7\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"d9080243f868e1f8ac56e1f81cf3fc877aabeab973736c8e0a7772c7e97dc08d\",\"id\":\"v3:security_ir:4:0:3:1\",\"normalized_source_sha256\":\"505a07404da67fe4e2538bde014ce3a03466d1de2cda03d41130aa31e07d0fa5\",\"source_sha256\":\"030bc5ea4fb5334820c184c516dcfdb3bcf2bf95e67a737854b5770b1c634c2c\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"12523037c17dd3a01cf89bebf8cd154e76fbe9d27c030d22d79e9fa9c397ae50\",\"id\":\"v3:security_ir:4:0:4:1\",\"normalized_source_sha256\":\"a8109023c6428cd86547f856bebce3568a01e21ece62fef71e73414478d2b93c\",\"source_sha256\":\"32c78845a8fa0dd5688871700bedd6a53ab6b8083844d014909c50819b3cfb1d\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"2b78489db2dc52f80d799add310e0481ebe95bd278d7a1dc1e2a91526c1d00a8\",\"id\":\"v3:security_ir:4:0:5:1\",\"normalized_source_sha256\":\"3b803bd5b87bf14ed6c81e214e1d755d30c4b3f308dae9e51cf5c89837ef8e64\",\"source_sha256\":\"2e3093db93e511712399375421e3788258c82afd639b00a336e720a47f321b40\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"0b15d9e096048ebbfc20db4b81bdca7c01e0e41f6d423de4f591777669dacc4e\",\"id\":\"v3:security_ir:4:0:0:2\",\"normalized_source_sha256\":\"c0ed0e2a304c155b4506579a5bce4759f3347d7ca12aef58261c40212b7198bc\",\"source_sha256\":\"361bd0d17cb92c0d0bbea6c2ecee92e3788990ede5d46e814a78621a6d45dcb2\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"8665295ab74d83c88a7e00054c3b5adb076a64ddd5ea085f6c57b99f469f6f13\",\"id\":\"v3:security_ir:4:0:1:2\",\"normalized_source_sha256\":\"ae931e6bea1c80e409d649c03184f9176d8cf741a90a109335067ae3f3b0c44f\",\"source_sha256\":\"d056dad71817568b2eea4e81c6953b79ce1bf2475ef39167cfab6218768ff5ea\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"4dbe67e94ee54b1e8f61177e3b2000205bae10c7041c8d73cbbcec2412701dad\",\"id\":\"v3:security_ir:4:0:2:2\",\"normalized_source_sha256\":\"46f9208888d6f612ff5187cba09d75e85dd0e3bed7997af72dac5de964242078\",\"source_sha256\":\"320f92ac98007bea7cdca85716b6f45c87911e7b76659580cf8e51e8b63e8368\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"28e7ce60082be2b84ccd2ae4679577e71db62be8d2b9fccdd6f668f2c361d73f\",\"id\":\"v3:security_ir:4:0:3:2\",\"normalized_source_sha256\":\"28a65bc3f3e90a424020113b683fbf0e548b7bbe6596545c119c61ff5db94922\",\"source_sha256\":\"8e10d1f83b246596c33e673f8150c576c8dd768517f9eafcee53d2257fcd89ad\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"e0e89d2f686e1a10482ee3a786e611cf6f4125aa6cb6430d9b7857d45ca6250d\",\"id\":\"v3:security_ir:4:0:4:2\",\"normalized_source_sha256\":\"271ec3eedde41e3c14589cbe04db00980a45539c147196c57ae3f6b4f3f6469e\",\"source_sha256\":\"59a69684f8eb2b14d5c3adbd1859f77fba7093e81824724c62f4df7ea38884f4\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"f8eead9515f682a40b9932b555b0aa703dc8ceba97d9b2a8564f8d41e0bc4083\",\"id\":\"v3:security_ir:4:0:5:2\",\"normalized_source_sha256\":\"7d23ca9410849c71bb15e9b4ff817448b1ea1d805cc6d5aaa0465e3945ab2445\",\"source_sha256\":\"7eb17eb139eed535df1e853223550d54da470e8de97adf0b8e8c01d48520f89c\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"a307ec38b10b57595f49145ebbe672c6a6fbd23055b1b1a4c5d1e5bbba35c5ea\",\"id\":\"v3:security_ir:4:0:0:3\",\"normalized_source_sha256\":\"90f3cf530a03f8f7819b0c2c08a27afa8a769b2e1bb118c876cbcd6cffca35e7\",\"source_sha256\":\"aa664436887ed9e4e97d8f30a7c53fa5ffd0feab9f3dab93602119cf98377b2b\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"55116099b8f00efd920fe948c8fbe08bef641060e461dfa178b16ee545a9c638\",\"id\":\"v3:security_ir:4:0:1:3\",\"normalized_source_sha256\":\"d581f50516a88927167fe3cdec72dfaccfb2fa72e9da6d1943b663c597c3e8fa\",\"source_sha256\":\"d65ef1a06755c2c6711bbcfe7ab51cf5e7bcabd46f0e12c252ab9e08fd6178e9\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"7e4327af34f7898d6d87925e7656e35807bf967c7bad6434bb97b87d0c81f10e\",\"id\":\"v3:security_ir:4:0:2:3\",\"normalized_source_sha256\":\"3459005dc7a33760918d395a184fe170415fcf095bcc76f486b5933a1210df7a\",\"source_sha256\":\"7e46e10994dd262d013ae64eb08c9a6df0be72706a9e4a33bc438a8903b85569\",\"target_sha256\":\"ec779b32252f899d9d528eb506b9c84ceb4c593eeb4a4e0dc531bb9e06fdc3b9\"},{\"embedding_sha256\":\"b47a19e3b46f16f6d4059e7e418ccb8b4aa5b86ffaf99e786e8666f8b59d66a9\",\"id\":\"v3:security_ir:4:0:3:3\",\"normalized_source_sha256\":\"ee53ad86d4e571e4822f47de3ecd82014c0595ddcf22af9626b219fedfa91ca0\",\"source_sha256\":\"3f0204141554e4dc80e8e87a4bdfa0ddb19642fafd94d51d3a4fb094496a882e\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"32a0e8ad5fcb0f43fc57f7f55bb6306133ea17f31b9a35df620b77f1f61dcd71\",\"id\":\"v3:security_ir:4:0:4:3\",\"normalized_source_sha256\":\"c2a4e87d84297809577887ebb1af785d2bac741c8cd8e435897e9a9f201a818a\",\"source_sha256\":\"a6557dbc19c6e3195d641b11c577b8eb1543d04ec872585759651e25e6073b86\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"582bef26ef2605ffd47ff8c622e0a4bc6b87bb076cca2ebaa3428d2c636a2605\",\"id\":\"v3:security_ir:4:0:5:3\",\"normalized_source_sha256\":\"5ff3293baa005c86f6ecd0dc2c52f5b6f3d54baf38d35529529fc63294d23021\",\"source_sha256\":\"abb15487fe2c1f80fe4fd1ece8274acbca406ee176b354f0db17230371b5ae43\",\"target_sha256\":\"702dc66ac7cfe9c9a82d441ecfc977552848020fa79552e759977075949fb3b1\"},{\"embedding_sha256\":\"afcaf6c55379de37a1f8799415f77f6f88536131ba8b11bcaa035ed79fc628c0\",\"id\":\"v3:security_ir:4:3:0:0\",\"normalized_source_sha256\":\"d69545b3388bdee452940362bb95a4d0e931c82a5d4a1c0354813dfbddf3211b\",\"source_sha256\":\"fa23a8f1d0491d949dd9456a3e18104b32c137c7c447f4cc1350441827443064\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"a0ecc63db739a0603ac260ed80254011c14df6f96c6df0b02f8676bb3e5b4b4e\",\"id\":\"v3:security_ir:4:3:1:0\",\"normalized_source_sha256\":\"213cd0fdd492a8d83082054c3864f4c9b477ea5b27abc8180949114363d65a83\",\"source_sha256\":\"636eb22211c0369d38d95ec4013de5ed59e09ab69351cca43919b77858addc10\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"b2076347c6b124038f244ba534f8b89d58a9bbc3229a12458a636b9f79637930\",\"id\":\"v3:security_ir:4:3:2:0\",\"normalized_source_sha256\":\"04e3de889531ea15f50eccfb03ad7f6b61265fd888b58fe2233aa2c75ac85e17\",\"source_sha256\":\"3fcf9b682ec18f40c01dfe4a42ca03a50af8771bf02017c8a7836a9388c11145\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"f029fc184cd22285c894417bf85d1de398d8491f214243c6c41380fb51546882\",\"id\":\"v3:security_ir:4:3:3:0\",\"normalized_source_sha256\":\"3a53c8101ce47ed31bbc0e76e76c527aab46504ce7ad86d2ffbdfed1bf49e52e\",\"source_sha256\":\"a6a9641efca528f731d3b5e25bec902a76666f8df0788ab7a11053b153e2cf50\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"90cead1a282a6cd0601ea8a12cbbd1f986a86608c4779128fa67d9cc2df7893d\",\"id\":\"v3:security_ir:4:3:4:0\",\"normalized_source_sha256\":\"fbd733d6fb726536de8537254237fcf646ef547c08a1db32e15af3a59e5dde4b\",\"source_sha256\":\"3eb3c5c87c7edd969cba699fb5caee9529e43341203a8803fced995348e25f9d\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"9c935aed9f2b63a8288d6cf9341462d4759e0948c616e1187a935e7feb8f9304\",\"id\":\"v3:security_ir:4:3:5:0\",\"normalized_source_sha256\":\"fce14ab09ca85709866dc8d44052668dae4d53156befaaee2b390ae5dae1a028\",\"source_sha256\":\"35396bd04e0b6934079f4699867625b87ad99b6d58aded4dbc15941e5fc5a2cc\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"cd685a30a4b40757116a8eaf2081f95ffb756774ae91441e89359dfed5fbd461\",\"id\":\"v3:security_ir:4:3:0:1\",\"normalized_source_sha256\":\"1737e1d9a9a1e7ab2ce6dfb8ea02fbbd87720ead577b53c56552bd049e4c3144\",\"source_sha256\":\"4d16e91008827aaf470c8720bedc009536d44e27f8981bc4ddbd0593312c8c28\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"e0bfaaa04815ca0e1895c81bf40e9914291e1e5612383382a3ef99d1505bba2c\",\"id\":\"v3:security_ir:4:3:1:1\",\"normalized_source_sha256\":\"bf11e38a430d3cf648b51863cb932f542205ac04f7c9e813ad87f6f4dad46b7f\",\"source_sha256\":\"cf8bfba063c47a78add0c632bd241b626f39f11358992b47604d4a6aecaa9b7e\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"e4e95c5e9a37bc75e512e9f2a4f3a652e7532abebda8a6fd597ce93bb8fea86c\",\"id\":\"v3:security_ir:4:3:2:1\",\"normalized_source_sha256\":\"e511eea14768bfb9fb1379c90dec5f93cdbd922e059840ecb4b7dd2f44e9c57c\",\"source_sha256\":\"e7e712f08bb93bf5153475fad5cb620abde2b35b8f317e7ffe99b71a0a771e1f\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"1f3f14a18f5f0a0080b9c7946de1cbb2e3ba851929cd3da9efcde00f4f31af1b\",\"id\":\"v3:security_ir:4:3:3:1\",\"normalized_source_sha256\":\"58029e1a9aacbfb39987ab40c6c24812f964a199c4c4ea24ddf53299acfb4157\",\"source_sha256\":\"8ecd95917bb066c972b55d8b52a58c76b4d578fa9df8b3e545e4fb4161562fd4\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"d889f0796360b4beed563af264c92b9e5fe2bfbe5dc8c376dca113de09a554e5\",\"id\":\"v3:security_ir:4:3:4:1\",\"normalized_source_sha256\":\"8d8ab50e63e0d6b8672948faf2841e014fe1c24d23eb1729d79a2c112e784636\",\"source_sha256\":\"2fe6bce1ef39880d1d588a8b45b7e9c5d80518b886fbef758d5db8d4bba9d77a\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"ab0ddfc241ea9cd47e267cedee05c890a3a683cd4ed4fc3244df1937a7603a5c\",\"id\":\"v3:security_ir:4:3:5:1\",\"normalized_source_sha256\":\"2e23ada75b0610dd40cbc1ca5118bfd3756631dcad200113697090164ecfeaea\",\"source_sha256\":\"039e6e6263042dd8853e6d225250cb9a12a0312a80702ef8c50a2d4e9277f778\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"29b5b5157862c150152951066d9c2b9a76d13cba7c65063cc2076ee661f7975f\",\"id\":\"v3:security_ir:4:3:0:2\",\"normalized_source_sha256\":\"6f7ad4485d73460d678c49b0a792ee5be44bd9212520f5b4b5054f8542e820ec\",\"source_sha256\":\"fee28e5ebf4cb006ee8dfdfe6e8680f8324dcc75e1f308508fd0b4d97da61401\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"3d7e37f74513034cb70e1d2d7535837812baddccb813ac1e062ea0898358c974\",\"id\":\"v3:security_ir:4:3:1:2\",\"normalized_source_sha256\":\"dd88e5aa2f8ea218a14da6ac677f9a04a0de2069c3593a181c444d22c91c6278\",\"source_sha256\":\"ae9903a0faa610d08f6b45435430e5ec97174e16773e64f7a879161dc6ad9e33\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"53361aa863bd5a039768b2747b9b70a91acf8296bc02d4464f3ecae1618fd99e\",\"id\":\"v3:security_ir:4:3:2:2\",\"normalized_source_sha256\":\"e096a3dbc182510c2bfd23e0beec035dd7799a90442afcd1bd796293228f8ac1\",\"source_sha256\":\"a9a3ecc26a9497403aa56d5cf4a829748ade8096cf4c965de265db37153691f3\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"2833960c088de9496537258aab05bab7b4e6cfd7883b2dca3078cd956534e501\",\"id\":\"v3:security_ir:4:3:3:2\",\"normalized_source_sha256\":\"d3dc54d24503e48617b6827142c95476d24704139f20c3d3f8a4774ac6c6b9b4\",\"source_sha256\":\"d0056d8724d82e3ba9873514df06ea59ee1143236390f557f1ee1148754c8e21\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"56765e725012be9edb395cf8ceebc09543d7b204e2d85f26e92dd5620713fee0\",\"id\":\"v3:security_ir:4:3:4:2\",\"normalized_source_sha256\":\"5cbe48e917e08b2aec514fce69d58424900e3aa780806410d2d298c1e87249bf\",\"source_sha256\":\"cd62458e65cb0241da8b7408bdbe52189d1de60eb0abafcabc8de76127543083\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"49695a2267f61f9f864c879c6a2dde0b7ee9b05bd008b7729f434c4b26f03dbe\",\"id\":\"v3:security_ir:4:3:5:2\",\"normalized_source_sha256\":\"27eafadfa4a51ccd2c5e98afb8804578a118b275cc11be189e6933b953940743\",\"source_sha256\":\"394d28a96224eac5e855cefd8335314a80b625b00f5f63e182ffc7dd084eb127\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"3441b85e0e5ebd545680dad63a92374d7e333e73f7c01b6ba030c28a278de148\",\"id\":\"v3:security_ir:4:3:0:3\",\"normalized_source_sha256\":\"322e801f10f3eefd8fb4eeff0d2f134ef9163b217cae5661b747e1970517ec3f\",\"source_sha256\":\"a4e4a054bd1ce4812027d98b27237156c124d711fe8a90028cc661d15f70dd2d\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"65b94ef8cd5c06b1aa27c87325ea46ef06889660137496058871264cc271ce01\",\"id\":\"v3:security_ir:4:3:1:3\",\"normalized_source_sha256\":\"0f02d38452d03f459991f7fb23ede60f9a4d7cc806827fc3a6b1583c27f7b5d0\",\"source_sha256\":\"65ab4ab8351b8eb3c8c10e522e6456574f0efa1e6ec43a80b55e7ea295737f79\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"9fc2d20518cbee5e75c41dc38fed6015f7097a68c0b631f94833d65f40eba399\",\"id\":\"v3:security_ir:4:3:2:3\",\"normalized_source_sha256\":\"8aa4b029f20fd959d349620b41d1e1d44d463d45c5eed4c50eccffb1cfd8c08e\",\"source_sha256\":\"c7d3684e7cf012d62b4f799464c36a6d6d9b1107086408c6674910fd4c676a02\",\"target_sha256\":\"ec1ec3b6b82fb241c57eba78da9d2c586ac2c9a26c5addcd87009311a5edb678\"},{\"embedding_sha256\":\"664c71f28994b385dcd267e82e4290ede346ed0ab682b2224d4737229dfcdd3b\",\"id\":\"v3:security_ir:4:3:3:3\",\"normalized_source_sha256\":\"87b714825df937f726f4c4800b31993c7be00e92b91badb2257b17b082c82f44\",\"source_sha256\":\"77084414febe84af584c1d14072a0813f8ab935f27c4ab747e7318e83ff770a8\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"ca34dd325a79c4539ffe131c26a1e6c8fe346ade3ab04091a3912c0ee4c57ed3\",\"id\":\"v3:security_ir:4:3:4:3\",\"normalized_source_sha256\":\"edf19df54cc038963b602f584f81891efda8bf30efb409c3bf1d2c0a60480597\",\"source_sha256\":\"75513341f3d1357a357d9f91f44fe57ecb5519f9a43503b13958fe1e347fd069\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"8d6571240f145e808fb69af1b8a60336971308fcc3b74fca6e695f149cd97b15\",\"id\":\"v3:security_ir:4:3:5:3\",\"normalized_source_sha256\":\"14b53922d141718afa266c54e6048d629b5b1ac0be8a9ef0009abe7771fa5409\",\"source_sha256\":\"e1973a10fcc28dc0e79f7e4dbdf62c47ab8344f7f38341d0969afda6f747ac36\",\"target_sha256\":\"c6afd482ea131c0ebf8479906c687d76451359f5c613776f7c9d8180ea86c8d3\"},{\"embedding_sha256\":\"150d72b34164754d95da04c7e54a34fce39420bd9c24096a90f52a9df0b6523d\",\"id\":\"v3:security_ir:4:4:0:0\",\"normalized_source_sha256\":\"e02cf1e8ac3d2365d29723e8d41948ccb93f12ad2a3b4d2a9ec5b5697d7d906c\",\"source_sha256\":\"d54f4da4ca8c15b6feeb80de563375fd54827331ff2787686bdc59ab466c9bb2\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"46b63a1151f8c717c855ff0e41ec18fa0ae82dcc7f54a9d173c69cd395dffa67\",\"id\":\"v3:security_ir:4:4:1:0\",\"normalized_source_sha256\":\"91178ab900b66ab3c830488705e4de6e30c45503c53ccd4eb829de4346996de6\",\"source_sha256\":\"e2643259b2a2d6db18b2431cbc5e59b8e5960b421ef990b1a7105f443c35c5ab\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"9da72f618b72d7874165fbe74831a28ef6ce525f39664e6e7898dd265b6dc16a\",\"id\":\"v3:security_ir:4:4:2:0\",\"normalized_source_sha256\":\"2be052ba20533d9cebad34e171f8aaff25509db3e685abfd43c4aac81ac0e224\",\"source_sha256\":\"f0765f7e47b7d9a10424983778d3e7707760b3fcee718f2a9cb167743ea35847\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"7173499f7f7fd8f2d8b97af48d5429e83cd69e4fa546b7d0ccaaddc023fedf4e\",\"id\":\"v3:security_ir:4:4:3:0\",\"normalized_source_sha256\":\"089d14872b12d854c14b2b55cce70ebd600e41b0b47561ba1ef99b438e0ba092\",\"source_sha256\":\"2d122fab0841cfb7f6b022659ce524218babdf18f5d8ac47d8b5619c5424382c\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"5dea23b5e91a897d6e7634def4a728b1c4e705b7617b3c760f499518ce1d92a5\",\"id\":\"v3:security_ir:4:4:4:0\",\"normalized_source_sha256\":\"b157e1329248318d7f7a24e9a5d4aff6df8e43d28faf7c91f00da9a214892feb\",\"source_sha256\":\"c4341931aaa3083a0e51becb1dfeb54e4b5f773f29b3c7c57ef07ecb791cb942\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"eda5285d0d09a9bee772e8012205ea80decba566ebb57aced423e250b12c07cd\",\"id\":\"v3:security_ir:4:4:5:0\",\"normalized_source_sha256\":\"a14b8e62385121a4f66c738deab4c0220ad597904c8c23d993285fdcd28f40cc\",\"source_sha256\":\"def1cca76bab1908d321a0a37f7852710da27fee79e5f5c55948f2e339da14db\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"ebf21641059de94fd16cd9b90f3651a5070d198799f64197010fe11f02090e9f\",\"id\":\"v3:security_ir:4:4:0:1\",\"normalized_source_sha256\":\"e5a13b0d012d3451b1ee35a76ff2f80e621a595fc8f7edc01cb89ed1a154b023\",\"source_sha256\":\"2ed44e317ff931d223f81447730940746d9bda4fe641ef092007f4e2fea1b77f\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"6955e4c244eeaf33f6f716c3c9c78d69c4b7b712391f53e118077dd78554caac\",\"id\":\"v3:security_ir:4:4:1:1\",\"normalized_source_sha256\":\"c1609a2cde8078ad2cd0b248211b99b9fbafe64f91d6483b197f7469aa6275ee\",\"source_sha256\":\"c29fa63e8adc387f8ecd3d1d71b7eadadd95874f11cef40e02d44066ccecf073\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"c14c1263d2ae9f5acfe0e5966908f2db76f6cd2822f0147223cee1e3614585ea\",\"id\":\"v3:security_ir:4:4:2:1\",\"normalized_source_sha256\":\"7ba3c6c11d3893729d92a71e8220e1932bb07f0e5260f6d612688fd1f9855a42\",\"source_sha256\":\"3291f2b0c78649dfa2579c849bad309d3b1567edf7e1b4763415f770cccdc2b9\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"812d0efecbde4df2cf276c031fd8d013a2f04f696dc6be1e1e9855e9d7f1c4c5\",\"id\":\"v3:security_ir:4:4:3:1\",\"normalized_source_sha256\":\"0c9538d37e6144878c8699ff780370731f6022d0b39e9824ddf06f41c2ffad10\",\"source_sha256\":\"24d0424076c6d31a4ef49a7091ec44575c23009ccbb50ab1139e381f4362f74a\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"2dc9d38b567da07420e8feca3fdc40c46dbd1bfd23be35891225990771a90b9d\",\"id\":\"v3:security_ir:4:4:4:1\",\"normalized_source_sha256\":\"38d4e0fe5e4316030921b877e91fc842b111dc896c07d0c60dd8461b795c33ee\",\"source_sha256\":\"ae097e4e5e870e0e6931fbb619f75e71b1df373b8a388519a7bd003394ce86d7\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"4ff75afcca025f40844557246704a4934575ba8f065bb511383b4700c7aa26db\",\"id\":\"v3:security_ir:4:4:5:1\",\"normalized_source_sha256\":\"0d7da378e7d1d2effb6bd08e41b01032c4691c2d2d55bb6a7dcdcafeeecea5fa\",\"source_sha256\":\"22dab63710647644ae2a41ac4b631882f92be436644f6648015cdb3586d24049\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"758babfc12a1373dca6280413be603bb991cac65b75d8697c664505ecfe30752\",\"id\":\"v3:security_ir:4:4:0:2\",\"normalized_source_sha256\":\"70aea61e40747293f23a0397474db162c4f39cad500fa6ed58ef276c099d0488\",\"source_sha256\":\"3f1df98ba3a4b1a5640466af0fab23ecb9ff1fc7e71ed03901d97310ff5b60d9\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"c54d125c87d839effa7dd10ea5cdb34aeedfe0b8475bca7ce8605394971e2773\",\"id\":\"v3:security_ir:4:4:1:2\",\"normalized_source_sha256\":\"e07dee311b1bf6ddc5c5657c54145a7dd2748ce3e0227a06521c9ab87a3d5400\",\"source_sha256\":\"a94c122cb8ca1df50627257aaa45cf20d0ed455330d753f589ed84ca45d9c4fe\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"1ebcb4e97b909774748f058322be16bf63e7c2111f94dc6667200d0b0e4b81f9\",\"id\":\"v3:security_ir:4:4:2:2\",\"normalized_source_sha256\":\"c8e0afd1b19e8e5fef52ec641234c4d89805257d44d59950950492f8a54b1c5b\",\"source_sha256\":\"932fbcaeec154514d3396a5167347a91451fb8343d26889ff7bef43d00344a8d\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"b00de4fbd937c5f4e621b49a1314f44a949e96ab132ca48213671112abcf5f2f\",\"id\":\"v3:security_ir:4:4:3:2\",\"normalized_source_sha256\":\"73224e7d7de9ed38dc4ee7212f246df55e7e4de34fdcd270d880c14dbe038727\",\"source_sha256\":\"e78e5cca0aa3de225260195590b00af6b39bf79706ce8ea272c23ae17285ca1e\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"c0ab8d0dd8397eb655bd7770594087e214c2631676bc06226160c94db56e8ff1\",\"id\":\"v3:security_ir:4:4:4:2\",\"normalized_source_sha256\":\"57e37660e105b3e97211759b9a2da846d8ec3c8fd499398cc225d2cf7890861b\",\"source_sha256\":\"cd4477c70c4504b068286bdfb9b8b609dcdbca567325fc25dad6f4283292c616\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"a0ec2e0f57787590ab3e6ccd20cf20dfe1c56ce03d04c2883d0eec98159f5aa7\",\"id\":\"v3:security_ir:4:4:5:2\",\"normalized_source_sha256\":\"778c69d6e1444e9ac5cfe45a93d4afac71580aeded641c736317e2d422c91a61\",\"source_sha256\":\"4be87d7a65b97a653e44aee1c07a851b95c9b21ed74e57218d6e06218bb07df4\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"55fe76c569a65c2d0cea66075474c73ae4508b6cf38eae31a4619e79b2daf373\",\"id\":\"v3:security_ir:4:4:0:3\",\"normalized_source_sha256\":\"148e9201a5ed0ef05f34899ed46f07c96a04bfc5892e429e8edd3b6b0adb54f5\",\"source_sha256\":\"0031d61e364ad14e679bbdb55a1a1a25ae1e03e14e6aad8e955aae5959b6d76e\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"9372acc68d946ebdf7815e2b034cbfb6d3ca811e7da115cfc0c0e961d16ba925\",\"id\":\"v3:security_ir:4:4:1:3\",\"normalized_source_sha256\":\"c65f6639288ebfcff0c3e0e26b549df92cd9d335f55ca0e79ab85cf87c642f54\",\"source_sha256\":\"db813ae10877ed1bd3823e6294acd3368030c9e7000344907c76881d7afc4021\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"fe9eebbd81720d376b6f19e2d1750cd6fca87e032d709ad1615de5bd2341bae8\",\"id\":\"v3:security_ir:4:4:2:3\",\"normalized_source_sha256\":\"5cdd0e85c81ecc3d49ac19eefe732ec50c92043ef5ad69d73e7af1348b6b2072\",\"source_sha256\":\"c394c62ca939a856314411a3f4e166f7c908f8fd4333e9c45fc353e12831ce37\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"642ba1bd1a62d0079cbb6c041980dc63c7f2d7e6cfbb52a6d8b22f72cbe645a7\",\"id\":\"v3:security_ir:4:4:3:3\",\"normalized_source_sha256\":\"d45bbb7a86242be835e9ad74562d0fe7f17a8505a628f4b329360b3dbcb20471\",\"source_sha256\":\"fea34d1b734804b6347b09262ca0468fa5354a7926a80f0d8ba82493c9015188\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"1da8407152e933f4c526bd4e05dc7a7253c44d5d67db8137c3c3ba7a9651bf61\",\"id\":\"v3:security_ir:4:4:4:3\",\"normalized_source_sha256\":\"4fe982f1a08fc62ed0885215dc9e1615840600171b7de0a2f5104af8e7c0b674\",\"source_sha256\":\"ec4993ebf52ae01e2c1e14e1bb3dbe851597767126440b75403f5f94c8842b86\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"},{\"embedding_sha256\":\"6ab13964ca38468fe9b599552433d545aa23449717141e91f3066f79b9a42a57\",\"id\":\"v3:security_ir:4:4:5:3\",\"normalized_source_sha256\":\"1afbf908c7203fa76aa874099ff3a25da5b6a58f4d3ae4492d7d0929c0932a21\",\"source_sha256\":\"3f5046aae04c38453d0f9a66d2bc478c180cd8a5d0fbfe0a995be93e5c069670\",\"target_sha256\":\"38775123f6254f27dc9a275c1de640a446f195517d9cfe67e33034a4a21d1ed7\"}],\"validation_manifest\":[{\"embedding_sha256\":\"255d68c3b4148049d4919faa11c4d857d9267b5378549e91e10bc029287c73f7\",\"id\":\"v3:security_ir:0:3:0:0\",\"normalized_source_sha256\":\"6317d42285caa3bf6508092faa783b817519b0f61d84a8d3e208d875a08429bd\",\"source_sha256\":\"0b09b6c6dc7c6f7e324dd5ff17e5e48eac1690a84e899c06d1d8cc7b8b2459d9\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"92b658b4bf0831db38dfdabb1b29d1595f3fe262ee94919fe739b9c912046feb\",\"id\":\"v3:security_ir:0:3:1:0\",\"normalized_source_sha256\":\"230abb14d9438ddb9310c72ca4427b63c1487b55db0ac04345a066e15f33c9b6\",\"source_sha256\":\"985ff78e77e1d7e873453f0f71c90cc65aef1178aa8e11ce7e6fd309c774984d\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"36169213230ae349090d24476b1af1895161397639abb15d1bf00489e2d491b5\",\"id\":\"v3:security_ir:0:3:2:0\",\"normalized_source_sha256\":\"893d5821b6a4d1df09a02b1f2e4ea16c273d79bab60ae0bcc492cbec9d71bed8\",\"source_sha256\":\"b0a6b80524dc313a3d671b85c51314097063536b3ee84e5d0de948fe43d91165\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"00f2744b6a556e5c33e1c5c0b9af21aede8805238c686af8cd1903df78ede620\",\"id\":\"v3:security_ir:0:3:3:0\",\"normalized_source_sha256\":\"d72696f9ea7649f6e5777fbd2f03c1d78ba0578e730a1f350e1416adea32a81e\",\"source_sha256\":\"4c304b2034397b686dff882ff00607a4433c93ce9100ae49635bb2eb59facea4\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"7cf6ace2e87c0136049550e1982de360309d1f8efdf9f36aad75d0c433c8376b\",\"id\":\"v3:security_ir:0:3:4:0\",\"normalized_source_sha256\":\"32c30256cbdf7fbc7aaf2e27f4e46cc3ac90bbe4746272d1139b26281b9c7e26\",\"source_sha256\":\"f606583b7c4894a6dd1a7e59e2213156c922b2121456a33a96a2f5105497034a\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"6f4a1d3ea9bb6ac43ad7ca5ae70841fabadc98c92edff8ee32d1cb0e8ee45393\",\"id\":\"v3:security_ir:0:3:5:0\",\"normalized_source_sha256\":\"73102e2ca4d76c24952353badd7a0ae1daca9c7cd1949b81ff4b2bf4404a225d\",\"source_sha256\":\"c9eb5dfc7a86d0c3740d24d44d8e213dc113c359ab5095aa8c2c665ee82c1079\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"9b3ff7a6fdf1c6eaa943cb39b7963896e302abff25cb02c31ef309e79ee5d6d9\",\"id\":\"v3:security_ir:0:3:0:1\",\"normalized_source_sha256\":\"d0c713a0c05337523dd7f5982c8c092669810322f885d50e4a75b5a004f20229\",\"source_sha256\":\"8a568232d82ab7e9a08afd62e7bd9f7a00f41815858eefc8cee12b359c4e285f\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"5f671e4dc4f400a4c102c29f47d9be9fee308e6cc50ca38ca6283b181732650c\",\"id\":\"v3:security_ir:0:3:1:1\",\"normalized_source_sha256\":\"6cf9c6815d1cf8238242a7a410b835c2d237b23854588c8a3514a979126baecb\",\"source_sha256\":\"61139883357b9b2ddcaa05247aacb75e063fe50dbd2a6b97dbb4cd26ed64b68e\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"1e013a31d656d68f6e1dd2e87a54e01d35e9a8d44c5c6be2d561a896654ac6e9\",\"id\":\"v3:security_ir:0:3:2:1\",\"normalized_source_sha256\":\"1c706e07a41f5bef6915315745177743023c265fa57e463f0b2eac7532795929\",\"source_sha256\":\"6f7e79945b8e463a10ceeee8bd04fe414ca63ffd244d6bee4cf952800bf8dfc6\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"fa734469152b638086d147661f4de5cffc8ed5a7795cfab76e52e5fb099aa872\",\"id\":\"v3:security_ir:0:3:3:1\",\"normalized_source_sha256\":\"5bd2591dd7d6fe9e707e92d6c2f5e6db11dbf02ba22f5daa75abaf1ab669762d\",\"source_sha256\":\"46c0e98a860b71107492293333c3045b89015af4bed6f35f48fec2c35640481a\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"6ddf85022eab3c4994b6e800c704660810c9a9991a5b2b4ee289ac0f1aebd15c\",\"id\":\"v3:security_ir:0:3:4:1\",\"normalized_source_sha256\":\"19c09bf726f4cf34330a93c9f0af8ad515736a9490753a12d3ad9079f669134f\",\"source_sha256\":\"cce339405a3724c9a1b3a76cd11e7ae97cdee52f314df2ebb3bf7361209c96ce\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"3d8c7bc061321917d71c4e64a0ca99646de6b819ab142bf93aa97a7c6fa8b4a4\",\"id\":\"v3:security_ir:0:3:5:1\",\"normalized_source_sha256\":\"dfa13576e7508696fa744a74ad9b6571f3f652f3915582fa6000504e6253e62d\",\"source_sha256\":\"2376ba723e199b679a8501f5ed6cd12a0d602930602974c290207dd7249e3bbc\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"5d9afe12f7716e93f90da55e1375f0b7f39fffc15af71fc54f64382aee100967\",\"id\":\"v3:security_ir:0:3:0:2\",\"normalized_source_sha256\":\"8802b98728eebd3b0df390826ca0e6d7336897cd215dcd71a047afa89e28724f\",\"source_sha256\":\"8364d356f4594c839cbcfb5811c71e8c384220c5f21f400952f99a4312f0342a\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"5d1fab592e243f07864e02ace2d47b31e2fc6479f549de6bc67cb498bca28133\",\"id\":\"v3:security_ir:0:3:1:2\",\"normalized_source_sha256\":\"682a844ad78104b0a4a0ca7b387a9863f4702addb51ee3f7bc81557bb12061d6\",\"source_sha256\":\"f0522dadb68086a7c144190815ee20c1bc15f0badba7e518b11f08e563fcac2d\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"01f19f77e86306336fd100a4dfaa95dcaa7dc99cae5e02f889b9ca64b3023da7\",\"id\":\"v3:security_ir:0:3:2:2\",\"normalized_source_sha256\":\"a46c5f2dba51574eed46bf24bc6a4a1f075b48fda1cef5b3a257f0852ee98b8a\",\"source_sha256\":\"524ad0dbea2bcc77b4bceaf9e8a41f4b6d4c6ddb397e000ff6f817ccaa61b524\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"b9d727dbe8944a84b503ae85bc6dfc14b87853f72ce25be52b4aa743e6c0d80f\",\"id\":\"v3:security_ir:0:3:3:2\",\"normalized_source_sha256\":\"e92854f2b24450f73bed905be4a590b935bd1450d02e3c1d3dc983005c07cbd5\",\"source_sha256\":\"b71965ef05bac5a73c476734c6279e9d692df2ef39b29e7c1ab75fdc72ea3adf\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"ddc0a29e7275bb6e8f46d7294f14d6a7be81801183cb40462d3d18f52d4522d7\",\"id\":\"v3:security_ir:0:3:4:2\",\"normalized_source_sha256\":\"f12f96dbf717d8fec5580cc1f117ed7aeafd100a8121d1a3b0c881b05dbf88ae\",\"source_sha256\":\"596c00ebf4ef64e4ca1fdffab09485483604e2e997bf71c9eeabc222114bf866\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"3e6ec2942a32a1013bb073254245c6eeae544053094a7467953234ddad364681\",\"id\":\"v3:security_ir:0:3:5:2\",\"normalized_source_sha256\":\"92b01ee65cb0376f1aa38791ec9f87cffcb747c09bff6447f6953f002b1153b4\",\"source_sha256\":\"508cf50c0cbb71cb560579e0bcf059dbc33da58cf84b541735f98abbfa862e27\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"e1590273116ccaf6f39fc8646d1f66868c6cfa03e8203b7dff5e82cd5d6aeeba\",\"id\":\"v3:security_ir:0:3:0:3\",\"normalized_source_sha256\":\"d4657d664f34fa66467eb1413e52ce97d2f1e426fed2324ab0ed69457e009b92\",\"source_sha256\":\"3423067370d8e507b957bd0dd63e63269334fc77a8c21d2d7afd53adb1f3f087\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"7ba3905d20080aa50ee4a8d894c39b573bb311e7f8d4d5b13cad6c805a521445\",\"id\":\"v3:security_ir:0:3:1:3\",\"normalized_source_sha256\":\"bc85591ba1ad4167bf418c687b67395c4706a4520e701208333f2ced6c7348ef\",\"source_sha256\":\"a8f069f46e178289718d2344487714381e59926532a0115b29d60cf835a62e36\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"a00bfda3d53f25c88f55bee5b98ce0ae01f9ee5f6ff358fcdfe9ce75fe90d845\",\"id\":\"v3:security_ir:0:3:2:3\",\"normalized_source_sha256\":\"bab0f3571482fed69f66743b451b30552d3646313cb832dce56bc567ae79a961\",\"source_sha256\":\"ea8981f9e637d7e2d8bd25331aead406212aa16f0f8f68bee4478b3fa404c0b7\",\"target_sha256\":\"98d9d4d4379ea24d9366d1d8501298e86c4b176978dd812135581aec64f1816b\"},{\"embedding_sha256\":\"68c9b953ca1433869346f8eb23707b9104358cfd811b387320f32c3a87c1ee3e\",\"id\":\"v3:security_ir:0:3:3:3\",\"normalized_source_sha256\":\"c3b0c947354d275a0797acddb158c13e23c8dea2b0c112caad1188664431e3b3\",\"source_sha256\":\"b55445b029c8fbfa1ddc701cfbf891e8e81d66606703862ae6b65152e082af8d\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"3ee8f5c38f3714e4514418b9487fb248f1d391b41231f62ade755a751250dd0d\",\"id\":\"v3:security_ir:0:3:4:3\",\"normalized_source_sha256\":\"bbf23386f852ec2d82d12f39fe4f08745bfaddc4e85d7c85db272915e4da1872\",\"source_sha256\":\"8a279797eaf771918698615b8c28d468f077ac689dd24cacd84078dd16c208a9\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"450df8834c3b8c51ca9b9472209c8a2129ea11ed2b89b3539476b59b40c0659f\",\"id\":\"v3:security_ir:0:3:5:3\",\"normalized_source_sha256\":\"e70b16dacf3841de1856f3c7d3217001c7fc3efd96a96c3ff51bc79543216091\",\"source_sha256\":\"190a61de754ca644e4eb35e415a32e04d7e0b774b88f12c2fd15c34fbf93d510\",\"target_sha256\":\"ff033f2383f963afd25fe2ab114e4b901769e43fdc08d88619f5e0c71707a7d1\"},{\"embedding_sha256\":\"c4038538fe7c6e027485ec339bfeb85760cc3eac1eceef605e0d5f5e45b41864\",\"id\":\"v3:security_ir:1:4:0:0\",\"normalized_source_sha256\":\"3540aa7d0f8888d3dbfdf3618c889fa69fbb5c341490c3fd94d533880ff4f7c2\",\"source_sha256\":\"4233c000ebe970a171e402a33e0946a4ec31839cd20c507ee7f2381283bf5cc3\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"3c646b571461dc8daa72dfcb56921d98d062a659a45feba1093cdbe098b149e6\",\"id\":\"v3:security_ir:1:4:1:0\",\"normalized_source_sha256\":\"fe9f35fe60f5128e977fe21a4f1f1f824a292e0b5edc820b13fc79fc6af6da8d\",\"source_sha256\":\"9b0251b79d43ab6319f4f288d6ef64d7010b2878b77e9d9f404a781518d67198\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"e034f2b81961956967c6181d261a8a8fb883e6e014a7bb9a097c79d98f22e4ad\",\"id\":\"v3:security_ir:1:4:2:0\",\"normalized_source_sha256\":\"a18c21b975e72de384bb2cb9aade69b93bdd0eea574c35d7e6778355183ed410\",\"source_sha256\":\"8212988eaa638799a47a1f8f7e09a0bb996deb6f270cb5a3f6d280f61a45f8c3\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"fe27311efd2c14761fe1dc363ce9d0035eb571fd6a22bdff07ddd18872df84de\",\"id\":\"v3:security_ir:1:4:3:0\",\"normalized_source_sha256\":\"b622a87765c4203420f8b7fed5784d87f1f5231e3271ada546b75cdca444d147\",\"source_sha256\":\"bb1bad3e90f6c96478aff6791c0620c821a747df1c905f60468b5d4d9149d373\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"97daee25f0eab906ef2cb6813b09f86dddfc2abfb2ddefc76ad70ee853157aa0\",\"id\":\"v3:security_ir:1:4:4:0\",\"normalized_source_sha256\":\"3d941732a9383d21c073efd60dfa6fe9cb5782cad4fb274969336a4011b27bb0\",\"source_sha256\":\"874735f5ad64768cd98917edd80e44067391283ebf94aa55be2cada3304e584c\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"3598e8a6119f268d0410f2b04ee180d84a59d63c8dc77a9efc410ac41d7f50ce\",\"id\":\"v3:security_ir:1:4:5:0\",\"normalized_source_sha256\":\"9d8aa1dbe0651d718ae1ea31cdc0ce5b067c1c3cafa02a9877f982ce6e7f6d22\",\"source_sha256\":\"60563f91acf3661a0d26ba90ef1b15af55a2b33371b27d21c3ec92511be4953d\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"b0c1eec1a68d6101751cd5ffcf22adc760f30cad51a609ddcb3efbb066e62363\",\"id\":\"v3:security_ir:1:4:0:1\",\"normalized_source_sha256\":\"51d1910ff66372c2bd1b37c5efd831cc8787529e9f41247aee3b4a67a951af6a\",\"source_sha256\":\"6833c4907a012d61a0674e8545fd3ab73200244d47f53cb929875acf8954c16a\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"1384782bc13b2f3026d6bc3057c306e20c6b2bcfe76a535636c0ea0068fa012c\",\"id\":\"v3:security_ir:1:4:1:1\",\"normalized_source_sha256\":\"5529b11ac577b52299e44a14123157e7658ac90606bace5061e7641327780160\",\"source_sha256\":\"21461b64db04f1cc29dfd01e833656b42d0bad57df200a9eff67c395ac21b969\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"dd72b05169f0fdc8d8fcbe9efc49960fb9fa18ec9a44db9230a9a198ceeb8374\",\"id\":\"v3:security_ir:1:4:2:1\",\"normalized_source_sha256\":\"fecebc747639212215629f078a60cf40d4cdb444644fcaf092a81e432d62935b\",\"source_sha256\":\"4ffe2a6c18001efacac22e247302f51c792d5bc6e75b58bf655ec0c4261c794a\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"6c82b345f67db03c6eecd2c03b1d39274ba5d80ef1b40a1c02839978ff3884e3\",\"id\":\"v3:security_ir:1:4:3:1\",\"normalized_source_sha256\":\"972f9195b0cbd1c3f65b342a6d816706bdc543b43c7228eb42a7ae2ea4ee6037\",\"source_sha256\":\"ed5837eff1863ca7f755a46a64562873537bca33426b8a86029b9223b849f91c\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"916c0274993b66a4aa0656c88900672b004c64a93d45c4cadb669fd35da8bf18\",\"id\":\"v3:security_ir:1:4:4:1\",\"normalized_source_sha256\":\"a769866eb1574e36c2709b4092d0ac95e9e957d20b48c2d03957a539e8526879\",\"source_sha256\":\"46e2c34c0e5ce3b1f8cb953df1cecdbb23486cf422359115fa5a235c39ee2110\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"638e17ea810bfdf069678fc983a3e3578401a5910b39177c6d23612b836e9f59\",\"id\":\"v3:security_ir:1:4:5:1\",\"normalized_source_sha256\":\"3c8502b75527538499428a826eca477f72bd1815ddaa3f84e6511d4c88993981\",\"source_sha256\":\"7cd19731665e4aa335b467eb7612bc0dc7d45b8d06c1a51e9c2fb282f8d5d093\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"6ab7095dedffbcf33c7475d1856bca5542e58bd3d12a24e142aa2c2f09932936\",\"id\":\"v3:security_ir:1:4:0:2\",\"normalized_source_sha256\":\"5abfa0d72345aa92cf9d84e43369fc28c117bebdb994920e160954d18d386421\",\"source_sha256\":\"a7c55dee302f229cba8da1efd07cf40b488e4ccad2bbec2feed714dc09396ada\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"27308629b4a8040914d7c9bd01f0597df306e78e73cf538f72c98dd8f7d89d27\",\"id\":\"v3:security_ir:1:4:1:2\",\"normalized_source_sha256\":\"cb62a5ab424ab33e32c5ffe22dcc43e6a66355da3d8ac863c32d73dbad0c2453\",\"source_sha256\":\"4545790e553f74ee69d3204656f82a621737f156bc536d100e147e5324c8961b\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"d2358cb533d863ef0817e9207babd3a438f8c2493cdc1b85ddf6d21cee148ac0\",\"id\":\"v3:security_ir:1:4:2:2\",\"normalized_source_sha256\":\"cfa786589fe0ef294fdfc7b9374e190f039b99378f015002d06d36eb6a378be5\",\"source_sha256\":\"042d2671543740376c109dda786fc52bc41abccdd7d2903fe126ec88b561d260\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"d14bb1816498a0b09435169492ef8d72520007192fe080ce70aa59560ec2c9bc\",\"id\":\"v3:security_ir:1:4:3:2\",\"normalized_source_sha256\":\"a700346be2ad23e277a9f3ba03ed8f190455e06298b34edabb1e4043a1181729\",\"source_sha256\":\"cddd5a0880ecfab7c203eae294f26a940b1b20ae22e6979fa4eb0f80e6aee3db\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"38f3efd35facfd590194ba43bc427780eddaebd9416aeac82b12d864d9cb5035\",\"id\":\"v3:security_ir:1:4:4:2\",\"normalized_source_sha256\":\"b1549c87b4392bd585688aa0c5c2250f305b826b89157087c79abd6711ab1fb1\",\"source_sha256\":\"e195f2c7a3624e68e030aa315792d2052b0fa2e353e6a051d1efb864eaa5c9d5\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"c38fc5d25e8beb4659bddaa220ed1324ef56742a14efde8648dc4714ce570ff1\",\"id\":\"v3:security_ir:1:4:5:2\",\"normalized_source_sha256\":\"44eb486bc4c7fc685556b40416156d9cb34aa17f81fe50a0c4645f1306047bb8\",\"source_sha256\":\"ba40bf8afc7dac97c49ab0639291aec8ca53c03c6dc74514fabcfb1907d646ba\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"f4305e0017fe38cb66b64d9a552d535c1a56901b9f6f4fdf78f7241a4fe21d41\",\"id\":\"v3:security_ir:1:4:0:3\",\"normalized_source_sha256\":\"718e0b88973fdd9cd7fa6b7cb0c1b1af3aad09d134cffff58a3773beb40ea2a8\",\"source_sha256\":\"d7937ff3705ec00ae4fb84b5c8035bb8f310cbf43aefb694337992a01113e79a\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"2089cd3e8303fe57d5e168adcaf9deb7ecd55bfaa0b9d6969309fd78fc64c1a6\",\"id\":\"v3:security_ir:1:4:1:3\",\"normalized_source_sha256\":\"26c58ff9171c9a701f49dacd1ab1b851df93f1d29f5890941c9ced754180c092\",\"source_sha256\":\"a1679f2932fca5fc90383c6750f99cb12199f6d0b8baa179c3b83c2b3866cab5\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"3c25cb5b599cf1980445570e3c24460507e7be789b63c0cc2f7650167f03b511\",\"id\":\"v3:security_ir:1:4:2:3\",\"normalized_source_sha256\":\"69eb0771d0c6e60cf9c818d53557dff3bf48c6811b18e831ff322b141789e6d6\",\"source_sha256\":\"19acf97591dce5f1a9adaa1673c59c015260cd38160d3e0dac20049f718f1b10\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"1d913b4ace39becf766008faeb87b1ec029330967c86358b3abf70c34315167f\",\"id\":\"v3:security_ir:1:4:3:3\",\"normalized_source_sha256\":\"85fbf86c519c5f0db7f463fc1561ddd7fff5a8d1cc3dd2784c7a0e5e3d250895\",\"source_sha256\":\"1bf5d542143b984813a86d16524ab68ce29d22610cbab06cae769cd2b10207b6\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"a1ca190a8cd8fb1ae044766f7f99b6b0d18f7b08afadc6de75d3f478b0700f97\",\"id\":\"v3:security_ir:1:4:4:3\",\"normalized_source_sha256\":\"25ac9e44a264aab7ab15d11be1bbe71ea0bc17d1ace18bf7ed132e19ef77908c\",\"source_sha256\":\"194cd3c312d41fd7a5dcd01e7cf9aae7deda3903ccf925f9dc4f69a4be550744\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"5d235eb1941971a7ee0acef217abf0e46d8c95a52c2652a705a3ef5a0df40228\",\"id\":\"v3:security_ir:1:4:5:3\",\"normalized_source_sha256\":\"14b35cf8f39b63c863d041e71cac8d182ddf70287b02a17f422b32917ff0cb3b\",\"source_sha256\":\"b21e06f8be11e536bfe939b0245afdd92ca788ad9193750fcb08e7004b46e7e6\",\"target_sha256\":\"f3bc48b52395f75001ca0eac2af98bb8e185b2fea3fc1bcc2d80609358829535\"},{\"embedding_sha256\":\"4bb60b6df79744536d45a883a77fc0905b737ce79756da798f49df4b52f60897\",\"id\":\"v3:security_ir:2:0:0:0\",\"normalized_source_sha256\":\"2d57056a3dac17042937245926109b23447b99b0d11e27211c1448d17e2573a1\",\"source_sha256\":\"a5419e430f92530a5f6650cce0a45733108e7e4938aeb820653944fc7d02d3b9\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"d94af639c619156aa2a9ce917aa4e8878bd99bad8ed64297a992532d35e11e25\",\"id\":\"v3:security_ir:2:0:1:0\",\"normalized_source_sha256\":\"f7aa2892f281e91691687f9e249ce53252af0154f9853958b3d75b245737b9dc\",\"source_sha256\":\"23da70a14e760f6af926589d64441e9594e9032cabe6ce15bd1b508160478d8e\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"05f1a83d0277d885d038b0e0372b83ca58b805652a77c49d90c33addef05fe83\",\"id\":\"v3:security_ir:2:0:2:0\",\"normalized_source_sha256\":\"0d925d951ac6c4ddd153e57e45c57b9364ea5086d9cb475c3bf974fbbccf91f2\",\"source_sha256\":\"377b171fd20aada5e8e97916ebf772928ee6a05af35b8b6ea239fce7b427939d\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"bb9f3ed555a86d30ca1bc3aad99a6a66de0f7f25c0b3a6dded78cc12ba5806ba\",\"id\":\"v3:security_ir:2:0:3:0\",\"normalized_source_sha256\":\"248a239e7a8aee1fda22564ad1b49aedbe81ba0deb6219730ee054d393564d65\",\"source_sha256\":\"2a96d38becb84fff2311f65f72ab649aab4d068d2a853ccfe8de7b4a64a0b52c\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"131ed18cd42339b1649ef3ec9a26f712f758895000dcf43f391e026b4c28ae9e\",\"id\":\"v3:security_ir:2:0:4:0\",\"normalized_source_sha256\":\"4dc7728949e403d04d2c641896dd6e3c0ae05c1157408df2560768e3b2231085\",\"source_sha256\":\"3cf1ef5a1ac96b4d748e8966241351a73c52f15a95bf0e0ab7c3c25695c7de87\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"9043190c7ac152275ee629f7559b04989180b86e452292c4ede8cb98188d063d\",\"id\":\"v3:security_ir:2:0:5:0\",\"normalized_source_sha256\":\"2bae57923be1bc6e64e5cbb668ee73bd837136aac6090cd2e1c74ca92276dc19\",\"source_sha256\":\"c3ebfcaac2c9081db11fb72e0f48795a30202c8097cd7cf02da3b6e380d95662\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"99e2b5937b2135c3964211f52d8d67ac5d2ff04810f21ef412e42203e97d279c\",\"id\":\"v3:security_ir:2:0:0:1\",\"normalized_source_sha256\":\"4767293efd4e1706ba5c48928f07af7714cdcf4aeeaa8a7b2a43d9cd6fdfefa3\",\"source_sha256\":\"1c38cd9430f5f61a381eda6104c159a924dca2ee5f0e3a5d054cf3ba20494491\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"10c90dfcc576a939b310f65e1055b2e6c60326358417c1852509aa0e7fedb219\",\"id\":\"v3:security_ir:2:0:1:1\",\"normalized_source_sha256\":\"a154544b29bef5097c564d3e5aee50709147a7d7f938183380d1affd2f36eb83\",\"source_sha256\":\"785f6a7792a7e9879c122505fb69a48c5292afac962fd6dfd99b53f52b6eeb12\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"994594f2ba8051379104a75860cd780e5c0414b3380a37d88a4ef2df144d88cf\",\"id\":\"v3:security_ir:2:0:2:1\",\"normalized_source_sha256\":\"9ac657b36f3d7135da02f7b1f3fe76765bb4ef559396f87699b86ddabad2c98d\",\"source_sha256\":\"86e94c2dd6f40f03415f31d50751c657beeefbae316975539572cfc1a9fee0f4\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"60dcc1a6c2eb7752b73087d3c510ac19c8d868bdbbe76bf80fe95e8b54cf8cc7\",\"id\":\"v3:security_ir:2:0:3:1\",\"normalized_source_sha256\":\"4945cc9a11f599c07978589ad0702fc59cd98997706612ad33c7ce3e2af2bd0c\",\"source_sha256\":\"6ff5b9801da7f8db99a59e778185deedf67656d44e3abd9eb3c2f975e9ec8b47\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"4a63c3816fc7416f3fd8c6c1df0614a82a3b3acb903102978c849668b8278a38\",\"id\":\"v3:security_ir:2:0:4:1\",\"normalized_source_sha256\":\"53973897cb417c15f3f6d8668182ea428992ffab920eb84cb9ffdbe07cffea83\",\"source_sha256\":\"9c79820fa7565baf6a1f45ec45c01102b77a667de45908fe8f486246957ef731\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"dcff9ef36c1c019db681ee5ca846d7345a1d15ee6526d388614180bf886c7dbc\",\"id\":\"v3:security_ir:2:0:5:1\",\"normalized_source_sha256\":\"20c296f73961f939c552261deaa4d6aa7ebcd2e0ac8856f35bfb3e685deb91b4\",\"source_sha256\":\"20bb75db5ecb40c682ec56d43ddd66f29a836f72e763c8a22d2ac9a4126c8f76\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"cc51a70f4cfe6634441fce514ba505d3f5e5d1621cd1eaaf52685ddbdd5f4054\",\"id\":\"v3:security_ir:2:0:0:2\",\"normalized_source_sha256\":\"ba28fdb56f283f9f8e1019261abd4c337a8397274b019844487225ac60692d27\",\"source_sha256\":\"63f40eab6003a5572647c161339a0c4d307cc379c458cde3862aa7ce981f31b4\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"c9c94b09e79a6f84a0635ab6b053c9d4bc8118c7bbe83be30aa1b77fc173dd5a\",\"id\":\"v3:security_ir:2:0:1:2\",\"normalized_source_sha256\":\"d41f58126103e4b27930f749205031325e2245d91a2b6dcad85e91c81c8b3bb8\",\"source_sha256\":\"39b33e7ef98ddf522ed569e0503e7d6ef9af219a6b7faac8d4df4ab545fc4f09\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"e058698efb3b9b4721032b4af60c1a6d5f4c03314745813c5dc3c79411446065\",\"id\":\"v3:security_ir:2:0:2:2\",\"normalized_source_sha256\":\"a3206272a57d139c24898281338383fa5ccae3c929950fc492da593caf550a12\",\"source_sha256\":\"95e7cdc985ac2e7396a0e3aaad3fede53c25d9a1a09bce6b294e4fa814ffbf86\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"6e8a90b459071f63c5aa519194b455f3f5e410429b5840cfd87c0d3b8a80b341\",\"id\":\"v3:security_ir:2:0:3:2\",\"normalized_source_sha256\":\"f2d38a51c609a6ba4335f614f943653e61f9b1918738ab5090db9444cbd7c7ec\",\"source_sha256\":\"335109e78ce90065a19e550cfc8077f5494481d50d54a0d24a2c5e9d83f9b30e\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"992048ac86bf7ca71e24dab4db410b7a9d07f7a18779e0736f102cca76796335\",\"id\":\"v3:security_ir:2:0:4:2\",\"normalized_source_sha256\":\"e75c7933aacbf2f784ceb18158d61446c250efd4bf631b7e02cfb8f13c183281\",\"source_sha256\":\"91bfcc0f64116b62fc9aa5d26e3c72842f8dffaa598e85a614f62552d356c2ba\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"4ba05a829de8ab11b12b73792655ce3ff72a32de12cde29a6829954fb5bc1489\",\"id\":\"v3:security_ir:2:0:5:2\",\"normalized_source_sha256\":\"affb02a3a9d74b5848a8339d153dcd10b12e80e024f9535e53764209fdf3b07d\",\"source_sha256\":\"8a777a5125116538a65edfaded225248b1c0efde69378552ccd613715d5e780b\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"81924a5e000db384a32dee5ef102594a965b8eb64eae5608417f4f02e44d810d\",\"id\":\"v3:security_ir:2:0:0:3\",\"normalized_source_sha256\":\"5bc875a4924cdb314c20a5dc2004fc2d3dda587cd09795b0152d0e9bf57be844\",\"source_sha256\":\"a01e39dd8c10c586c22b3e6919befabdbf03f3a9dd984cfa553254e3a65867a1\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"fcde5c143256a13d9543106dae2175fe107146dd441c0ee0b2890b7c74ab6f24\",\"id\":\"v3:security_ir:2:0:1:3\",\"normalized_source_sha256\":\"6b29a98f52ef5ed790f03cd6e8ae00f9d6d727f0adb6ce1a3d2268eaac2ccca8\",\"source_sha256\":\"79aedafdee3e718e11c1b85ee32a15d6435da086011b05df862e365e31fdd98d\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"682a1d63954c67048553e4c84b910953bf995dfc87f580fe297c3c8b662fed15\",\"id\":\"v3:security_ir:2:0:2:3\",\"normalized_source_sha256\":\"3902651e669662ccece9b5f56bc9bb14367de1b3e0cd3b817fbe8ed41c1eccd1\",\"source_sha256\":\"c7d260de5f4568529ef738b4f0b4c88927eab021e8d558f0048fcb9cd63a13df\",\"target_sha256\":\"84df4e4c42680cde2615849e85a65d91513b1b36bb1bc4ba8130f5b63662e998\"},{\"embedding_sha256\":\"efb414da6610d699efaf6cd330cb82b7d6bbed148c6c9790f455382fe65d8214\",\"id\":\"v3:security_ir:2:0:3:3\",\"normalized_source_sha256\":\"1757913afba34b48ea66e6ee42d43eac18630097d4a0462378b90d77857d4353\",\"source_sha256\":\"541f5fe055ec35824773894eb5b4533ec89443041db719fe038215ac7c219da9\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"aa0f9448b0ae6d5ffea8cf8b324ef780e3d7d8e6d02e846ee70a70c3b356dfc8\",\"id\":\"v3:security_ir:2:0:4:3\",\"normalized_source_sha256\":\"b3d9be63170b5be6b128467a1e55f87c8b58babc621284c8b1e7c6988a294603\",\"source_sha256\":\"973fb3e88bf6a6fd1c29383e8c6cd56fa22bc0eb842c6ba147934f46d3c1390a\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"1d665251216b3538d53b0c11080004f925d38b1f5084d640b2ae226ca11c1fd4\",\"id\":\"v3:security_ir:2:0:5:3\",\"normalized_source_sha256\":\"3604805d84cd176004fb09941f9b4efeae1892250e1978676a318cbabd5de62e\",\"source_sha256\":\"ac9088eaaca78f6bf65b1ba11f25cb46f8bda9a097cf323090fa7fea13d23115\",\"target_sha256\":\"3d12a287bfebb87fb5e346f6eab6c87a720b0e5bb9ad283b7643e6375069fd43\"},{\"embedding_sha256\":\"085229cc7057a621613014d42982c271ca7a4c9d89bd221b9ccad92bf4d8457e\",\"id\":\"v3:security_ir:3:1:0:0\",\"normalized_source_sha256\":\"644378f26bcd4464612cae581941e9f180ab0c41eac560b74030a4a573ee76cb\",\"source_sha256\":\"64038dd5e97d3c5cc39ca28ed29cd6a6e532902e3c6592fe2e52fddfd006fbf9\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"3b1192c18b8334fd81e9890f1104f594907dd5b6999be582c4983916e35f2909\",\"id\":\"v3:security_ir:3:1:1:0\",\"normalized_source_sha256\":\"a925fd48d697d3d7bc113277f3424632dfa86b29ee82f819d5b0a5f24ecd5a8a\",\"source_sha256\":\"5bb6a2affc29f16e557231f6bd3afc848d1b3f02f24e4fd00b57dcbb8c9f2db5\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"9a5d58a78fbb814ba2eacf40f08064ff5c61d3c2a677e92f123e1223afe90be5\",\"id\":\"v3:security_ir:3:1:2:0\",\"normalized_source_sha256\":\"4ab07f316c0abf98901d09be6815bf248fd3fdffb6ae4957e0daf79d3a0bff2d\",\"source_sha256\":\"b6ebac04c9f31c6b09b73aa169b38783a17448050acaea40ef8a4940377f562d\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"e6445fbd82e7885a137de32e08160fdb521e339126ed284f5415172e6973e6a9\",\"id\":\"v3:security_ir:3:1:3:0\",\"normalized_source_sha256\":\"a489b97562b170aef52ab562593b069fac8172d83b73f9cfd3d3706fe5d10a35\",\"source_sha256\":\"2fd3642a2b8dda58579c3b07751298c58c77ac5a72a9b1bf7ff477e6ddd2e187\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"3fbd2f01715b06da62d47ad164a4ef9bf2e502558bc7d8f768adaddd78b2a886\",\"id\":\"v3:security_ir:3:1:4:0\",\"normalized_source_sha256\":\"a3903bf1a4d49ca4de9f97476847a78c067c4510762ded7dfc621870e7cea4f4\",\"source_sha256\":\"cffc438a6a3b02af565a58ee7830c1f70099c4b38eabc959d47fa1b86bf53356\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"55b4aefba9adf8946f5130adc7a0d553be96b5d6e9ad0447bb08c98e6b032e6d\",\"id\":\"v3:security_ir:3:1:5:0\",\"normalized_source_sha256\":\"cdbb48434f55c98de343b0c6ee213c8d8f34abc3f61641d4899f844abf1125b5\",\"source_sha256\":\"832928dd9b7605092d89ca77928d8be61c1edcc9c9d167fd54367e56b6a703cb\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"7b8bc88f21a1da8ef92691767ae8f4f726be3071b9e6cb44825bd7b9bf537b52\",\"id\":\"v3:security_ir:3:1:0:1\",\"normalized_source_sha256\":\"c4857c21277e71e8e0232d037ef25fe7111c44eeb1ccc475ad625ec5f64fc0de\",\"source_sha256\":\"7e0797ad55b1f99a0b84e5319fb0d325bd7050b4c4e1a3a47fa4c6ff3049f88c\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"640e00e418ee975c9756b73dd3e2cf518a755b337ecd3ada786360bf477e1669\",\"id\":\"v3:security_ir:3:1:1:1\",\"normalized_source_sha256\":\"b57d3381697a0179ba5c39aca122b4ef814670eb177d8418d2dcc0e3ab5e6fdb\",\"source_sha256\":\"dac76ec4d3b9f23b048f7369a57b262e7664cc25b6c33dbdff44a6efaf9c26cd\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"fb0f68da77e63cb59fdc9a83d02ccbe8d63c81a5055c7e8f3ae5f88e9f64e512\",\"id\":\"v3:security_ir:3:1:2:1\",\"normalized_source_sha256\":\"0bf80932323352d56daa1f0c629e214e417bb11bdcf5bcfcb8a12b8cbf929b59\",\"source_sha256\":\"17a5ff9c0d59281cbc7e33addc6970d7d98f4b803411734d071878bb90ce5367\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"0f025d4cdbcff29b13c23b9d914fa722bf0fc419056e8aebd3f59802b0de2bc9\",\"id\":\"v3:security_ir:3:1:3:1\",\"normalized_source_sha256\":\"bcd4efb9541df9a3d2d3a64acd83280e926435d3bb4f87c3b51c6099032ab28b\",\"source_sha256\":\"96e1d03c29aaf3fbb1c46825c94f461b29ffe87f64892be6ad35d2a0514d862e\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"b8d1482339fb10e7d82f2772eb820105c36225590913e09992792aebbbec66b9\",\"id\":\"v3:security_ir:3:1:4:1\",\"normalized_source_sha256\":\"10c2e47a43970c1b39c9e19c252f6314aed192ac8ed9b27b42f8014df1d64726\",\"source_sha256\":\"3ec017e367af0cb453023b138a3672d40548533940c9ad1fe5f41ba49fa17f56\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"b2f24840d58144b0eebc57e12d1ee9fa42925763b2a6ac750b2827ece1ded497\",\"id\":\"v3:security_ir:3:1:5:1\",\"normalized_source_sha256\":\"bc7a3ae3aa6a603034e42bf7d32677e10306b35e18e88d1ca74c62011a491ef0\",\"source_sha256\":\"2d26134083953b380af4d55b0fbe462f2fc9e3b377079ebc0d8be3235f4aab21\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"37e619745721c206e8f022c94e05ba081e697bf1bf3ee777202372e05488f730\",\"id\":\"v3:security_ir:3:1:0:2\",\"normalized_source_sha256\":\"fa8341633b178f9cbc3848818cfab0ac11958453abcd8fb534643a996667ea2d\",\"source_sha256\":\"e6e0b373a598196df958a1ce50ef07480d7ebc2bdf44362e00b0fd7cd092ba3c\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"3a375f25b1f9d1b29c697ebe40767bb90b93576f49f5036b154126820c8c4b52\",\"id\":\"v3:security_ir:3:1:1:2\",\"normalized_source_sha256\":\"38f7de20a7b7cd9667d669b843c5631e916999709b4d6e2b05f0aa22f8b36fda\",\"source_sha256\":\"e8e033dcba579c4be23e55e50910cb4a349a624e0b1da1d230a44b55b2467ef7\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"492836de17ec7faf4efc227483e7ee290b9b1c5ec6de1eee13fb33d44e059391\",\"id\":\"v3:security_ir:3:1:2:2\",\"normalized_source_sha256\":\"f25426fe45eba052bf0186d1525956fa8951972d022cc376b51542b17f845a8e\",\"source_sha256\":\"b208e6c3f3c70b2b45be21cb2cc1c89515974bcb16bc1774f789aaf56ef4df67\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"26da232d1f0b1aafdb0102a37292439f063b4458d25328955ba82085b456ac1b\",\"id\":\"v3:security_ir:3:1:3:2\",\"normalized_source_sha256\":\"da83c109eb2680197a4057524bce915902094589b6a3453783178a7b3dfc8253\",\"source_sha256\":\"46899885196f754aa8838c004a6f9177d7aed68bccd391a1865c38552db16fba\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"e3a8d7dd410940ed9682941034a906d8b2d539c85ea221b90f3f3dfeea47de73\",\"id\":\"v3:security_ir:3:1:4:2\",\"normalized_source_sha256\":\"d9bb19faabb895bcfcd98aa3f662ee2a8d5e0a6a8299d2ed61fae6f831c4b88a\",\"source_sha256\":\"b5a4cfcecb98d1036704ed917a5a50ad4ef7c175d5f8e35a7327c55b1f0ad8f8\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"45f1ee012fecd89f381c703b4730bd50358cc0867f006d078523e136d2d57603\",\"id\":\"v3:security_ir:3:1:5:2\",\"normalized_source_sha256\":\"015c5edb4a1e56f762e436295e45214a69cf671807bad3f3553741a9b39b5658\",\"source_sha256\":\"dcfee3e90c340784cfd8e0f01f5ac70d20ef01b6a8311317f166a4935c555acb\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"d3bcc3926659e77cdf0154a7288cb6fc65a4940337074d92bc8a46237d72b157\",\"id\":\"v3:security_ir:3:1:0:3\",\"normalized_source_sha256\":\"f35366e1872e3c654e4e83124b7bd6812c913161fdb61e4e127fdc7b709fd14c\",\"source_sha256\":\"f64ee0d0b05a1f2a9de72a313199eba28bedcde23cf2d3e047518c1629476d8b\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"7d56f10697e3cfc9dde8d88c8b85272604d2150308a13135708c72d8f7ff61fc\",\"id\":\"v3:security_ir:3:1:1:3\",\"normalized_source_sha256\":\"37107274ea7b221da5993b9c3e633351608df0b0c129b635b7084406867534d3\",\"source_sha256\":\"ff73677de7abc187867926ff0c0e5e3d62b88ca29722193902c3c5ad56c5fca1\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"f9df09e0f999a8d8bb4f257cd0a26ee56010889fa39973a28143b496ebe840b6\",\"id\":\"v3:security_ir:3:1:2:3\",\"normalized_source_sha256\":\"b74ddd7f8729e3136bdb30e38a8b8cdf3cf1d96f8a784e665c8d5102492da639\",\"source_sha256\":\"27b5df2de858483cc209e994dcc673bc026f211d3857a3902b181cb9abce5162\",\"target_sha256\":\"2c040dbb9503d4db53b5e6e27820a5ff3bf13ba8b9723acbad5d7d422179bd9b\"},{\"embedding_sha256\":\"d7638248f513b845353dd726d442b84eab4d95b7077e9279fbe36597900ea70a\",\"id\":\"v3:security_ir:3:1:3:3\",\"normalized_source_sha256\":\"cc7bf98eadea07dfbbf76ce0510c8d5b2cece7bf764633fbecdd1958abbac248\",\"source_sha256\":\"d4f262154b2adadafe41646afb6fd3b22d4d4156a8028ab6619247d88a6c928f\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"755e7a7cbc3cd22757b6deca38aa01ca6b204b908dc01a81f358e284d63c4b79\",\"id\":\"v3:security_ir:3:1:4:3\",\"normalized_source_sha256\":\"6aba94ba5f0be707cb47086d1028c9bcd61e68eb50c684742166f3609b93a8f6\",\"source_sha256\":\"972709db89e0b2cb1ac4ff844782565503fac9c472e7f591517dc70d1b54cb08\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"08f1181bbdfa542469d3fac19e23b2eda3bb3bf9d9a400c2d572549399c52da6\",\"id\":\"v3:security_ir:3:1:5:3\",\"normalized_source_sha256\":\"03ae7ce673c7737ec20e29c64c5c055cef1ec1477eb5f9a1cd4609768ef522de\",\"source_sha256\":\"0da7c10adeba28fc654ff8c98dd0298a32fbf65ea83c2ee9e82b25f45b5a0983\",\"target_sha256\":\"52facc7fe010ca8c186c57eac3f50ad69e222182b2b054272a9b3f41229fa160\"},{\"embedding_sha256\":\"9bb2bbcc377b610149b457f1cd8a32bfe0bf9a97354a710f150ac35b9a67db7f\",\"id\":\"v3:security_ir:4:2:0:0\",\"normalized_source_sha256\":\"fb535913470f09e9c8719f491d8d12e82e8eccc778d54a8befd8d5cb63a59ca1\",\"source_sha256\":\"cba5b604f273ff8419e3b759ab55de4227a2a41c24cdbbe517f8b310875ec493\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"435f512c5e1609f9d9b99fe759a9da5b3ff8ce6b8b85de779823ed660d0e6414\",\"id\":\"v3:security_ir:4:2:1:0\",\"normalized_source_sha256\":\"3f07c1cb403aaa898a456140b3d074572d6bf00f389b23e0d8461f7b95293fcc\",\"source_sha256\":\"87495a2efb926b4b8ff1ce5721dfda4ffd4b419d4b4273a8e6f93c090f82c15e\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"f91e3d2ec193511fc58cfe2ede5a4742f8a1aceb9417a685b3192aac94a999b6\",\"id\":\"v3:security_ir:4:2:2:0\",\"normalized_source_sha256\":\"8530e97cdef3212816d3512192cec0a176095ee231a4243e5ff86a179e757795\",\"source_sha256\":\"5e2d93dcd85d456f129434dcb01341626546e4613756f6ddfe69ead6edf5c881\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"2c338227d58b9e98a0e5bfa99682bb685529947f5c97a5ccf141c7f57853aab0\",\"id\":\"v3:security_ir:4:2:3:0\",\"normalized_source_sha256\":\"9c07ed0d023c2c505866253805f73ff66001e0ebdb1ec89723536b609a05f2f8\",\"source_sha256\":\"a191a8c27a66784383fb7a41d3f8e4f1b82390ab013bc4d6411844b4e2a9ad4d\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"d3b787c1a6d921ab104d339cd9cb7c6e1d4b91b8c72cfb70033e2531d67e781b\",\"id\":\"v3:security_ir:4:2:4:0\",\"normalized_source_sha256\":\"04bbd67e237d9a3c9a15102b0b4dd70de79b34ed9ccde8529a2e69e10aa42d34\",\"source_sha256\":\"58b8b0bbe7c87db965ccd97f8c329fb34d90d10dc3c654d6b3d263f192fe974e\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"c8d80c8e37915e2ba128f159c7348cd76db6ee616c289d33cc294458424c08b2\",\"id\":\"v3:security_ir:4:2:5:0\",\"normalized_source_sha256\":\"d36d23f18555842902e11f01dfeddba015a8ca6078e20e644a39d8342be83cc1\",\"source_sha256\":\"88f77bb8b8c1cce11ae5b121a672beec870e3e1d3db2d14793333ece103ff11b\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"0ef6d314856c1f57863f273591476571326fc4cb6c265cd49e96284a41893cf7\",\"id\":\"v3:security_ir:4:2:0:1\",\"normalized_source_sha256\":\"f75ac6182de73b53a4b3972bf013e6f0f8dbaf969a06310d5c285dd133a805e8\",\"source_sha256\":\"3af66f4542b82b62e30bf16764a245d465b6dfd63a2b0d537b7bc2baa78b2d68\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"f03cd45dba475277debf03c2dc885d958294ddd5db7fbec4ad57a786ea77be7d\",\"id\":\"v3:security_ir:4:2:1:1\",\"normalized_source_sha256\":\"9690c526eaaf443c385360bc7eaaad874266dc5f1b2c0db9b740de2ef9a6daff\",\"source_sha256\":\"5fe08d78d310eca9d8f8e8c1c081b2dd5ff5f98846d1019c0ae58ebd6a8a54bb\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"9e282e4e3e2ba11f121ef8f0a00b6bbfcee93dbefa36796d040dad2a416035e4\",\"id\":\"v3:security_ir:4:2:2:1\",\"normalized_source_sha256\":\"7344d9b49dc4a7938b40cafd1a55780a12381bfce9e398148a0e2eecfb087fa9\",\"source_sha256\":\"bea73994054a46f7734149a3d04e8cd73d8b271be9ea5457192bdfdfe6d589d5\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"7c85a5e0e2c001cdf60749c6eb998805cb89fb20d41b25b70545736afe139bc0\",\"id\":\"v3:security_ir:4:2:3:1\",\"normalized_source_sha256\":\"dd3f33168587a0826adee8cb2c1f21bf9706f67dcaa6e5e1d13225fa68a457d1\",\"source_sha256\":\"b534693e4d54103ef9e93d3498b0be7572430e0cc63e55f6d6efa68417ba67eb\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"f48b71c6b1a7567f894f718670d5f6e62b1b89f9cf11ab029f69df5f8930a678\",\"id\":\"v3:security_ir:4:2:4:1\",\"normalized_source_sha256\":\"aecd671eb0bf50d501821339fc9bf7551257f8c498bd9f1cdcdbd7d5fe509a52\",\"source_sha256\":\"83f58296675443911a67a69c9b442ace7597c60662339be26f5089de9f35104b\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"b1cee256742c1b90e59b32b19e6121d731b378f0ede11b32d80b7b9aff89255c\",\"id\":\"v3:security_ir:4:2:5:1\",\"normalized_source_sha256\":\"476bedaf1a60b13524d7ea49dbb5a27b406d7ca6b6c4b18dcc94d5e87916d67e\",\"source_sha256\":\"77bc22fdc68068315ff9f405df32eba2f0b2d1ba6aea00e0cc9e9cc2f0439cd2\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"57e2359c2c442d079933f178297b2b45b43278362490f730c5708e648e3178da\",\"id\":\"v3:security_ir:4:2:0:2\",\"normalized_source_sha256\":\"42af6589efe163b8a2aed338569572ecfd9e57e9b27f19a6e08f21b892b2eed2\",\"source_sha256\":\"5bd0760fc58df13e7ee5b1d3b677a653fc91302d149ea288380cbf21c65bbd4d\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"4b96f503490dbedc2e1bb5a11fde31ea4dfec77d9d0d8ae29395acb15b5905ff\",\"id\":\"v3:security_ir:4:2:1:2\",\"normalized_source_sha256\":\"6da8855666079b3b3d08f4d9011dc005da170d702e18184fcfe8b0d802008349\",\"source_sha256\":\"805bb957f1bcf2fa8ed71d0e32b1d6b26778c07b65d39ccf998d55dd7a11c2bd\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"257e52a0cfc6418beb3fe201fc78aec027c66b46e4c0fa52c38d93f8c6859b7f\",\"id\":\"v3:security_ir:4:2:2:2\",\"normalized_source_sha256\":\"1d0761f20817b0e34879f5cfec53ed0c5786d70ddaa770d6e37d49e3362cfebe\",\"source_sha256\":\"7f1db1312c5ab58dbcb7c90086f86e8504a1fecce4cb6e587f63aef5f7fb0987\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"6265dc4dc258844d2bb72aa6c0ca4bcbb2695839fe6b0f213d23a62bcb471cf4\",\"id\":\"v3:security_ir:4:2:3:2\",\"normalized_source_sha256\":\"dd6830e3fbc91359052b1fe0438b7d802e7b6cea142fb199d3c0f171435ae9e9\",\"source_sha256\":\"a456cdfc384c3869aae9f95efc4850e427ebffafbb1ebb57fa25fbcabd80dfa9\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"e12eee2998fbca4531e5fa5cde2a56381e0ecc74453b04811692b06ad3be1347\",\"id\":\"v3:security_ir:4:2:4:2\",\"normalized_source_sha256\":\"674a3f5adbeaf44bf2294f0f2d92550c8c4cc3819b1defa0fcf862eb56a2f6f8\",\"source_sha256\":\"ea6c3148630e2dec28b40552988e5bb6e3c9e501b2c8c77578146bdde4d6479e\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"98f7afd83c3193659fa4d1dbcac061dfc284b40f06bc5085f09b84c8f1f8cb6a\",\"id\":\"v3:security_ir:4:2:5:2\",\"normalized_source_sha256\":\"b3b44d3e7d98bd7f99b34a1d8887f576124404102a65c35fda357ab30aeaf339\",\"source_sha256\":\"26dcd3918b48f26d6fe7e51f06396e9e704151eba19136f65885e652fb30b76f\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"5f08d11b6438ec2b049581c191d091a8b2af1c8f15d1ac7139f444c0f1ab01f9\",\"id\":\"v3:security_ir:4:2:0:3\",\"normalized_source_sha256\":\"09da33264a847f72eb61e0d9547372c626981914bf8f3b8657395dc5bd312710\",\"source_sha256\":\"379a624995c345fd4bdc4d23172f123265c6993884a0d63dbbb68441e65c6ba1\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"c415fba61e9a8aa50a83e922e6cbfa1a9a570f94f07bfa7eb25aadaf2b721c2e\",\"id\":\"v3:security_ir:4:2:1:3\",\"normalized_source_sha256\":\"9127cecbb7747812ba07c20eadf0386da16194ba626134eebd0add784f75d686\",\"source_sha256\":\"bf3d3984974a1999000caa8997547fd90f69d41caeac15d619037e4caffd6a62\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"c3c3c8e72c00feb8b6c079eec0dba8004db8b9b2e4a234ed364bb5ec44b63455\",\"id\":\"v3:security_ir:4:2:2:3\",\"normalized_source_sha256\":\"9b26f5c9e0da510c841b8241d53cd2c8dcdd68a02624e2e15546fd8adf86dcba\",\"source_sha256\":\"57f8e87638597e56f7c5024dbc33001b2cc65e1020c6eb3dbe5d6628c9c4cd53\",\"target_sha256\":\"3513430654ae269faf9c8ed104f75b9ca3f5730c3ce9227c2479de07829c8e3a\"},{\"embedding_sha256\":\"69325382577f64acba4e6724b4a067161588983f4ec151cdbea99e5e088796fa\",\"id\":\"v3:security_ir:4:2:3:3\",\"normalized_source_sha256\":\"a4b654a34e15887a006d2b6ad3e2354391ca3edcef3d6ff5b695593e8d6939df\",\"source_sha256\":\"381d274203954d9e024c7f2203cc4f6eb20eaf519327bfe2f6506d04bb375917\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"eea79452573aa7f5fafea73107b7292d0a4f849f092a63ab99060a12b2499949\",\"id\":\"v3:security_ir:4:2:4:3\",\"normalized_source_sha256\":\"048860eb0e027e6e42858a0ae736125ea413eb29b163dff5c7449dbc265027ff\",\"source_sha256\":\"a678709d2f75ea7b9dce48ef7a4c04785a10056ea453393b2d61287010851e9c\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"},{\"embedding_sha256\":\"0d52152b82471913474b811bd32547d5088ab4efb525bbec14c0820209b80853\",\"id\":\"v3:security_ir:4:2:5:3\",\"normalized_source_sha256\":\"fed6af0fa86bbcef71ca4c0ad3b0e5a10ecbac9158f369aafc313389538b1ce1\",\"source_sha256\":\"31da7080dee16a315a0687d92534bbcf0e6b094007db6dd30ec9afa203ded65b\",\"target_sha256\":\"df21230688bc27c11f7e4b81234b11d75d623c28b3c186bb04dc8d046964df28\"}]}","parent_version_id":null,"producer":{"decoder":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"files":{"ipfs_datasets_py.logic.backends.codebase_process":"5c569b34afd75e1942f11fcb9ecf20d57799d2762927d9379813ce94aca437e1","ipfs_datasets_py.logic.formalization.autoencoder.security.source_program_binding_384":"956666bac015713e1b292d563a8224a71e547ad50e4e13d04299f1056893f283","ipfs_datasets_py.logic.formalization.autoencoder.security.source_program_binding_384_v2":"fce62d147c82612cf5c59f1bbbbc56516b93e02e4440cc1ada3c5f27071c9a66","ipfs_datasets_py.logic.formalization.autoencoder.source_embeddings_384":"fb3a5aa8ec005e98a2c62dc1d7e3e807a75820fedc156a8080c1f18063d17da7","ipfs_datasets_py.logic.formalization.autoencoder.source_program_runtime_384_v2":"3c133913082b1f8d9683e4934e8bc2537b7e4bc2f6a9e373f5a2e99dc612eef8","ipfs_datasets_py.logic.software_contracts.codebase_source_384":"7f0c148bdc1ff0cc01a8cc0bfd115417118eaa2f4f2db0f0d2f2ad23198b95e8","ipfs_datasets_py.logic.software_contracts.codebase_source_384_worker":"81304aa208c4f849a3a187ce95e4fa2554918cb6c73a94f0982dd99350249428"},"numerics":{"grouped_recipe":{"decoder_implementation":{"runtime_sha256":"3f9ca9ce7b4cf2a2d10d6aeb1fae78543c468133d2fa0df9fcb32f63f89e90f7","shared_runtime":{"legal_codec_sha256":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","native":{"dependencies":{"ipfs_datasets_py.logic.intent_ir.decoder":"7bab5781c07e00b54b0283d3a2962926f75935caedc80eceb23264cb388be257","ipfs_datasets_py.logic.intent_ir.formalize.rich_grammar":"6c40ac99d7e339651b6029764f94b12430ca515d4c5f7426770b013499efe92b","ipfs_datasets_py.logic.intent_ir.schema":"93d38e4724c5f34aab7f39f050742e98ef0c8d80e2ff70459d2401541505fc56","ipfs_datasets_py.logic.security_ir.model":"abc3aea9c2f4d1ce513ee2c9fc4c304d8bd387ded18e0d646247417422225d39","ipfs_datasets_py.logic.software_verification.program":"f051f42d64c5f993451972924953cc7eaa6d17df097235ddabfd5d791d406f91","ipfs_datasets_py.logic.ui_ux_ir.decoder":"21e8315b0054f7755512212d610d4e3f5f4ac86387f3b27edb9632fa8ca68bc3","ipfs_datasets_py.logic.ui_ux_ir.schema":"8a7b0cc90151043514d263b1a2655d6d41a2835dacd6b56018ba5c0c89961855","ipfs_datasets_py.optimizers.logic_theorem_optimizer.modal_latent_formula":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36"},"runtime":"66c5ee320f9c7aacd3b246d0666c7fc3ee928e4679892e1e90c838e1b291dbc6","scope":"listed_numerical_and_native_validator_modules_only"},"numerical":{"files":{"canonical_contracts.py":"d66ecfaa2c967cda40a1cf4b82936a34039e38ccdb3044468697a4f90af2844b","legal_formula_codec.py":"f90769a3d99131da5ba48bb84c6f830f521c92d98122bdaaa8dd88fc65042290","legal_ir_grammar_decoder.py":"0b1eae24b00157ae74a2700f23ca95c7f9957dc755078caaf179e64070fdeffd","modal_latent_formula.py":"ec5bdcd752d157c9fc0257a45551cfe9ce7be172af767e8ed769bf1bc8a31d36","tree_pin.py":"587165942fb06ea9effc836b555e0ac0606c5876b013a374a1e76d25ee069e4d"},"scope":"listed_latent_decoder_and_grammar_sources_only"},"runtime_sha256":"8de8096e895de9df08ccf5352dfd704806823296821d98b5badf08bb553a52e4"}},"public_api_sha256":"3237d133cf9c67c616e6cc9420e263534dfc4ba4bc1c2b866f3948fdcdcd417a","recipe_sha256":"c6dda0f85937f7ece993cf0bc82aebc72144457507db218cf83f9c9b495994a4","scope":"recipe_public_api_named_ui_semantics_and_decoder_declared_modules","ui_semantic_contracts":{"ui_flogic":"2671912bf789bf3c8ea6412023006c0436a3fd838b7e787a41f9743e102a6909","ui_semantic_components":"72567a0e24bae8d2c0cac70bd06e4b7249016de271c35be6d215bccd054018c5","ui_source_contract_384":"09fe94c4cc04cc6df1d302d5fbeb87141d5dbda5aec33d12bb626201dc01790a"}},"numerics_sha256":"3b811e6b271c6389bdd4e790daf8b442ce4c62a6c63f5f615900f175110afe28"}},"profile":"codebase_ir/source_conditioned_384_v1","schema":"codebase-source-384-generation@1"} \ No newline at end of file