diff --git a/.gitignore b/.gitignore index 85198aa..3235823 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,6 @@ docs/ # Dotenv file .env + +# Python env +venv diff --git a/.gitmodules b/.gitmodules index 888d42d..98ffb6a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "lib/forge-std"] path = lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "lib/dss-test"] + path = lib/dss-test + url = https://github.com/makerdao/dss-test diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/LICENSE @@ -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/README.md b/README.md index 9265b45..320c686 100644 --- a/README.md +++ b/README.md @@ -1,66 +1,60 @@ -## Foundry +## Conv -**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.** +**Onchain repository for DSS rates** -Foundry consists of: +Conv stores all per-second DSS rates for annualized BPSs in a single on-chain repository. -- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools). -- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data. -- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network. -- **Chisel**: Fast, utilitarian, and verbose solidity REPL. +### Motivation -## Documentation +Useful for validation using human-friendly notation, which drastically reduces the cognitive overhead when checking rates. -https://book.getfoundry.sh/ +Requirements: +- The rates need to have full precision compared to rates currently used in DSS (https://ipfs.io/ipfs/QmVp4mhhbwWGTfbh2BzwQB9eiBrQBKiqcPRZCaAxNUaar6) +- Read cost should be reasonable, allowing other components of the system to use it without too much overhead. +- The contract needs to be deployable efficiently (low priority, one time cost). -## Usage +### Design -### Build +We explored several ways to store or calculate rates onchain and arrive at this approach, for details see [this](https://github.com/dewiz-xyz/conv-research). -```shell -$ forge build -``` +The contract makes use of optimized storage to ease the cost of deployment. Each rate is stored as `rate - RAY`, so only the relevant part of the rate takes space in storage. Each rate is stored in 8 bytes, so every storage position fits exactly four rates. -### Test +On reads, the function `btor(bps)` will fetch the correct storage slot, fetch the desired rate within it, add one RAY and return the result -```shell -$ forge test -``` +### Limitations -### Format +- Since rates are stored in 8 bytes, the max BPS that can be used without reimplementing this contract is **7891**. +- EIP-170: Due to contract size limits on Ethereum mainnet, the ceiling for rates is 6k. On L2s that do not enforce the limit this does not apply. +- Gas cost of deployment: With the current 30M block gas ceiling on Ethereum mainnet, up to ~5.5k rates can be stored. -```shell -$ forge fmt -``` +## Deployments -### Gas Snapshots +- **5000bps Ethereum Mainnet**: tbd -```shell -$ forge snapshot -``` +## Usage -### Anvil +### Build ```shell -$ anvil +$ forge build ``` -### Deploy +### Test ```shell -$ forge script script/Counter.s.sol:CounterScript --rpc-url --private-key +$ forge test ``` -### Cast +### Gas Snapshots ```shell -$ cast +$ forge snapshot ``` -### Help +### Deploy ```shell -$ forge --help -$ anvil --help -$ cast --help -``` +$ forge script script/ConvDeploy.s.sol:ConvDeployScript \ + --rpc-url $ETH_RPC_URL \ + --broadcast +``` \ No newline at end of file diff --git a/foundry.toml b/foundry.toml index 25b918f..d353b20 100644 --- a/foundry.toml +++ b/foundry.toml @@ -3,4 +3,12 @@ src = "src" out = "out" libs = ["lib"] +solc = '0.8.24' + +optimizer = true +optimizer_runs = 1 + +[fuzz] +runs = 256000 + # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/lib/dss-test b/lib/dss-test new file mode 160000 index 0000000..dd3ff09 --- /dev/null +++ b/lib/dss-test @@ -0,0 +1 @@ +Subproject commit dd3ff0970cded87ebd875120220225e72cd8c75a diff --git a/script/ConvDeploy.s.sol b/script/ConvDeploy.s.sol new file mode 100644 index 0000000..1be262d --- /dev/null +++ b/script/ConvDeploy.s.sol @@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: © 2025 Dai Foundation +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// 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 . +pragma solidity ^0.8.24; + +import {Script} from "forge-std/Script.sol"; +import {ScriptTools} from "dss-test/ScriptTools.sol"; +import {Conv} from "src/Conv.sol"; + +contract ConvDeployScript is Script { + using ScriptTools for string; + + string constant NAME = "conv-deploy"; + string config; + + function run() external { + vm.startBroadcast(); + + Conv conv = new Conv(); + + vm.stopBroadcast(); + + ScriptTools.exportContract(NAME, "conv", address(conv)); + } +} diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol deleted file mode 100644 index 606ce0d..0000000 --- a/script/Deploy.s.sol +++ /dev/null @@ -1,59 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "forge-std/Script.sol"; -import "../src/Rates.sol"; -import "../src/repositories/Rates0To799.sol"; -import "../src/repositories/Rates800To1599.sol"; -import "../src/repositories/Rates1600To2399.sol"; -import "../src/repositories/Rates2400To3199.sol"; -import "../src/repositories/Rates3200To3999.sol"; -import "../src/repositories/Rates4000To4799.sol"; -import "../src/repositories/Rates4800To5599.sol"; -import "../src/repositories/Rates5600To6399.sol"; -import "../src/repositories/Rates6400To7199.sol"; -import "../src/repositories/Rates7200To7999.sol"; -import "../src/repositories/Rates8000To8799.sol"; -import "../src/repositories/Rates8800To9599.sol"; -import "../src/repositories/Rates9600To10000.sol"; - -contract DeployScript is Script { - function run() external { - vm.startBroadcast(); - - address[] memory rateAddresses = new address[](13); - rateAddresses[0] = address(new Rates0To799()); - rateAddresses[1] = address(new Rates800To1599()); - rateAddresses[2] = address(new Rates1600To2399()); - rateAddresses[3] = address(new Rates2400To3199()); - rateAddresses[4] = address(new Rates3200To3999()); - rateAddresses[5] = address(new Rates4000To4799()); - rateAddresses[6] = address(new Rates4800To5599()); - rateAddresses[7] = address(new Rates5600To6399()); - rateAddresses[8] = address(new Rates6400To7199()); - rateAddresses[9] = address(new Rates7200To7999()); - rateAddresses[10] = address(new Rates8000To8799()); - rateAddresses[11] = address(new Rates8800To9599()); - rateAddresses[12] = address(new Rates9600To10000()); - - Rates rates = new Rates(rateAddresses); - - vm.stopBroadcast(); - - console.log("Deployed contracts:"); - console.log("Main Rates contract:", address(rates)); - console.log("\nRate repository contracts:"); - for (uint i = 0; i < rateAddresses.length; i++) { - console.log( - string(abi.encodePacked( - "Repository contract for rates between ", - vm.toString(i * 800), - "-", - i == 12 ? "10000" : vm.toString((i + 1) * 800 - 1), - ": ", - vm.toString(rateAddresses[i]) - )) - ); - } - } -} diff --git a/script/generate_compact_rates.py b/script/generate_compact_rates.py new file mode 100644 index 0000000..46128e9 --- /dev/null +++ b/script/generate_compact_rates.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 + +import struct + +def int_to_bytes8(n: int) -> str: + """Convert integer to 8-byte hex string in big-endian format for Solidity.""" + # Convert to hex, remove '0x' prefix, pad to 16 chars (8 bytes) + return format(n & ((1 << 64) - 1), '016x') + +def parse_rates_mapping(file_path, max_bps=5000): + """Parse rates from RatesMapping.sol up to max_bps.""" + rates = {} + with open(file_path, 'r') as f: + for line in f: + if 'rates[' in line and '] =' in line: + parts = line.strip().split('rates[')[1].split('] =') + bps = int(parts[0]) + if bps <= max_bps: # Only include rates up to max_bps + rate = int(parts[1].strip().rstrip(';')) + rates[bps] = rate + return rates + +def pack_rates(rates): + packed = bytearray() + for rate in rates: + # Pack each rate as a full 8-byte value + packed.extend(rate.to_bytes(8, 'big')) + return bytes(packed) + +def generate_contract() -> str: + """Generate compact bytes representation and contract for all rates in RatesMapping.sol.""" + RAY = 10**27 + all_bytes = [] + + # Get rates from RatesMapping.sol + rates = parse_rates_mapping('test/RatesMapping.sol') + + # Sort rates by bps to ensure correct order + sorted_bps = sorted(rates.keys()) + start_bps = sorted_bps[0] + end_bps = sorted_bps[-1] + + # Generate rates based on the mapping, ensuring 4 rates per word + for i in range(0, len(sorted_bps), 4): + word_rates = [] + # Get next 4 rates (or pad with zeros if at the end) + for j in range(4): + if i + j < len(sorted_bps): + bps = sorted_bps[i + j] + rate = rates[bps] + # Store rate - RAY, ensure it fits in uint64 + adjusted_rate = rate - RAY + if adjusted_rate >= (1 << 64): + raise ValueError(f"Rate difference too large for bps {bps}: {adjusted_rate}") + hex_rate = int_to_bytes8(adjusted_rate) + else: + # Pad with zeros if we don't have enough rates + hex_rate = '0' * 16 + word_rates.append(hex_rate) + all_bytes.extend(word_rates) + + # Join all bytes into one big hex string without length prefix + compact_bytes = f'hex"{"".join(all_bytes)}"' + + # Create the contract + contract_template = f'''// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +contract Conv {{ + uint256 constant public MAX = {end_bps}; + uint256 constant internal RAY = 10**27; + + // Each rate takes 8 bytes (64 bits), total of {len(sorted_bps)} rates + // Each storage word (32 bytes) contains exactly 4 rates + // Total size = {len(sorted_bps)} * 8 = {len(sorted_bps) * 8} bytes + bytes internal RATES; + + constructor() {{ + RATES = {compact_bytes}; + }} + + /// @notice Fetches the rate for a given basis points value + /// @param bps The basis points value to get the rate for + /// @return rate The annual rate value + function turn(uint256 bps) public view returns (uint256 rate) {{ + require(bps <= MAX); + + assembly {{ + let offset := mul(bps, 8) // Each rate is 8 bytes + let wordPos := div(offset, 32) // Which 32-byte word to read + let bytePos := mod(offset, 32) // Position within the word + + let dataSlot := keccak256(RATES.slot, 0x20) + + let value := sload(add(dataSlot, wordPos)) + + let shifted := shr(mul(sub(24, bytePos), 8), value) + + rate := add(and(shifted, 0xFFFFFFFFFFFFFFFF), RAY) + }} + }} +}}''' + return contract_template + +def main(): + """Generate and write the contract.""" + contract = generate_contract() + print(contract) + +if __name__ == '__main__': + main() diff --git a/script/generate_rates_contract.py b/script/generate_rates_contract.py deleted file mode 100644 index 2ffd148..0000000 --- a/script/generate_rates_contract.py +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env python3 - -import sys -from typing import Dict, List -import os - -def extract_rates_from_mapping(solidity_file: str, start_bps: int, end_bps: int) -> Dict[int, str]: - """Extract the rates mapping from the RatesMapping contract within the specified range.""" - rates = {} - with open(solidity_file, 'r') as f: - for line in f: - if 'rates[' in line and '] =' in line: - parts = line.strip().split('=') - bps = int(parts[0].split('[')[1].split(']')[0]) - if start_bps <= bps <= end_bps: - rate = parts[1].strip().rstrip(';') - rates[bps] = rate - return rates - -def generate_switch_block(rates: Dict[int, str], start: int, end: int, indent: str = "") -> str: - """Generate a binary search switch block for a range of rates.""" - if end - start <= 25: # Base case: generate direct switch for small ranges - cases = [] - cases.append(f"{indent}switch bps") - for bps in range(start, end + 1): - if bps in rates: - cases.append(f"{indent} case {bps} {{ rate := {rates[bps]} }}") - cases.append(f"{indent} default {{ revert(0, 0) }}") - return "\n".join(cases) - - mid = (start + end) // 2 - return f"""{indent}switch gt(bps, {mid}) -{indent} case 0 {{ // {start}-{mid} -{generate_switch_block(rates, start, mid, indent + " ")} -{indent} }} -{indent} case 1 {{ // {mid+1}-{end} -{generate_switch_block(rates, mid + 1, end, indent + " ")} -{indent} }} -{indent} default {{ revert(0, 0) }}""" - -def ensure_directory_exists(filepath: str): - """Ensure the directory for the given file path exists.""" - directory = os.path.dirname(filepath) - if not os.path.exists(directory): - os.makedirs(directory) - -def generate_test_file(output_file: str, contract_name: str): - """Generate the test file for the contract.""" - ensure_directory_exists(output_file) - test = f"""// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/{contract_name}.sol"; - -contract {contract_name}Test is RatesBase {{ - function createCalculator() internal override returns (RatesLike) {{ - return RatesLike(address(new {contract_name}())); - }} -}}""" - - with open(output_file, 'w') as f: - f.write(test) - -def generate_contract(input_file: str, contract_name: str = "Rates", start_bps: int = 0, end_bps: int = 800): - """Generate the optimized Rates contract for a specific range.""" - # Determine output paths - script_dir = os.path.dirname(os.path.abspath(__file__)) - repo_dir = os.path.dirname(script_dir) - contract_file = os.path.join(repo_dir, "src", "repositories", f"{contract_name}.sol") - test_file = os.path.join(repo_dir, "test", "repositories", f"{contract_name}.t.sol") - - rates = extract_rates_from_mapping(input_file, start_bps, end_bps) - if not rates: - print(f"No rates found in input file for range {start_bps}-{end_bps}") - return - - contract = f"""// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract {contract_name} {{ - uint256 constant public MIN = {start_bps}; - uint256 constant public MAX = {end_bps}; - - function turn(uint256 bps) external pure returns (uint256 rate) {{ - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly {{ -{generate_switch_block(rates, start_bps, end_bps, " ")} - }} - }} -}}""" - - # Generate the contract file - ensure_directory_exists(contract_file) - with open(contract_file, 'w') as f: - f.write(contract) - print(f"Generated contract file: {contract_file}") - - # Generate the test file - generate_test_file(test_file, contract_name) - print(f"Generated test file: {test_file}") - -def generate_all_contracts(input_file: str, step: int = 800, max_bps: int = 10000): - """Generate contracts for all ranges up to max_bps in given step increments.""" - start = 0 - while start < max_bps: - end = min(start + step - 1, max_bps) # -1 because each range should not overlap - contract_name = f"Rates{start}To{end}" - print(f"\nGenerating contract for range {start}-{end}...") - generate_contract(input_file, contract_name, start, end) - start += step - -if __name__ == "__main__": - if len(sys.argv) == 2: - # If only input file is provided, generate all contracts - input_file = sys.argv[1] - generate_all_contracts(input_file) - elif len(sys.argv) == 5: - # If all arguments are provided, generate single contract - input_file = sys.argv[1] - start_bps = int(sys.argv[2]) - end_bps = int(sys.argv[3]) - contract_name = sys.argv[4] - generate_contract(input_file, contract_name, start_bps, end_bps) - else: - print("Usage:") - print(" To generate all contracts:") - print(" python generate_rates_contract.py ") - print(" To generate a single contract:") - print(" python generate_rates_contract.py ") - sys.exit(1) diff --git a/script/generate_rates_mapping.py b/script/generate_rates_mapping.py new file mode 100755 index 0000000..eb5c47c --- /dev/null +++ b/script/generate_rates_mapping.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python3 + +import requests +import re +from pathlib import Path + +def fetch_ipfs_data(ipfs_url): + response = requests.get(ipfs_url) + if response.status_code != 200: + raise Exception(f"Failed to fetch data from {ipfs_url}") + return response.text + +def parse_rates(text): + rates = {} + pattern = r'(\d+\.\d+)%: (\d+)' + + for line in text.split('\n'): + line = line.strip() + if not line: + continue + + match = re.match(pattern, line) + if match: + percentage = float(match.group(1)) + value = match.group(2) + # Convert percentage to index by multiplying by 100 and rounding + index = round(percentage * 100) + rates[index] = value + + return rates + +def generate_solidity_contract(rates): + contract_template = '''// SPDX-License-Identifier: AGPL-3.0-or-later +pragma solidity ^0.8.24; + +contract RatesMapping { + mapping(uint256 => uint256) public rates; + + constructor() { +%s + } +}''' + + # Generate constructor body + constructor_lines = [] + for index, value in sorted(rates.items()): + constructor_lines.append(f" rates[{index}] = {value};") + + constructor_body = "\n".join(constructor_lines) + return contract_template % constructor_body + +def main(): + ipfs_url = "https://ipfs.io/ipfs/QmVp4mhhbwWGTfbh2BzwQB9eiBrQBKiqcPRZCaAxNUaar6" + output_file = Path("/Users/odd/Documents/rates-repository/test/RatesMapping.sol") + + # Fetch and combine all chunks + print("Fetching data from IPFS...") + data = fetch_ipfs_data(ipfs_url) + + # Parse the rates + print("Parsing rates...") + rates = parse_rates(data) + print(f"Found {len(rates)} rates") + + if len(rates) == 0: + print("No rates found! Sample of data received:") + print(data[:500]) + return + + # Generate the Solidity contract + print("Generating Solidity contract...") + contract = generate_solidity_contract(rates) + + # Write the contract to file + print(f"Writing contract to {output_file}...") + output_file.write_text(contract) + print(f"Done! Generated {len(rates)} rates entries.") + +if __name__ == "__main__": + main() diff --git a/script/output/1/README.md b/script/output/1/README.md new file mode 100644 index 0000000..d279227 --- /dev/null +++ b/script/output/1/README.md @@ -0,0 +1 @@ +Outputs for Mainnet scripts. \ No newline at end of file diff --git a/src/Conv.sol b/src/Conv.sol new file mode 100644 index 0000000..1ebc40a --- /dev/null +++ b/src/Conv.sol @@ -0,0 +1,107 @@ +// SPDX-FileCopyrightText: © 2025 Dai Foundation +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// 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 . + +pragma solidity ^0.8.24; + +/// @custom:authors [Oddaf] +/// @custom:reviewers [] +/// @custom:auditors [] +/// @custom:bounties [] +contract Conv { + /// @notice The max bps supported in bps -> rate conversion. + uint256 public constant MAX = 50_00; + /// @dev `ray` precision + uint256 internal constant RAY = 10 ** 27; + /// @dev `bps` precision + uint256 internal constant BPS = 100_00; + + // Each rate takes 8 bytes (64 bits), total of 5001 rates + // Each storage word (32 bytes) contains exactly 4 rates + // Total size = 5001 * 8 = 40008 bytes + bytes internal RATES; + + constructor() { + RATES = + hex"0000000000000000000b43d83715d0b0001687669d710caf0021caab36d8f947002d0da6071491820038505711ea862d004392be5b213de3004ed4dbe67ed513005a16afb7c91e0700655839d2c5a0eb0070997a3b399bdb007bda70f4ea02de00871b1e039b7ffc00925b816b12733a009d9b9b2f12f2a800a8db6b5360ca6800b41af1dbbf7cb100bf5a2ecbf241dd00ca992227bc086b00d5d7cbf2df750a00e1162c311ee2a100ec5442e63c625200f7921015f9bb870102cf93c4186bf7010e0ccdf459a7aa011949beaa7e590a01248665ea4720e1012fc2c3b7745664013afed815c6073d01463aa308fbf78e0151762494d5a1fb015cb15cbd1237b30167ec4b8570a075017326f0f1af7a96017e614d058d1b0f01899b5fc4c78d7b0194d529331c942801a00ea95449a81901ab47e02c0bf90d01b680cdbe206d8a01c1b9720e43a2e201ccf1cd2031ed3b01d829def7a7579701e361a7985fa3d901ee992706164ad201f9d05d44867c420205074a576b1ee202103dee427ed06f021b7449097be5aa0226aa5ab01c6a680231e0233a1a2191023d15a2ab2e852e02484ad90712c66e02537fc6517fcdac025eb46a8e2e3a790269e8c5c0d663a102751cd7ed305735028050a116f3da8e028b842141d86a5d0296b75871953aa702a1ea46a9e136d602ad1cebee7301ba02b84f484300f59502c3815bab41242002ceb3262ae9569102d9e4a7c5af0da602e515e07f4781ab02f046d05b67a27f02fb77775dc4179d0306a7d58a1140260311d7eae40332e4031d07b76f4dbe540328373b2fa468ac0333667628ba6fe4033e95685e42c9bc0349c411d3f023c40354f2728d74e3620360208a8e8325db036b4e59daccc05903767be076033ff40381a91e63d7e9b9038cd613a7fbbaae039802c0461f67de03a32f2441f35e5f03ae5b3f9f27c35703b98712616c740603c4b29c8c7105ca03cfddde23e4c62903db08d72b76badd03e63387a6d5a1ce03f15def99aff12703fc880f07b3d7560407b1e5f48f3b140412db7463efbb6e041e04ba5982afcc04292db7d8f527f80434566ce5f3ec23043f7ed9842b7cef044aa6fdb74813770455ced982f5a1540460f66ceadfd0a5046c1db7f2b20414047744ba9e1756e204826b74f0ba9cee048d91e6ee4662b50498b8109a64ed6004a3ddf1f8c03acb04af038b0d02018a04ba28dbdad3b0f004c54de465de711704d072a4b1cb22e804db971cc242602204e6bb4c9aec7b6004f1df343f71802204fd02d3b37932d10508262afaab10ca0513493a18ae5063051e6c011129e0f305298e7fe7c46ada0534b0b6a0244f83053fd2a53defa975054af44bc4cc4c50055615aa385fc4db056136c09c4f5907056c578ef44007fa0577781543d68a12058298538eb750f1058db849d886877d0598d7f824e811f005a3f75e777f8dd905af167cd3f0522505ba35533ddd6f2605c553e1b8e9ae9805d0722848b793ae05db9026f0e95b1405e6adddb520faf605f1cb4c9900230b05fce873a0283c9606080552ce3a6a77061321ea26d78926061e3e39ada02ec406295a416634ab1c06347601543507ad063f91797b4107b0064aaca9def828210655c79282f99fc20660e2336ae45f29066bfc8c9a5710bc0677169e14f018c606823067de4d9573068d49e9fa0d5eda069863246bcd070906a37c173729da0406ae94c25fc0ddd406b9ad25e92ed28606c4c541d710323b06cfdd162d01312506daf4a2ee9dbd9a06e60be81f81800e06f122e5c347db2306fc399bdd8bebb00707500a71e888c10712663183f843a8071d7c11175567f8072891a92f99fb990733a6f9d05fbec4073ebc02fd402c110749d0c4b9d4787c0754e53f09b5936a075ff971f07c26b4076b0d5d71c096a907762101911b02190781345e5223425c078c4773b870eb5607975a41c79b4b8007a26cc883396bf007ad7f07eee2105b07b891000e2bb72507c3a2b0e4ac995e07ceb41a75faaad107d9c53cc5ab9a0407e4d617d754d04707efe6abae8b71b207faf6f84ee45d33080606fdbbf42c93081116bbf94f347b081c26330a89847a08273562f336e7150832444bb6eae1bf083d52ed5938b4ef08486147ddb35c1d08536f5b47ed8dca085e7d279b79bb8e08698aacdbea1215087497eb0cd0792f087fa4e231be93ce088ab1924e45c0150895bdfb65f7175c08a0ca1d7c636e3408abd5f8951b547108b6e18cb3af153208c1ecd9dbaeb6e408ccf7e010a9fb4b08d8029f56305f8c08e30d17afd11c2c08ee1749211b252008f92133ad9d29ce09042ad758e59515090f343426828d54091a3d4a1a01f4720925461936f167e409304ea180de40b5093b56e2fb55938809465edda9e430a8095166919016a406095c6dfeb1793544096775251197e7bb09727c04b3fe7a83097d829d9c386877098888efcdd0e84109938efb4c52ec5b099e94c01b49231809a99a3e3e3df6ab09b49f75b8bb8d3409bfa4668e4bc8b709caa910c278473409d5ad7458ca62a509e0b19154cb310409ebb567ba03845709f6b8f78bfbeab20a01bc40ce3cae3f0a0cbf43844dd5490a17c1ffb1b7223d0a22c4755a0013b10a2dc6a480afe4720a38c88d294d8b810a43ca2f575fbc210a4ecb8b0e6ce5da0a59cca051fb34810a64cd6f259090410a6fcdf78cb29d9c0a7ace398ae6bd780a85ce3523b20d230a90cdea5a9966570a9bcd5933215f460aa6cc81b0ce4aa00ab1cb63d72437940abcc9ffa9a6f1de0ac7c8552bda01c80ad2c6646140ac360addc42d4d5df2a70ae8c1aff3b493420af3beec57c708d90afebbe27d178aec0b09b89267280dba0b14b4fc197a423e0b1fb11f978f96390b2aacfce4e9343d0b35a894050803aa0b40a3e4fb6ca8bf0b4b9eefcb97849c0b5699b47908b5450b619433074015b10b6c8e6b79bd3dca0b77885dd3ff82780b82820a1985f5a20b8d7b704dcf663b0b987490745a60460ba36d6a90a52cdd0bae65fea62dd2370bb95e4cb87213ad0bc45654caef71c50bcf4e16e1232a360bda4592fe8a37ef0be53cc926a1531d0bf033b95ce4f1320bfb2a63a4d144ef0c0620c801e23e650c1116e677938afd0c1c0cbf096095830c270251bac486290c31f79e8f3a428c0c3ceca58a3c6dbe0c47e166af45684c0c52d5e201cf50440c5dca178554013d0c68be073d4d14580c73b1b12d33e04f0c7ea515588179770c899833c2aeb1c60c948b0c6f3418da0c9f7d9f6189fc030caa6fec9d2866420cb561f42587205d0cc053b5fe1db0d50ccb45322a635bf90cd63668adcf23e60ce127598bd7c8920cec1804c7f3c7cf0cf7086a65995d540d01f88a683e82c10d0ce864d358efab0d17d7f9aa5e19990d22c748f0c334150d2db652a9fd30ad0d38a516d980bef80d43939582c24ca20d4e81cea936056e0d596fc2504fd33e0d645d707b835e1b0d6f4ad92e440c380d7a37fc6c0501fc0d8524da383922080d90117296530d3b0d9afdc589c522bc0da5e9d316017ffe0db0d59b3e7a00c80dbbc11e06a03f380dc6ac5b71e593d00dd1975383bb15790ddc82063f9199860de76c73a8d9b3c00df2569bc303b66a0dfd407e917fb24a0e082a1c17bd76ab0e131374592c91650e1dfc87593c4ee70e28e5551b5bba3b0e33cddda2f99d0a0e3eb620f3847fa50e499e1f106aa90f0e5485d7fd1a1efa0e5f6d4bbd00a5d90e6a547a538bc0dd0e753b63c428b2010e80220812447a0d0e8b0867414bd89f0e95ee8154ab4c330ea0d4564fcf12230eabb9e6362326b40eb69f310b1345190ec18436d20ae77a0ecc68f78e7546fc0ed74d7343bd5bc60ee231a9f54ddd060eed159ba69140fc0ef7f9485af1bcfc0f02dcb015d945760f0dbfd2dab18dfb0f18a2b0ace409470f2385498fd9e9440f2e679d86fc1f140f3949ac95b35b110f442b76bf680cda0f4f0cfc078263570f59ee3c716a4cbf0f64cf380087769d0f6fafeeb8414ddb0f7a90609bfefec20f85708daf2775080f905075f5215bce0f9b301971531dad0fa60f782722e4b90fb0ee9219f69a8b0fbbcd674d33e83f0fc6abf7c44036860fd18a438280ada40fdc684a8b5a35770fe7460ce23175840ff2238a8a6ad4f30ffd00c3876a7a9f1007ddb7dc944d161012ba678d4bf2a3101d96d29cf4d151102872f90ef20ef510334edae6a69133103e2a782774fd82104905d0d4bfb9361053e0e4f1e8e984105ebbb4825273881069963f895dfc4f107470860a6ce8d6107f4a8808e05e19108a2445881941151094fdbe8b7836cc109fd6f3165da45010aaafe32c29aec410b5888ed03c3b6b10c060f605f4efa410cb3918d0b330f610d610f733d6251610e0e89132bcb1ed10ebbfe6d0c57d9e10f696f8114eee8a11016dc4f7b72b5c110c444d875c1b0711171a91c39b64d51121f091afd2706a112cc64d4f5e65c411379bc4a59c2d4d114270f7b5e86fd8114d45e6839f96ab11581a91121dcb841162eef764bef8a0116dc3197edec8c3117896f763d8a73911836a911707bfe2118e3de69bc6ff36119910f7f571124911a3e3c5276066d511aeb64e34ef2b3f11b9889321774e9b11c45a93f05280b611cf2c50a4da321811d9fdc94267940e11e4cefdcc5398af11ef9fee45f6f2e011fa709ab2aa165e1205410315c537c11210112772a04c86121ae107cc930b0f1225b0a426f4eaad12307ffc851d23ac123b4f10ea62af4c12461de15a1c47d21250ec6dd7a0688b125bbab666454dd1126688bb0960f5131271567bc4491cd8127c23f89a5344c81286f1318ed4adb51291be26a5225999129c8ad7e0910ba512a757454475483e12b2236ed423550f12bcef5492ef390212c7baf6842cbc5112d28654ab2f688512dd516f0b4a888112e81c45a7d1288312f2e6d88416163012fdb127a36be09713087b330924d836131344fab8930f02131e0e7eb508586d1328d7bf01d6496c1333a0bba24e387d133e697499c13dac134931e9eb80329b1353fa1b9adbb289135ec209ab241a53136989b41fa9887e1374511afbbbdd41137f183e42aaba821389df1df7c583e11394a5ba1e5b5ec2139f6c12b9bb324b13aa3227cd33a77013b4f7f95c1328f613bfbd8769a7e37b13ca82d1f93fc57d13d547d90e287f5c13e00c9cabaf836413ead11cd52205cf13f595598dccfcd314005952d8fd209e140b1d08b9feeb621415e07b341e995c1420a3aa4aa828d6142b669600e75a2e1436293e5a27afe11440eba359b46e88144badc502d89ce714566fa358df03ef1461313e5f122ec2146bf29618bc6abd1476b3aa8927c77d1481747bb39e16e2148c35099b68ed1b1496f55443d1a0a414a1b55bb0214a5514ac751fe3a0c55e14b734a0e198af5b14c1f3dead51684814ccb2d94a13129714d77190bb25932e14e2300503d0916d14ecee36275b773714f7ac24290d70f9150269cf0c2d6da7150d2736d4021ecf1517e45b83d1f8971522a13d1ee331c1152d5ddba87bc3ba15381a3723e16a971542d64f9459a51f154d9224fd29b4d215584db761969ded15630906c4e5276f156dc4132a59db2215787edc953905a01583396308c6b656158df3a68846bf8e1598ada716fcb67315a36764b82bf31815ae20df6f17907c15b8da173f026c9215c3930c2b2f284715ce4bbe36e0278515d9042d6557913b15e3bc59b9d74f6715ee744337a10f1215f92be9e1f640601603e34dbc181691160e9a6ec94788081619514d0cc54e4e162407e889d1e61f162ebe4143ad8f66163974573d984d4d16442a2a7ad1e63f164edfbafe99e3e716599508cc2f934316644a13e6d204a0166efedc51c00ba11679b36210383f4b168467a52578fa05168f1ba594c0599f1699cf63614c3f5816a482de8e5a4fe816af36171f27f37d16b9e90d16f255cb16c49bc078f6660916cf4e314870d70016da005f889e1f0716e4b24b3cba781116ef63f46801dfad16fa155b0db017111704c67f3100a31b170f7760d52ecc5a171a27fffd759f161724d85cad0feb4e172f8876e73844c6173a384eaf2903081744e7e4081c416c174f9736f54bdf1f175a464779f17f261764f51599468862176fa3a15684259e177a51eab4e3458c1784fff1b79c9ad0178fadb661e89c05179a5b38b6ff83c017a50878ba19509a17afb5766e6dc53317ba6231d734683817c50eaaf7a4846c17cfbae1d2f528a717da66d66c5d27e317e51288c713194017efbdf8e64d580617fa6926cd4203af180514127f26ffea180fbebbff31f4a4181a692350984e0a18251348768f3c92182fbd2b744bb4fe183a66cc4d0270671845102b03e7ec38184fb9479c306a43185a6222190ff0b818650aba7dba4a35186fb310cd6305c7187a5b250b3d76f1188502f73a7cb5b2188faa875e539e8a189a51d579f4d28118a4f8e19092b72918af9faba55f76ab18ba4633bb8cffc718c4ec79d64d05d918cf927df8d100e318da3840264a2d9218e4ddc061e98d3e18ef82feaedfe5f818fa27fb105dc28d1904ccb589937287190f712e1db10a37191a1564cfe662bc1924b959a3631a07192f5d0c9b5692de193a007dbaeff4e61944a3ad055e2ca7194f469a7dcfeb921959e9462773a80419648bb005779d53196f2dd81b09cbca1979cfbe6b57f8b619847162f98fae69198f12c5c8de3c3f1999b3e6dc70b6a719a454c63773f72219aef563dd149c5219b995bfd07f09f819c435da14df68fc19ced5b2ad61a77519d975499d3178ab19e4149ee77a552119eeb3b28f677a9319f952849823ec071a03f11504da71c91a0e8f63d8b599731a192d7116dfb5f71a23cb3cc282dfa11a2e68c6dec8f41a1a39060f6edb96741a43a31675e42f2c1a4e3fdbf70bec2e1a58dc5ff57bc0de1a6378a2745c661e1a6e14a376d65a4f1a78b0630011e15c1a834be1133704bd1a8de71db36d937a1a988218e3dd223a1aa31cd2a7ad0b391aadb74b02046e611ab85181f60a313d1ac2eb7786e4ff0c1acd852bb7bb48bf1ad81e9e8bb345031ae2b7d005f2f0451aed50c029a00cb61af7e96ef9e022551b0281dc79d87eec1b0d1a08acae36221b17b1f3958621771b22499d3784e04a1b2ce10595ced7e71b37782cb38833811b420f1293d4e4411b4ca5b739d8a1461b573c1aa8b6e7af1b61d23ce392fa991b6c681ded8fe32f1b76fdbdc9d070a71b81931c7b77384d1b8c283a05a695851b96bd166b80a9d21ba151b1b0275cdb1babe60bd6bc5c741bb67a24e2611c9b1bc10dfcd636d78a1bcba193b55e8daf1bd634e982f905bf1be0c7fe4226ccaf1beb5ad1f60835c41bf5ed64a1bd5a901c007fb648661aff1c0b11c6ed221d561c15a3969310ce3d1c2035253d5160c41c2ac672ef02ce671c35577fab43d7121c3fe84b7533012c1c4a78d64fee99981c5509203e94b3ba1c5f9929444329801c6a28f164179b671c74b878a12f707d1c7f47befea7d6691c89d6c47f9dc1721c946589272dec811c9ef40cf874d9291ca9824ff68ecfad1cb410522497df021cbe9e1385abdcd81cc92b941ce665a01cd3b8d3ed62dc8d1cde45d2fa3c6b9c1ce8d291468e039d1cf35f0ed5725c341cfdeb4baa03f3dd1d087747c75d0ff91d1303033097bcca1d1d8e7de8cdcd811d2819b7f318dc3d1d32a4b152924a141d3d2f6a0a533f181d47b9e21d74aa5b1d5244198f0f41f81d5cce10623b83121d6757c69a11b1e01d71e13c39a9d9b11d7c6a71441bccec1d86f365bc7f251f1d917c19a5eb42fb1d9c048d03774e601da68cbfd83a36601db114b2274ab1441dbb9c63f3bf3c8f1dc623d540ae1d0e1dd0ab06112d5ecc1ddb31f66852d52b1de5b8a649341ad81df03f15b6e691de1dfac544b47f639f1e054b33451380e61e0fd0e16bb7a1e51e1a564f2b8046381e24db7c8781b4f11e2f606982cffc9d1e39e516207ef3431e44698263a2366f1e4eedae4f4d2b341e597199e692fe371e63f5452c86a3af1e6e78b0243ad7691e78fbdad0c21cd31e837ec5352ebf001e8e016f5492d0a91e9883d932002c391ea30602d08873cb1ead87ec333d11361eb809955d2f360f1ec28afe516fdbaf1ecd0c27130fc3381ed78d0fa51f759c1ee20db80aaf439e1eec8e2046cf45df1ef70e485c8f5cdb1f018e304eff30f41f0c0dd8212e32751f168d3fd62b99991f210c677106668e1f2b8b4ef4cd617b1f3609f6648f1a891f40885dc359e9e01f4b0685143befb71f55846c5a4314521f600213987d08081f6a7f7ad1f7434b1f74fca209bf06ab1f7f798942e15adf1f89f630806b10c31f947297c568c1651f9eeebf14e6ce081fa96aa671f160261fb3e64ddf94697a1fbe61b560dba4011fc8dcdcf8d292041fd357c4aa847e1a1fddd26c78fc7b2d1fe84cd4674564801ff2c6fc7869ddb81ffd40e4af7452db2007ba8d0f6ef858201233f59b63cb0f201cad1e565c9053202726074362d5ef20319eb0657ff22f203c1719bfbd03de20468f435522f2562051072d28ba6d7b205b7ed73d8bedc52065f641969fb44920706d6c36fdcab3207ae45721ae035920855b0259b7f937208fd16de2230ff6209a4799bdf673f220a4bd85f0391a4320af33327bf1c0ba20b9a89f6426edee20c41dccabdef13e20ce92ba561fe2d520d9076865efa3b220e37bd6de53ddaa20edf005c252037320f863f514ef50a02102d7a4d930c9b1210d4b15121b3c102117be45c2b33e1a21223136edfd2f20212ca3e896fd37772137165ac0b7486f2141888d6e2f1c61214bfa80a26836b421566c346065e3df2160dda8ab2b396d216b4edd85bb160b2175bfd2f318218221803088f644ccc3218aa0ff924351eb21951136ca15b447219f812ea0bdc05921a9f0e7193d0be221b460603694f5dd21becf99fbc6a69021c93e946bd30f8a21d3ad4f89baeba821de1bcb587ebf1e21e88a07db1ed77b21f2f805149b4bab21fd65c307f3fbff2207d341b82892342212408128388175221cad815b23065f22271a4253e7270b223186c41583b30e223bf306a2f7438422465f09ff403b0e2250cace2d5cc5de225b3653304ad9b52265a1990b0835f322700c9fc092638e227a776753e6b5252284e1efc80246f9228f4c391fe1fefb2299b6435e828ccf22a4200e86e069cc22ae899a9bf7d90a22b8f2e7a0c4e75f22c35bf598436b6a22cdc4c4856f059322d82d546b43201422e295a54cbaeeff22ecfdb72cd1703e22f7658a0e816b9b2301cd1df4c572c9230c3472e297e16223169b88daf2dcee2321025fe0d054f1232b68f7f72a02df2335cf5120f96a332340356b6137d866234a9b46bade64ff235500e330e5f18e235f6640c64729bd2369cb5f7dfa83462374303f5af83e06237e94e0603863fc2388f94290b2c94f23935d65ef5f0c50239dc14a7f34958323a824f0432a97a323b288573e380fa823bceb7f7353c4cb23c74e68e574488823d1b113978ff6a923dc137f8c9cf54823e675acc79134d423f0d79b4b62701623fb394b1b062c3724059abc3971b8c4240ffbeea99a2fb3241a5ce26e7475692424bd978af538c0242f1e0e0210f30924397e45d6bbe8132443de3f0bea2631244e3df9a48f863c24589d75a39fab9c2462fcb30c0e0448246d5bb1e0cdc8d12477ba7224d1fc62248218f3db0d6cc8248c77370672b2772496d53ba9f4308a24a13301c88414d124ab9089651457ce24b5edd28296bcbf24c04add23fcd1a024caa7a94c37ef3224d50436fe3938fd24df60863cf19d5b24e9bc970b51d57524f418696c4a655124fe73fd62cb9bcd2508cf52f1c592ad25132a6a1c282e9c251d8542e4e31f2e2527dfdd4ee5deec25323a395d1fb353253c9457127facdc2546ee3671f4a700255147d77e6d483e255ba13a3ad8021d2565fa5eaa23113625705344cf3c7d34257aabecad1218dc258504564691820f258f5c819ea821d52599b46eb8432c5c25a40c1d964fa0fd25ae638e3bba4a4825b8bac0ab6fbdfd25c311b4e85c5d1e25cd686af56c53ea25d7bee2d58b99e925e2151c8ba5f1ea25ec6b181aa6ea0f25f6c0d58579dbcd26011654cf09ebf2260b6b95fa420aad2615c0990a0cf38d2620155e01552d8d262a69e4e3050b142634be2db206a9f8263f12387143f38d2649660523a69c9d2653b993cc182577265e0ce46d81d9ec26685ff70accd15c2672b2cba6e1eeb6267d056244a9e07c268757bae70d20cb2691a9d590f3f55e269bfbb245466f9526a64d5106ec6c7626b09eb1d8cd94b626baefd4bdd15cbd26c540b9b8df04a726cf9160ccdd985026d9e1c9fcb3ef5326e431f54b48ad1026ee81e2bb8240b326f8d1925046e538270321040c7ca16e270d7037f30948002717bf2e06d2777427220de64abd9a36272c5c60c1afe6982736aa9d6e8e5eda2740f89c543dd12f274b465d75a2d7bd275593e0d5a1d8ac275fe126771f061c276a2e2e5cfe5e3a27747af88a23ab39277ec7850172835c278913d3c5ce48fa27935fe4da1a2a82279dabb84139228427a7f74dfe0df7ad27b242a6137b3cd727bc8dc08463510227c6d89d53a85f6627d1233c842c5f6b27db6d9e18d114b727e5b7c214780f2f27f001a87a02aafc27fa4b514c521091280494bc8e4734ac280eddea42c2d863281926da6ca5892128236f8d0ecfa0ac282db8022c21452e28380039c77a693828424833e3bacbc2284c8ff083c1f8372856d76faa6f467728611eb15aa1dada286b65b59738a6362875ac7c631265e5287ff305c10da3cb288a3951b408b65428947f603ee1c082289ec5316476b1ec28a90ac527a546c228b3501b8b4b07d728bd953492454aa128c7da103f71313f28d21eae95abaa8128dc630f97d171e828e6a73348bf0fad28f0eb19ab50d8c528fb2ec2c262eeea2905722e90d14099290fb55d1977891a2919f84e5f31508629243b0264d9ebca292e7d792d4c7cad2938bfb2bb63f1d5294301af11fb06c7294d436e33ec43f4295784f02411feb82961c634e546595f296c073c7a63432c29764806e642785e298088942bbd8230298ac8e44dadb6e4299508f74eec39c5299f48cd3251fb2b29a98865fab7b87f29b3c7c1aaf5fc4329be06e045e51e1529c845c1ce5d42b329d2846647365c0229dcc2cdb348290c29e700f8156a361229f13ee57073dc8229fb7c95c73c43052a05ba091c9a5d802a0ff73f7364ed1c2a1a3438ce7280462a2470f5309972b82a2ead749cafed7a2a38e9b7158be6ec2a4325bc9e0322c22a4d618538eb32142a579d10e91973592a61d85fb16312712a6c1371949d08a82a764e46959c1cbb2a8088deb734e2dc2a8ac339fc3bbcb82a94fd586784d97b2a9f3739fbe435d42aa970debc2d9bfb2ab3aa46ab34a3b52abde371cbccb25a2ac81c6020c8fad52ad25511acfc7daf2adc8d86733a09122ae6c5be765438c92af0fdb9b91d764b2afb35783e67f8bb2b056cfa0905c4ef2b0fa43f1bc8ad752b19db47798252972b2412132504225e2b2e48a2211f589b2b387ef470a4fee42b42b50a1665eca42b4ceae31532c7132b57207f6fdc01462b6155df2931dc292b6b8b02440466902b75bfe8c3237d2f2b7ff492a95ecaa62b8a28fff985c7852b945d30b667ba512b9e9124e2d3b7842ba8c4dc8198a1982bb2f857958529062bbd2b962167cc512bc75e98280ed8022bd1915dac4866b62bdbc3e6b0e2611b2be5f63338aa7dfc2bf02843466e423b2bfa5a16dcfb00e12c048badff1ddb1f2c0ebd08afa3c04c2c18ee26f1596df22c231f08c70b6fcf2c2d4fae33861fdb2c3780173995a64b2c41b043dc05f9962c4be0341da2de7c2c560fe80137e8042c603f5f8990778a2c6a6e9ab977bcbd2c749d9993b8b5a52c7ecc5c1b1e2ea82c88fae25272c28f2c93292c3c80da8a2c9d5739dc12ae342ca7850b33f2439a2cb1b2a046e96f3d2cbbdff917c1d4162cc60d15a944e39f2cd039f5fe3bddd32cda669a196fd1332ce49301fda99acf2ceebf2dadb1e6452cf8eb1d2c512dc92d0316d07c4fba262d0d4247a075a2c92d176d829b8acdbf2d2198817056efbe2d2bc34421a18c262d35edcab231f5082d40181524cf4b292d4a42237c407e0c2d546bf5bb4c4bea2d5e958be4b941c62d68bee5fb4dbb662d72e80401cfe35d2d7d10e5fb05b30d2d87398be9b4f2af2d9161f5d0a339522d9b8a23b295ece62da5b2159252423d2dafd9cb729d3d0d2dba0145563baffa2dc428833ff23c972dce4f853285536c2dd8764b30b933fa2de29cd53d51ecbd2decc3235b135b382df6e9358cc12bf12e010f0bd51eda792e0b34a636efb1712e155a04b4f6ca912e1f7f2751f70ea42e29a40e10b335972e33c8b8f3edc6762e3ded27fe6917762e48115b32e74df12e523552942a5e772e5c590e24f40cc72e667c8de805ebd92e709fd1e0215de32e7ac2da1007945c2e84e5a67a798ffe2e8f0837223820cf2e992a8c0a03e6252ea34ca5349d4ea72ead6e82a4c498542eb790245d39d0872ec1b18a60bcd3fc2ecbd2b4b20d4ed42ed5f3a353eabc982ee01456491468412eea34cd94496c392ef455093848b2622efe750937d0f4182f0894cd95a0ba382f12b45654765d232f1cd3a3771004c32f26f2b5002ba88c2f31118af2870f892f3b302550dfd0582f454e841df351322f4f6ca75c7ec7ee2f598a8f0f3f3a092f63a83b38f17ca62f6dc5abdc5234932f77e2e0fc1dd6522f81ffda9b10a6192f8c1c98bbe6b7d72f96391b615bef392fa055628e2bffb22faa716e45126c742fb48d3e88ca88852fbea8d35c0f76b72fc8c42cc19c29ae2fd2df4abc2b63ed2fdcfa2d4e77b7cd2fe714d47b3b878f2ff12f40453105552ffb4970af12332c30056365bb98e313300f7d1f6d7eb6f93019969dc77d20c63023afe0cc4d625e302dc8e87ea88da53037e1b4e14784853041fa45f6e2f8ef304c129bc2336ce330562ab645f132733060429584d46bc7306a5a3981950b23307471a23eead2e9307e88cfbf8d55a030889fc20633f5f33092b6791595e6c0309cccf4f06a2b0f30a6e3359967962330b0f93b1344cb7330bb0f0560b83eb930c52494847833ee30cf39e8813abf5330d94f0159b5c57330e363df109efb2a30ed7881a8abe5a730f78ce92491da703101a1158705ff69310bb506d2bd4ad83115c8bd0a6c8364311fdc3830c840233129ef784884e8943134027d5456b4ab313e154756f1acd4314827d65309a9f331523a2a4b52556c315c4c43427f292831665e213b436f9831706fc4385243b7317a812c3c5e9115318492594a1b13d3318ea34b643a58ae3198b4028d6ebd0031a2c47ec86a6ec431acd4c017df6c9d31b6e4c67e7f85d831c0f491fefc5a7231cb04229c075b1931d513785851c93731df2293368cb6ee31e931733969072131f3401863976d7b31fd4e82b7c86e6c32075cb238ac5f3332116aa6e8f365e1321b7860cb4d795d322585dfe26a6168322f932430f9b6a13239a02db9aae28b3243acfc7f2d1f8f324db990842f79023257c5e9cb60cb293261d208576fc33f326bddec2b0adf723275e99548e06ef2327ff503b39e91ee328a00376df3399932940b307a8c2834329e15eedc16f10832a820729540f87432b22abba8b773eb32bc34ca192769fd32c63e9de93db25932d048371ba6f5cf32da5195b30fae5632e45ab9b224271632ee63a31b907c6232f86c51f2009bc3330274c6382043fa330c7cfff09b0506331684ff1e1c402633208cc3c34f27e1332a944de2dec00233349b9d7f75ddaa333ea2b29bbf27433348a98d3a6514963352b02d5e11eec0335cb693096fd0423366bcbe3f28a4fd3370c2af01e62a3b337ac8655451eeaf3384cde139155280338ed322b2d987463398d829c447901333a2dcf67008417533ace188b8c4417b33b6e5e0a12407ba33c0e9fe2bcfdd4e33caede15b6fdce333d4f18a32abf2b533def4f8b42bdc9633e8f82ce29729f633f2fb26c0953bdd33fcfde650cd44fc3407006b95e649a7341102b692871fdd341b04c749566f503425069dbcfab161342f0839f01a312c3439099be55b0b8734430ac39f632f09344d0bb120d85c0e34570c646c6024ba34610cdd849fecfd346b0d1c6c3cea9934750d2125dc2525347f0cebb422761134890c7c19b488ab34930bd25936da22349d0aee754db98e34a709d0709d47ec34b108784dc9782b34bb06e60f760f2b34c50519b846a3c334cf03134ade9ec734d900d2c9e13b0634e2fe5837f1855534ecfba397b25c9234f6f8b4ebc671a13500f58c36d0477b350af2297b72332b3514ee8cbc4e5bd5351eeab5fc06bab63528e6a53d3d1b313532e25a82931ac7353cddd5ceaa29283546d9172423882d3550d41e85a04be2355aceebf5c15a863564c97f77276c94356ec3d90c730cc23578bdf8b844980b3582b7de7d3c3dad358cb18a5df9ff303596aafc5d1db06b35a0a4347d46f78835aa9d32c1154d0635b495f72b27fbc135be8e81be1e20ee35c886d27c96ac2b35d27ee969305f7b35dc76c68689cf4a35e66e69d741627735f065d35df5524f35fa5d031d43aa9c360453f917ca49a2360e4ab55026e02136184137c8f6f1613622378084d7d332362c2d8f8666adec36362364d0407c7d3640190065020c61364a0e624747fdb33654038a79aec324365df878fed2a20b3667ed2dd94fb2613671e1a90bc1dec7367bd5ea98c4e48d3685c9f282f453b3368fbdc0cceb8eef3699b1557945cbae36a3a4b08a9e121f36ad97d2038f3d2c36b78ab9e6b3fa8a36c17d6836a6cab436cb6fdcf60200f636d56218275fc36a36df5419cd5a0b0236e945e1ea8aa38b36f33770818b2bad36fd28c594f514f6370719e12761a3d537110ac33b69efa9371afb6bd3a6e2ba3724ebdaf2b13a47372edc109b2186833738cc0ccf902a9c3742bbcf92955cbe374cab58e6c9261837569aa8cec362e1376089bf4d1bc258376a789c6469c6ce377467401744c5a6377e55aa6843e757378843db59fe2778379231d2ef0a54bb379c1f9129ff10f737a60d160d72d12a37affa619bfbdd7d37b9e773d830514837c3d44cc4a61b1637cdc0ec63f2fcac37d7ad52b8ac8b0637e1997fc5682e6237eb85738cbb224237f5712e113a756e37ff5caf557b09fb380947f75c11954c381333062792a018381d1ddbba92866e3827087817a577b93830f2db415f76c4383add053a5459ba3844c6f60517ca33384eb0ada43d453138589a2c1a581b223862837169fb6fec386c6c7d95ba3aec38765550a02746fb38803dea8bd53270388a264b5b566f2638940e73113d4282389df661b01bc57238a7de173a83e47738b1c593b3075fa438bbacd71c37caa238c593e178a68cba38cf7ab2cae4e0d038d9614b1583d56f38e347aa5b144cc938ed2dd09e26fcbd38f713bde14c6ed73900f97227150059390adeed7210e23b3914c42fc4d01932391ea93921e27db339288e098bd7bbf7393272a1053f53fb393c56ff90a8998c39463b2530a2b44539501f11e7bc9f94395a02c5b8852abf3963e640a58af8e8396dc982b15c810f3977ac8bde880e1a39818f5c2f9bbed3398b71f3a72585f33995545247b32a1f399f367813d245f239a918650e1047fd39b2fa1938fa72cb39bcdb94971ddcea39c6bcd72b0770e639d09de0f743ed5639da7eb1fe5fe4db39e45f4a42e7be2339ee3fa9c767b3f139f81fd08e6bd51e3a01ffbe9a8004a03a0bdf73ee2ff9893a15bef08c073f0d3a1f9e34769134893a297d3fb0590d843a335c123be9d1b33a3d3aac1bce5cfd3a47190d52915f7f3a50f735e2bd5d933a5ad525cedcafce3a64b2dd197983073a6e905bc51dd85f3a786da1d453853d3a824aaf49a433583a8c2784279960b53a96042070bc5fb53a9fe0842796570d3aa9bcaf4eb041d33ab398a1e892ef7c3abd745bf7c703e43ac74fdd7ed4f7503ad12b26804516723adb0636fe9f826d3ae4e10efc6c30d73aeebbae7c32ebc33af89615807b51be3b0270440bccd5d63b0c4a3a20aebf9d3b1623f7c1a82b2f3b1ffd7cf14009333b29d6c9b1fd1ee13b33afde066606053b3d88b9f1012d033b47615d7454d6d93b5139c892e71b273b5b11fb4f3de6313b64e9f5abdef8e23b6ec1b7ab4fe8d03b7899415016203e3b8270929cb6de273b8c47ab93b736393b961e8c379c10de3b9ff5348aea2b413ba9cba49026174d3bb3a1dc49d43bb33bbd77dbba78d3f23bc74da2e497f0533bd12331cab575f23bdaf8886f551ec53be4cda6d4fa79973beea28cfe28ea123bf8773aed63a8c33c024bb0a52dc31b3c0c1fee280a1b733c15f3f3787b69143c1fc7c0990438363c299b558c26ea083c336eb25465b4ac3c3d41d6f442a3483c4714c36e3f95fd3c50e777c4de41f13c5ab9f3faa031553c648c381206c3623c6e5e440d932c623c783017efc675b23c8201b3bb217dc93c8bd3177224f8363c95a44317516da63c9f7536ad273bee3ca945f2362696063cb31675b4cf840e3cbce6c12ba1e35a3cc6b6d49d1d666d3cd086b00bc194fe3cda56537a0dcc013ce425beea813da63cedf4f25f9af1603cf7c3eddbd9c3e43d0192b161bc67323d0b613cf3c162983d152f90946712b13d1efdac462ba96f3d28cb900b8d2e1d3d32993be7097d5e3d3c66afdb1e493a3d4633ebea4919183d5000f0170749ca3d59cdbc63d60d893d639a50d3326c023d6d66ad679942513d7732d2238743083d80febf0978f6393d8aca741beab96c3d9495f15d58bfb13d9e6136d03f119b3da82c4477198d493db1f71a5463e6633dbbc1b86a99a6263dc58c1ebc362b613dcf564d4bb4aa7e3dd920441b902d803de2ea032e43940e3decb38a864993723df67cda261cb69a3e0045f210375e253e0a0ed24713c05c3e13d77acd2be93f3e1d9feba4f9ba813e276824d0f6eb933e313026539d09a33e3af7f02f6577a03e44bf8266c96e3e3e4e86dcfc41fbff3e584dfff248052c3e6214eb4b5443e43e6bdb9f09df48183e75a21b306177933e7f685fc1530dfa3e892e6cbf2c1cd73e92f4422c648b913e9cb9e00b74177a3ea67f465ed253d03eb0447528f6a9be3eba096c6c5858633ec3ce2c2b6e74d53ecd92b468afea213ed75705269379553ee11b1e678fb97f3eeadf002e1b17b33ef4a2aa7cabd70f3efe661d55b810bb3f082958bbb5b3f23f11ec5cb11a86023f1baf29385c22523f2571be53effa633f2f341c064b55d73f38f64251e352713f42b831392ce41f3f4c79e8be9cd4f43f563b68e4a7c5353f5ffcb1adc22b583f69bdc31c6054083f737e9d32f6622a3f7d3f3ff3f84ee13f86ffab61d9e98e3f90bfdf7f0ed7d83f9a7fdc4e0a95af3fa43fa1d140754e3fadff300b239f403fb7be86fe2712613fc17da6acbda3e83fcb3c8f1959ff613fd4fb40466ea6be3fdeb9ba366df24b3fe877fcebca10bf3ff2360868f507373ffbf3dcb060b1424005b179c47ec0d9400f6edfa7c0be6e40192c0e5c9808e94022e905e575d5b0402ca5c644cb30a74036624f7d08fc3340401ea1909ff1454049dabc82009f54405396a0539b6c65405d524d07e0951240670dc2a1402c874070c901222a1c8d407a84088d0e258640843ed8e45bde77408df9722a82b5064097b3d461f1ed8540a16dff8d18a2ee40ab27f3ae65c6eb40b4e1b0c84821da40be9b36dd2e52ce40c85485ef86cf9440d20d9e01bfe4b640dbc67f1647b58340e57f292f8c3c0940ef379c4ffb492340f8efd87a0284784102a7ddb00f6c7d410c5fabf48f567b4116174349ef6e93411fcea3b29cb7c0412985cd31040bdc41333cbfc7921ba3413cf37b78b36eb54146aa0046d4639f4150604e34612fd6415a166543c5dfc54163cc45776e56c6416d81eed1c64f2f4177376155395a4f4180ec9d0432e073418aa1a1e11e20ef4194566fee663218419e0b072e76015141a7bf67a3b8530941b173915097c2c041bb2784377ec30a41c4db405ad79d9641ce8ec5bd0c732b41d8421460873bb241e1f52c47b1c63841eba80d74f5b8ee41f55ab7eabc913341ff0d2bab6fa3904208bf68b9781bc14212716f173efcb9421c233ec72d20a24225d4d7cbab38e3422f863a2721ce2242393765dbf940484242e85aec99c688424c99195b6b6f5e425649a12ad62092425ff9f25d4197414269aa0cf51567dd427359f0f4b8fe31427d099e5e939d634286b915350c5ff9429068557a8a37e0429a175f3173ee6b42a3c6325c30245642ad74cefd2551cd42b7233516b9c66d42c0d164ab53a94b42ca7f5dbd58f8f142d42d204f2f8b6b42dddaac633d0e4142e78801fbe7068242f135211b92d0c142fae209c4a5a12043048ebbf984834c430e3b37bc945a864317e77d1039e1a54321938bf6d9ab16432b3f6472d820e84334eb06869984c7433e96723481f002434841a77ef553924351eca66857781a435b976ef30bfdeb4365420121765d08436eec5cf5f9e5294378968272f9bdc2438240719ad8e602438bea2a6ffa34d6439593acf4c058f1439f3cf92b8dd8ce43a8e60f16c512b143b28eeeb8c83cac43bc379813f964a643c5e00b2aba705843cf8847ff6d1d5543d9304e9473010e43e2d81eec2d88d143ec7fb908fdf9d343f6271ced45712b43ffce4a9b64e3e14409754215bd1ee644131c035eaec71d441cc28e789a5961442668e365e02a8344300f0228e067524439b4eac3fb149b44435a9d39900f2e444d00198bff0be24456a55fbda7979944604a6fd0e917424469ef49c822c7dd447393eda5b3be7e447d385b6bfae8534486dc931d570aa344908094bc26c2d7449a24604ac8867944a3c7f5cb9aa33744ad6b5540fb3eee44b70e7ead4857a344c0b17212dfc38e44ca542f741f311b44d3f6b6d36426ec44dd9908330c03e044e73b239573ff1344f0dd08fcf927e444fa7eb86bf865f645042031e4ce7939450dc17569d7f9e245176282fd71587e4521035aa1f6dde8452aa3fc59c4ab54453444682736ba50453de49e0ca8dcc74547849e0c76bd074551246828fbddbf455ac3fc64939a0d4564635ac1992572456e028342678be64577a175e959b1cd45814032b8ca5407458adeb9b31407e945947d0ada913b46459e1b26319c347445a7b90bba8f124945b156bb77c3cc2445baf4356b9431ee45c491799859ec2245ce2e88006e7bc745d7cb60a62b3a7c45e168038be95a7a45eb0470b401e69245f4a0a820cdc23745fe3ca9d4a5a97f4607d875d1e231264611740c1adbc691461b0f6cb1eaafd24624aa9799670bae462e458cd3a8d1994637e04c6307d1c546417ad649dbb51a464b152a8a7bfd404654af49274004a1465e4932227efe6b4667e2e57e8ff69746717c633dc9d1e6467b15ab62834ded4684aebdef130110468e479ae5cf5a8b4697e042490ea27546a178b41b26f9c046ab10f05e6e5a3f46b4a8f7153a96a946be40c841e15a9d46c7d863e6b82aa346d16fca0614643446db06faa24b3db746e49df5bdb1c68c46ee34bb5a9ce70746f7cb4b7b61607c470161a62253cd3a470af7cb51c8a09747148dbb0c1426eb471e2375538a85994727b8fa2a7fbb1247314e4993479ed5473ae3639035e17547447848239e0c9e474e0cf74fd383124757a171172980b6476135b57bf31a8c476ac9c480833ebd47745d9e272cb497477df14272421c97478784b16415f065479117eafefa82de479aaaef4542001147a43dbe393e6d4947add057dd41a90d47b762bc339d6b2047c0f4eb3ea3448b47ca86e500a49f9d47d418a97bf2bfed47ddaa38b2dec26147e73b92a7b99d2e47f0ccb75cd41fdc47fa5da6d47ef34d4803ee61110a99bb480d7ee614c76ebc48170f35e205a74c48209f507b1551c7482a2f35e24655f54833bee619e87505483d4e61244b49964846dda703be47bd48506cb7ba90bcfc4859fb934b11d05648638a39b7908245486d18ab025bacc14876a6e72dc2034c488034ee3c1212e64889c2c02f9a421c4893505d0aa8d107489cddc4cf8bd95148a66af780914e3648aff7f52006fc8948b984bdb03a8ab948c31151337978cd48cc9dafac11207448d629d91c4eb4fa48dfb5cd867f435948e9418cecefb22f48f2cd1751ecc1ce48fc586cb7c30c354905e38d20bf0519490f6e788f2cf9e84918f92f055911ca492283b0858f4da6492c0dfd121b882549359814ad4975b6493f21f75964a4904948aba518b87cb34952351ded903ff3495bbe61da3709f449654770e0f7d030496ed04b041d61fb497858f045f268814981e160a8c166d6498b699c2ed4b9ea4994f1a2da769895499e7974adf1139a49a80111ab8e15a849b18879d597635e49bb0fad2e569b5049c496abb815360749ce1d75751c860749d7a40a67b5b7d149e12a6a9229d1e549eab095f6c1b4cd49f4368c97c61b1149fdbc4e777f994d4a0741db98369e254a10c733fc33724e4a1a4c57a5be38944a23d146971eedda4a2d5600d29d691e4a36da865a815b7a4a405ed73112502e4a49e2f35897ac9a4a5366dad358b0484a5cea8da39c74ef4a666e0bcba9ee744a6ff1554dc7eaea4a79746a2c3d129e4a82f74a694fe8134a8c79f60746c8094a95fc6d0867e97d4a9f7eaf6ef95db14aa900bd3d4110294ab282967584c6b64abc043b1a0a21704ac585ab2d169ac24acf06e6b0ef876a4ad887eda7da16774ae208c0141b51564aeb895df7f81bce4af509c755b534064afe89fc2f9732874b0809fc87e28a424b1189c860db888e4b1b095fbcc655324b2488c29de6f2634b2e07f106813cc84b3786eaf8d8eb814b4105b0773190254b4a844183ce96c94b54029e20f346004b5d80c650e2bee44b66feba15dffd114b707c79722dd6b14b79fa04680efc764b83775af9c5f9a84b8cf47d2995341b4b96716af9beec414b9fee246c853d214ba96aa9842a1c624bb2e6fa42ef5a474bbc6316ab16a1bc4bc5defebee1784f4bcf5ab280913e3a4bd8d631f2672e664be2517d16a45e664bebcc93ef89be894bf547767f5819ce4bfec224c85015f34c083c9eccb2336e4c11b6e48ebecd794c1b30f610b61a124c24aad354d829fb4c2e247c5d64e8c34c379df12c9c1cc34c411731c4bd67284c4a903e280843f04c54091658bc09f04c5d81ba5917eada4c66fa2a2b5af3394c707265d1c40a7c4c79ea6d4e91f2f24c836240a40349d44c8cd9dfd45687444c96514ae1c9fe524c9fc881ce9bdcfc4ca93f849d0a2c364cb2b6534f52cfe84cbc2cede7b386f74cc5a3546869eb454ccf1986d3b371b24cd88f852bcd6a234ce2054f72f4ff824ceb7ae5ab6737c64cf4f047d760f3f24cfe6575f91ef0164d07da7012ddc35a4d114f3626d9dffa4d1ac3c8374f934c4d243826467b05c34d2dac5056983af24d37204669e311904d409408829743784d4a0796a2f065b44d537af0cd29e8744d5cee17037f171d4d666109482b18444d6fd3c79d68edb54d794652057374774d82b8a8828564cd4d8c2acb16d952374d959cb9c4a9ab7a4d9f0e748e30baa24da87ffb75a8a5024db1f14e7d4b6b3c4dbb626da752e93f4dc4d358f5f8d64c4dce44106b76c4fd4dd7b4940a0623434de124e3d3e03a6a4dea94ffcb3e2f1f4df404e7f25901714dfd749c4b698cd44e06e41cd8a888244e1053699c4e85aa4e19c2829893f31e4e233167cfb119a94e2ca01943de1de94e360e96f752fff64e3f7ce0ec479b614e48eaf724f3a73d4e5258d9a38eb61a4e5bc6886a5036114e6534037b6f70c04e6ea14ad9238b534e780e5e85a386814e817b3e83263e964e8ae7ead3e26b6d4e9454637a0ea0804e9dc0a877e14cdc4ea72cb9cf90bb304eb09897835311cc4eba0441955e52a44ec36fb807e85b504eccdafadd26e5174ed6460a174f84e94edfb0e5b897ab694ee91b8dc334a4ed4ef28602395b99814efbf0431d418cee4f055a50711b5eb44f0ec42a371dca184f182dd0717d661e4f219743226ea5964f2b00824c25d7154f34698df0d724fb4f3dd26612b6957c4f473b0ab3f80a9c4f50a37bd6cf42344f5a0bb97d6fd5f74f6373c3aa0d3b734f6cdb9a5edac4164f76433d9e0b9d304f7faaad69d2cff64f8911e9c46341834f9278f2afefb2e14f9bdfc82eaac1064fa5466a42c6e4d94faeacd8ee7673374fb8131433eb9cf54fc1791c15586ee04fcadef094eed1c74fd44491b4e08a754fdda9ff775f39bd4fe70f39de9c5c774ff07440ecc94b844ff9d914a4173bd650033db506b73e6b500ca22216da40575016065bd6b10ac2501f6a62486c42ef5028ce356e3c6a3e503231d54a51de2e503b9541dedcd8605044f87b2e0d6e9b504e5b813a1392ce5057be54051f1316506120f3915f99bb506a835fe104ad3b5073e598f63db047507d479ed339e1c85086a9717a285ce250900b10ed3818f750996c7d2e97e9ab50a2cdb640767ee550ac2ebc250264d450b58f8ede6a03f150bef02e6edba10350c8509ad8855d2050d1b0d41d9535b350db10da4039047c50e470ad429e7f9550edd04d26f3397650f72fb9ef64a0f351008ef39e2001465109edfa3552820e51134ccdb7292751511cab6e25d0d183512609db83763d84512f6815d24604a95138c61d146c9cb8514223f14c1657f2514b81927b6f65125154df00a4a3cf50515e3c3bc9df7e6651679943ed4e368f5170f619111b9892517a52bb377321bd5183af2a62802be9518d0b66946ded815196676fcf677986519fc3461597bf8a51a91ee969298bba51b27a59cc4786e051bbd597411c366251c530a1c9d1fc4d51ce8b796893174e51d7e61e1f89a2bc51e1408ff0df969c51ea9acedebec79c51f3f4daeb50e71d51fd4eb418bf83365206a85a693406b4521001cdded7b91b52195b0e7bd3beb15222b41c42511878522c0cf73478a4385235659f54731c7e523ebe14a469189e5248165726830cbc52516e66dce949c7525ac643c9c3fd8452641dedef3b3288526d75654f76d0475276cca9ec9e9b07528023bbc8da33f452897a9ae65119175292d147472aa55d529c27c0ed8e109b52a57e07dba26f8f52aed41c138eb3e552b829fd9779ac3752c17fac698a041352cad5288be643fd52d42a7200b4d17252dd7f88ca1beee952e6d46cea41bbd952f0291e634c34ba52f97d9d3761330b5302d1e968a66d4e530c2602f9417714531579e9eb57c0f8531ecd9e410e98aa5328211ffc8b28e85331746f1ff27989533ac78bad696f8053441a75a714ccd7534d6d2d0f1930bc5356bfb1e79b177b5360120432beda8953696423f2a8b0825372b611297cad2c537c07cbd95ec17a538559540472bb94538eaaa9acdc46d35397fbccd4beebc853a14cbd7e3e103d53aa9d7bab7cf73953b3ee075e9ec10153bd3e6099c66b2253c68e875f16d06853cfde7bb0b2a8ed53d92e3d90bc8a1353e27dcd0156e68b53ebcd2a04a40e5953f51c549cc62ed553fe6b4ccbdf52ab5407ba12941161e5541108a5f77e21e8541a5706f847357a5423a535988e1cc5542cf331da743555543640fbc01aba23543f8e934ba2c3935448dbf87f2d47745452292b5cdb190a545b762be6cce90d5464c2fa1f2345ad546e0f9607fe9a9254775bffa37f30e45480a836f3c52f4a5489f43bfaf099ed5493400ebb21527c549c8baf3677183254a5d71d6f1187d354af225967101bb254b86d6320922bb454c1b83a9db6ed5354cb02dfe09d73a054d44d52eb64af4654dd9793c02b6e8f54e6e1a261105d6154f02b7ed032054b54f975290faecd7e5502bea121a4fad3550c07e70832afd2551550fac575ecb1551e99dc5b8c8f555527e28bcc94535b55312b091aaad214553a735447ed828d5543bb6d5679b991554d0354486ca9a955564b091fe36322555f928bdefad4105568d9dc87cfc84d557220fb1c7ee97f557b67e79f24bf1d5584aea211ddae6f558df52a76c5fa8d55973b80cff9c46a55a081a51f950ad455a9c79767b3aa7255b30d57aa715dcd55bc52e5e9e9bd5155c5984228383f4d55cedd6c677837fc55d82264a9c4d98355e1672af13933f355eaabbf3ff0355055f3f0219804a99055fd3451fb913aa2560678506cb0706f560fbc1ced7cb0da5618ffb780103fc55622432026853f19562b8656e2f5aebc5634c95bb77b6ca5563e0c2ea63034cf56474ecfb12da1445650913eda8d2a215659d37c246825955663158790d7c7e3566c576121f5236956759908d9d928a4567eda7eba9ca62956881bc2c65848b356915cd4ff249b22569a9db5671a067a56a3de640050d1ec56ad1ee0cce122d456b65f2bcee2fcc056bf9f45086e416f56c8df2c7b9ab0d656d21ee22a7fe92156db5e66173566bb56e49db843d2844a56eddcd8b26e7ab356f71bc76520612257005a845dff2d0b5709990f9f21b2275712d7692a9ea27e571c1591028c8e65572553872901e485572e914ba014f1db5737cede69dbe1ba57410c3f886cbdd3574a496efddd6e305753866ccc43b93d575cc338f5b543c95765ffd37c479109576f3c3c6210029957787873a923d8815781b47953983138578af04d638209a357942befdaf63d1e579d6760bc09857c57a6a2a008d07b0557afddadc35f948257b91889edcb273757c253348a2766ee57cb8dad9a8865f257d4c7f52102151757de020b1fa843ba57e73bef988e9fc857f075a28dc8b5ba57f9af240169f09e5802e873f5859a18580c21926c2eda6158155a7f6778b851581e933ae976195c5827cbc4f439c1975831041d89d653b8583a3c44ac5e511e5843743a5de419d4584cabfea079ec885855e3917631e69f585f1af2e11e042c58685222e3501ff6587189217ed9f37b587abfeeb5cd16f45883f68a8a3b0155588d2cf4fe3508545896632e13cc6064589f9935cd121cc358a8cf0c2c172f7358b204b132ec694158bb3a24e3a279c758c46f674049ef7258cda4784af3377d58d6d95805ae9dfc58e00e06728c4ddb58e94283939c50df58f276cf6aee8fae58fbaae9fa92d1cc5904ded34498bda1590e128b4b0fd87f591746121007869b59207967958f0b185929ac8bddb5880a5932df7eea89fe74593c1240be1b4e4c594544d15a783683594e7730c1af54fe5957a95ef5cf26a15960db5bf8e60752596a0d27cd0231f659733ec27431c073597c702bf082abbe5985a1644402cbcf598ed26b70bfd7b15998034178c7657a59a133e65e26ea5459aa645a22ebba8059b3949cc923095459bcc4ae52d9e94159c5f48ec21d4bd759cf243e18fa01c559d853bc597cbadd59e1830985b2061859eab2259fa6519359f3e110a965ea9d59fd0fcaa4fcfdad5a063e539477966c5a0f6cab79e19fb85a189ad25746e3a45a21c8c82eb30b7b5a2af68d02319fc55a342420d3ce08475a3d5183a5938c085a467eb5798d51515a4fabb651c65db45a58d8863049960b5a6205251721be7b5a6b319308597a775a745dd005fb4cc85a7d89dc121197865a86b5b72ea69c215a8fe1615dc47b645a990cdaa17535765aa23822fbc2a9da5aab633a6eb6977b5ab48e20fc5a9ca15abdb8d6a6b837005ac6e35b6fd8c3b35ad00daf59c57f475ad937d2668785b05ae261c49827d25a5aeb8b85f0af40235af4b516722689635afdde761e9647e95b0707a4f806f5045b1030a30080e97f5b1959703a0c5daa5b22820ca6b169585b2baa78487803e65b34d2b3216804395b3dfabd338920c55b47229680e2ef8c5b504a3f0b7ce6235b5971b6d55e59b45b6298fde08e7f045b6bc0142f146a6c5b74e6f9c2f70fe85b7e0dae9e3d43125b873432c2edb7265b905a86330eff055b9980a8f0a78d3b5ba2a69afdbdb3fb5babcc5c5c57a5275bb4f1ed0e7b72515bbe174d162f0cbe5bc73c7c757845695bd0617b2e5ccd035bd9864942e233f95be2aae6b50dea775bebcf5386e540675bf4f38fba6d65765bfe179b51ab69185c073b764ea43a875c105f20b35ca8cb5c19829a81d962b75c22a5e3bc1ef6ef5c2bc8fc6431d3ea5c34ebe47c1647f45c3e0e9c05d081335c47312303648da55c50537976d65b285c59759f6229b77a5c629794c762503b5c6bb959a883b2f15c74daee07914d0a5c7dfc51e68e6bdf5c871d85477e3cb75c903e882c63cccb5c995f5a974209425ca27ffc8a1bbf3b5caba06e06f39bd15cb4c0af0fcc2c135cbde0bfa6a7dd145cc7009fcd88fbe25cd0204f8671b5915cd93fced364173a5ce25f1db6620dfe5ceb7e3c316d67065cf49d2a4687cf8e5cfdbbe7f7b2d4dd5d06da7546efe44f5d0ff8d236404b565d1916fec7a5377b5d2234fafd1fb6615d2b52c6d8b0b5cb5d3470625c5903975d3d8dcd8a194dcc5d46ab0863f222905d4fc812ebe3f0375d58e4ed23ef053a5d6201970e1390435d6b1e10ac51a0285d743a5a00a923f55d7d56730d19eaeb5d86725bd3a3a4805d8f8e145645e0655d98a99c97000e8b5da1c4f497d17f1f5daae01c5ab962925db3fb13e1b6c9985dbd15db2ec8a52f5dc6307243edc69d5dcf4ad92324df775dd8650fce6c819e5de17f1647c31f485dea98ec91270aff5df3b292ac9677a35dfccc089c0f786d5e05e54e619000f65e0efe63ff15e5335e181749769ed97c5e212ffeca28728c5e2a4883fbb025865e3360d90d3347f75e3c78fe00af0fd75e4590f2d820938b5e4ea8b79584c9ef5e57c04c3ad88a4d5e60d7b0ca188c685e69eee54541687d5e7305e9ae4f97425e7c1cbe073f71f05e853362520d323b5e8e49d690b4f2615e97601ac532ad1f5ea0762ef1823dc25ea98c13179f601c5eb2a1c73985b0925ebbb74b5930ac175ec4cc9f789bb0315ecde1c399c1fafe5ed6f6b7be9eab305ee00b7be92cc01a5ee920101b6719a65ef23474574878645efb48a89ecb7d825f045cacf3eaaad65f0d708158a062dd5f168425cee6e8bf5f1f979a58b860515f28aadef80ece155f31bdf3aee417455f3ad0d87f3201cb5f43e38d6af234475f4cf612741e361a5f5608679caf6f5b5f5f1a8ce69f28e15f682c8253e68c495f713e47e67ea3f05f7a4fdda0605afa5f83614383847d575f8c727991e3b7c15f95837fcd7697c05f9e945638358bb05fa7a4fcd418e2be5fb0b573a318ccee5fb9c5baa72d5b1e5fc2d5d1e24e7f065fcbe5b956740b3c5fd4f5710595b3375fde04f8f1ab0b505fe714511cab88c95ff02379888e81c95ff93272374b2d616002413b2ad8a393600b4fd4652ddd4e60145e3de841b475601d6c77b60ae3df60267a81d080075a602f885c39979bb060389606f347fea76041a381ff876f03604ab0cd604c0c8c6053bde9178bd80b605ccad5273cb3546065d79191546141606ee41e57c885ba6077f07b7c8ea5b46080fca9019c2737608a08a6e8e6515d6093147534624c56609c2013e605216b60a52b82ffc3bb0360ae36c28392e49c60b741d273674add60c04cb2d1357b8860c957639ef1e58b60d261e4de90d8f660db6c369206870760e47658bb47022860ed804b5c463df360f68a0e76f80f3560ff93a20d502beb61089d0621422b4f6111a63ab4c185d1611aaf3fc9c1951f6123b81562359424612cc0bb80109f0d6135c9322545b34b613ed17953c7af966147d9910d8953ee6150e179547d419b6159e9322a95fb3a6162f0bb91c5e4b2616bf8158bff43406174ff401b343d76617e063b4156db3c61870d07005905d6619013a35a2c87e761991a1050c30d6e61a2204de60e23cd61ab265c1bff39ca61b42c3af4879f9461bd31ea719886c161c6376a9523025561cf3cbb611806c061d841dcd76869e761e146cefa04e31e61ea4b91cade0b3461f350254be45c6a61fc54897f083282620558be6639cab9620e5cc4036943cc6217609a58869dfb622064416781bb09622967b9324a5e4562326b01bad02c83623b6e1b0302ac27624471050cd14523624d73bfda2b40f96256764b6cffcac3625f78a7c73def2b62687ad4ead49c7a62717cd2d9b2a292627a7ea195c6b2f36283804120ff60be628c81b17d4b20b6629582f2ac984943629e8404b0d5127862a784e78bef960e62b0859b3fd5cf6e62b9861fce759baf62c2867539bcb99a62cb869b8398c9ae62d48692adf74e1d62dd865abac5aad662e685f3abf1258262ef855d8366e58962f884984313f411630183a3ece53c07630a828082c78a1c6313812e06a78cc7631c7fac7a71d44e63257dfbe012d2c0632e7c1c3976dbfe63377a0d888a25b9634077cfcf38c778634975630f6eba9a635272c74b17da53635b6ffc841fe3b663646d02bc7275b6636d69d9f5fb11246376668232a518b2637f62fb745bd0ff63885f45bd0a608a63915b610e9bcfc2639a574d6afb090163a3530ad412d89063ac4e994bcdecac63b549f8d416d58463be45296ed8054163c7402b1dfbd00263d03afde36c6be263d935a1c113f0fd63e23016b8dc596e63eb2a5cccaf815263f42473fe7726cf63fd1e5c501cea0e64061815c38a4d45640f11a05aa8b4ba64180afc176166be64210428fb9d8bb46429fd2709462e156432f5f642443a71643bee96a8807f6f6444e7083de3add2644ddf4b0456587f6456d75efdc0f474645fcf442c0bd8d96468c6fa911f3ef76471be822ee34240647ab5db073fe0506483ad051c1cf8f0648ca4006f624e1764959acd02f783ef649e916ad8c420d464a787d9f2af8d5a64b07e1a52a1144e64b9742bfa7fe2b564c26a0eec3307d464cb5fc329a1753164d45548b4b1fe9364dd4a9f8f4b5a0564e63fc7bb541fdb64ef34c13ab2cab264f8298c0f4db77265011e283b0b2555650a1295bfd135e0651306d49f85ecf2651bfae4dc0f30bb6524eec67752c9c4652de279733662f36536d5fdd19f8988653fc9539473ad256548bc7abd981fcc6551af734ef215e5655aa23d4a66a63b656394d8b1daca07656c874587335cea65757983cc551cf3657e6b938324aaa365875d74ad8688ee65904f274d5f1d3a659940ab6492af6765a23200f50569cf65ab2328009b594665b4142089386d2165bd04ea90c0773565c5f58619172bdc65cee5f3242021f465d7d631b3bed2e265e0c641c9d69a9a65e9b623684ab79865f2a5d690fe4aec65fb955b45d45835660484b188afc5a8660d73d95b735c0f661662d2c001c6cd661f519db83d93e26628403a460933ea66312ea86b46fa22663a1ce829d91c6a66430af983a1b347664bf8dc7a82b9e36654e691105e0e16665dd4174715705f6666c16f208a83ee666fae989e9ecea566789b93c333b91866818860902a8e90668a74ff07647d0f6693616f2ac2954f669c4db0fc25cacb66a539c47d6ef3bb66ae25a9b07ec91566b711609735e69866bffce93374cac766c8e843871bd6ee66d1d36f940b4f2366dabe6d5c235a4966e3a93ce144021566ec93de254d330d66f57e512a1ebc8b66fe6895f19850bd670752ac7d9984b067103c94d001d0486719264eeab08e4967220fdacf84fc56672af938805e3af56733e267ff1b4d90673ccb694d9b1a7b6745b43c6dbc6af2674e9ce1615deb1a675785582a5e2a0d67606da0ca9b99cf676955bb43f48f5a67723da7984742a0677b2565c971ce8667840cf5d95230ed678cf457c9c64ab46795db8b9cabdfb8679ec29153e096d367a7a968f141f9eb67b0901276ad75e467b9768de6005aae67c25cdb4117db4267cb42fa89d10da767d428ebc208eaf467dd0eaeeb9c4f4e67e5f4440867f9f367eed9ab1a488d3267f7bee4231a8e766800a3ef24ba6644680988cc2104604068126d7b19d4ab27681b51fc110758e26824364f08785e76682d1a74020394126835fe6aff84b50d683ee23402d75feb6847c5cf0dd7165b6850a93c225f3d3e68598c7b424b1ca668626f8c6f75dfda686b526fabba955668743524f8f42ed4687d17ac58fd81456885fa05cdb144da688edc3158ea15036897be2efc82707268a09ffeba54b92268a981a0943b344e68b263148c100a8168bb445aa3ad478f68c42572dcecda9968cd065d39a8961468d5e719bbba2fc368dec7a864fb40c268e7a8093745458268f0883c34719dcf68f968415e598ccf69024818b6d6390b690b27c23fc0ac666914073dfaf1d42a691ce68bea4281066925c5ac0f8b670f692ea49e6ca51dc66937836303682016694061f9d5accc5869494062e54b645a69521e9e341c0d58695afcabc3f6d0056963da8b96b3988d696cb83dae2a3695697595c20c325d3e697e7318b2a3a32669875041a355827069902d3ce01f58be69990a0a6ad8673869a1e6aa4557d29269aac31c7174a30569b39f60f105c45769bc7b77c5e205de69c55760f1e01a8269ce331c76d698bb69d70eaa569bfa9a69dfea0a93069dc369e8c53d2decc37869f1a0422924909869fa7b1986840d9d6a0355c347e126a46a0c303f6f11ab6d6a150a8dfdeb4f5c6a1de4aef643a9806a26bea259f0348f6a2f98682ac64eed6a3872006a9b3aaa6a414b6b1b441d8b6a4a24a83e9601056a52fdb7d665d2436a5bd699e48862276a64af4e6ad2654f6a6d87d56b1874146a76602ee72f0a8f6a7f385ae0ea88956a8810595a1f31c46a90e82a54a12d7b6a99bfcdd24486e46aa29743d4dd2cf16aab6e8c5e3ef25e6ab445a7703d8dbb6abd1c950cac99626ac5f355355f93846acec9e7ec29de286ad7a04d32debf276ae076850b51603d6ae94c8f7754cef76af2226c78bbfcc96afaf81c1159bf036b03cd9e4300ced86b0ca2f30f83c9636b15781a78b52fa26b1e4d148067667e6b2721e1286cb6ce6b2ff68072974d566b38caf260b93ac86b419f36f4a473c96b4a734e302ad0f76b534738151e0ee16b5c1af4a54fce156b64ee83e29193166b6dc1e5ceb4c66c6b76951a6b8ab4996b7f6821bae48e246b883afbbe93679a6b910da87868398b6b99e027ea33e0936ba2b27a15c71d586bab849efcf2948c6bb45696a186cef46bbd2861055439656bc5f9fe2a2b24c96bcecb6e11dbc61f6bd79cb0be3636806be06dc6310a731f6be93eae6c285d4d6bf20f69715fba7a6bfadff7428034376c03b057e159583a6c0c808b4fba985f6c1550918f734aa96c1e206aa252a9466c26f0168a27d2926c2fbf9548c1c9166c388ee6dfef738e6c415e0b517f9ce96c4a2d029f40f44b6c52fbcccb020d106c5bca69d6915ecf6c6498d9c3bd455b6c6d671c945400c36c7635324a23b55c6c7f031ae6fa6bba6c87d0d66ca610b76c909e64dcf475746c996bc639b34f606ca238fa84b0382d6cab0601bfb8ade56cb3d2dbec9a12da6cbc9f890d21adb76cc56c09231ca9786cce385c305815716cd7048236a0e54e6cdfd07b37c3f11a6ce89c47358df5396cf167e631cb92706cfa33582e494de96d02fe9d2cd3912f6d0bc9b52f36aa346d1494a0373ecb556d1d5f5e46b80b556d2629ef5f6e656a6d2ef453832db9336d37be8ab3c1cac66d408894f2f642a96d4952724296adda6d521c22a46e7dce6d5ae5a61a4908746d63aefca5f188376d6c782649331c026d75412305d8c7416d7e09f2ddad71e16d86d295d27be8576d8f9b0be60edb9c6d9863551a30e1366da12b7170ac73356da9f360eb4bf0376db2bb238bd99b6b6dbb82b9541f9c906dc44a2245e7ffff6dcd115e62fcb6a06dd5d86dad2795fb6dde9f502632582f6de76605cfe69bf96df02c8eac0de4b86df8f2eabc719a696e01b91a02db09ae6e0a7f1c811363d16e1344f238e3bec26e1c0a9b2c15151d6e24d0175c7046286e2d9566cbbe15db6e365a897bc72cde6e3f1f7f6e5418896e47e448a52d4aee6e50a8e5221b1ad46e596d54e6e5c3bb6e623197f55565e16e6af5ae4f32063f6e73b997f6438e916e7c7d54ec51cd546e8540e5332475cb6e8e0448cc831ffb6e96c77fba3548b96e9f8a89fe02519f6ea84d6799b181176eb110188f0a02596eb9d29cdfd2e56f6ec294f48dd31f386ecb571f9ad189686ed4191e0894e2896edcdaefd8e3ce026ee59c950d84d4146eee5e0da83e61e06ef71f59aad6c9686effe0791714418f6f08a16beebce61f6f1162323396b7c66f1a22cbe7679c206f22e3390bf55db06f2ba379a305abe86f34638dae5e1b2a6f3d23752fc424cc6f45e33028fd27146f4ea2be9bce653f6f57622089fd07866f602155f54e1b176f68e05edf8692226f719f3b4a6b43d26f7a5deb37c0ec546f831c6ea94c2cd96f8bdac5a0d18b956f9498f0201573c76f9d56ee28dc35b36fa614bfbcea06ab6faed264de0301116fb78fdd8deb24526fc04d29ce6654f16fc90a49a1385c836fd1c73d0824e9b56fda840404ef904b6fe3409e995bc9246febfd0cc72cf23d6ff4b94e90264eaf6ffd7563f60b06b97006314cfa9e27b7700eed099fa2a42e7017a899e6db53cb702063fdd20af36170291f3562f424f47031da409b596faf703a951f7cfd3ff470434fd209a1e752704c0a5843099c8d7054c4b22af67ba3705d7edfc32a85c4706638e10d67a162706ef2b60b6f9a257077ac5ebf0420f8708065db29e6cc0470891f2b4dd916b87091d84f2c9c61c8709a9146c7f1f32b70a34a12219af62870ac02b13b587b4a70b4bb2416eb787070bd736ab614c8c770c62b851a952ccd70cee373462d4a5270d79b353a9dac8170e052caf9a6c3da70e90a348508e63770f1c171de844ecf70fa788307d91e3971032f6802c75a6b710be620d10eeebd71149cad746fabf1711d530deea9482771260942417b5ef1712ebf4a6ea571467137752677e6e58f71402ad65eff07a17148e05a25ad08c2715195b1cdafffaf715a4add58c6e8997162ffdcc8b0a527716bb4b01f2bfc7d717469575df79b3a717d1dd286d213797185d2219b79dcd7718e86449dad547571973a3b8f2abcf4719fee0671b03e8171a8a1a546fbe6cc71b1551810cba91371ba085ed0dd5e2171c2bb7988eec44e71cb6e683abd7f8471d4212ae807194071dcd3c19289009471e5862c3c008a2871ee386ae62af04071f6ea7d92c552b971ff9c64438cb71072084e1efa3e085e7210ffadb89617607219b11080519a7772226247532d2da9722b135232e552a37233c431213670bd723c74e41fdcd4fd7245256b3094b214724dd5c6551a2063725685f58f291e01725f35f8e07d8eb57267e5d04ad33bff7270957bcfe5d517727944fb7170eef07281f44f31300439728aa37710de755f7293527312378893729c014336f669c572a4afe780d62aac72ad5e5ff191c2c572b60cac8ae40f5872bebacd4e87d37572c768c23e37b7fd72d0168b5bae4b9e72d8c428a8a602d772e1719a26d937fc72ea1edfd8022b3572f2cbf9bddb028172fb78e7da1dc9be730425aa2e84729d730cd240bcc8d4b473157eab86a4ad75731e2aea8dd1a0367326d6fdd409362d732f82e55b04de7d73382ea1247dee297340da31322da0247349859585cd154b735230ce21155469735adbdb05bf4a39736386bc3583c96b736c3171b21b8a9d7374dbfb7d3f2c6b737d865998a733677386308c060c0a19738eda92c726010c7397846dddad4ec573a02e1d4b5a0fcc73a8d7a111e446ac73b180f93303dbf373ba2a25b0709e3773c2d3268be2421773cb7bfbc710623b73d424a563b27f5a73dccd236380003a73e57575c83031b073ee1d9c937a46a773f6c597c715581c73ff6d6764b865267408150b6e1a52f27410bc83e4f1eccb741963d0caf5e41874220af221dcd060742ab1e7eb5d2f4a743358b2292d64a2743bff50dd03ba577444a5c408966083744d4c0bad9b6d667455f227cdc8dd6d745e98186ad4933474673ddd86745782746fe377225dd954747888e54046adda74812e27e1e450787489d33f08ec22ca7492782ab7136ca6749b1ceaee0f5c1e74a3c17faf95058174ac65e8fd59635f74b50a26d911568874bdae394471a61274c65220412eff5774cef5dbd0fdf5fa74d7996bf59303e674e03cd0b0a2895474e8e00a03e0ccca74f18317f101fb1d74fa25fa79ba27767502c8b19fbd4b52750b6b3d64bf468075140d9dca73df2b751cafd2d28ec1d6752551dc7ec38163752df3bad0c5970e7536956dca486274753f36f56cff29977547d851ba9d18d975507982b4d5430475591a885d5aa14a7561bb62b5e01348756a5c11c0185f057572fc957db630f8757b9cedf06c1c0675843d1b19ec9988758cdd1cfbea094a75957cf39816b191759e1c9ef024bf1375a6bc1f05c6450975af5b73daad3d2075b7fa9d708b878a75c0999bc912eaf375c9386ee5f5148f75d1d716c8e3981075da7593738fefb575e313e4e7ab7c3e75ebb20b26e784fa75f4500632f537c175fcedd60d85a8fd76058b7ab849d3a3760e28f434f2993d7616c6428530c1ea761f6365aab4fc5c7628005da72fdde076309d2a7c51e25c763939cc2bcb6c507641d642b74cc4dc764a728e20861bc276530eae69278760765baaa392e104bd7664466d9f627785766ce20c905baa0c76757d80677c4d4e767e18c92673f8f37686b3e6cef22b55768f4ed962a649797697e9a0e33f9f1776a0843d526d5e9c76a91eaeb1dea12b76b1b8f50342669e76ba53104847958776c2ed00829cfb3676cb86c5b3f14bba76d4205fddf321dd76dcb9cf0250ff2e76e5531322b94c0076edec2c40da576a76f6851a5e62574a76ff1ddd7cff684b7707b6759e5f8ddf77104ee2c430b2487718e724f020a69777217f3c23dd22ae772a17286113c5437732aee9a97213e0773b467ffea57ae97743ddeb625b4d99774c752bd640c60677550c415c030525775da32bf54f12c8776639eba3d1dda3776ed08069383b4e777766ea472ee845777ffd293f6287ec7788933d537fa48f779129268532af637799bee4d628008e77a25478480bd72377aae9e0dc8a592477b37f1e954f938a77bc143174077a3c77c4a9197a5de81f77cd3dd6a9fe9f0b77d5d269049547d677de66d08bcd725077e6fb0d4152954a77ef8f1f26d00e9377f823063df122fe7800b6c28860fe6178094a5407cab39b7811ddbabdd93c8e781a70f6ac377a2a78230407d490346c782b96ee388e1a5c783429a9d9dbc214783cbc3aba23a8be78454ea0db103299784de0dc3e4baafc785672ece5804451785f04d2d25818207867968e067d27097870281e839958ce7878b9844b567c4b78814abf5f5e47827889dbcfc15a579778926cb572f430d1789afd7075d53ea378a38e00cba6d3a378ac1e667612299878b4aea176c0617278bd3eb1cf5a835378c5ce9781897e8b78ce5e528ef6299f78d6ede2f949424878df7d48c22b6d7578e80c83eb45374e78f09b94763f133678f92a7a64c15bcd7901b935b87452ef790a47c6730021bc7912d62c960cd893791b646823426f187923f2791c48c437792c805f82c79e2279350e1b5866aa54793d9bac9ecd7d967946291357a393ff794eb64f849050f579574361273aff2d795fd048414ad0b479685d04d466deea7970e996e2362a87797975fe6c5f9b9a7982023b748a0192798a8e4dfc5c133679931a36057c6eb1799ba5f39191998a79a43186a24200ae79acbcef3933f86e79b5482d580dbc8179bdd3410075700979c65e2a34111d8f79cee8e8f486b70a79d7737d437c15e179dffde72296fae979e88826937d0e6879f1123b97d3e01d79f99c263140e7387a0225e6616982617a0aaf7c29f2f7be7a1338e78c8274ed7a1bc2288abd0f0b7a244b3f2647c2b37a2cd42b60c774037a355ced3be0ee9c7a3de584b938e5a47a466df1da73f3c77a4ef634a1369b3a7a577e4d0f2545c07a60063b25e444a47a688dfee717d0c47a71159854640a8a7a799d076f6cf9f87a82244c39d68ea07a8aab66b5449fac7a933256e35aebdd7a9bb91cc5bd198d7aa43fb85e0eb6b77aacc629adf338ef7ab54c70b70dfd697abdd28d7b0248fb7ac6587ffb7348227acede483a040efc7ad763e63857994e7adfe959f810ca897ae86ea37ad26dc87af0f3c2c23f35d17af978b7cff9bd1c7b01fd82a5a485d07b0a822344e1f9c57b130699af546a8a7b1b8ae5e69e11627b240f07ec610f4b7b2c92ffc23f6cf97b3516cd69db1ae27b3d9a70e4d5f1337b461dea34d1afdd7b4ea1395b6ffe917b57245e5a526cc47b5fa759331a71b07b682a29e7696c577b70acd078e0a3827b792f4ce92145c77b81b19f39cc69897b8a33c76c830cf77b92b5c582e616127b9b37997e9652b17ba3b943613478787bac3ac32c6124e87bb4bc18e1bcdd577bbd3d4482e80ef27bc5be4611830ec87bce3f1d8f2e19c27bd6bfcafd8954a87bdf404e5e34cc257be7c0a7b2d074c67bf040d6fcfc2afe7bf8c0dc3e57b3267c0140b77882b9817c09c068ad1cd23b7c123fefddc5796f7c1abf4d0c1c13237c233e8039bfeb517c2bbd89685035e27c343c68996c0eb47c3cbb1dceb2799c7c4539a909c262667c4db80a4c3a9cd57c56364197b9e4ac7c5eb44eeddedda87c673232504813857c6fafebc093fa027c782d7b4060ece07c80aae0d14d2fe37c89281c74f6eed77c91a52e2cfc3d917c9a2215fafb17ef7ca29ed3e09161db7cab1b67df5ce74d7cb397d1f8fb5c4e7cbc14122f0a5cf67cc4902883276d757ccd0c14f6effa0a7cd587d78c0157107cde037043f8c0f97ce67edf20735c527ceefa24230e35c57cf7753f4d66421b7cfff030a1185e3c7d086af81fc14f337d10e595cafdc22e7d196009a46a4c827d21da53ada36bac7d2a5473e84585527d32ce6a55ece7447d3b4836f835c7817d43c1d9d0bc44387d4c3b52e11c63c47d54b4a22af214b97d5d2dc7afd92ddc7d65a6c3716d6e287d6e1f95714a7cd17d76983db10be9467d7f10bc324d2b317d878910f6a9a2787d90013bffbc97457d98793d4f2139ff7da0f114e672a3527da968c2c74bd42e7db1e046f347b5cb7dba57a16c0119a97dc2ced23312b9937dcb45d94a1737a17dd3bcb6b2a91e377ddc336a6e62e00a7de4a9f47eded8207ded2054e5b749d67df5968ba48660d97dfe0c98bce631317e06827c3070b73e7e0ef83600bfd7bd7e176dc62f6d5fc37e1fe32cbe1304c87e285869ae4a64a07e30cd7d01ad05877e394266b9d456177e41b726d859ad547e4a2bbd5ed64aa77e52a02a4ee355e37e5b146daa19df497e6388877212df817e6bfc77a86737a77e74703e4eafb1477e7ce3db6684fe5d7e85574ef17fb95b7e8dca98f138652b7e963db967476d2a7e9eb0b0554525327ea7237dbcc9c9997eaf96219f6d7f307eb8089bfec853497ec07aecdc723bb57ec8ed143a0316cb7ed15f121912ab647ed9d0e67b38a8de7ee24291620ca7227eeab412cf2626a27ef3256ac41c905a7efb9699428735d77f04079e4bfd51337f0c7879e21605187f14e92c06685cc67f1d59b4ba8b4c107f25ca140015af5e7f2e3a49d89e4bb47f36aa5645bbcead7f3f1a394904ce807f4789f2e40fca047f4ff983187328ae7f5868e9e7c53a947f60d827539c386f7f69473b5d8e439d7f71b626073166237f7a24e7521b92b17f82937f3fe2a49b7f8b01edd21c5fe57f9370330a5e71427f9bde4eea3e6e147fa44c417351d46a7facba0aa72e0b0c7fb527aa876861737fbd952115960fd27fc6026e534c37117fce6f92421fe0d47fd6dc8ce3a5ff7c7fdf495e39736e277fe7b606451cf0b27ff02285083733bb7ff88eda8456cca78000fb06bb10399b80096709adf7e1858011d2e35ea2141d801a3e93cea309e28022aa1aff8ee421802b1578f2f9acf7803380adaa77574c803bebb9279bbedc8044569b6bfaa837804cc1547927c0c180552be450b69eb3805d964af43ac1228066008865478ffb806e6a9ca5705c088076d487b6485ef0807f3e499962bb398087a7e250527c4b80901151dcaa967380987a983ffde6e180a0e3b57bdf33ab80a94ca991e12bd180b1b5748396673d80ba1e16529166c480c2868f0064942880caeede8ea2421f80d35704fedcac4980dbbf0252a5f74080e426d68b90308d80ec8e81ab2d4eb580f4f603b30f313180fd5d5ca4c7a0768105c48c81e84df4810e2b934c02d4188116927104a8b651811ef925ad6b610d81275fb147dc29bc812fc613d58c4ed481382c4d580cf7d28140925dd0ef353a8148f84541c4009a81515e03ac1c3c8c8159c3991188b4b481622905739a1dcb816a8e48d3e115978172f36333ee22f2817b58549551b5ca8183bd1cf99c2723818c21bc625db91781948632d12696dc819cea804786d4c581a54ea4c70e703e81adb2a0514d4fd481b61672e7d3433381be7a1c8c30032c81c6dd9d3ff331b381cf40f504ac59e181d7a423dbeaeff781e00729c73e515f81e86a06c835c4af81f0ccbae06079a881f92f46114d893c820191a85c8bf58a8209f3e1c3aaa9e7821255f248387ad8821ab7d9ebc4261a82231998afdc52a0822b7b2e960f90968233dc9b9fec5964823c3ddfcf010fab82449efb24dbff50824cffeda30b5d70825560b74b1d4871825dc1581e9fc7f8826621d01f20ccf1826e821f4e2e318e8276e245ad55b949827f42433e2510e88287a2180229ce7b829001c3faf17161829861472a09624882a0c0a190fef33082a91fd3315f5f6a82b17edc0cb7cb9e82b9ddbc249545c782c23c737a84c53c82ca9b0210132aad82d2f967e6cd402282db57a5003fb90582e3b5b95df7321b82ec13a50180318c82f47167ec6726e282fccf0220386b0a83052c739e80405a830d89bc68cad28b8315e6dc80a436c3831e43d3e7986b918326a0a29f3358f2832efd48a900d050833759c6068c8c86833fb61ab96231e183481246c30d4e2183506e4a2519587c8358ca24e111b19f836125d6f881a3af836981606cf4624b8371dcc13ff50a91837a37f9730ea3188382930907cc1bfb838aedefffb84ed3839348ae5c5dfebf839ba3441f47d86283a3fdb14a0071e383ac57f5de124af283b4b211dd07cccb83bd0c05486b4a3583c565d021c6ff8083cdbf726aa5129083d618ec248f92d883de723d5110795d83e6cb65f1b1a8b683ef246607fced1583f77d3d957bfc3d83ffd5ec9bb8758f84082e731c3be205841086d1188fb4358418df06923d4855842137138acde43984298ef803cab7588431e6b3febcdacb843a3e477d2d5150844295b280a5074e844aecf50aacd2d18453440f1ccd7393845b9b00b88f92f58463f1c9df7bc40b846c486a931a839284749ee2d4f437ff847cf532a691317284854b5a0979a9c5848da158ff35c4868495f72f894d8ef8849e4cdda949001d84a6a26360aff8ad84aef7c0b10a431f84b74cf59bdf93a784bfa20222b7883984c7f6e64719a88f84d04ba20a8d661f84d8a0356e9a1c2b84e0f4a074c70fb684e948e31e9b6f9284f19cfd6d9e545384f9f0ef6356c062850244b9014b9fed850a985a4903c8f88512ebd33c05fb52851b3f23dbd8e0a18523924c2a030c5e852be54c280afbd585343823d7771630853c8ad339cdac6c8544dd5a5094f963854d2fb91d5321cf855581efa18e3440855dd3fddecc2930856625e3d692e2f2856e77a18a682dc38576c936fbd1bfc1857f1aa42c5538f285876be91d782344858fbd05d0bff28d85980dfa47b2049485a05ec683d3a10785a8af6a86a9f98885b0ffe651ba29a885b95039e68936e885c1a065469c10c085c9f0687377909d85d240436ea079e285da8ff6399b79ed85e2df80d5ed281585eb2ee3451a05ad85f37e1d88a67e0985fbcd2fa216e67986041c1992ef7e51860c6adb5cb46ee58614b97500e9cb91861d07e6811391b58625562fdeb5a8ba862da4511b53e2128635f24a3871f93b863e401b379393bf86468dc41a3c4137864edb44e1ef7b4d8657289d9030a5ba865f75ce26830e508667c2d6a669ecf086700fb71168639586785c6f69017e538680a8ffaeb833588688f567e40f62ed869141a80a89d77786998dc023aa457d86a1d9b030f34ba686aa257833e772ba86b271182e092da686babc9020dad97c86c307e00ddebd7786cb5307f6970afa86d39e07dc85dd9386dbe8dfc12d3afa86e4338fa60f131986ec7e178cad400686f4c8777689860c86fd12af652593a387055cbf5a03017e870da6a756a352818715f0675c87f3cc871e39ff6d323cb58726836f8a236ece872eccb7b4dcb5e9873715d7eedf2810873f5ed039abc5938747a7a096c37901874ff04907a7172a875838c98dd75f28876081222ad4fa588768c952e0207c608771115baf3a63308779593c99a317038781a0f5a0daea628789e886c6621a2387922ff00bb8cd70879a7731725f15be87a2be4afbd4eedd87ab053ca99a3eef87b34c067d2ed66d87bb92a87812702887c3d9229bc4b14d87cc1f74e9c5296187d4659f6393524c87dcaba20aae904f87e4f17ce096321087ed372fe6c9709587f57cbb1ec76f4a87fdc21e8a0f3bfe8806075a2a1fcee8880e4c6e00780aa88816915a0e96bc4a881ed61e55fa9b4488271abad8224978882f5f2f968c533b8837a37c92b72f51883fe7a1ce213ef088482b9f4a48cdc388506f7508ac11ea8858b3230ac92bfe8860f6a9521e270e88693a07e028f8a888717d3eb66780d18879c04dd6578a0f888203354176c967888a45f4f942de5f8892888cff3952fe889acafd54d79bd388a30d45fb9b17ef88ab4f66f50110ec88b391604286baee88bbd331e5a934a188c414dbdfe5874288cc565e32b8a69788d497b8df9f70f988dcd8ebe816af4f88e519f74d9b151688ed5adb11a9405e88f59b9735bdb9cc88fddc2bbb54f49e89061c98a3eb4eab890e5cddf0fd106389169cfba4066cd5891edcf1be8381ae89271cc041f05737892f5c672fc8e05d89379be68988fab2893fdb3e50ac6e6789481a6e86aeee57895059772d0c180389589858453f73978960d711d0c473e6896915a3d11676748971540e47b0c37189799251360e8dbb8981d06c9daaf2e3898a0e608000fb2e89924c2cde8b9992899a89d1bac5abbe89a2c74f1629fa1789ab04a4f23337bc89b341d3505c028689bb7eda321ee30a89c3bbb998f64c9d89cbf871865c9d5289d43501fbcc1dfd89dc716afabf023589e4adac84af685689ece9c69b17598089f525b93f70c99e89fd61847335975f8a059d2837df8c438a0dd8a48ee85c908a1613f979c9a75d8a1e4f26f9fcf6928a268a2d10fbbee58a2ec50bc03f5fdf8a36ffc3094123df8a3f3a52ed7a40188a4774bb6e63d4948a4faefc8d76ec398a57e9164c2c7cc48a602308abfd66d18a685cd3ae6275d68a70967754d4602c8a78cff3a0cbc70c8a81094893c1368f8a8942762f2d25b58a917b7c7487f6618a99b45b6549f55f8aa1ed1302eb5a648aaa25a34ee4480d8ab25e0c4aaccbe68aba964df7bcde668ac2ce68578c62f38acb065b6b9327e58ad33e273548e6868adb75cbb62543138ae3ad48ef9fccbe8aebe49ee32ffdb28af41bcd924d3b0f8afc52d4fe6ed4f28b0489b5290c06748b0cc06e139bf5a78b14f6ffbf95b3a28b1d2d6a2e703c758b2563ad61a277378b2d99c95aa336038b35cfbe1ae935f58b3e058ba3eb1f338b463b31f71f84e88b4e70b115fce54d8b56a60901f9a9a28b5edb39bc8c26368b671043472a9a668b6f4525a34b309f8b7779e0d263fe608b7fae74d5eb04398b87e2e1af562dd28b901727601b51e78b984b45e9b0324b8ba07f3d4d8a7bed8ba8b30d8d1fc6d48bb0e6b6a9e596268bb91a38a55158258bc14d9380d866338bc980c73df004d48bd1b3d3de0d63ad8bd9e6b962a59d898be21977cd2db8598bea4c0f1f1aa5338bf27e7f59e140578bfab0c87ef651318c02e2ea8fce8a578c0b14e58dde898c8c1346b97a9ad7c48c1b78665777e9238c23a9ec25ea1d008c2bdb4ae765bde38c340c829d5f018c8c3c3d93494a08f18c446e7cec9ae03f8c4c9f3f88c57ee08c54cfdb1f3dc7768c5d004fb17787e28c65309d40e679448c6d60c3cefe3ffb8c7590c35d326ba78c7dc09becf6772d8c85f04d7fbdc8b68c8e1fd816fbb1b08c964f3bb4236ed28c9e7e7858a8281f8ca6ad8e05fcf0df8caedc7cbd94c7ac8cb70b4480e296698cbf39e55159324d8cc7685f306b5bdf8ccf96b21f8bbef68cd7c4de202cf2bf8cdff2e333c179be8ce820c15bbbc1cc8cf04e78998e241b8cf87c08eeaae5398d00a9725c84350e8d08d6b4e48c2ee08d1103d08834d9538d1930c548f0266f8d215d93282ff3988d298a3a2766099c8d31b6ba48041ca78d39e3138b7bcc528d420f45f33ea39b8d4a3b5180be18e98d526736356b8e108d5a92f412b8504e8d62be8b1a1598538d6ae9fb4cf48a3c8d731544acc635978d7b40673afb95678d836b62f90590218d8b9637e854f7b18d93c0e60a5a89798d9beb6d6086ee578da415cdec4abaa08dac4007af166e268db46a1aaa5a743a8dbc9406df8723aa8dc4bdcc500cbec38dcce76afd5b735b8dd510e2e8e35ac28ddd3a34141479d38de5635e805ec0f08ded8c622f320bff8df5b53f21fe22748dfdddf55a32b74a8e060684d93f690c8e0e2eeda093c1d18e16572fb19f37418e1e7f4b0dd12a958e26a73fb698e8978e2ecf0dad65a9a88e36f6b4f3a691bd8e3f1e358acab0628e47458f744100bd8e4f6cc2b178698c8e5793cf43dfbd2b8e5fbab52ce5b9948e67e1746df9085c8e70080d08883ebc8e782e7efe01dd8d8e8054ca4fd4514d8e887aeeff6df21d8e90a0ed0e3d03c38e98c6c47dafb5b28ea0ec754f3423008ea911ff843852748eb137631e2a367c8eb95ca01e77ad388ec181b6868e80748ec9a6a657dc65b08ed1cb6f93cefe1b8ed9f0123bd3d69b8ee2148e515867cb8eea38e3d5ca15fa8ef25d12ca9631338efa811b3129f5378f02a4fd0af289888f0ac8b8595d015e8f12ec4d1dd65bb78f1b0fbb59cb83498f2333030ea94e918f2b56243ddc7fcc8f33791ee8d1c4fe8f3b9bf310f5b7ee8f43bea0b7b4de2d8f4be127de7ba9128f54038886b675c18f5c25c2b1d18d298f6447d6613924058f6c69c396595ae08f748b8a529e3e168f7cad2a9773c5d48f84cea46645d61b8f8ceff7c0803ebe8f951124a78ebb6b8f9d322b1cdcf3a38fa5530b21d67ac58fad73c4b7e6d0078fb59457e0795e7d8fbdb4c49cf97d188fc5d50aeed26ea88fcdf52ad76f61e08fd61524583b71518fde34f772a1a3738fe654a4280ceaa58fee742a79e825268ff6938a699e1d248ffeb2c3f89988b29006d1d7284509d1900ef0c3fa0b2e6c90170f8a6f56705f901f2e2a8991357490274ca44a25cf65902f6af7b27e7be090378924c4056487903fa72b80249eef9047c50be8462caa904fe2c5fdd3fb3b90580059c237e42390601dc736dbacdf90683b0e5d2906e79070582f36898fb190787529c466d0b3908091fe082a3f699088aeac033d3d499090cb33b70917d49098e79524f7089090a103d04e70350690a91fe534ddaecc90b13bd3d9a8738290b9579c3e396cd090c1733e63f9706e90c98eba4c51402290d1aa0ff8a989c290d9c53f6a6ae73590e1e048a2fdde7490e9fb2ba3cae19190f215e86e3a4ead90fa307f03b4700691024aef65a17bf0910a6539956994da91127f5d9474c94d911a995b642b13f49122b33305f45b93912acce47b3873139132e66fc55f197a913affd4e5cff9f491431913ddf2abd2914b322caf2eb28a91534b1f5aeb7db7915b63ebe290692091637c924784bcb7916b95128b2fac969173ad6caef8590a917bc5a0b445ce889183ddae9c7f05bc918bf596690ae37d91940d581b5038da919c24f3b4b5c31691a43c6936a22ba691ac53b8a27c083c91b46ae1f9a9dac091bc81e53d92115491c498c26f9b065691ccaf79912b006591d4c60aa3a8325991dcdc75a878bb4d91e4f2baa102a69e91ed08d98eabebec91f51ed272da6f1c91fd34a54ef4005592054a52245e5c0d920d5fd8f47f2afb92157539c0bc0226921d8a748a7a62de92259f89531fbac1922db4781c1163bb9235c940e6b4a40a923ddde3b46eae3d9245f26086a4a134924e06b75ebb882492561ae83e185a9c925e2ef3261ffc7c926642d818373e03926e569715c2dbc592766a3020277eb4927e7da338c9bc21928690f0610e15b8928ea4179a58f9889296b718e60ec1ff929ec9f44593b5ef92a6dca9ba4c089192aeef39459bd97d92b701a2e8e734ba92bf13e6a59212b292c726047d00583c92cf37fc7095d69a92d749ce81b64b7a92df5b7ab1c560fa92e76d010226ada692ef7e61743db47c92f78f9c096de4ee92ffa0b0c31a9ae09307b19fa2a71ead930fc268a976a5279317d30bd8ec4f96931fe389326b2bc29327f3e0b75633e59330041269104ec09338141e48fc4f8a93402404587cf5fc934833c498f4ee539350435f0bc6d14c935852d3b2552427936062228e0258a99368714ba030cd229370804eea42cc6693788f2c6d9a8dd493809de42b9a35549388ac7625a3d35f9390bae25d1964f69398c928d35cd3b093a0d74989cff5ae93a8e54481d48da793b0f319bccc4ae693b900c93c18c94993c10e53011b914493c91bb70d3617e593d128f561c9bed293d9360e0037d44c93e14300e9e1932f93e94fce202822f793f15c75a46c97bb93f968f7780ff237940175539c731fc59409818a12f6fa6494118d9adcfc48b694199985fbe3be069421a54b710dfa429429b0eb3ddb8a059431bc6563ace6939439c7b9e3e275da9441d2e8bfdc8a779449ddf1f8fb63b49451e8d5909f2d8c9459f393882800ad9461fe2be0f5e271946a089e9c68c4ef947212ebbbe086ed947a1d1340bcf3eb948227152c5dc421948a30f180229c8094923aa83d6b0eb4949a44396596992794a24da4fa04a6ff94aa56eafc14902494b2600b6d25993c94ba69064e96f3b194c271dba1c7bdb094ca7a8b6817022c94d28315a2e3b8dc94da8b7a538cc64194e293b97b70fba494ea9bd31bef171a94f2a3c73665c38494faab95cc33988e9502b33edeb71ab5950abac26f4ebb469512c2207f58d860951ac9591033bcf29522d06c233da0c5952ad759b9d4a8729532de21d556e56e953ae4c4772256039542eb41a094e557954af199530c6b6a9552f7cb8fe6ad1d955afdd858815c28956303bfae3a1728956b0981926e699b95730f1e067bcbdf957b14950bbfa336958319e6a39741c9958b1f12cf5fe6a6959324199076bdc3959b28fae838e00295a32db6d803532b95ab324d613309f695b336be8524e40795bb3b0a4535adf395c33f30a2c2213b95cb43319f26e45595d3470d3bc08aa995db4ac379eb949595e34e545b046f6b95eb51bfe067757595f355060b70edf595fb5826dd7d0d2896035b2257e7f446960b5df87c0db183961360a94b4a4014961b6334c6f9882a9623659af0775ef9962b67dbc91f86b6963369f7524dae9a963b6bed8d5d72e596436dbe7baa5cdd964b6f6a1e8fe2cc965370f07769680a965b725187923cf79663738d50659f02966b74a3d33eb8a1967375951178a161967b76610c6e5dd896837707c57adfb3968b77893df905ac969377e577439b98969b781c72b55a5e96a3782e31a8e7fa96ab781ab578d78596b377e1ff7fa92e96bb77841117ca4196c37700eb9b952696cb76589065516496d3758b00cf339f96db74983e335d9e96e3738049ebde4796eb72432552b1a796f370e0d1c1c0ee96fb6f595092e27097036daca31fd9ae970b6bdacac2574b971369e3c8d3f91a971b67c79eae4a17972365864daac269972b631fd722c769973360943c6faba0973b5de37eeaaec397435b0d9fecfdbe974b5812a0cfb2b0975354f282ebd4ec975b51ad479a58fc97634e42f03420a2976b4ab37e11fadb977346fef28ca3da977b43254efcc51297833f2694baf532978b3b02c51fb829979336b9e1837f23979b324beb3ea89197a32db8e3a9802497ab2900cc1c3ed397b32423a5ef0ad897bb1f217279f7b897c319fa3315063b97cb14ade918247897d30f3c95db2dcc97db09a63ab5eae397e303ead90011b897eafe0a7211459197f2f8050741170697faf1da99e704049802eb8b2b5a77c6980ae516bcf2cade9812de7d50074334981ad7bee5ef14069822d0db80015deb982ac9d31f952ed39832c2a5c601820c983abb53749d403d9842b3dc2cbf3f6d984aac3fefbe43009852a47ebef0fbbf985a9c989bae07cf9862948d874bf2bd986a8c5d8321357a9872840890843659987a7b8eb0cb491a988272efe54caee2988a6a2c2f5e96409892614390571b30989a5836098c471a98a24f039c5410d498aa45ac4a045ca398b23c3013f2fc3c98ba328efb75aeca98c228c901e220e698ca1ede288deca298d214ce70ce998398da0a99dbf99c8898e200406b64582798e9f5c220641c5198f1eb1efc4e267298f9e0570077a1739901d56a2e35a5bb9909ca5886dd39319911bf220bc34f3c9919b3c6be3cc8c69921a8469f9e743d99299ca1b13d0d91993190d7f46d3e3b993984e96a839d3b994178d614d4af1899496c9df4b4e5e6995160410b78a142995953bf5a742e5799614718e2fbc7df99693a4da663962399712d5da5ffaefb99792048e32415d29981130f5f24bbaa998905b11b557f139990f82e190a2c3a9998ea8659967ce099a0dcb9de4e185e99a8cec8a88493aa99b0c0b2b98d715499b8b27812bc218799c0a418b564021099c89594a2d85e5899d086ebdc6c6f6d99d8781e63735bf899e0692c3940384b99e85a155f26065e99f04ad9d677b5ca99f83b79a08823d29a002bf4beaa1b649a081c4b323055149a100c7cfc6d77239a17fc8a1eb415809a1fec729a56b1c69a27dc3670a7bb409a2fcbd5a2f98eeb9a37bb50329e77759a3faaa620e8ad3e9a4799d76f2a565c9a4f88e41eb5869c9a5777cc30dc3f809a5f668fa6f070449a67552e8243f5de9a6f43a8c4289afe9a7731fe6df018119a7f202f80ec13459a870e3bfe6e20819a8efc23e7c7c1719a96e9e73e4a65839a9ed786034769e59aa6c5003810198b9aaeb255ddf5ad319ab69f86f6494b569abe8c93825c08459ac6797b837ee6109ace663efb02d4959ad652ddea38b1809ade3f58527148479ae62bae34fd52329aee17df932d76589af603ec6e5249a19afdefd4c7bc4ec99b05db98a0bbf6619b0dc737faa19ecc9b15b2b2d6bd94489b1d9e09366010e99b25893b1ad93c9b9b2d744885792d279b355f31778fe6329b3d49f5f26d593b9b453495f76165a69b4d1f1187bbd8af9b550968a4cc6d7a9b5cf39b4fe2cd0b9b64dda98a4e8e489b6cc793555f35ff9b74b158b26436e29b7c9af9a2acf18e9b8484762788b4859b8c6dce4246bc369b945701f43632fc9b9c40113ea6311c9ba428fc22e5bcce9bac11c2a243ca359bb3fa64be0f3b659bbbe2e27796e0699bc3cb3bd029773a9bcbb370c915abc99bd39b8163aa17fc9bdb836da13543b09be36b358305a4ba9beb52d90a699eea9bf33a5838af840c9bfb21b30f2593e89c0308e98f19fc429c0aeffbb9dad8de9c12d6e990b633839c1abdb314fa03f59c22a45847f42fff9c2a8ad92af28b6f9c327135bf42d8189c3a576e0632c5d29c423d82010ff2839c4a2371b127ea149c52093d17c8267d9c59eee4363e0fbf9c61d4670dd6fbec9c69b9c59fe02f1f9c719effeda6db8a9c798415f87821699c816907c1a10f0f9c894dd54a6ea0e49c91327e942dc15e9c991703a02b49119ca0fb646fb3fea69ca8dfa1041496db9cb0c3b95e99b48f9cb8a7ad808fe8b69cc08b7d6b43b2669cc86f2920017ecf9cd052b0a015a9439cd83613eccc7b339ce0195307722c339ce7fc6df152e1f89cefdf64abbab05f9cf7c23737f599679cffa4e5974f8d399d07876fcb146a239d0f69d5d48ffca09d174c17b50dff539d1f2e356dda1b0d9d27102f003fe6cb9d2ef2046d8ae7bb9d36d3b5b70691369d3eb542ddfe44cc9d4696abe3bd523c9d4e77f0c98ef77b9d56591190be60af9d5e3a0e3a96a8389d661ae6c862d6ad9d6dfb9b3b6de2dd9d75dc2b9502b1d39d7dbc97d66c16d09d859ce000f4d3599d8d7d0415e7972d9d955d04168f00489d9d3ce004359aec9da51c97e025e1999dacfc2babaa3d129db4db9b680d04609dbcbae716987cd09dc49a0eb896d9f89dcc79124f523db29dd457f1dc14b8269ddc36ad602847c49de41544dcd6d9489debf3b8536a47be9df3d207c52c5c7a9dfbb0333366cf269e038e3a9f6345bb9e0b6c1e0a6b54839e1349dd75c87e1d9e1b2778e2c4337b9e2304f052a7d3e79e2ae243c6bcad029e32bf73404bfac49e3a9c7ec09ee77f9e42796648fe8be29e4a5629dab3eef79e5232c9770806259e5a0f451f43b5329e61eb9cd4afce479e69c7d0989511e99e71a3e06c3c2f049e797fcc50edc2e79e815b9447f259449e89373852926c369e9112b87216643e9e98ee14a7c698479ea0c94cf4eb4da69ea8a4615accb81a9eb07f51dab2f9cf9eb85a1e75e623629ec034c72dae33dc9ec80f4c035318b79ecfe9acf81cadde9ed7c3ea0d52bdb19edf9e03443d01039ee777f89e231f1c9eef51ca1c4cadbb9ef72b77c00131199eff05018a881be49f06de677d28cf489f0eb7a9992a9aeb9f1690c7dfd4bcf19f1e69c2526e61fb9f264298f23ea52b9f2e1b4bc08c90219f35f3dabe9f1b039f3dcc45edbd2c769f45a48d4f2d99a79f4d7cb0e43726459f5554b0ae20848a9f5d2c8cae3055349f650444e5ad278f9f6cdbd955dd796e9f74b34a0007b7309f7c8a96e5723bc49f8461c0076350a49f8c38c567212ddd9f940fa705f1fa0a9f9be664e51bca5a9fa3bcff05e4a28e9fab9375699274fd9fb369c8116b22929fbb3ff6feb47ad29fc3160232b43bd69fcaebe9aeb012569fd2c1ad73ed99a09fda974d83b25ba09fe26cc9df43d0e19fea422287e760889ff217577ee2605e9ff9ec68c57a14cca001c1565cf3b0dca00996204694563ca0116ac683a11540a0193f49155eecdfa02113a7fd12cabba028e7e33c018b1ca030bbfad36ff8f3a0388feec4a2cddea04063bf10deb227a048376bb9683cc2a0500af4bf83f355a057de5a24764a35a05fb19be983a468a06784ba0ff053a7a06f57b49900985ba0772a8b85f8a1a6a07efd3ed81c8d5fa086cfce90b06813a08ea23ab0f82d07a09674833a37c63aa09e46a82db30c6aa0a618a98cadc70aa0adea87586bac4fa0b5bc419230612aa0bd8dd83b3f7950a0c55f4b54dc7733a0cd309ae04acc07a0d501c6decdd7c8a0dcd2cf51a8e931a0e4a3b43a1f3dc6a0ec7475997401d1a0f4451370ea5066a0fc158dc1c53363a103e5e48d47a36da10bb617d4b487f8a1138627994eb745a11b5613dc58f663a12325dc9f15f930a12af581e2c8625ea132c503a8b2c36ca13a9461f2179cb0a142639cc0395d55a14a32b4145a6359a15201a7efbcfb93a159d07853a361b3a1619f25414fc03fa1696daeba04309ba1713c14bf02bb06a1790a57518d569ca180d87672e5e955a188a672244e480da190744a6708367ea19841ff3c556743a1a00f90a5777bdca1a7dcfea3b004aea1afaa4938408102a1b77770646a5f06a1bf4474296efbd4a1c71154888fa36fa1cede11830d90c0a1d6aaab1a29eda0a1de77214f25d2d5a1e643742342480ea1ee0fa397c043efa1f5dbafade0ac0aa1fda79866e454e3a205735dc40c01f0a20d3effc698659da2150a7e6fca214aa21cd5d9c0e1c54ea224a111bb1fd0f8a22c6c265fc4b28ea2343717b010c753a23c01e5ad445b83a243cc90589faa58a24b9717b362de0aa253617bbece0fcfa25b2bbc7c2147dda262f5d9ec9c7d6ca26abfd4117f96b8a27289aaec0a68fda27a535e7d7cb87fa2821ceec7163887a289e65bca168b68a291afa587bd4277a29978cc0149de1da2a141cf37fbcdc3a2a90aaf2d126fe7a2b0d36be1cd120da2b89c05576af0d0a2c0647b8f2b37d2a2c82cce8a4d01cda2cff4fe4a0f5889a2d7bd0acfb134e2a2df84f41c717ecca2e74cba318f0d4aa2ef145d1048a67ea2f6dbdcb9dcff9ca2fea3392f8abcf3a3066a72729071efa30e3188842ca115a315f87b659dbc08a31dbf4b18222389a32585f79cf82777a32d4c80f55e06d5a33512e72291efc4a33cd92a25d1ff89a3449f4a005c428fa34c6546b36eb465a3542b2040473fbfa35bf0d6a823be7ba363b669ec41f99ea36b7bda0ddfa959a37341270e3a7505a37b0650ee8ff32da382cb57b01da984a38a903b54210ceea39254fbdbd78180a39a1999487e5a7ea3a1de139b52da61a3a9a26ad59232d2a3b1669ef87984b3a3b92ab00545e01aa3c0ee9dfd344452a3c8b268e1819fe1a3d07610b36ad087a3d83995742ca33ca3dffcf72503d435a3e7c035c72d0ee5a3ef83515be4edfca3f74649e467fb6aa3ff091f61f2b060a406cbd1d5c17550a40e8e614110a1efa41650cda51c7d35a41e131703213d62a425d53d5c5b07fba42d9740b205f1cda4355921055dfeeca43d1ade579f22baa444dc78aa053fdea44c9deffdcc2854a4545f44542f9d5ca45c2075ae6b4f8da463e1840dbadec9a46ba26f7359da44a4736337e083c083a47b23dd5673ff65a482e45fd665f414a48aa4bf6194eb16a49264fbf93c2048a49a25159e96bedba4a1e50c52dfe15ea4a9a4e0175291b7a4b16490ed29c929a4b9241ed5a07056a4c0e389d1f15f38a4c8a2d1e3575d2fa4d061f70b0d20f7a4d820f94a4d50b0a4dfdfd8a25281daa4e79e951457395aa4ef5d2ea195eb7da4f71ba54b48fbf1a4fed9f912aabdcea5069829f8f57396a50e5637ff634f31a5161423272e71f7a51dd1eb7190eca5a5258f90dfc4bf6da52d4d137303d9e8a5350a732c881b25a53cc7b00d8b519ea54484ca17473b44a54c41c14af58577a553fe95a9cfcd0ea55bbb47350f9e53a56377d5edee7507a56b3441d5a5bc65a572f08aed6ecf1ea57aacb13682f75ea58268b4b21b6ecda58a249561715e8ca591e05345bddf40a5999bee6039f907a5a15766b21ea37fa5a912bc3ca4c5caa5b0cdef0105368aa5b888ff0078bbe5a5c043ec3c380b84a5c7feb6b57bca98a5cfb95e6d7c8dd8a5d773e36572d983a5df2e459e97215ea5e6e8851a21c8bca5eea2a1d94b227aa5f65c9bdd4b7102a5fe1673275ae64ca605d027b8b1a3dda60d89b99287bacca6154328b6152bbfa61cfc752491e6f1a624b59edf35cc2fa62c6ea5e738aad9a634278a3dd241e9a63be04be43a3feca64398eadba84308a64b51672553d8fda65309c0c2747f25a65ac1f7b441a276a6627a0bfbf29f82a66a31fd9abec278a671e9cc91dd4729a679a178e2855903a68159028dee1315a6891069954e8014a690c7adf9dd9a56a6987ecfbcd24bd4a6a035cedf636e32a6a7ecab62c7cab5a6afa36548361a4fa6b759fc90e50598a6bf10713e0b24d5a6c6c6c350defff4a6ce7cf2ca970e94a6d632ffac69b7fca6dde8e9f78d5324a6e59eb1ad3826b9a6ed5456cea06913a6f509d95cfc403fa6fcbf395981c1ffa7047476c566f3c7a70c2991a1e1cac1a713de89f0282bd1a71b935fb16feb90a7234812e6eece53a72afca391da8826a732b111b368bcd5a73a655d4cceffe5a74219865f42d499a749cd8cebf9adf5a7518170f428eebea75935327905e976a760e8d17bc5e064a7689c4dfd9e0595a7704fa7ffc37ad6a77802df836b51bca77fb5f489ca8ba3a78768e7141619b0a78f1bb72382dccfa796ce64b945a5b9a79e80efd69334efa7a633587ca03ac2a7ade59eaca15750a7b597c267cb1a83a7bd49c3af520419a7c4fba2846a83a0a7ccad5ee848f877a7d45ef8dc21b1d1a7dc10706128eeb5a7e3c1c57892de03a7eb72f823939e6ca7f32408635f3e7ea7fad4f63929bc9ea80285c1a627070ba80a366aab8afbe0a811e6f14a896915a819975584560c7da82147975a2493cda828f7b6cd289c97a830a7b3de95b450a838578e8f9f584fa8400746e178f5cca847b6dcd555e9e7a84f66506c6981a1a85715a1a7e6f9e6a85ec4d089017f86a86673dd10ec2f3ca86e22c740da15aea875d18f19fe2f69a87d80349d8b68eca8852eb7ccb49e9da88cdd18a8ac9cd5a8948b5732a61fdba89c39736bd3d3e7a8a3e76d55685522a8ab9544f0962faaa8b342fa3e8fdf8ea8baf08d4087d0d5a8c29dfdf7b05f7ba8ca4b4c653bd772a8d1f8788a5c74a8a8d9a58268446302a8e1526a0025be61a8e8ff2f533292a0a8f0abd2629cdb9ba8f858532f968527a90004b1bb516b1ba907b0ee06ff594fa90f5d0813d20b9ca91708ffe2fb2ddda91eb4d575ac5bf1a9266088cd1721baa92e0c19ea6cfb23a935b788cedf541ea93d62d57b9f88a1a9450dfff1dee4b0a94cb90832cea458a95463ee3f9ff3afa95c0eb21983eedca963b953c1aba20fa96b63d33948098ba9730e30818a119fa97ab86b9ba296b0a982628488c26530a98a0c7b4a1a39a8a991b64fe0dac0b2a99960024e349703a9a1099293584960a9a8b300b17654aaa9b05c4ca9bf25d9a9b805767d631a00a9bfae7e2d927e4ca9c75763bb7d9009a9cf002728547c9aa9d6a8c875476187a9de5147a3864c75a9e5f9a4b4413b28a9eda1dfa8a81b86a9f549f881eacb9ba9fcf1ef41391994aa0499c3e7c2c3c3aa0c417676b778a1aa13e906ef46d6cdaa1b907552a06d10aa2337c1a1f3ba5baa2adeebde702dccaa3285f4094526a7aa3a2cda23a1f463aa41d39e2eb5d6a1aa497a402baffd32aa5120c01bbf8818aa58c71e00138784aa606d59d9dafbdaaa681373aa44d5b2aa6fb96b727ff5d7aa775f4133bb2d4caa7f04f4ef253d49aa86aa86a5ecd73caa8e4ff659409cceaa95f5440a4f1fe2aa9d9a6fba46e295aaa53f796a565740aaace4611babe079aab48926cf75d117aabc2dca86e26c2baac3d24c431fe50caacb76ac055c5f4faad31ae9cec5eecdaadabf05a08a97a3aae262ff7bd84e31aaea06d761dcf71faaf1aa8d53c6675baaf94e2152c2641cab00f1935ffea2e1ab0894e37ca8c973ab103811a9ee6de7ab17db1de8fd16a0ab1f7e083b023a4dab2720d0a12b3fe9ab2ec3771ca57ec6ab3665fbae9e3e7eab3e085e5842b705ab45aa9f1ac0109cab4d4cbdf74363daab54eebaeef9b9abab5c909603100b54ab64324f34b3426eab6bd3e6851038ecab73755bf553b918ab7b16af86aa7d9aab82b7e13a413174ab8a58f111447004ab91f9df0ce0c50aab999aab2e42ac9faba13b557696933faba8dbdde708d5c8abb07c4480c5c178abb81c8944f993f3abbfbcac34d07b3eabc75cad517695c7abcefc8c9c17f25fabd69c4a15e09040abde3be5bffc5f10abe5db5f9b973ed8abed7ab7a9dd0011abf519edebf9639eabfcb90263181ad1ac0457f51064c768ac0bf6c5f50afb90ac139575123639e6ac1b34026911f57bac22d26dfac991d0ac2a70b7c88862daac320edfd379ad01ac39ace61cc8a528ac414acaa5a070a2ac48e88d6f2c253cac50862e7a96c93fac5823adc90b536bac5fc10b5bb4aaf9ac675e4733bda7a3ac6efb615251119cac769859b899a199ac7e353067c200caac85d1e560f4c8e3ac8d6e78a55c8416ac950aea3623ad1aac9ca73a1474af2aaca443684179e604acabdf74be5d9decacb37b5f8c4a13aeacbb1728ac69749dacc2b2d01fe5de94acca4e55e7e95ff9acd1e9ba059df7bdacd984fc7a2d955eace1201d46c218e5ace8bb1c6c8552ecacf055f9eca10499acf7f0b5c83edfa7acff8b500088865ead0725c896a78b99ad0ec01f8bc572caad165a54e10baff5ad1df46897a3a7b5ad258e5ab0b6af3aad2d282b2d6e0c4ead34c1da0ef2f551ad3c5b67566e9141ad43f4d30509f7b4ad4b8e1d1bee30dead5327459c44358ead5ac04c8734ef33ad625931dde937dbad69f1f5a189da35ad718a97d33f918ead792318743309dbad80bb77858cdfb0ad8853b50875a048ad8febd0fe15c982ad9783cb6795c9e6ad9f1ba4461e00a3ada6b35b9ad6bd8eadae4af166e84129adb5e265ab7abca1adbd79b869b651ceadc510e9a2c31335adcca7f957c9040badd43ee789f01830addbd5b43a603438ade36c5f6a412d68adeb02e91abac9b6adf299514cf4bfccadfa2f980216b709ae01c5bd3b484780ae095bc0f9b0f9fcae10f1a33e784800ae1887640ac59bc7ae201d035fc05043ae27b2813e8fb127ae2f47dda85afaddae36dd189e495a8cae3e72322181ee1cae46072a332bc430ae4d9c00d46ddc31ae5530b6066f2643ae5cc549ca56834dae6459bc214ac4feae6bee0d0c72adc2ae73823c8cf4f0d3ae7b164aa3f8322aae82aa3752a3068aae8a3e029a1bf380ae91d1ac7b896f5fae996534f811e148aea0f89c10dba126aea88be1c70cf7b1aeb01f061bcc1e6eaeb7b209103f3fb1aebf44eaa58c76a0aec6d7aadcd9cf2daece6a49b74d4621aed5fcc7360cc914aedd8f235a3e3675aee5215e25075d86aeecb377978dfe61aef4456fb2f7c9f4aefbd746786a6207af0368fbe90b593daf0afa900600330faf128c02d06e63d5af1a1d54497b50c2af21ae84724c4fe6af293f934c06a82faf30d080d7cf916daf38614d16cc344caf3ff1f80a21aa5daf478281b2f4fe13af4f12ea126b2ac6af56a33129a91cadaf5e3356f9d3b0ebaf65c35b840fb587af6d533ec981e970af74e300cb4efc7daf7c72a18a9b8f70af840221088c33f5af8b917f46456ca6af9320bc44ebad06af9aafd805a35989afa23ed28990c792afa9cdabd1d83d71afb15c63df9df26cafb8eafab4060eb7afc079705034ab7bafc807c4b54dd2d5afcf95f7e4757fd5afd72409decf9e86afdeb1faa5800be5afe63fca39aa95ebafedcd789c72fb87aff55b05cefceca8affce871d26c0a32b00475bca7e3e60ab00c02e650880310b0138feecd7bd522b01b1cd61fe2c121b022a99c48e01ce9b02a364149972f5eb031c2c5232b3062b0394f27d6bf48dcb040db69657692b9b0486789d07418e8b04ff38918dad763b0577f673fcdbb29b05f0b24466fa244b06696c02de35bc5b06e223af74ba7cab075ad94a3cb377cb07d38cd3484ad10b084c3e4aa9a9bcbb08c4edb072f8800b093d9b04b65e711b09b646478601f72b0a2eef78f4088a8b0aa796991296b4eb0b203ba7f3d010eb0b98dea5a9d74abb0c117f9246ce1ffb0c8a1e6ddcd55f5b0d02bb387e0ce97b0d7b55f23c93b05b0df3ee9b2a87b7ab0e6c85335a06149b0ee519badd2aee7b0f5dac31c6117e2b0fd63c9826d40e7b104ecaee118bfc2b10c757339851b62b113fe168cd3cbd4b11b8698dc263a49b1230efa289dc116b12a973a735babb0b1321f59bd8136b9b139a758082f8ff1b1412f355487d647b148b6f1a3ab19ccb1503e8cf6ba5bc0b157c6074ed68e89b15f4d60ad2095bcb166d49912b94617b16e5bb080c16588b175e2a6f859ab2bb17d697c7aa2bf4bb184f03108bd3b65b18c76c4a3c9aa26b193fd374ce8876db19b8389053a404fb1a309b9cddf3313b1aa8fc9a7f7af39b1b215b894a3f573b1b99b86950437aeb1c12133aa389910b1c8a6bfd5612df5b1d02c2b179dfbf8b1d7b175720ef9eeb1df369ee5d40fe7b1e6bba7740d1732b1ee408f1dd9da5fb1f5c555e45a1539b1fd49fbc8ad74cfb204ce80cbf39772b20c52e4ef4c0cb4b213d72833d6556bb21b5b4a9ab1e3b2b222df4c24fe1aebb22a632cd3da4fbfb231e6eca865c81ab2396a8ba3bfbb36b240ee09c7075195b2487167135ba504b24ff4a389dbc09bb25777bf2ba6a0c0b25efab9f9db3326b2667d93f59856ceb26e004d1ffcdc0b000000000000000000000000000000000000000000000000"; + } + + /// @notice Fetches the rate for a given basis points value + /// @param bps The basis points value to get the rate for + /// @return ray The annual rate value + function btor(uint256 bps) public view returns (uint256 ray) { + require(bps <= MAX); + + assembly { + let offset := mul(bps, 8) // Each rate is 8 bytes + let wordPos := div(offset, 32) // Which 32-byte word to read + let bytePos := mod(offset, 32) // Position within the word + + let dataSlot := keccak256(RATES.slot, 0x20) + + let value := sload(add(dataSlot, wordPos)) + + let shifted := shr(mul(sub(24, bytePos), 8), value) + + ray := add(and(shifted, 0xFFFFFFFFFFFFFFFF), RAY) + } + } + + /// @notice Fetches the yearly bps rate for a given per second rate + /// @param ray The per second rate to get the rate for + /// @return bps The annual rate value + function rtob(uint256 ray) public pure returns (uint256 bps) { + // Convert per-second rate to per-year rate using rpow + uint256 yearlyRate = _rpow(ray, 365 days); + // Subtract RAY to get the yearly rate delta and convert to basis points + // Add RAY/2 for rounding: ensures values are rounded up when >= 0.5 and down when < 0.5 + return ((yearlyRate - RAY) * BPS + RAY / 2) / RAY; + } + + /// @notice Exponentiate `x` to `n` by squaring + /// @param x The base (RAY, 27 decimal places) + /// @param n The exponent (integer, 0 decimal places) + /// @return z The result + function _rpow(uint256 x, uint256 n) internal pure returns (uint256 z) { + assembly { + switch x + case 0 { + switch n + case 0 { z := RAY } + default { z := 0 } + } + default { + switch mod(n, 2) + case 0 { z := RAY } + default { z := x } + let half := div(RAY, 2) // for rounding. + for { n := div(n, 2) } n { n := div(n, 2) } { + let xx := mul(x, x) + if iszero(eq(div(xx, x), x)) { revert(0, 0) } + let xxRound := add(xx, half) + if lt(xxRound, xx) { revert(0, 0) } + x := div(xxRound, RAY) + if mod(n, 2) { + let zx := mul(z, x) + if and(iszero(iszero(x)), iszero(eq(div(zx, x), z))) { revert(0, 0) } + let zxRound := add(zx, half) + if lt(zxRound, zx) { revert(0, 0) } + z := div(zxRound, RAY) + } + } + } + } + } +} diff --git a/src/Conv.t.sol b/src/Conv.t.sol new file mode 100644 index 0000000..aebac24 --- /dev/null +++ b/src/Conv.t.sol @@ -0,0 +1,84 @@ +// SPDX-FileCopyrightText: © 2025 Dai Foundation +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// 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 . + +pragma solidity ^0.8.24; + +import "forge-std/Test.sol"; +import "./Conv.sol"; +import "./mock/RatesMapping.sol"; + +contract ConvTest is Test { + Conv public conv; + RatesMapping public ratesMapping; + uint256 public maxBps; + + function setUp() public { + conv = new Conv(); + ratesMapping = new RatesMapping(); + maxBps = conv.MAX(); + } + + function tesBbtor() public view { + for (uint256 bps = 0; bps <= maxBps; bps++) { + uint256 mappingRate = ratesMapping.rates(bps); + uint256 bytesRate = conv.btor(bps); + + assertEq(bytesRate, mappingRate, string.concat("Rate mismatch at bps=", vm.toString(bps))); + } + } + + function testBtorRevertsForInvalidBps() public { + vm.expectRevert(); + conv.btor(maxBps + 1); + + vm.expectRevert(); + conv.btor(maxBps + 100); + + vm.expectRevert(); + conv.btor(1000 ether); + } + + function testGas() public { + uint256 gasBefore = gasleft(); + new Conv(); + console.log("Deploy: ", gasBefore - gasleft()); + + for (uint256 i; i <= maxBps; i += 123) { + gasBefore = gasleft(); + conv.btor(i); + console.log("Turn bps", i, ":", gasBefore - gasleft()); + } + } + + function testFuzz(uint256 bps) public view { + try conv.btor(bps) returns (uint256 result) { + assertTrue(bps <= maxBps, "Bps must be less than or equal to maxBps"); + assertEq(result, ratesMapping.rates(bps), "Result must match mapping rate"); + assertEq(bps, conv.rtob(result)); + } catch { + assertTrue(bps > maxBps, "Bps must be greater than maxBps"); + } + } + + function testRtob() public view { + for (uint256 bps = 0; bps <= 10000; bps++) { + uint256 mappingRate = ratesMapping.rates(bps); + uint256 bpsResult = conv.rtob(mappingRate); + + assertEq(bpsResult, bps, "Nrut result must match bps"); + } + } +} diff --git a/src/Rates.sol b/src/Rates.sol deleted file mode 100644 index a37d7ae..0000000 --- a/src/Rates.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -interface RatesLike { - function turn(uint256 bps) external view returns (uint256); -} - -contract Rates { - - address[] public rates; - - constructor(address[] memory _rates) { - rates = _rates; - } - - function turn(uint256 bps) external view returns (uint256 rate) { - rate = RatesLike(rates[bps / 800]).turn(bps); - } -} \ No newline at end of file diff --git a/test/RatesMapping.sol b/src/mock/RatesMapping.sol similarity index 99% rename from test/RatesMapping.sol rename to src/mock/RatesMapping.sol index d129f7b..03018e6 100644 --- a/test/RatesMapping.sol +++ b/src/mock/RatesMapping.sol @@ -1,9 +1,23 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; +// SPDX-FileCopyrightText: © 2025 Dai Foundation +// SPDX-License-Identifier: AGPL-3.0-or-later +// +// 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 . -contract RatesMapping { +pragma solidity ^0.8.24; - mapping (uint256 => uint256) public rates; +contract RatesMapping { + mapping(uint256 => uint256) public rates; constructor() { rates[0] = 1000000000000000000000000000; @@ -10008,4 +10022,6 @@ contract RatesMapping { rates[9999] = 1000000021977967621966555560; rates[10000] = 1000000021979553151239153027; } + + function test() public {} // Note: added this to exclude this contract from size verification on `forge build --sizes` } diff --git a/src/repositories/Rates0To799.sol b/src/repositories/Rates0To799.sol deleted file mode 100644 index 8a489b0..0000000 --- a/src/repositories/Rates0To799.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates0To799 { - uint256 constant public MIN = 0; - uint256 constant public MAX = 799; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 399) - case 0 { // 0-399 - switch gt(bps, 199) - case 0 { // 0-199 - switch gt(bps, 99) - case 0 { // 0-99 - switch gt(bps, 49) - case 0 { // 0-49 - switch gt(bps, 24) - case 0 { // 0-24 - switch bps - case 0 { rate := 1000000000000000000000000000 } - case 1 { rate := 1000000000003170820659990704 } - case 2 { rate := 1000000000006341324285480111 } - case 3 { rate := 1000000000009511510939859271 } - case 4 { rate := 1000000000012681380686500226 } - case 5 { rate := 1000000000015850933588756013 } - case 6 { rate := 1000000000019020169709960675 } - case 7 { rate := 1000000000022189089113429267 } - case 8 { rate := 1000000000025357691862457863 } - case 9 { rate := 1000000000028525978020323563 } - case 10 { rate := 1000000000031693947650284507 } - case 11 { rate := 1000000000034861600815579870 } - case 12 { rate := 1000000000038028937579429884 } - case 13 { rate := 1000000000041195958005035834 } - case 14 { rate := 1000000000044362662155580072 } - case 15 { rate := 1000000000047529050094226024 } - case 16 { rate := 1000000000050695121884118193 } - case 17 { rate := 1000000000053860877588382173 } - case 18 { rate := 1000000000057026317270124651 } - case 19 { rate := 1000000000060191440992433418 } - case 20 { rate := 1000000000063356248818377377 } - case 21 { rate := 1000000000066520740811006546 } - case 22 { rate := 1000000000069684917033352071 } - case 23 { rate := 1000000000072848777548426231 } - case 24 { rate := 1000000000076012322419222442 } - default { revert(0, 0) } - } - case 1 { // 25-49 - switch bps - case 25 { rate := 1000000000079175551708715274 } - case 26 { rate := 1000000000082338465479860449 } - case 27 { rate := 1000000000085501063795594852 } - case 28 { rate := 1000000000088663346718836541 } - case 29 { rate := 1000000000091825314312484750 } - case 30 { rate := 1000000000094986966639419899 } - case 31 { rate := 1000000000098148303762503603 } - case 32 { rate := 1000000000101309325744578677 } - case 33 { rate := 1000000000104470032648469142 } - case 34 { rate := 1000000000107630424536980239 } - case 35 { rate := 1000000000110790501472898427 } - case 36 { rate := 1000000000113950263518991400 } - case 37 { rate := 1000000000117109710738008089 } - case 38 { rate := 1000000000120268843192678669 } - case 39 { rate := 1000000000123427660945714570 } - case 40 { rate := 1000000000126586164059808482 } - case 41 { rate := 1000000000129744352597634363 } - case 42 { rate := 1000000000132902226621847447 } - case 43 { rate := 1000000000136059786195084249 } - case 44 { rate := 1000000000139217031379962578 } - case 45 { rate := 1000000000142373962239081538 } - case 46 { rate := 1000000000145530578835021538 } - case 47 { rate := 1000000000148686881230344303 } - case 48 { rate := 1000000000151842869487592874 } - case 49 { rate := 1000000000154998543669291624 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 50-99 - switch gt(bps, 74) - case 0 { // 50-74 - switch bps - case 50 { rate := 1000000000158153903837946257 } - case 51 { rate := 1000000000161308950056043822 } - case 52 { rate := 1000000000164463682386052718 } - case 53 { rate := 1000000000167618100890422700 } - case 54 { rate := 1000000000170772205631584889 } - case 55 { rate := 1000000000173925996671951777 } - case 56 { rate := 1000000000177079474073917237 } - case 57 { rate := 1000000000180232637899856526 } - case 58 { rate := 1000000000183385488212126301 } - case 59 { rate := 1000000000186538025073064615 } - case 60 { rate := 1000000000189690248544990934 } - case 61 { rate := 1000000000192842158690206138 } - case 62 { rate := 1000000000195993755570992533 } - case 63 { rate := 1000000000199145039249613856 } - case 64 { rate := 1000000000202296009788315281 } - case 65 { rate := 1000000000205446667249323430 } - case 66 { rate := 1000000000208597011694846379 } - case 67 { rate := 1000000000211747043187073663 } - case 68 { rate := 1000000000214896761788176285 } - case 69 { rate := 1000000000218046167560306726 } - case 70 { rate := 1000000000221195260565598948 } - case 71 { rate := 1000000000224344040866168404 } - case 72 { rate := 1000000000227492508524112044 } - case 73 { rate := 1000000000230640663601508324 } - case 74 { rate := 1000000000233788506160417212 } - default { revert(0, 0) } - } - case 1 { // 75-99 - switch bps - case 75 { rate := 1000000000236936036262880196 } - case 76 { rate := 1000000000240083253970920290 } - case 77 { rate := 1000000000243230159346542043 } - case 78 { rate := 1000000000246376752451731545 } - case 79 { rate := 1000000000249523033348456436 } - case 80 { rate := 1000000000252669002098665913 } - case 81 { rate := 1000000000255814658764290734 } - case 82 { rate := 1000000000258960003407243230 } - case 83 { rate := 1000000000262105036089417311 } - case 84 { rate := 1000000000265249756872688471 } - case 85 { rate := 1000000000268394165818913798 } - case 86 { rate := 1000000000271538262989931978 } - case 87 { rate := 1000000000274682048447563305 } - case 88 { rate := 1000000000277825522253609693 } - case 89 { rate := 1000000000280968684469854670 } - case 90 { rate := 1000000000284111535158063399 } - case 91 { rate := 1000000000287254074379982678 } - case 92 { rate := 1000000000290396302197340948 } - case 93 { rate := 1000000000293538218671848302 } - case 94 { rate := 1000000000296679823865196492 } - case 95 { rate := 1000000000299821117839058936 } - case 96 { rate := 1000000000302962100655090723 } - case 97 { rate := 1000000000306102772374928623 } - case 98 { rate := 1000000000309243133060191095 } - case 99 { rate := 1000000000312383182772478292 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 100-199 - switch gt(bps, 149) - case 0 { // 100-149 - switch gt(bps, 124) - case 0 { // 100-124 - switch bps - case 100 { rate := 1000000000315522921573372069 } - case 101 { rate := 1000000000318662349524435988 } - case 102 { rate := 1000000000321801466687215330 } - case 103 { rate := 1000000000324940273123237102 } - case 104 { rate := 1000000000328078768894010037 } - case 105 { rate := 1000000000331216954061024608 } - case 106 { rate := 1000000000334354828685753035 } - case 107 { rate := 1000000000337492392829649290 } - case 108 { rate := 1000000000340629646554149104 } - case 109 { rate := 1000000000343766589920669975 } - case 110 { rate := 1000000000346903222990611176 } - case 111 { rate := 1000000000350039545825353762 } - case 112 { rate := 1000000000353175558486260576 } - case 113 { rate := 1000000000356311261034676258 } - case 114 { rate := 1000000000359446653531927249 } - case 115 { rate := 1000000000362581736039321802 } - case 116 { rate := 1000000000365716508618149987 } - case 117 { rate := 1000000000368850971329683699 } - case 118 { rate := 1000000000371985124235176666 } - case 119 { rate := 1000000000375118967395864451 } - case 120 { rate := 1000000000378252500872964469 } - case 121 { rate := 1000000000381385724727675984 } - case 122 { rate := 1000000000384518639021180123 } - case 123 { rate := 1000000000387651243814639879 } - case 124 { rate := 1000000000390783539169200122 } - default { revert(0, 0) } - } - case 1 { // 125-149 - switch bps - case 125 { rate := 1000000000393915525145987602 } - case 126 { rate := 1000000000397047201806110961 } - case 127 { rate := 1000000000400178569210660733 } - case 128 { rate := 1000000000403309627420709360 } - case 129 { rate := 1000000000406440376497311193 } - case 130 { rate := 1000000000409570816501502501 } - case 131 { rate := 1000000000412700947494301478 } - case 132 { rate := 1000000000415830769536708248 } - case 133 { rate := 1000000000418960282689704878 } - case 134 { rate := 1000000000422089487014255380 } - case 135 { rate := 1000000000425218382571305718 } - case 136 { rate := 1000000000428346969421783819 } - case 137 { rate := 1000000000431475247626599574 } - case 138 { rate := 1000000000434603217246644855 } - case 139 { rate := 1000000000437730878342793510 } - case 140 { rate := 1000000000440858230975901380 } - case 141 { rate := 1000000000443985275206806300 } - case 142 { rate := 1000000000447112011096328109 } - case 143 { rate := 1000000000450238438705268656 } - case 144 { rate := 1000000000453364558094411809 } - case 145 { rate := 1000000000456490369324523458 } - case 146 { rate := 1000000000459615872456351529 } - case 147 { rate := 1000000000462741067550625980 } - case 148 { rate := 1000000000465865954668058822 } - case 149 { rate := 1000000000468990533869344115 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 150-199 - switch gt(bps, 174) - case 0 { // 150-174 - switch bps - case 150 { rate := 1000000000472114805215157978 } - case 151 { rate := 1000000000475238768766158601 } - case 152 { rate := 1000000000478362424582986244 } - case 153 { rate := 1000000000481485772726263252 } - case 154 { rate := 1000000000484608813256594054 } - case 155 { rate := 1000000000487731546234565179 } - case 156 { rate := 1000000000490853971720745253 } - case 157 { rate := 1000000000493976089775685018 } - case 158 { rate := 1000000000497097900459917326 } - case 159 { rate := 1000000000500219403833957155 } - case 160 { rate := 1000000000503340599958301616 } - case 161 { rate := 1000000000506461488893429953 } - case 162 { rate := 1000000000509582070699803560 } - case 163 { rate := 1000000000512702345437865976 } - case 164 { rate := 1000000000515822313168042905 } - case 165 { rate := 1000000000518941973950742212 } - case 166 { rate := 1000000000522061327846353937 } - case 167 { rate := 1000000000525180374915250300 } - case 168 { rate := 1000000000528299115217785706 } - case 169 { rate := 1000000000531417548814296756 } - case 170 { rate := 1000000000534535675765102249 } - case 171 { rate := 1000000000537653496130503193 } - case 172 { rate := 1000000000540771009970782812 } - case 173 { rate := 1000000000543888217346206550 } - case 174 { rate := 1000000000547005118317022080 } - default { revert(0, 0) } - } - case 1 { // 175-199 - switch bps - case 175 { rate := 1000000000550121712943459312 } - case 176 { rate := 1000000000553238001285730395 } - case 177 { rate := 1000000000556353983404029733 } - case 178 { rate := 1000000000559469659358533982 } - case 179 { rate := 1000000000562585029209402065 } - case 180 { rate := 1000000000565700093016775172 } - case 181 { rate := 1000000000568814850840776775 } - case 182 { rate := 1000000000571929302741512626 } - case 183 { rate := 1000000000575043448779070771 } - case 184 { rate := 1000000000578157289013521555 } - case 185 { rate := 1000000000581270823504917627 } - case 186 { rate := 1000000000584384052313293946 } - case 187 { rate := 1000000000587496975498667797 } - case 188 { rate := 1000000000590609593121038783 } - case 189 { rate := 1000000000593721905240388847 } - case 190 { rate := 1000000000596833911916682269 } - case 191 { rate := 1000000000599945613209865674 } - case 192 { rate := 1000000000603057009179868046 } - case 193 { rate := 1000000000606168099886600725 } - case 194 { rate := 1000000000609278885389957423 } - case 195 { rate := 1000000000612389365749814222 } - case 196 { rate := 1000000000615499541026029589 } - case 197 { rate := 1000000000618609411278444380 } - case 198 { rate := 1000000000621718976566881844 } - case 199 { rate := 1000000000624828236951147633 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 200-399 - switch gt(bps, 299) - case 0 { // 200-299 - switch gt(bps, 249) - case 0 { // 200-249 - switch gt(bps, 224) - case 0 { // 200-224 - switch bps - case 200 { rate := 1000000000627937192491029810 } - case 201 { rate := 1000000000631045843246298852 } - case 202 { rate := 1000000000634154189276707659 } - case 203 { rate := 1000000000637262230641991564 } - case 204 { rate := 1000000000640369967401868332 } - case 205 { rate := 1000000000643477399616038176 } - case 206 { rate := 1000000000646584527344183758 } - case 207 { rate := 1000000000649691350645970197 } - case 208 { rate := 1000000000652797869581045076 } - case 209 { rate := 1000000000655904084209038450 } - case 210 { rate := 1000000000659009994589562852 } - case 211 { rate := 1000000000662115600782213301 } - case 212 { rate := 1000000000665220902846567304 } - case 213 { rate := 1000000000668325900842184872 } - case 214 { rate := 1000000000671430594828608518 } - case 215 { rate := 1000000000674534984865363268 } - case 216 { rate := 1000000000677639071011956667 } - case 217 { rate := 1000000000680742853327878787 } - case 218 { rate := 1000000000683846331872602231 } - case 219 { rate := 1000000000686949506705582145 } - case 220 { rate := 1000000000690052377886256219 } - case 221 { rate := 1000000000693154945474044696 } - case 222 { rate := 1000000000696257209528350379 } - case 223 { rate := 1000000000699359170108558644 } - case 224 { rate := 1000000000702460827274037431 } - default { revert(0, 0) } - } - case 1 { // 225-249 - switch bps - case 225 { rate := 1000000000705562181084137268 } - case 226 { rate := 1000000000708663231598191269 } - case 227 { rate := 1000000000711763978875515140 } - case 228 { rate := 1000000000714864422975407191 } - case 229 { rate := 1000000000717964563957148338 } - case 230 { rate := 1000000000721064401880002111 } - case 231 { rate := 1000000000724163936803214665 } - case 232 { rate := 1000000000727263168786014781 } - case 233 { rate := 1000000000730362097887613873 } - case 234 { rate := 1000000000733460724167206002 } - case 235 { rate := 1000000000736559047683967873 } - case 236 { rate := 1000000000739657068497058849 } - case 237 { rate := 1000000000742754786665620954 } - case 238 { rate := 1000000000745852202248778881 } - case 239 { rate := 1000000000748949315305640001 } - case 240 { rate := 1000000000752046125895294364 } - case 241 { rate := 1000000000755142634076814712 } - case 242 { rate := 1000000000758238839909256483 } - case 243 { rate := 1000000000761334743451657815 } - case 244 { rate := 1000000000764430344763039558 } - case 245 { rate := 1000000000767525643902405280 } - case 246 { rate := 1000000000770620640928741268 } - case 247 { rate := 1000000000773715335901016542 } - case 248 { rate := 1000000000776809728878182856 } - case 249 { rate := 1000000000779903819919174710 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 250-299 - switch gt(bps, 274) - case 0 { // 250-274 - switch bps - case 250 { rate := 1000000000782997609082909351 } - case 251 { rate := 1000000000786091096428286786 } - case 252 { rate := 1000000000789184282014189785 } - case 253 { rate := 1000000000792277165899483884 } - case 254 { rate := 1000000000795369748143017402 } - case 255 { rate := 1000000000798462028803621438 } - case 256 { rate := 1000000000801554007940109881 } - case 257 { rate := 1000000000804645685611279421 } - case 258 { rate := 1000000000807737061875909546 } - case 259 { rate := 1000000000810828136792762559 } - case 260 { rate := 1000000000813918910420583580 } - case 261 { rate := 1000000000817009382818100549 } - case 262 { rate := 1000000000820099554044024241 } - case 263 { rate := 1000000000823189424157048266 } - case 264 { rate := 1000000000826278993215849080 } - case 265 { rate := 1000000000829368261279085986 } - case 266 { rate := 1000000000832457228405401147 } - case 267 { rate := 1000000000835545894653419590 } - case 268 { rate := 1000000000838634260081749213 } - case 269 { rate := 1000000000841722324748980791 } - case 270 { rate := 1000000000844810088713687981 } - case 271 { rate := 1000000000847897552034427333 } - case 272 { rate := 1000000000850984714769738294 } - case 273 { rate := 1000000000854071576978143215 } - case 274 { rate := 1000000000857158138718147357 } - default { revert(0, 0) } - } - case 1 { // 275-299 - switch bps - case 275 { rate := 1000000000860244400048238898 } - case 276 { rate := 1000000000863330361026888943 } - case 277 { rate := 1000000000866416021712551525 } - case 278 { rate := 1000000000869501382163663613 } - case 279 { rate := 1000000000872586442438645123 } - case 280 { rate := 1000000000875671202595898921 } - case 281 { rate := 1000000000878755662693810828 } - case 282 { rate := 1000000000881839822790749630 } - case 283 { rate := 1000000000884923682945067084 } - case 284 { rate := 1000000000888007243215097924 } - case 285 { rate := 1000000000891090503659159869 } - case 286 { rate := 1000000000894173464335553624 } - case 287 { rate := 1000000000897256125302562895 } - case 288 { rate := 1000000000900338486618454391 } - case 289 { rate := 1000000000903420548341477830 } - case 290 { rate := 1000000000906502310529865946 } - case 291 { rate := 1000000000909583773241834499 } - case 292 { rate := 1000000000912664936535582274 } - case 293 { rate := 1000000000915745800469291101 } - case 294 { rate := 1000000000918826365101125845 } - case 295 { rate := 1000000000921906630489234425 } - case 296 { rate := 1000000000924986596691747814 } - case 297 { rate := 1000000000928066263766780050 } - case 298 { rate := 1000000000931145631772428239 } - case 299 { rate := 1000000000934224700766772564 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 300-399 - switch gt(bps, 349) - case 0 { // 300-349 - switch gt(bps, 324) - case 0 { // 300-324 - switch bps - case 300 { rate := 1000000000937303470807876289 } - case 301 { rate := 1000000000940381941953785771 } - case 302 { rate := 1000000000943460114262530457 } - case 303 { rate := 1000000000946537987792122901 } - case 304 { rate := 1000000000949615562600558765 } - case 305 { rate := 1000000000952692838745816824 } - case 306 { rate := 1000000000955769816285858978 } - case 307 { rate := 1000000000958846495278630254 } - case 308 { rate := 1000000000961922875782058814 } - case 309 { rate := 1000000000964998957854055963 } - case 310 { rate := 1000000000968074741552516152 } - case 311 { rate := 1000000000971150226935316988 } - case 312 { rate := 1000000000974225414060319240 } - case 313 { rate := 1000000000977300302985366843 } - case 314 { rate := 1000000000980374893768286908 } - case 315 { rate := 1000000000983449186466889726 } - case 316 { rate := 1000000000986523181138968776 } - case 317 { rate := 1000000000989596877842300728 } - case 318 { rate := 1000000000992670276634645456 } - case 319 { rate := 1000000000995743377573746041 } - case 320 { rate := 1000000000998816180717328774 } - case 321 { rate := 1000000001001888686123103168 } - case 322 { rate := 1000000001004960893848761962 } - case 323 { rate := 1000000001008032803951981130 } - case 324 { rate := 1000000001011104416490419883 } - default { revert(0, 0) } - } - case 1 { // 325-349 - switch bps - case 325 { rate := 1000000001014175731521720677 } - case 326 { rate := 1000000001017246749103509223 } - case 327 { rate := 1000000001020317469293394491 } - case 328 { rate := 1000000001023387892148968714 } - case 329 { rate := 1000000001026458017727807397 } - case 330 { rate := 1000000001029527846087469327 } - case 331 { rate := 1000000001032597377285496570 } - case 332 { rate := 1000000001035666611379414489 } - case 333 { rate := 1000000001038735548426731741 } - case 334 { rate := 1000000001041804188484940289 } - case 335 { rate := 1000000001044872531611515405 } - case 336 { rate := 1000000001047940577863915679 } - case 337 { rate := 1000000001051008327299583027 } - case 338 { rate := 1000000001054075779975942691 } - case 339 { rate := 1000000001057142935950403252 } - case 340 { rate := 1000000001060209795280356633 } - case 341 { rate := 1000000001063276358023178106 } - case 342 { rate := 1000000001066342624236226300 } - case 343 { rate := 1000000001069408593976843206 } - case 344 { rate := 1000000001072474267302354182 } - case 345 { rate := 1000000001075539644270067964 } - case 346 { rate := 1000000001078604724937276668 } - case 347 { rate := 1000000001081669509361255798 } - case 348 { rate := 1000000001084733997599264251 } - case 349 { rate := 1000000001087798189708544327 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 350-399 - switch gt(bps, 374) - case 0 { // 350-374 - switch bps - case 350 { rate := 1000000001090862085746321732 } - case 351 { rate := 1000000001093925685769805588 } - case 352 { rate := 1000000001096988989836188433 } - case 353 { rate := 1000000001100051998002646234 } - case 354 { rate := 1000000001103114710326338391 } - case 355 { rate := 1000000001106177126864407743 } - case 356 { rate := 1000000001109239247673980573 } - case 357 { rate := 1000000001112301072812166619 } - case 358 { rate := 1000000001115362602336059074 } - case 359 { rate := 1000000001118423836302734600 } - case 360 { rate := 1000000001121484774769253326 } - case 361 { rate := 1000000001124545417792658861 } - case 362 { rate := 1000000001127605765429978297 } - case 363 { rate := 1000000001130665817738222219 } - case 364 { rate := 1000000001133725574774384703 } - case 365 { rate := 1000000001136785036595443334 } - case 366 { rate := 1000000001139844203258359204 } - case 367 { rate := 1000000001142903074820076919 } - case 368 { rate := 1000000001145961651337524612 } - case 369 { rate := 1000000001149019932867613939 } - case 370 { rate := 1000000001152077919467240095 } - case 371 { rate := 1000000001155135611193281814 } - case 372 { rate := 1000000001158193008102601379 } - case 373 { rate := 1000000001161250110252044625 } - case 374 { rate := 1000000001164306917698440949 } - default { revert(0, 0) } - } - case 1 { // 375-399 - switch bps - case 375 { rate := 1000000001167363430498603315 } - case 376 { rate := 1000000001170419648709328258 } - case 377 { rate := 1000000001173475572387395894 } - case 378 { rate := 1000000001176531201589569924 } - case 379 { rate := 1000000001179586536372597640 } - case 380 { rate := 1000000001182641576793209935 } - case 381 { rate := 1000000001185696322908121302 } - case 382 { rate := 1000000001188750774774029849 } - case 383 { rate := 1000000001191804932447617301 } - case 384 { rate := 1000000001194858795985549004 } - case 385 { rate := 1000000001197912365444473936 } - case 386 { rate := 1000000001200965640881024708 } - case 387 { rate := 1000000001204018622351817579 } - case 388 { rate := 1000000001207071309913452452 } - case 389 { rate := 1000000001210123703622512886 } - case 390 { rate := 1000000001213175803535566102 } - case 391 { rate := 1000000001216227609709162989 } - case 392 { rate := 1000000001219279122199838110 } - case 393 { rate := 1000000001222330341064109706 } - case 394 { rate := 1000000001225381266358479708 } - case 395 { rate := 1000000001228431898139433735 } - case 396 { rate := 1000000001231482236463441109 } - case 397 { rate := 1000000001234532281386954858 } - case 398 { rate := 1000000001237582032966411716 } - case 399 { rate := 1000000001240631491258232141 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 400-799 - switch gt(bps, 599) - case 0 { // 400-599 - switch gt(bps, 499) - case 0 { // 400-499 - switch gt(bps, 449) - case 0 { // 400-449 - switch gt(bps, 424) - case 0 { // 400-424 - switch bps - case 400 { rate := 1000000001243680656318820312 } - case 401 { rate := 1000000001246729528204564139 } - case 402 { rate := 1000000001249778106971835268 } - case 403 { rate := 1000000001252826392676989088 } - case 404 { rate := 1000000001255874385376364739 } - case 405 { rate := 1000000001258922085126285113 } - case 406 { rate := 1000000001261969491983056866 } - case 407 { rate := 1000000001265016606002970422 } - case 408 { rate := 1000000001268063427242299977 } - case 409 { rate := 1000000001271109955757303509 } - case 410 { rate := 1000000001274156191604222783 } - case 411 { rate := 1000000001277202134839283355 } - case 412 { rate := 1000000001280247785518694582 } - case 413 { rate := 1000000001283293143698649624 } - case 414 { rate := 1000000001286338209435325454 } - case 415 { rate := 1000000001289382982784882863 } - case 416 { rate := 1000000001292427463803466464 } - case 417 { rate := 1000000001295471652547204702 } - case 418 { rate := 1000000001298515549072209857 } - case 419 { rate := 1000000001301559153434578054 } - case 420 { rate := 1000000001304602465690389263 } - case 421 { rate := 1000000001307645485895707309 } - case 422 { rate := 1000000001310688214106579884 } - case 423 { rate := 1000000001313730650379038540 } - case 424 { rate := 1000000001316772794769098706 } - default { revert(0, 0) } - } - case 1 { // 425-449 - switch bps - case 425 { rate := 1000000001319814647332759691 } - case 426 { rate := 1000000001322856208126004689 } - case 427 { rate := 1000000001325897477204800787 } - case 428 { rate := 1000000001328938454625098968 } - case 429 { rate := 1000000001331979140442834120 } - case 430 { rate := 1000000001335019534713925045 } - case 431 { rate := 1000000001338059637494274457 } - case 432 { rate := 1000000001341099448839768997 } - case 433 { rate := 1000000001344138968806279230 } - case 434 { rate := 1000000001347178197449659663 } - case 435 { rate := 1000000001350217134825748738 } - case 436 { rate := 1000000001353255780990368849 } - case 437 { rate := 1000000001356294135999326341 } - case 438 { rate := 1000000001359332199908411521 } - case 439 { rate := 1000000001362369972773398659 } - case 440 { rate := 1000000001365407454650046000 } - case 441 { rate := 1000000001368444645594095767 } - case 442 { rate := 1000000001371481545661274166 } - case 443 { rate := 1000000001374518154907291394 } - case 444 { rate := 1000000001377554473387841645 } - case 445 { rate := 1000000001380590501158603116 } - case 446 { rate := 1000000001383626238275238013 } - case 447 { rate := 1000000001386661684793392556 } - case 448 { rate := 1000000001389696840768696987 } - case 449 { rate := 1000000001392731706256765577 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 450-499 - switch gt(bps, 474) - case 0 { // 450-474 - switch bps - case 450 { rate := 1000000001395766281313196627 } - case 451 { rate := 1000000001398800565993572478 } - case 452 { rate := 1000000001401834560353459521 } - case 453 { rate := 1000000001404868264448408194 } - case 454 { rate := 1000000001407901678333952993 } - case 455 { rate := 1000000001410934802065612482 } - case 456 { rate := 1000000001413967635698889291 } - case 457 { rate := 1000000001417000179289270128 } - case 458 { rate := 1000000001420032432892225782 } - case 459 { rate := 1000000001423064396563211131 } - case 460 { rate := 1000000001426096070357665149 } - case 461 { rate := 1000000001429127454331010908 } - case 462 { rate := 1000000001432158548538655588 } - case 463 { rate := 1000000001435189353035990479 } - case 464 { rate := 1000000001438219867878390995 } - case 465 { rate := 1000000001441250093121216670 } - case 466 { rate := 1000000001444280028819811170 } - case 467 { rate := 1000000001447309675029502300 } - case 468 { rate := 1000000001450339031805602006 } - case 469 { rate := 1000000001453368099203406382 } - case 470 { rate := 1000000001456396877278195681 } - case 471 { rate := 1000000001459425366085234312 } - case 472 { rate := 1000000001462453565679770855 } - case 473 { rate := 1000000001465481476117038063 } - case 474 { rate := 1000000001468509097452252866 } - default { revert(0, 0) } - } - case 1 { // 475-499 - switch bps - case 475 { rate := 1000000001471536429740616381 } - case 476 { rate := 1000000001474563473037313917 } - case 477 { rate := 1000000001477590227397514978 } - case 478 { rate := 1000000001480616692876373275 } - case 479 { rate := 1000000001483642869529026724 } - case 480 { rate := 1000000001486668757410597461 } - case 481 { rate := 1000000001489694356576191838 } - case 482 { rate := 1000000001492719667080900443 } - case 483 { rate := 1000000001495744688979798088 } - case 484 { rate := 1000000001498769422327943831 } - case 485 { rate := 1000000001501793867180380974 } - case 486 { rate := 1000000001504818023592137069 } - case 487 { rate := 1000000001507841891618223927 } - case 488 { rate := 1000000001510865471313637625 } - case 489 { rate := 1000000001513888762733358503 } - case 490 { rate := 1000000001516911765932351183 } - case 491 { rate := 1000000001519934480965564567 } - case 492 { rate := 1000000001522956907887931841 } - case 493 { rate := 1000000001525979046754370490 } - case 494 { rate := 1000000001529000897619782295 } - case 495 { rate := 1000000001532022460539053343 } - case 496 { rate := 1000000001535043735567054034 } - case 497 { rate := 1000000001538064722758639085 } - case 498 { rate := 1000000001541085422168647535 } - case 499 { rate := 1000000001544105833851902754 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 500-599 - switch gt(bps, 549) - case 0 { // 500-549 - switch gt(bps, 524) - case 0 { // 500-524 - switch bps - case 500 { rate := 1000000001547125957863212448 } - case 501 { rate := 1000000001550145794257368662 } - case 502 { rate := 1000000001553165343089147790 } - case 503 { rate := 1000000001556184604413310579 } - case 504 { rate := 1000000001559203578284602136 } - case 505 { rate := 1000000001562222264757751932 } - case 506 { rate := 1000000001565240663887473810 } - case 507 { rate := 1000000001568258775728465991 } - case 508 { rate := 1000000001571276600335411077 } - case 509 { rate := 1000000001574294137762976059 } - case 510 { rate := 1000000001577311388065812327 } - case 511 { rate := 1000000001580328351298555666 } - case 512 { rate := 1000000001583345027515826272 } - case 513 { rate := 1000000001586361416772228753 } - case 514 { rate := 1000000001589377519122352136 } - case 515 { rate := 1000000001592393334620769870 } - case 516 { rate := 1000000001595408863322039839 } - case 517 { rate := 1000000001598424105280704358 } - case 518 { rate := 1000000001601439060551290189 } - case 519 { rate := 1000000001604453729188308543 } - case 520 { rate := 1000000001607468111246255079 } - case 521 { rate := 1000000001610482206779609923 } - case 522 { rate := 1000000001613496015842837664 } - case 523 { rate := 1000000001616509538490387361 } - case 524 { rate := 1000000001619522774776692555 } - default { revert(0, 0) } - } - case 1 { // 525-549 - switch bps - case 525 { rate := 1000000001622535724756171269 } - case 526 { rate := 1000000001625548388483226015 } - case 527 { rate := 1000000001628560766012243800 } - case 528 { rate := 1000000001631572857397596136 } - case 529 { rate := 1000000001634584662693639037 } - case 530 { rate := 1000000001637596181954713035 } - case 531 { rate := 1000000001640607415235143177 } - case 532 { rate := 1000000001643618362589239040 } - case 533 { rate := 1000000001646629024071294727 } - case 534 { rate := 1000000001649639399735588881 } - case 535 { rate := 1000000001652649489636384685 } - case 536 { rate := 1000000001655659293827929873 } - case 537 { rate := 1000000001658668812364456731 } - case 538 { rate := 1000000001661678045300182106 } - case 539 { rate := 1000000001664686992689307414 } - case 540 { rate := 1000000001667695654586018638 } - case 541 { rate := 1000000001670704031044486342 } - case 542 { rate := 1000000001673712122118865672 } - case 543 { rate := 1000000001676719927863296364 } - case 544 { rate := 1000000001679727448331902751 } - case 545 { rate := 1000000001682734683578793766 } - case 546 { rate := 1000000001685741633658062946 } - case 547 { rate := 1000000001688748298623788446 } - case 548 { rate := 1000000001691754678530033036 } - case 549 { rate := 1000000001694760773430844112 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 550-599 - switch gt(bps, 574) - case 0 { // 550-574 - switch bps - case 550 { rate := 1000000001697766583380253701 } - case 551 { rate := 1000000001700772108432278464 } - case 552 { rate := 1000000001703777348640919706 } - case 553 { rate := 1000000001706782304060163379 } - case 554 { rate := 1000000001709786974743980088 } - case 555 { rate := 1000000001712791360746325100 } - case 556 { rate := 1000000001715795462121138343 } - case 557 { rate := 1000000001718799278922344419 } - case 558 { rate := 1000000001721802811203852608 } - case 559 { rate := 1000000001724806059019556870 } - case 560 { rate := 1000000001727809022423335855 } - case 561 { rate := 1000000001730811701469052906 } - case 562 { rate := 1000000001733814096210556068 } - case 563 { rate := 1000000001736816206701678090 } - case 564 { rate := 1000000001739818032996236434 } - case 565 { rate := 1000000001742819575148033278 } - case 566 { rate := 1000000001745820833210855527 } - case 567 { rate := 1000000001748821807238474808 } - case 568 { rate := 1000000001751822497284647491 } - case 569 { rate := 1000000001754822903403114680 } - case 570 { rate := 1000000001757823025647602229 } - case 571 { rate := 1000000001760822864071820743 } - case 572 { rate := 1000000001763822418729465585 } - case 573 { rate := 1000000001766821689674216882 } - case 574 { rate := 1000000001769820676959739530 } - default { revert(0, 0) } - } - case 1 { // 575-599 - switch bps - case 575 { rate := 1000000001772819380639683201 } - case 576 { rate := 1000000001775817800767682345 } - case 577 { rate := 1000000001778815937397356203 } - case 578 { rate := 1000000001781813790582308807 } - case 579 { rate := 1000000001784811360376128985 } - case 580 { rate := 1000000001787808646832390371 } - case 581 { rate := 1000000001790805650004651410 } - case 582 { rate := 1000000001793802369946455358 } - case 583 { rate := 1000000001796798806711330296 } - case 584 { rate := 1000000001799794960352789133 } - case 585 { rate := 1000000001802790830924329607 } - case 586 { rate := 1000000001805786418479434295 } - case 587 { rate := 1000000001808781723071570620 } - case 588 { rate := 1000000001811776744754190855 } - case 589 { rate := 1000000001814771483580732126 } - case 590 { rate := 1000000001817765939604616422 } - case 591 { rate := 1000000001820760112879250599 } - case 592 { rate := 1000000001823754003458026386 } - case 593 { rate := 1000000001826747611394320388 } - case 594 { rate := 1000000001829740936741494099 } - case 595 { rate := 1000000001832733979552893898 } - case 596 { rate := 1000000001835726739881851062 } - case 597 { rate := 1000000001838719217781681769 } - case 598 { rate := 1000000001841711413305687103 } - case 599 { rate := 1000000001844703326507153063 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 600-799 - switch gt(bps, 699) - case 0 { // 600-699 - switch gt(bps, 649) - case 0 { // 600-649 - switch gt(bps, 624) - case 0 { // 600-624 - switch bps - case 600 { rate := 1000000001847694957439350562 } - case 601 { rate := 1000000001850686306155535442 } - case 602 { rate := 1000000001853677372708948472 } - case 603 { rate := 1000000001856668157152815356 } - case 604 { rate := 1000000001859658659540346741 } - case 605 { rate := 1000000001862648879924738219 } - case 606 { rate := 1000000001865638818359170337 } - case 607 { rate := 1000000001868628474896808595 } - case 608 { rate := 1000000001871617849590803463 } - case 609 { rate := 1000000001874606942494290377 } - case 610 { rate := 1000000001877595753660389747 } - case 611 { rate := 1000000001880584283142206967 } - case 612 { rate := 1000000001883572530992832417 } - case 613 { rate := 1000000001886560497265341466 } - case 614 { rate := 1000000001889548182012794484 } - case 615 { rate := 1000000001892535585288236844 } - case 616 { rate := 1000000001895522707144698926 } - case 617 { rate := 1000000001898509547635196126 } - case 618 { rate := 1000000001901496106812728862 } - case 619 { rate := 1000000001904482384730282575 } - case 620 { rate := 1000000001907468381440827740 } - case 621 { rate := 1000000001910454096997319869 } - case 622 { rate := 1000000001913439531452699514 } - case 623 { rate := 1000000001916424684859892282 } - case 624 { rate := 1000000001919409557271808825 } - default { revert(0, 0) } - } - case 1 { // 625-649 - switch bps - case 625 { rate := 1000000001922394148741344865 } - case 626 { rate := 1000000001925378459321381181 } - case 627 { rate := 1000000001928362489064783628 } - case 628 { rate := 1000000001931346238024403135 } - case 629 { rate := 1000000001934329706253075715 } - case 630 { rate := 1000000001937312893803622469 } - case 631 { rate := 1000000001940295800728849590 } - case 632 { rate := 1000000001943278427081548373 } - case 633 { rate := 1000000001946260772914495212 } - case 634 { rate := 1000000001949242838280451618 } - case 635 { rate := 1000000001952224623232164215 } - case 636 { rate := 1000000001955206127822364746 } - case 637 { rate := 1000000001958187352103770087 } - case 638 { rate := 1000000001961168296129082241 } - case 639 { rate := 1000000001964148959950988353 } - case 640 { rate := 1000000001967129343622160710 } - case 641 { rate := 1000000001970109447195256751 } - case 642 { rate := 1000000001973089270722919065 } - case 643 { rate := 1000000001976068814257775407 } - case 644 { rate := 1000000001979048077852438695 } - case 645 { rate := 1000000001982027061559507021 } - case 646 { rate := 1000000001985005765431563653 } - case 647 { rate := 1000000001987984189521177042 } - case 648 { rate := 1000000001990962333880900827 } - case 649 { rate := 1000000001993940198563273844 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 650-699 - switch gt(bps, 674) - case 0 { // 650-674 - switch bps - case 650 { rate := 1000000001996917783620820123 } - case 651 { rate := 1000000001999895089106048906 } - case 652 { rate := 1000000002002872115071454639 } - case 653 { rate := 1000000002005848861569516991 } - case 654 { rate := 1000000002008825328652700847 } - case 655 { rate := 1000000002011801516373456324 } - case 656 { rate := 1000000002014777424784218768 } - case 657 { rate := 1000000002017753053937408767 } - case 658 { rate := 1000000002020728403885432150 } - case 659 { rate := 1000000002023703474680679997 } - case 660 { rate := 1000000002026678266375528644 } - case 661 { rate := 1000000002029652779022339687 } - case 662 { rate := 1000000002032627012673459986 } - case 663 { rate := 1000000002035600967381221676 } - case 664 { rate := 1000000002038574643197942168 } - case 665 { rate := 1000000002041548040175924154 } - case 666 { rate := 1000000002044521158367455616 } - case 667 { rate := 1000000002047493997824809831 } - case 668 { rate := 1000000002050466558600245373 } - case 669 { rate := 1000000002053438840746006121 } - case 670 { rate := 1000000002056410844314321266 } - case 671 { rate := 1000000002059382569357405313 } - case 672 { rate := 1000000002062354015927458089 } - case 673 { rate := 1000000002065325184076664749 } - case 674 { rate := 1000000002068296073857195778 } - default { revert(0, 0) } - } - case 1 { // 675-699 - switch bps - case 675 { rate := 1000000002071266685321207000 } - case 676 { rate := 1000000002074237018520839584 } - case 677 { rate := 1000000002077207073508220045 } - case 678 { rate := 1000000002080176850335460252 } - case 679 { rate := 1000000002083146349054657437 } - case 680 { rate := 1000000002086115569717894196 } - case 681 { rate := 1000000002089084512377238493 } - case 682 { rate := 1000000002092053177084743673 } - case 683 { rate := 1000000002095021563892448458 } - case 684 { rate := 1000000002097989672852376961 } - case 685 { rate := 1000000002100957504016538685 } - case 686 { rate := 1000000002103925057436928532 } - case 687 { rate := 1000000002106892333165526808 } - case 688 { rate := 1000000002109859331254299227 } - case 689 { rate := 1000000002112826051755196920 } - case 690 { rate := 1000000002115792494720156434 } - case 691 { rate := 1000000002118758660201099744 } - case 692 { rate := 1000000002121724548249934257 } - case 693 { rate := 1000000002124690158918552812 } - case 694 { rate := 1000000002127655492258833695 } - case 695 { rate := 1000000002130620548322640635 } - case 696 { rate := 1000000002133585327161822816 } - case 697 { rate := 1000000002136549828828214880 } - case 698 { rate := 1000000002139514053373636932 } - case 699 { rate := 1000000002142478000849894543 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 700-799 - switch gt(bps, 749) - case 0 { // 700-749 - switch gt(bps, 724) - case 0 { // 700-724 - switch bps - case 700 { rate := 1000000002145441671308778766 } - case 701 { rate := 1000000002148405064802066124 } - case 702 { rate := 1000000002151368181381518635 } - case 703 { rate := 1000000002154331021098883800 } - case 704 { rate := 1000000002157293584005894622 } - case 705 { rate := 1000000002160255870154269599 } - case 706 { rate := 1000000002163217879595712742 } - case 707 { rate := 1000000002166179612381913573 } - case 708 { rate := 1000000002169141068564547128 } - case 709 { rate := 1000000002172102248195273969 } - case 710 { rate := 1000000002175063151325740189 } - case 711 { rate := 1000000002178023778007577411 } - case 712 { rate := 1000000002180984128292402799 } - case 713 { rate := 1000000002183944202231819060 } - case 714 { rate := 1000000002186903999877414455 } - case 715 { rate := 1000000002189863521280762799 } - case 716 { rate := 1000000002192822766493423465 } - case 717 { rate := 1000000002195781735566941395 } - case 718 { rate := 1000000002198740428552847104 } - case 719 { rate := 1000000002201698845502656681 } - case 720 { rate := 1000000002204656986467871801 } - case 721 { rate := 1000000002207614851499979723 } - case 722 { rate := 1000000002210572440650453302 } - case 723 { rate := 1000000002213529753970750991 } - case 724 { rate := 1000000002216486791512316847 } - default { revert(0, 0) } - } - case 1 { // 725-749 - switch bps - case 725 { rate := 1000000002219443553326580536 } - case 726 { rate := 1000000002222400039464957340 } - case 727 { rate := 1000000002225356249978848158 } - case 728 { rate := 1000000002228312184919639519 } - case 729 { rate := 1000000002231267844338703579 } - case 730 { rate := 1000000002234223228287398132 } - case 731 { rate := 1000000002237178336817066613 } - case 732 { rate := 1000000002240133169979038105 } - case 733 { rate := 1000000002243087727824627342 } - case 734 { rate := 1000000002246042010405134715 } - case 735 { rate := 1000000002248996017771846281 } - case 736 { rate := 1000000002251949749976033760 } - case 737 { rate := 1000000002254903207068954551 } - case 738 { rate := 1000000002257856389101851730 } - case 739 { rate := 1000000002260809296125954056 } - case 740 { rate := 1000000002263761928192475979 } - case 741 { rate := 1000000002266714285352617643 } - case 742 { rate := 1000000002269666367657564895 } - case 743 { rate := 1000000002272618175158489283 } - case 744 { rate := 1000000002275569707906548069 } - case 745 { rate := 1000000002278520965952884232 } - case 746 { rate := 1000000002281471949348626470 } - case 747 { rate := 1000000002284422658144889210 } - case 748 { rate := 1000000002287373092392772609 } - case 749 { rate := 1000000002290323252143362564 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 750-799 - switch gt(bps, 774) - case 0 { // 750-774 - switch bps - case 750 { rate := 1000000002293273137447730714 } - case 751 { rate := 1000000002296222748356934445 } - case 752 { rate := 1000000002299172084922016896 } - case 753 { rate := 1000000002302121147194006968 } - case 754 { rate := 1000000002305069935223919323 } - case 755 { rate := 1000000002308018449062754392 } - case 756 { rate := 1000000002310966688761498383 } - case 757 { rate := 1000000002313914654371123283 } - case 758 { rate := 1000000002316862345942586863 } - case 759 { rate := 1000000002319809763526832687 } - case 760 { rate := 1000000002322756907174790110 } - case 761 { rate := 1000000002325703776937374294 } - case 762 { rate := 1000000002328650372865486203 } - case 763 { rate := 1000000002331596695010012613 } - case 764 { rate := 1000000002334542743421826121 } - case 765 { rate := 1000000002337488518151785139 } - case 766 { rate := 1000000002340434019250733913 } - case 767 { rate := 1000000002343379246769502519 } - case 768 { rate := 1000000002346324200758906870 } - case 769 { rate := 1000000002349268881269748722 } - case 770 { rate := 1000000002352213288352815683 } - case 771 { rate := 1000000002355157422058881210 } - case 772 { rate := 1000000002358101282438704622 } - case 773 { rate := 1000000002361044869543031102 } - case 774 { rate := 1000000002363988183422591701 } - default { revert(0, 0) } - } - case 1 { // 775-799 - switch bps - case 775 { rate := 1000000002366931224128103346 } - case 776 { rate := 1000000002369873991710268842 } - case 777 { rate := 1000000002372816486219776883 } - case 778 { rate := 1000000002375758707707302048 } - case 779 { rate := 1000000002378700656223504817 } - case 780 { rate := 1000000002381642331819031568 } - case 781 { rate := 1000000002384583734544514586 } - case 782 { rate := 1000000002387524864450572064 } - case 783 { rate := 1000000002390465721587808119 } - case 784 { rate := 1000000002393406306006812783 } - case 785 { rate := 1000000002396346617758162017 } - case 786 { rate := 1000000002399286656892417716 } - case 787 { rate := 1000000002402226423460127711 } - case 788 { rate := 1000000002405165917511825773 } - case 789 { rate := 1000000002408105139098031627 } - case 790 { rate := 1000000002411044088269250946 } - case 791 { rate := 1000000002413982765075975363 } - case 792 { rate := 1000000002416921169568682475 } - case 793 { rate := 1000000002419859301797835847 } - case 794 { rate := 1000000002422797161813885017 } - case 795 { rate := 1000000002425734749667265506 } - case 796 { rate := 1000000002428672065408398813 } - case 797 { rate := 1000000002431609109087692432 } - case 798 { rate := 1000000002434545880755539850 } - case 799 { rate := 1000000002437482380462320552 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates1600To2399.sol b/src/repositories/Rates1600To2399.sol deleted file mode 100644 index dacbf2a..0000000 --- a/src/repositories/Rates1600To2399.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates1600To2399 { - uint256 constant public MIN = 1600; - uint256 constant public MAX = 2399; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 1999) - case 0 { // 1600-1999 - switch gt(bps, 1799) - case 0 { // 1600-1799 - switch gt(bps, 1699) - case 0 { // 1600-1699 - switch gt(bps, 1649) - case 0 { // 1600-1649 - switch gt(bps, 1624) - case 0 { // 1600-1624 - switch bps - case 1600 { rate := 1000000004706367499604668374 } - case 1601 { rate := 1000000004709100984553824197 } - case 1602 { rate := 1000000004711834233888200390 } - case 1603 { rate := 1000000004714567247648411439 } - case 1604 { rate := 1000000004717300025875061327 } - case 1605 { rate := 1000000004720032568608743539 } - case 1606 { rate := 1000000004722764875890041071 } - case 1607 { rate := 1000000004725496947759526424 } - case 1608 { rate := 1000000004728228784257761617 } - case 1609 { rate := 1000000004730960385425298185 } - case 1610 { rate := 1000000004733691751302677184 } - case 1611 { rate := 1000000004736422881930429194 } - case 1612 { rate := 1000000004739153777349074326 } - case 1613 { rate := 1000000004741884437599122219 } - case 1614 { rate := 1000000004744614862721072050 } - case 1615 { rate := 1000000004747345052755412536 } - case 1616 { rate := 1000000004750075007742621934 } - case 1617 { rate := 1000000004752804727723168051 } - case 1618 { rate := 1000000004755534212737508240 } - case 1619 { rate := 1000000004758263462826089409 } - case 1620 { rate := 1000000004760992478029348025 } - case 1621 { rate := 1000000004763721258387710114 } - case 1622 { rate := 1000000004766449803941591267 } - case 1623 { rate := 1000000004769178114731396642 } - case 1624 { rate := 1000000004771906190797520968 } - default { revert(0, 0) } - } - case 1 { // 1625-1649 - switch bps - case 1625 { rate := 1000000004774634032180348552 } - case 1626 { rate := 1000000004777361638920253278 } - case 1627 { rate := 1000000004780089011057598610 } - case 1628 { rate := 1000000004782816148632737601 } - case 1629 { rate := 1000000004785543051686012893 } - case 1630 { rate := 1000000004788269720257756721 } - case 1631 { rate := 1000000004790996154388290915 } - case 1632 { rate := 1000000004793722354117926905 } - case 1633 { rate := 1000000004796448319486965728 } - case 1634 { rate := 1000000004799174050535698027 } - case 1635 { rate := 1000000004801899547304404054 } - case 1636 { rate := 1000000004804624809833353677 } - case 1637 { rate := 1000000004807349838162806381 } - case 1638 { rate := 1000000004810074632333011275 } - case 1639 { rate := 1000000004812799192384207089 } - case 1640 { rate := 1000000004815523518356622187 } - case 1641 { rate := 1000000004818247610290474561 } - case 1642 { rate := 1000000004820971468225971842 } - case 1643 { rate := 1000000004823695092203311297 } - case 1644 { rate := 1000000004826418482262679840 } - case 1645 { rate := 1000000004829141638444254028 } - case 1646 { rate := 1000000004831864560788200070 } - case 1647 { rate := 1000000004834587249334673829 } - case 1648 { rate := 1000000004837309704123820822 } - case 1649 { rate := 1000000004840031925195776232 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1650-1699 - switch gt(bps, 1674) - case 0 { // 1650-1674 - switch bps - case 1650 { rate := 1000000004842753912590664903 } - case 1651 { rate := 1000000004845475666348601346 } - case 1652 { rate := 1000000004848197186509689746 } - case 1653 { rate := 1000000004850918473114023962 } - case 1654 { rate := 1000000004853639526201687531 } - case 1655 { rate := 1000000004856360345812753672 } - case 1656 { rate := 1000000004859080931987285289 } - case 1657 { rate := 1000000004861801284765334978 } - case 1658 { rate := 1000000004864521404186945026 } - case 1659 { rate := 1000000004867241290292147414 } - case 1660 { rate := 1000000004869960943120963825 } - case 1661 { rate := 1000000004872680362713405646 } - case 1662 { rate := 1000000004875399549109473969 } - case 1663 { rate := 1000000004878118502349159596 } - case 1664 { rate := 1000000004880837222472443046 } - case 1665 { rate := 1000000004883555709519294552 } - case 1666 { rate := 1000000004886273963529674069 } - case 1667 { rate := 1000000004888991984543531278 } - case 1668 { rate := 1000000004891709772600805585 } - case 1669 { rate := 1000000004894427327741426131 } - case 1670 { rate := 1000000004897144650005311787 } - case 1671 { rate := 1000000004899861739432371169 } - case 1672 { rate := 1000000004902578596062502630 } - case 1673 { rate := 1000000004905295219935594269 } - case 1674 { rate := 1000000004908011611091523937 } - default { revert(0, 0) } - } - case 1 { // 1675-1699 - switch bps - case 1675 { rate := 1000000004910727769570159235 } - case 1676 { rate := 1000000004913443695411357522 } - case 1677 { rate := 1000000004916159388654965915 } - case 1678 { rate := 1000000004918874849340821294 } - case 1679 { rate := 1000000004921590077508750306 } - case 1680 { rate := 1000000004924305073198569369 } - case 1681 { rate := 1000000004927019836450084674 } - case 1682 { rate := 1000000004929734367303092189 } - case 1683 { rate := 1000000004932448665797377662 } - case 1684 { rate := 1000000004935162731972716627 } - case 1685 { rate := 1000000004937876565868874403 } - case 1686 { rate := 1000000004940590167525606103 } - case 1687 { rate := 1000000004943303536982656633 } - case 1688 { rate := 1000000004946016674279760695 } - case 1689 { rate := 1000000004948729579456642798 } - case 1690 { rate := 1000000004951442252553017251 } - case 1691 { rate := 1000000004954154693608588174 } - case 1692 { rate := 1000000004956866902663049499 } - case 1693 { rate := 1000000004959578879756084972 } - case 1694 { rate := 1000000004962290624927368160 } - case 1695 { rate := 1000000004965002138216562451 } - case 1696 { rate := 1000000004967713419663321060 } - case 1697 { rate := 1000000004970424469307287030 } - case 1698 { rate := 1000000004973135287188093241 } - case 1699 { rate := 1000000004975845873345362402 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1700-1799 - switch gt(bps, 1749) - case 0 { // 1700-1749 - switch gt(bps, 1724) - case 0 { // 1700-1724 - switch bps - case 1700 { rate := 1000000004978556227818707070 } - case 1701 { rate := 1000000004981266350647729640 } - case 1702 { rate := 1000000004983976241872022356 } - case 1703 { rate := 1000000004986685901531167312 } - case 1704 { rate := 1000000004989395329664736455 } - case 1705 { rate := 1000000004992104526312291591 } - case 1706 { rate := 1000000004994813491513384383 } - case 1707 { rate := 1000000004997522225307556365 } - case 1708 { rate := 1000000005000230727734338930 } - case 1709 { rate := 1000000005002938998833253350 } - case 1710 { rate := 1000000005005647038643810765 } - case 1711 { rate := 1000000005008354847205512199 } - case 1712 { rate := 1000000005011062424557848553 } - case 1713 { rate := 1000000005013769770740300614 } - case 1714 { rate := 1000000005016476885792339060 } - case 1715 { rate := 1000000005019183769753424457 } - case 1716 { rate := 1000000005021890422663007268 } - case 1717 { rate := 1000000005024596844560527854 } - case 1718 { rate := 1000000005027303035485416482 } - case 1719 { rate := 1000000005030008995477093319 } - case 1720 { rate := 1000000005032714724574968444 } - case 1721 { rate := 1000000005035420222818441850 } - case 1722 { rate := 1000000005038125490246903442 } - case 1723 { rate := 1000000005040830526899733047 } - case 1724 { rate := 1000000005043535332816300415 } - default { revert(0, 0) } - } - case 1 { // 1725-1749 - switch bps - case 1725 { rate := 1000000005046239908035965222 } - case 1726 { rate := 1000000005048944252598077073 } - case 1727 { rate := 1000000005051648366541975506 } - case 1728 { rate := 1000000005054352249906989998 } - case 1729 { rate := 1000000005057055902732439961 } - case 1730 { rate := 1000000005059759325057634757 } - case 1731 { rate := 1000000005062462516921873690 } - case 1732 { rate := 1000000005065165478364446016 } - case 1733 { rate := 1000000005067868209424630945 } - case 1734 { rate := 1000000005070570710141697643 } - case 1735 { rate := 1000000005073272980554905239 } - case 1736 { rate := 1000000005075975020703502822 } - case 1737 { rate := 1000000005078676830626729453 } - case 1738 { rate := 1000000005081378410363814160 } - case 1739 { rate := 1000000005084079759953975947 } - case 1740 { rate := 1000000005086780879436423797 } - case 1741 { rate := 1000000005089481768850356672 } - case 1742 { rate := 1000000005092182428234963519 } - case 1743 { rate := 1000000005094882857629423273 } - case 1744 { rate := 1000000005097583057072904861 } - case 1745 { rate := 1000000005100283026604567203 } - case 1746 { rate := 1000000005102982766263559220 } - case 1747 { rate := 1000000005105682276089019831 } - case 1748 { rate := 1000000005108381556120077964 } - case 1749 { rate := 1000000005111080606395852551 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1750-1799 - switch gt(bps, 1774) - case 0 { // 1750-1774 - switch bps - case 1750 { rate := 1000000005113779426955452540 } - case 1751 { rate := 1000000005116478017837976890 } - case 1752 { rate := 1000000005119176379082514583 } - case 1753 { rate := 1000000005121874510728144619 } - case 1754 { rate := 1000000005124572412813936025 } - case 1755 { rate := 1000000005127270085378947858 } - case 1756 { rate := 1000000005129967528462229205 } - case 1757 { rate := 1000000005132664742102819189 } - case 1758 { rate := 1000000005135361726339746974 } - case 1759 { rate := 1000000005138058481212031762 } - case 1760 { rate := 1000000005140755006758682806 } - case 1761 { rate := 1000000005143451303018699404 } - case 1762 { rate := 1000000005146147370031070909 } - case 1763 { rate := 1000000005148843207834776727 } - case 1764 { rate := 1000000005151538816468786327 } - case 1765 { rate := 1000000005154234195972059237 } - case 1766 { rate := 1000000005156929346383545054 } - case 1767 { rate := 1000000005159624267742183441 } - case 1768 { rate := 1000000005162318960086904137 } - case 1769 { rate := 1000000005165013423456626957 } - case 1770 { rate := 1000000005167707657890261792 } - case 1771 { rate := 1000000005170401663426708619 } - case 1772 { rate := 1000000005173095440104857501 } - case 1773 { rate := 1000000005175788987963588589 } - case 1774 { rate := 1000000005178482307041772129 } - default { revert(0, 0) } - } - case 1 { // 1775-1799 - switch bps - case 1775 { rate := 1000000005181175397378268462 } - case 1776 { rate := 1000000005183868259011928028 } - case 1777 { rate := 1000000005186560891981591373 } - case 1778 { rate := 1000000005189253296326089147 } - case 1779 { rate := 1000000005191945472084242108 } - case 1780 { rate := 1000000005194637419294861132 } - case 1781 { rate := 1000000005197329137996747207 } - case 1782 { rate := 1000000005200020628228691445 } - case 1783 { rate := 1000000005202711890029475077 } - case 1784 { rate := 1000000005205402923437869462 } - case 1785 { rate := 1000000005208093728492636093 } - case 1786 { rate := 1000000005210784305232526588 } - case 1787 { rate := 1000000005213474653696282710 } - case 1788 { rate := 1000000005216164773922636357 } - case 1789 { rate := 1000000005218854665950309569 } - case 1790 { rate := 1000000005221544329818014540 } - case 1791 { rate := 1000000005224233765564453606 } - case 1792 { rate := 1000000005226922973228319260 } - case 1793 { rate := 1000000005229611952848294151 } - case 1794 { rate := 1000000005232300704463051089 } - case 1795 { rate := 1000000005234989228111253046 } - case 1796 { rate := 1000000005237677523831553161 } - case 1797 { rate := 1000000005240365591662594745 } - case 1798 { rate := 1000000005243053431643011277 } - case 1799 { rate := 1000000005245741043811426420 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1800-1999 - switch gt(bps, 1899) - case 0 { // 1800-1899 - switch gt(bps, 1849) - case 0 { // 1800-1849 - switch gt(bps, 1824) - case 0 { // 1800-1824 - switch bps - case 1800 { rate := 1000000005248428428206454010 } - case 1801 { rate := 1000000005251115584866698073 } - case 1802 { rate := 1000000005253802513830752815 } - case 1803 { rate := 1000000005256489215137202638 } - case 1804 { rate := 1000000005259175688824622133 } - case 1805 { rate := 1000000005261861934931576089 } - case 1806 { rate := 1000000005264547953496619496 } - case 1807 { rate := 1000000005267233744558297546 } - case 1808 { rate := 1000000005269919308155145638 } - case 1809 { rate := 1000000005272604644325689381 } - case 1810 { rate := 1000000005275289753108444598 } - case 1811 { rate := 1000000005277974634541917328 } - case 1812 { rate := 1000000005280659288664603827 } - case 1813 { rate := 1000000005283343715514990579 } - case 1814 { rate := 1000000005286027915131554292 } - case 1815 { rate := 1000000005288711887552761904 } - case 1816 { rate := 1000000005291395632817070587 } - case 1817 { rate := 1000000005294079150962927745 } - case 1818 { rate := 1000000005296762442028771030 } - case 1819 { rate := 1000000005299445506053028330 } - case 1820 { rate := 1000000005302128343074117781 } - case 1821 { rate := 1000000005304810953130447770 } - case 1822 { rate := 1000000005307493336260416936 } - case 1823 { rate := 1000000005310175492502414174 } - case 1824 { rate := 1000000005312857421894818640 } - default { revert(0, 0) } - } - case 1 { // 1825-1849 - switch bps - case 1825 { rate := 1000000005315539124475999751 } - case 1826 { rate := 1000000005318220600284317191 } - case 1827 { rate := 1000000005320901849358120913 } - case 1828 { rate := 1000000005323582871735751141 } - case 1829 { rate := 1000000005326263667455538381 } - case 1830 { rate := 1000000005328944236555803409 } - case 1831 { rate := 1000000005331624579074857293 } - case 1832 { rate := 1000000005334304695051001381 } - case 1833 { rate := 1000000005336984584522527310 } - case 1834 { rate := 1000000005339664247527717012 } - case 1835 { rate := 1000000005342343684104842714 } - case 1836 { rate := 1000000005345022894292166942 } - case 1837 { rate := 1000000005347701878127942522 } - case 1838 { rate := 1000000005350380635650412590 } - case 1839 { rate := 1000000005353059166897810586 } - case 1840 { rate := 1000000005355737471908360264 } - case 1841 { rate := 1000000005358415550720275695 } - case 1842 { rate := 1000000005361093403371761268 } - case 1843 { rate := 1000000005363771029901011690 } - case 1844 { rate := 1000000005366448430346211998 } - case 1845 { rate := 1000000005369125604745537555 } - case 1846 { rate := 1000000005371802553137154057 } - case 1847 { rate := 1000000005374479275559217533 } - case 1848 { rate := 1000000005377155772049874353 } - case 1849 { rate := 1000000005379832042647261225 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1850-1899 - switch gt(bps, 1874) - case 0 { // 1850-1874 - switch bps - case 1850 { rate := 1000000005382508087389505206 } - case 1851 { rate := 1000000005385183906314723696 } - case 1852 { rate := 1000000005387859499461024450 } - case 1853 { rate := 1000000005390534866866505578 } - case 1854 { rate := 1000000005393210008569255543 } - case 1855 { rate := 1000000005395884924607353174 } - case 1856 { rate := 1000000005398559615018867662 } - case 1857 { rate := 1000000005401234079841858566 } - case 1858 { rate := 1000000005403908319114375815 } - case 1859 { rate := 1000000005406582332874459714 } - case 1860 { rate := 1000000005409256121160140942 } - case 1861 { rate := 1000000005411929684009440562 } - case 1862 { rate := 1000000005414603021460370019 } - case 1863 { rate := 1000000005417276133550931144 } - case 1864 { rate := 1000000005419949020319116161 } - case 1865 { rate := 1000000005422621681802907685 } - case 1866 { rate := 1000000005425294118040278729 } - case 1867 { rate := 1000000005427966329069192704 } - case 1868 { rate := 1000000005430638314927603428 } - case 1869 { rate := 1000000005433310075653455121 } - case 1870 { rate := 1000000005435981611284682417 } - case 1871 { rate := 1000000005438652921859210358 } - case 1872 { rate := 1000000005441324007414954408 } - case 1873 { rate := 1000000005443994867989820443 } - case 1874 { rate := 1000000005446665503621704769 } - default { revert(0, 0) } - } - case 1 { // 1875-1899 - switch bps - case 1875 { rate := 1000000005449335914348494113 } - case 1876 { rate := 1000000005452006100208065634 } - case 1877 { rate := 1000000005454676061238286919 } - case 1878 { rate := 1000000005457345797477015996 } - case 1879 { rate := 1000000005460015308962101327 } - case 1880 { rate := 1000000005462684595731381818 } - case 1881 { rate := 1000000005465353657822686822 } - case 1882 { rate := 1000000005468022495273836134 } - case 1883 { rate := 1000000005470691108122640009 } - case 1884 { rate := 1000000005473359496406899150 } - case 1885 { rate := 1000000005476027660164404723 } - case 1886 { rate := 1000000005478695599432938350 } - case 1887 { rate := 1000000005481363314250272121 } - case 1888 { rate := 1000000005484030804654168594 } - case 1889 { rate := 1000000005486698070682380795 } - case 1890 { rate := 1000000005489365112372652227 } - case 1891 { rate := 1000000005492031929762716867 } - case 1892 { rate := 1000000005494698522890299176 } - case 1893 { rate := 1000000005497364891793114096 } - case 1894 { rate := 1000000005500031036508867056 } - case 1895 { rate := 1000000005502696957075253978 } - case 1896 { rate := 1000000005505362653529961273 } - case 1897 { rate := 1000000005508028125910665852 } - case 1898 { rate := 1000000005510693374255035122 } - case 1899 { rate := 1000000005513358398600726996 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1900-1999 - switch gt(bps, 1949) - case 0 { // 1900-1949 - switch gt(bps, 1924) - case 0 { // 1900-1924 - switch bps - case 1900 { rate := 1000000005516023198985389892 } - case 1901 { rate := 1000000005518687775446662738 } - case 1902 { rate := 1000000005521352128022174972 } - case 1903 { rate := 1000000005524016256749546550 } - case 1904 { rate := 1000000005526680161666387944 } - case 1905 { rate := 1000000005529343842810300151 } - case 1906 { rate := 1000000005532007300218874693 } - case 1907 { rate := 1000000005534670533929693618 } - case 1908 { rate := 1000000005537333543980329507 } - case 1909 { rate := 1000000005539996330408345474 } - case 1910 { rate := 1000000005542658893251295174 } - case 1911 { rate := 1000000005545321232546722802 } - case 1912 { rate := 1000000005547983348332163094 } - case 1913 { rate := 1000000005550645240645141338 } - case 1914 { rate := 1000000005553306909523173370 } - case 1915 { rate := 1000000005555968355003765580 } - case 1916 { rate := 1000000005558629577124414915 } - case 1917 { rate := 1000000005561290575922608882 } - case 1918 { rate := 1000000005563951351435825552 } - case 1919 { rate := 1000000005566611903701533560 } - case 1920 { rate := 1000000005569272232757192116 } - case 1921 { rate := 1000000005571932338640250996 } - case 1922 { rate := 1000000005574592221388150557 } - case 1923 { rate := 1000000005577251881038321732 } - case 1924 { rate := 1000000005579911317628186037 } - default { revert(0, 0) } - } - case 1 { // 1925-1949 - switch bps - case 1925 { rate := 1000000005582570531195155575 } - case 1926 { rate := 1000000005585229521776633037 } - case 1927 { rate := 1000000005587888289410011703 } - case 1928 { rate := 1000000005590546834132675450 } - case 1929 { rate := 1000000005593205155981998754 } - case 1930 { rate := 1000000005595863254995346690 } - case 1931 { rate := 1000000005598521131210074940 } - case 1932 { rate := 1000000005601178784663529791 } - case 1933 { rate := 1000000005603836215393048140 } - case 1934 { rate := 1000000005606493423435957501 } - case 1935 { rate := 1000000005609150408829576003 } - case 1936 { rate := 1000000005611807171611212394 } - case 1937 { rate := 1000000005614463711818166047 } - case 1938 { rate := 1000000005617120029487726961 } - case 1939 { rate := 1000000005619776124657175764 } - case 1940 { rate := 1000000005622431997363783716 } - case 1941 { rate := 1000000005625087647644812714 } - case 1942 { rate := 1000000005627743075537515294 } - case 1943 { rate := 1000000005630398281079134633 } - case 1944 { rate := 1000000005633053264306904553 } - case 1945 { rate := 1000000005635708025258049526 } - case 1946 { rate := 1000000005638362563969784673 } - case 1947 { rate := 1000000005641016880479315773 } - case 1948 { rate := 1000000005643670974823839258 } - case 1949 { rate := 1000000005646324847040542225 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1950-1999 - switch gt(bps, 1974) - case 0 { // 1950-1974 - switch bps - case 1950 { rate := 1000000005648978497166602432 } - case 1951 { rate := 1000000005651631925239188307 } - case 1952 { rate := 1000000005654285131295458945 } - case 1953 { rate := 1000000005656938115372564118 } - case 1954 { rate := 1000000005659590877507644269 } - case 1955 { rate := 1000000005662243417737830528 } - case 1956 { rate := 1000000005664895736100244700 } - case 1957 { rate := 1000000005667547832631999280 } - case 1958 { rate := 1000000005670199707370197452 } - case 1959 { rate := 1000000005672851360351933092 } - case 1960 { rate := 1000000005675502791614290768 } - case 1961 { rate := 1000000005678154001194345751 } - case 1962 { rate := 1000000005680804989129164009 } - case 1963 { rate := 1000000005683455755455802217 } - case 1964 { rate := 1000000005686106300211307757 } - case 1965 { rate := 1000000005688756623432718721 } - case 1966 { rate := 1000000005691406725157063918 } - case 1967 { rate := 1000000005694056605421362868 } - case 1968 { rate := 1000000005696706264262625816 } - case 1969 { rate := 1000000005699355701717853726 } - case 1970 { rate := 1000000005702004917824038294 } - case 1971 { rate := 1000000005704653912618161941 } - case 1972 { rate := 1000000005707302686137197819 } - case 1973 { rate := 1000000005709951238418109820 } - case 1974 { rate := 1000000005712599569497852572 } - default { revert(0, 0) } - } - case 1 { // 1975-1999 - switch bps - case 1975 { rate := 1000000005715247679413371444 } - case 1976 { rate := 1000000005717895568201602551 } - case 1977 { rate := 1000000005720543235899472755 } - case 1978 { rate := 1000000005723190682543899670 } - case 1979 { rate := 1000000005725837908171791664 } - case 1980 { rate := 1000000005728484912820047862 } - case 1981 { rate := 1000000005731131696525558147 } - case 1982 { rate := 1000000005733778259325203169 } - case 1983 { rate := 1000000005736424601255854342 } - case 1984 { rate := 1000000005739070722354373849 } - case 1985 { rate := 1000000005741716622657614647 } - case 1986 { rate := 1000000005744362302202420469 } - case 1987 { rate := 1000000005747007761025625824 } - case 1988 { rate := 1000000005749652999164056007 } - case 1989 { rate := 1000000005752298016654527093 } - case 1990 { rate := 1000000005754942813533845949 } - case 1991 { rate := 1000000005757587389838810231 } - case 1992 { rate := 1000000005760231745606208388 } - case 1993 { rate := 1000000005762875880872819670 } - case 1994 { rate := 1000000005765519795675414123 } - case 1995 { rate := 1000000005768163490050752599 } - case 1996 { rate := 1000000005770806964035586754 } - case 1997 { rate := 1000000005773450217666659055 } - case 1998 { rate := 1000000005776093250980702782 } - case 1999 { rate := 1000000005778736064014442030 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2000-2399 - switch gt(bps, 2199) - case 0 { // 2000-2199 - switch gt(bps, 2099) - case 0 { // 2000-2099 - switch gt(bps, 2049) - case 0 { // 2000-2049 - switch gt(bps, 2024) - case 0 { // 2000-2024 - switch bps - case 2000 { rate := 1000000005781378656804591712 } - case 2001 { rate := 1000000005784021029387857563 } - case 2002 { rate := 1000000005786663181800936142 } - case 2003 { rate := 1000000005789305114080514838 } - case 2004 { rate := 1000000005791946826263271867 } - case 2005 { rate := 1000000005794588318385876283 } - case 2006 { rate := 1000000005797229590484987975 } - case 2007 { rate := 1000000005799870642597257672 } - case 2008 { rate := 1000000005802511474759326946 } - case 2009 { rate := 1000000005805152087007828215 } - case 2010 { rate := 1000000005807792479379384747 } - case 2011 { rate := 1000000005810432651910610661 } - case 2012 { rate := 1000000005813072604638110932 } - case 2013 { rate := 1000000005815712337598481393 } - case 2014 { rate := 1000000005818351850828308739 } - case 2015 { rate := 1000000005820991144364170528 } - case 2016 { rate := 1000000005823630218242635187 } - case 2017 { rate := 1000000005826269072500262012 } - case 2018 { rate := 1000000005828907707173601173 } - case 2019 { rate := 1000000005831546122299193718 } - case 2020 { rate := 1000000005834184317913571571 } - case 2021 { rate := 1000000005836822294053257542 } - case 2022 { rate := 1000000005839460050754765326 } - case 2023 { rate := 1000000005842097588054599505 } - case 2024 { rate := 1000000005844734905989255555 } - default { revert(0, 0) } - } - case 1 { // 2025-2049 - switch bps - case 2025 { rate := 1000000005847372004595219844 } - case 2026 { rate := 1000000005850008883908969641 } - case 2027 { rate := 1000000005852645543966973112 } - case 2028 { rate := 1000000005855281984805689330 } - case 2029 { rate := 1000000005857918206461568274 } - case 2030 { rate := 1000000005860554208971050832 } - case 2031 { rate := 1000000005863189992370568806 } - case 2032 { rate := 1000000005865825556696544911 } - case 2033 { rate := 1000000005868460901985392786 } - case 2034 { rate := 1000000005871096028273516989 } - case 2035 { rate := 1000000005873730935597313001 } - case 2036 { rate := 1000000005876365623993167233 } - case 2037 { rate := 1000000005879000093497457030 } - case 2038 { rate := 1000000005881634344146550666 } - case 2039 { rate := 1000000005884268375976807354 } - case 2040 { rate := 1000000005886902189024577248 } - case 2041 { rate := 1000000005889535783326201442 } - case 2042 { rate := 1000000005892169158918011981 } - case 2043 { rate := 1000000005894802315836331854 } - case 2044 { rate := 1000000005897435254117475004 } - case 2045 { rate := 1000000005900067973797746332 } - case 2046 { rate := 1000000005902700474913441692 } - case 2047 { rate := 1000000005905332757500847901 } - case 2048 { rate := 1000000005907964821596242742 } - case 2049 { rate := 1000000005910596667235894964 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2050-2099 - switch gt(bps, 2074) - case 0 { // 2050-2074 - switch bps - case 2050 { rate := 1000000005913228294456064283 } - case 2051 { rate := 1000000005915859703293001393 } - case 2052 { rate := 1000000005918490893782947960 } - case 2053 { rate := 1000000005921121865962136632 } - case 2054 { rate := 1000000005923752619866791038 } - case 2055 { rate := 1000000005926383155533125790 } - case 2056 { rate := 1000000005929013472997346492 } - case 2057 { rate := 1000000005931643572295649735 } - case 2058 { rate := 1000000005934273453464223108 } - case 2059 { rate := 1000000005936903116539245192 } - case 2060 { rate := 1000000005939532561556885575 } - case 2061 { rate := 1000000005942161788553304839 } - case 2062 { rate := 1000000005944790797564654580 } - case 2063 { rate := 1000000005947419588627077399 } - case 2064 { rate := 1000000005950048161776706909 } - case 2065 { rate := 1000000005952676517049667739 } - case 2066 { rate := 1000000005955304654482075535 } - case 2067 { rate := 1000000005957932574110036965 } - case 2068 { rate := 1000000005960560275969649719 } - case 2069 { rate := 1000000005963187760097002515 } - case 2070 { rate := 1000000005965815026528175101 } - case 2071 { rate := 1000000005968442075299238258 } - case 2072 { rate := 1000000005971068906446253801 } - case 2073 { rate := 1000000005973695520005274585 } - case 2074 { rate := 1000000005976321916012344506 } - default { revert(0, 0) } - } - case 1 { // 2075-2099 - switch bps - case 2075 { rate := 1000000005978948094503498507 } - case 2076 { rate := 1000000005981574055514762574 } - case 2077 { rate := 1000000005984199799082153748 } - case 2078 { rate := 1000000005986825325241680120 } - case 2079 { rate := 1000000005989450634029340842 } - case 2080 { rate := 1000000005992075725481126120 } - case 2081 { rate := 1000000005994700599633017225 } - case 2082 { rate := 1000000005997325256520986496 } - case 2083 { rate := 1000000005999949696180997335 } - case 2084 { rate := 1000000006002573918649004220 } - case 2085 { rate := 1000000006005197923960952699 } - case 2086 { rate := 1000000006007821712152779401 } - case 2087 { rate := 1000000006010445283260412034 } - case 2088 { rate := 1000000006013068637319769388 } - case 2089 { rate := 1000000006015691774366761338 } - case 2090 { rate := 1000000006018314694437288852 } - case 2091 { rate := 1000000006020937397567243987 } - case 2092 { rate := 1000000006023559883792509896 } - case 2093 { rate := 1000000006026182153148960829 } - case 2094 { rate := 1000000006028804205672462137 } - case 2095 { rate := 1000000006031426041398870273 } - case 2096 { rate := 1000000006034047660364032802 } - case 2097 { rate := 1000000006036669062603788392 } - case 2098 { rate := 1000000006039290248153966829 } - case 2099 { rate := 1000000006041911217050389011 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2100-2199 - switch gt(bps, 2149) - case 0 { // 2100-2149 - switch gt(bps, 2124) - case 0 { // 2100-2124 - switch bps - case 2100 { rate := 1000000006044531969328866955 } - case 2101 { rate := 1000000006047152505025203801 } - case 2102 { rate := 1000000006049772824175193813 } - case 2103 { rate := 1000000006052392926814622379 } - case 2104 { rate := 1000000006055012812979266021 } - case 2105 { rate := 1000000006057632482704892392 } - case 2106 { rate := 1000000006060251936027260282 } - case 2107 { rate := 1000000006062871172982119621 } - case 2108 { rate := 1000000006065490193605211477 } - case 2109 { rate := 1000000006068108997932268067 } - case 2110 { rate := 1000000006070727585999012755 } - case 2111 { rate := 1000000006073345957841160052 } - case 2112 { rate := 1000000006075964113494415626 } - case 2113 { rate := 1000000006078582052994476301 } - case 2114 { rate := 1000000006081199776377030061 } - case 2115 { rate := 1000000006083817283677756050 } - case 2116 { rate := 1000000006086434574932324580 } - case 2117 { rate := 1000000006089051650176397130 } - case 2118 { rate := 1000000006091668509445626349 } - case 2119 { rate := 1000000006094285152775656060 } - case 2120 { rate := 1000000006096901580202121266 } - case 2121 { rate := 1000000006099517791760648147 } - case 2122 { rate := 1000000006102133787486854066 } - case 2123 { rate := 1000000006104749567416347572 } - case 2124 { rate := 1000000006107365131584728403 } - default { revert(0, 0) } - } - case 1 { // 2125-2149 - switch bps - case 2125 { rate := 1000000006109980480027587488 } - case 2126 { rate := 1000000006112595612780506950 } - case 2127 { rate := 1000000006115210529879060111 } - case 2128 { rate := 1000000006117825231358811489 } - case 2129 { rate := 1000000006120439717255316811 } - case 2130 { rate := 1000000006123053987604123006 } - case 2131 { rate := 1000000006125668042440768211 } - case 2132 { rate := 1000000006128281881800781778 } - case 2133 { rate := 1000000006130895505719684273 } - case 2134 { rate := 1000000006133508914232987477 } - case 2135 { rate := 1000000006136122107376194395 } - case 2136 { rate := 1000000006138735085184799252 } - case 2137 { rate := 1000000006141347847694287501 } - case 2138 { rate := 1000000006143960394940135825 } - case 2139 { rate := 1000000006146572726957812137 } - case 2140 { rate := 1000000006149184843782775586 } - case 2141 { rate := 1000000006151796745450476560 } - case 2142 { rate := 1000000006154408431996356685 } - case 2143 { rate := 1000000006157019903455848831 } - case 2144 { rate := 1000000006159631159864377117 } - case 2145 { rate := 1000000006162242201257356911 } - case 2146 { rate := 1000000006164853027670194829 } - case 2147 { rate := 1000000006167463639138288746 } - case 2148 { rate := 1000000006170074035697027796 } - case 2149 { rate := 1000000006172684217381792370 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2150-2199 - switch gt(bps, 2174) - case 0 { // 2150-2174 - switch bps - case 2150 { rate := 1000000006175294184227954125 } - case 2151 { rate := 1000000006177903936270875985 } - case 2152 { rate := 1000000006180513473545912141 } - case 2153 { rate := 1000000006183122796088408060 } - case 2154 { rate := 1000000006185731903933700483 } - case 2155 { rate := 1000000006188340797117117427 } - case 2156 { rate := 1000000006190949475673978192 } - case 2157 { rate := 1000000006193557939639593360 } - case 2158 { rate := 1000000006196166189049264802 } - case 2159 { rate := 1000000006198774223938285679 } - case 2160 { rate := 1000000006201382044341940442 } - case 2161 { rate := 1000000006203989650295504837 } - case 2162 { rate := 1000000006206597041834245913 } - case 2163 { rate := 1000000006209204218993422012 } - case 2164 { rate := 1000000006211811181808282789 } - case 2165 { rate := 1000000006214417930314069199 } - case 2166 { rate := 1000000006217024464546013508 } - case 2167 { rate := 1000000006219630784539339297 } - case 2168 { rate := 1000000006222236890329261461 } - case 2169 { rate := 1000000006224842781950986211 } - case 2170 { rate := 1000000006227448459439711081 } - case 2171 { rate := 1000000006230053922830624932 } - case 2172 { rate := 1000000006232659172158907945 } - case 2173 { rate := 1000000006235264207459731635 } - case 2174 { rate := 1000000006237869028768258850 } - default { revert(0, 0) } - } - case 1 { // 2175-2199 - switch bps - case 2175 { rate := 1000000006240473636119643770 } - case 2176 { rate := 1000000006243078029549031916 } - case 2177 { rate := 1000000006245682209091560148 } - case 2178 { rate := 1000000006248286174782356672 } - case 2179 { rate := 1000000006250889926656541039 } - case 2180 { rate := 1000000006253493464749224150 } - case 2181 { rate := 1000000006256096789095508257 } - case 2182 { rate := 1000000006258699899730486971 } - case 2183 { rate := 1000000006261302796689245258 } - case 2184 { rate := 1000000006263905480006859443 } - case 2185 { rate := 1000000006266507949718397218 } - case 2186 { rate := 1000000006269110205858917643 } - case 2187 { rate := 1000000006271712248463471143 } - case 2188 { rate := 1000000006274314077567099518 } - case 2189 { rate := 1000000006276915693204835941 } - case 2190 { rate := 1000000006279517095411704965 } - case 2191 { rate := 1000000006282118284222722523 } - case 2192 { rate := 1000000006284719259672895930 } - case 2193 { rate := 1000000006287320021797223891 } - case 2194 { rate := 1000000006289920570630696496 } - case 2195 { rate := 1000000006292520906208295229 } - case 2196 { rate := 1000000006295121028564992969 } - case 2197 { rate := 1000000006297720937735753993 } - case 2198 { rate := 1000000006300320633755533977 } - case 2199 { rate := 1000000006302920116659280001 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2200-2399 - switch gt(bps, 2299) - case 0 { // 2200-2299 - switch gt(bps, 2249) - case 0 { // 2200-2249 - switch gt(bps, 2224) - case 0 { // 2200-2224 - switch bps - case 2200 { rate := 1000000006305519386481930552 } - case 2201 { rate := 1000000006308118443258415523 } - case 2202 { rate := 1000000006310717287023656222 } - case 2203 { rate := 1000000006313315917812565372 } - case 2204 { rate := 1000000006315914335660047109 } - case 2205 { rate := 1000000006318512540600996994 } - case 2206 { rate := 1000000006321110532670302007 } - case 2207 { rate := 1000000006323708311902840558 } - case 2208 { rate := 1000000006326305878333482482 } - case 2209 { rate := 1000000006328903231997089047 } - case 2210 { rate := 1000000006331500372928512954 } - case 2211 { rate := 1000000006334097301162598344 } - case 2212 { rate := 1000000006336694016734180794 } - case 2213 { rate := 1000000006339290519678087326 } - case 2214 { rate := 1000000006341886810029136408 } - case 2215 { rate := 1000000006344482887822137953 } - case 2216 { rate := 1000000006347078753091893329 } - case 2217 { rate := 1000000006349674405873195356 } - case 2218 { rate := 1000000006352269846200828311 } - case 2219 { rate := 1000000006354865074109567928 } - case 2220 { rate := 1000000006357460089634181406 } - case 2221 { rate := 1000000006360054892809427412 } - case 2222 { rate := 1000000006362649483670056072 } - case 2223 { rate := 1000000006365243862250808991 } - case 2224 { rate := 1000000006367838028586419244 } - default { revert(0, 0) } - } - case 1 { // 2225-2249 - switch bps - case 2225 { rate := 1000000006370431982711611382 } - case 2226 { rate := 1000000006373025724661101435 } - case 2227 { rate := 1000000006375619254469596916 } - case 2228 { rate := 1000000006378212572171796821 } - case 2229 { rate := 1000000006380805677802391636 } - case 2230 { rate := 1000000006383398571396063332 } - case 2231 { rate := 1000000006385991252987485379 } - case 2232 { rate := 1000000006388583722611322739 } - case 2233 { rate := 1000000006391175980302231873 } - case 2234 { rate := 1000000006393768026094860743 } - case 2235 { rate := 1000000006396359860023848818 } - case 2236 { rate := 1000000006398951482123827069 } - case 2237 { rate := 1000000006401542892429417980 } - case 2238 { rate := 1000000006404134090975235547 } - case 2239 { rate := 1000000006406725077795885279 } - case 2240 { rate := 1000000006409315852925964206 } - case 2241 { rate := 1000000006411906416400060876 } - case 2242 { rate := 1000000006414496768252755361 } - case 2243 { rate := 1000000006417086908518619263 } - case 2244 { rate := 1000000006419676837232215707 } - case 2245 { rate := 1000000006422266554428099352 } - case 2246 { rate := 1000000006424856060140816394 } - case 2247 { rate := 1000000006427445354404904564 } - case 2248 { rate := 1000000006430034437254893132 } - case 2249 { rate := 1000000006432623308725302915 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2250-2299 - switch gt(bps, 2274) - case 0 { // 2250-2274 - switch bps - case 2250 { rate := 1000000006435211968850646270 } - case 2251 { rate := 1000000006437800417665427105 } - case 2252 { rate := 1000000006440388655204140882 } - case 2253 { rate := 1000000006442976681501274614 } - case 2254 { rate := 1000000006445564496591306867 } - case 2255 { rate := 1000000006448152100508707774 } - case 2256 { rate := 1000000006450739493287939023 } - case 2257 { rate := 1000000006453326674963453873 } - case 2258 { rate := 1000000006455913645569697146 } - case 2259 { rate := 1000000006458500405141105236 } - case 2260 { rate := 1000000006461086953712106112 } - case 2261 { rate := 1000000006463673291317119316 } - case 2262 { rate := 1000000006466259417990555969 } - case 2263 { rate := 1000000006468845333766818775 } - case 2264 { rate := 1000000006471431038680302021 } - case 2265 { rate := 1000000006474016532765391581 } - case 2266 { rate := 1000000006476601816056464920 } - case 2267 { rate := 1000000006479186888587891091 } - case 2268 { rate := 1000000006481771750394030749 } - case 2269 { rate := 1000000006484356401509236141 } - case 2270 { rate := 1000000006486940841967851116 } - case 2271 { rate := 1000000006489525071804211128 } - case 2272 { rate := 1000000006492109091052643236 } - case 2273 { rate := 1000000006494692899747466107 } - case 2274 { rate := 1000000006497276497922990021 } - default { revert(0, 0) } - } - case 1 { // 2275-2299 - switch bps - case 2275 { rate := 1000000006499859885613516871 } - case 2276 { rate := 1000000006502443062853340168 } - case 2277 { rate := 1000000006505026029676745041 } - case 2278 { rate := 1000000006507608786118008244 } - case 2279 { rate := 1000000006510191332211398155 } - case 2280 { rate := 1000000006512773667991174779 } - case 2281 { rate := 1000000006515355793491589751 } - case 2282 { rate := 1000000006517937708746886344 } - case 2283 { rate := 1000000006520519413791299462 } - case 2284 { rate := 1000000006523100908659055649 } - case 2285 { rate := 1000000006525682193384373092 } - case 2286 { rate := 1000000006528263268001461622 } - case 2287 { rate := 1000000006530844132544522714 } - case 2288 { rate := 1000000006533424787047749499 } - case 2289 { rate := 1000000006536005231545326753 } - case 2290 { rate := 1000000006538585466071430912 } - case 2291 { rate := 1000000006541165490660230067 } - case 2292 { rate := 1000000006543745305345883975 } - case 2293 { rate := 1000000006546324910162544048 } - case 2294 { rate := 1000000006548904305144353370 } - case 2295 { rate := 1000000006551483490325446691 } - case 2296 { rate := 1000000006554062465739950435 } - case 2297 { rate := 1000000006556641231421982697 } - case 2298 { rate := 1000000006559219787405653252 } - case 2299 { rate := 1000000006561798133725063551 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2300-2399 - switch gt(bps, 2349) - case 0 { // 2300-2349 - switch gt(bps, 2324) - case 0 { // 2300-2324 - switch bps - case 2300 { rate := 1000000006564376270414306730 } - case 2301 { rate := 1000000006566954197507467608 } - case 2302 { rate := 1000000006569531915038622694 } - case 2303 { rate := 1000000006572109423041840185 } - case 2304 { rate := 1000000006574686721551179973 } - case 2305 { rate := 1000000006577263810600693644 } - case 2306 { rate := 1000000006579840690224424483 } - case 2307 { rate := 1000000006582417360456407476 } - case 2308 { rate := 1000000006584993821330669316 } - case 2309 { rate := 1000000006587570072881228396 } - case 2310 { rate := 1000000006590146115142094824 } - case 2311 { rate := 1000000006592721948147270418 } - case 2312 { rate := 1000000006595297571930748710 } - case 2313 { rate := 1000000006597872986526514949 } - case 2314 { rate := 1000000006600448191968546107 } - case 2315 { rate := 1000000006603023188290810875 } - case 2316 { rate := 1000000006605597975527269671 } - case 2317 { rate := 1000000006608172553711874641 } - case 2318 { rate := 1000000006610746922878569662 } - case 2319 { rate := 1000000006613321083061290345 } - case 2320 { rate := 1000000006615895034293964035 } - case 2321 { rate := 1000000006618468776610509817 } - case 2322 { rate := 1000000006621042310044838519 } - case 2323 { rate := 1000000006623615634630852711 } - case 2324 { rate := 1000000006626188750402446710 } - default { revert(0, 0) } - } - case 1 { // 2325-2349 - switch bps - case 2325 { rate := 1000000006628761657393506584 } - case 2326 { rate := 1000000006631334355637910151 } - case 2327 { rate := 1000000006633906845169526987 } - case 2328 { rate := 1000000006636479126022218423 } - case 2329 { rate := 1000000006639051198229837551 } - case 2330 { rate := 1000000006641623061826229226 } - case 2331 { rate := 1000000006644194716845230068 } - case 2332 { rate := 1000000006646766163320668467 } - case 2333 { rate := 1000000006649337401286364581 } - case 2334 { rate := 1000000006651908430776130344 } - case 2335 { rate := 1000000006654479251823769466 } - case 2336 { rate := 1000000006657049864463077435 } - case 2337 { rate := 1000000006659620268727841521 } - case 2338 { rate := 1000000006662190464651840778 } - case 2339 { rate := 1000000006664760452268846047 } - case 2340 { rate := 1000000006667330231612619959 } - case 2341 { rate := 1000000006669899802716916939 } - case 2342 { rate := 1000000006672469165615483202 } - case 2343 { rate := 1000000006675038320342056763 } - case 2344 { rate := 1000000006677607266930367441 } - case 2345 { rate := 1000000006680176005414136851 } - case 2346 { rate := 1000000006682744535827078420 } - case 2347 { rate := 1000000006685312858202897378 } - case 2348 { rate := 1000000006687880972575290769 } - case 2349 { rate := 1000000006690448878977947450 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2350-2399 - switch gt(bps, 2374) - case 0 { // 2350-2374 - switch bps - case 2350 { rate := 1000000006693016577444548094 } - case 2351 { rate := 1000000006695584068008765190 } - case 2352 { rate := 1000000006698151350704263054 } - case 2353 { rate := 1000000006700718425564697821 } - case 2354 { rate := 1000000006703285292623717455 } - case 2355 { rate := 1000000006705851951914961750 } - case 2356 { rate := 1000000006708418403472062331 } - case 2357 { rate := 1000000006710984647328642657 } - case 2358 { rate := 1000000006713550683518318027 } - case 2359 { rate := 1000000006716116512074695575 } - case 2360 { rate := 1000000006718682133031374284 } - case 2361 { rate := 1000000006721247546421944976 } - case 2362 { rate := 1000000006723812752279990327 } - case 2363 { rate := 1000000006726377750639084858 } - case 2364 { rate := 1000000006728942541532794947 } - case 2365 { rate := 1000000006731507124994678824 } - case 2366 { rate := 1000000006734071501058286581 } - case 2367 { rate := 1000000006736635669757160171 } - case 2368 { rate := 1000000006739199631124833408 } - case 2369 { rate := 1000000006741763385194831973 } - case 2370 { rate := 1000000006744326932000673419 } - case 2371 { rate := 1000000006746890271575867167 } - case 2372 { rate := 1000000006749453403953914514 } - case 2373 { rate := 1000000006752016329168308632 } - case 2374 { rate := 1000000006754579047252534575 } - default { revert(0, 0) } - } - case 1 { // 2375-2399 - switch bps - case 2375 { rate := 1000000006757141558240069277 } - case 2376 { rate := 1000000006759703862164381559 } - case 2377 { rate := 1000000006762265959058932126 } - case 2378 { rate := 1000000006764827848957173576 } - case 2379 { rate := 1000000006767389531892550399 } - case 2380 { rate := 1000000006769951007898498979 } - case 2381 { rate := 1000000006772512277008447597 } - case 2382 { rate := 1000000006775073339255816438 } - case 2383 { rate := 1000000006777634194674017587 } - case 2384 { rate := 1000000006780194843296455036 } - case 2385 { rate := 1000000006782755285156524684 } - case 2386 { rate := 1000000006785315520287614342 } - case 2387 { rate := 1000000006787875548723103735 } - case 2388 { rate := 1000000006790435370496364503 } - case 2389 { rate := 1000000006792994985640760203 } - case 2390 { rate := 1000000006795554394189646319 } - case 2391 { rate := 1000000006798113596176370253 } - case 2392 { rate := 1000000006800672591634271336 } - case 2393 { rate := 1000000006803231380596680829 } - case 2394 { rate := 1000000006805789963096921922 } - case 2395 { rate := 1000000006808348339168309744 } - case 2396 { rate := 1000000006810906508844151355 } - case 2397 { rate := 1000000006813464472157745761 } - case 2398 { rate := 1000000006816022229142383903 } - case 2399 { rate := 1000000006818579779831348674 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates2400To3199.sol b/src/repositories/Rates2400To3199.sol deleted file mode 100644 index c00a42b..0000000 --- a/src/repositories/Rates2400To3199.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates2400To3199 { - uint256 constant public MIN = 2400; - uint256 constant public MAX = 3199; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 2799) - case 0 { // 2400-2799 - switch gt(bps, 2599) - case 0 { // 2400-2599 - switch gt(bps, 2499) - case 0 { // 2400-2499 - switch gt(bps, 2449) - case 0 { // 2400-2449 - switch gt(bps, 2424) - case 0 { // 2400-2424 - switch bps - case 2400 { rate := 1000000006821137124257914908 } - case 2401 { rate := 1000000006823694262455349394 } - case 2402 { rate := 1000000006826251194456910871 } - case 2403 { rate := 1000000006828807920295850033 } - case 2404 { rate := 1000000006831364440005409534 } - case 2405 { rate := 1000000006833920753618823984 } - case 2406 { rate := 1000000006836476861169319962 } - case 2407 { rate := 1000000006839032762690116006 } - case 2408 { rate := 1000000006841588458214422628 } - case 2409 { rate := 1000000006844143947775442306 } - case 2410 { rate := 1000000006846699231406369494 } - case 2411 { rate := 1000000006849254309140390621 } - case 2412 { rate := 1000000006851809181010684095 } - case 2413 { rate := 1000000006854363847050420305 } - case 2414 { rate := 1000000006856918307292761621 } - case 2415 { rate := 1000000006859472561770862405 } - case 2416 { rate := 1000000006862026610517869003 } - case 2417 { rate := 1000000006864580453566919751 } - case 2418 { rate := 1000000006867134090951144986 } - case 2419 { rate := 1000000006869687522703667035 } - case 2420 { rate := 1000000006872240748857600225 } - case 2421 { rate := 1000000006874793769446050889 } - case 2422 { rate := 1000000006877346584502117360 } - case 2423 { rate := 1000000006879899194058889978 } - case 2424 { rate := 1000000006882451598149451095 } - default { revert(0, 0) } - } - case 1 { // 2425-2449 - switch bps - case 2425 { rate := 1000000006885003796806875073 } - case 2426 { rate := 1000000006887555790064228288 } - case 2427 { rate := 1000000006890107577954569136 } - case 2428 { rate := 1000000006892659160510948030 } - case 2429 { rate := 1000000006895210537766407406 } - case 2430 { rate := 1000000006897761709753981726 } - case 2431 { rate := 1000000006900312676506697478 } - case 2432 { rate := 1000000006902863438057573180 } - case 2433 { rate := 1000000006905413994439619383 } - case 2434 { rate := 1000000006907964345685838672 } - case 2435 { rate := 1000000006910514491829225673 } - case 2436 { rate := 1000000006913064432902767049 } - case 2437 { rate := 1000000006915614168939441505 } - case 2438 { rate := 1000000006918163699972219795 } - case 2439 { rate := 1000000006920713026034064718 } - case 2440 { rate := 1000000006923262147157931125 } - case 2441 { rate := 1000000006925811063376765919 } - case 2442 { rate := 1000000006928359774723508058 } - case 2443 { rate := 1000000006930908281231088560 } - case 2444 { rate := 1000000006933456582932430503 } - case 2445 { rate := 1000000006936004679860449027 } - case 2446 { rate := 1000000006938552572048051340 } - case 2447 { rate := 1000000006941100259528136715 } - case 2448 { rate := 1000000006943647742333596500 } - case 2449 { rate := 1000000006946195020497314113 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2450-2499 - switch gt(bps, 2474) - case 0 { // 2450-2474 - switch bps - case 2450 { rate := 1000000006948742094052165050 } - case 2451 { rate := 1000000006951288963031016884 } - case 2452 { rate := 1000000006953835627466729271 } - case 2453 { rate := 1000000006956382087392153949 } - case 2454 { rate := 1000000006958928342840134742 } - case 2455 { rate := 1000000006961474393843507563 } - case 2456 { rate := 1000000006964020240435100419 } - case 2457 { rate := 1000000006966565882647733404 } - case 2458 { rate := 1000000006969111320514218717 } - case 2459 { rate := 1000000006971656554067360648 } - case 2460 { rate := 1000000006974201583339955595 } - case 2461 { rate := 1000000006976746408364792054 } - case 2462 { rate := 1000000006979291029174650631 } - case 2463 { rate := 1000000006981835445802304040 } - case 2464 { rate := 1000000006984379658280517107 } - case 2465 { rate := 1000000006986923666642046773 } - case 2466 { rate := 1000000006989467470919642091 } - case 2467 { rate := 1000000006992011071146044239 } - case 2468 { rate := 1000000006994554467353986513 } - case 2469 { rate := 1000000006997097659576194335 } - case 2470 { rate := 1000000006999640647845385252 } - case 2471 { rate := 1000000007002183432194268941 } - case 2472 { rate := 1000000007004726012655547211 } - case 2473 { rate := 1000000007007268389261914006 } - case 2474 { rate := 1000000007009810562046055406 } - default { revert(0, 0) } - } - case 1 { // 2475-2499 - switch bps - case 2475 { rate := 1000000007012352531040649627 } - case 2476 { rate := 1000000007014894296278367034 } - case 2477 { rate := 1000000007017435857791870130 } - case 2478 { rate := 1000000007019977215613813568 } - case 2479 { rate := 1000000007022518369776844150 } - case 2480 { rate := 1000000007025059320313600828 } - case 2481 { rate := 1000000007027600067256714710 } - case 2482 { rate := 1000000007030140610638809063 } - case 2483 { rate := 1000000007032680950492499310 } - case 2484 { rate := 1000000007035221086850393037 } - case 2485 { rate := 1000000007037761019745089994 } - case 2486 { rate := 1000000007040300749209182100 } - case 2487 { rate := 1000000007042840275275253441 } - case 2488 { rate := 1000000007045379597975880277 } - case 2489 { rate := 1000000007047918717343631040 } - case 2490 { rate := 1000000007050457633411066343 } - case 2491 { rate := 1000000007052996346210738974 } - case 2492 { rate := 1000000007055534855775193908 } - case 2493 { rate := 1000000007058073162136968298 } - case 2494 { rate := 1000000007060611265328591490 } - case 2495 { rate := 1000000007063149165382585017 } - case 2496 { rate := 1000000007065686862331462604 } - case 2497 { rate := 1000000007068224356207730171 } - case 2498 { rate := 1000000007070761647043885833 } - case 2499 { rate := 1000000007073298734872419909 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2500-2599 - switch gt(bps, 2549) - case 0 { // 2500-2549 - switch gt(bps, 2524) - case 0 { // 2500-2524 - switch bps - case 2500 { rate := 1000000007075835619725814915 } - case 2501 { rate := 1000000007078372301636545575 } - case 2502 { rate := 1000000007080908780637078819 } - case 2503 { rate := 1000000007083445056759873785 } - case 2504 { rate := 1000000007085981130037381827 } - case 2505 { rate := 1000000007088517000502046507 } - case 2506 { rate := 1000000007091052668186303610 } - case 2507 { rate := 1000000007093588133122581138 } - case 2508 { rate := 1000000007096123395343299315 } - case 2509 { rate := 1000000007098658454880870590 } - case 2510 { rate := 1000000007101193311767699638 } - case 2511 { rate := 1000000007103727966036183363 } - case 2512 { rate := 1000000007106262417718710904 } - case 2513 { rate := 1000000007108796666847663630 } - case 2514 { rate := 1000000007111330713455415150 } - case 2515 { rate := 1000000007113864557574331311 } - case 2516 { rate := 1000000007116398199236770202 } - case 2517 { rate := 1000000007118931638475082158 } - case 2518 { rate := 1000000007121464875321609757 } - case 2519 { rate := 1000000007123997909808687830 } - case 2520 { rate := 1000000007126530741968643458 } - case 2521 { rate := 1000000007129063371833795977 } - case 2522 { rate := 1000000007131595799436456977 } - case 2523 { rate := 1000000007134128024808930311 } - case 2524 { rate := 1000000007136660047983512092 } - default { revert(0, 0) } - } - case 1 { // 2525-2549 - switch bps - case 2525 { rate := 1000000007139191868992490695 } - case 2526 { rate := 1000000007141723487868146766 } - case 2527 { rate := 1000000007144254904642753216 } - case 2528 { rate := 1000000007146786119348575230 } - case 2529 { rate := 1000000007149317132017870265 } - case 2530 { rate := 1000000007151847942682888056 } - case 2531 { rate := 1000000007154378551375870618 } - case 2532 { rate := 1000000007156908958129052243 } - case 2533 { rate := 1000000007159439162974659510 } - case 2534 { rate := 1000000007161969165944911286 } - case 2535 { rate := 1000000007164498967072018724 } - case 2536 { rate := 1000000007167028566388185266 } - case 2537 { rate := 1000000007169557963925606655 } - case 2538 { rate := 1000000007172087159716470922 } - case 2539 { rate := 1000000007174616153792958402 } - case 2540 { rate := 1000000007177144946187241729 } - case 2541 { rate := 1000000007179673536931485840 } - case 2542 { rate := 1000000007182201926057847980 } - case 2543 { rate := 1000000007184730113598477700 } - case 2544 { rate := 1000000007187258099585516865 } - case 2545 { rate := 1000000007189785884051099650 } - case 2546 { rate := 1000000007192313467027352546 } - case 2547 { rate := 1000000007194840848546394365 } - case 2548 { rate := 1000000007197368028640336238 } - case 2549 { rate := 1000000007199895007341281618 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2550-2599 - switch gt(bps, 2574) - case 0 { // 2550-2574 - switch bps - case 2550 { rate := 1000000007202421784681326287 } - case 2551 { rate := 1000000007204948360692558350 } - case 2552 { rate := 1000000007207474735407058245 } - case 2553 { rate := 1000000007210000908856898746 } - case 2554 { rate := 1000000007212526881074144958 } - case 2555 { rate := 1000000007215052652090854324 } - case 2556 { rate := 1000000007217578221939076629 } - case 2557 { rate := 1000000007220103590650854001 } - case 2558 { rate := 1000000007222628758258220911 } - case 2559 { rate := 1000000007225153724793204178 } - case 2560 { rate := 1000000007227678490287822975 } - case 2561 { rate := 1000000007230203054774088820 } - case 2562 { rate := 1000000007232727418284005593 } - case 2563 { rate := 1000000007235251580849569527 } - case 2564 { rate := 1000000007237775542502769216 } - case 2565 { rate := 1000000007240299303275585616 } - case 2566 { rate := 1000000007242822863199992048 } - case 2567 { rate := 1000000007245346222307954199 } - case 2568 { rate := 1000000007247869380631430127 } - case 2569 { rate := 1000000007250392338202370260 } - case 2570 { rate := 1000000007252915095052717402 } - case 2571 { rate := 1000000007255437651214406734 } - case 2572 { rate := 1000000007257960006719365813 } - case 2573 { rate := 1000000007260482161599514580 } - case 2574 { rate := 1000000007263004115886765361 } - default { revert(0, 0) } - } - case 1 { // 2575-2599 - switch bps - case 2575 { rate := 1000000007265525869613022867 } - case 2576 { rate := 1000000007268047422810184197 } - case 2577 { rate := 1000000007270568775510138843 } - case 2578 { rate := 1000000007273089927744768690 } - case 2579 { rate := 1000000007275610879545948018 } - case 2580 { rate := 1000000007278131630945543509 } - case 2581 { rate := 1000000007280652181975414240 } - case 2582 { rate := 1000000007283172532667411698 } - case 2583 { rate := 1000000007285692683053379771 } - case 2584 { rate := 1000000007288212633165154756 } - case 2585 { rate := 1000000007290732383034565363 } - case 2586 { rate := 1000000007293251932693432712 } - case 2587 { rate := 1000000007295771282173570341 } - case 2588 { rate := 1000000007298290431506784204 } - case 2589 { rate := 1000000007300809380724872677 } - case 2590 { rate := 1000000007303328129859626555 } - case 2591 { rate := 1000000007305846678942829063 } - case 2592 { rate := 1000000007308365028006255850 } - case 2593 { rate := 1000000007310883177081674995 } - case 2594 { rate := 1000000007313401126200847011 } - case 2595 { rate := 1000000007315918875395524846 } - case 2596 { rate := 1000000007318436424697453882 } - case 2597 { rate := 1000000007320953774138371943 } - case 2598 { rate := 1000000007323470923750009295 } - case 2599 { rate := 1000000007325987873564088646 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2600-2799 - switch gt(bps, 2699) - case 0 { // 2600-2699 - switch gt(bps, 2649) - case 0 { // 2600-2649 - switch gt(bps, 2624) - case 0 { // 2600-2624 - switch bps - case 2600 { rate := 1000000007328504623612325153 } - case 2601 { rate := 1000000007331021173926426421 } - case 2602 { rate := 1000000007333537524538092508 } - case 2603 { rate := 1000000007336053675479015924 } - case 2604 { rate := 1000000007338569626780881634 } - case 2605 { rate := 1000000007341085378475367066 } - case 2606 { rate := 1000000007343600930594142104 } - case 2607 { rate := 1000000007346116283168869100 } - case 2608 { rate := 1000000007348631436231202869 } - case 2609 { rate := 1000000007351146389812790696 } - case 2610 { rate := 1000000007353661143945272335 } - case 2611 { rate := 1000000007356175698660280013 } - case 2612 { rate := 1000000007358690053989438434 } - case 2613 { rate := 1000000007361204209964364778 } - case 2614 { rate := 1000000007363718166616668706 } - case 2615 { rate := 1000000007366231923977952362 } - case 2616 { rate := 1000000007368745482079810375 } - case 2617 { rate := 1000000007371258840953829859 } - case 2618 { rate := 1000000007373772000631590422 } - case 2619 { rate := 1000000007376284961144664159 } - case 2620 { rate := 1000000007378797722524615662 } - case 2621 { rate := 1000000007381310284803002021 } - case 2622 { rate := 1000000007383822648011372824 } - case 2623 { rate := 1000000007386334812181270160 } - case 2624 { rate := 1000000007388846777344228623 } - default { revert(0, 0) } - } - case 1 { // 2625-2649 - switch bps - case 2625 { rate := 1000000007391358543531775311 } - case 2626 { rate := 1000000007393870110775429835 } - case 2627 { rate := 1000000007396381479106704315 } - case 2628 { rate := 1000000007398892648557103381 } - case 2629 { rate := 1000000007401403619158124184 } - case 2630 { rate := 1000000007403914390941256391 } - case 2631 { rate := 1000000007406424963937982190 } - case 2632 { rate := 1000000007408935338179776291 } - case 2633 { rate := 1000000007411445513698105929 } - case 2634 { rate := 1000000007413955490524430869 } - case 2635 { rate := 1000000007416465268690203405 } - case 2636 { rate := 1000000007418974848226868363 } - case 2637 { rate := 1000000007421484229165863101 } - case 2638 { rate := 1000000007423993411538617520 } - case 2639 { rate := 1000000007426502395376554056 } - case 2640 { rate := 1000000007429011180711087689 } - case 2641 { rate := 1000000007431519767573625942 } - case 2642 { rate := 1000000007434028155995568885 } - case 2643 { rate := 1000000007436536346008309136 } - case 2644 { rate := 1000000007439044337643231867 } - case 2645 { rate := 1000000007441552130931714802 } - case 2646 { rate := 1000000007444059725905128218 } - case 2647 { rate := 1000000007446567122594834957 } - case 2648 { rate := 1000000007449074321032190415 } - case 2649 { rate := 1000000007451581321248542554 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2650-2699 - switch gt(bps, 2674) - case 0 { // 2650-2674 - switch bps - case 2650 { rate := 1000000007454088123275231904 } - case 2651 { rate := 1000000007456594727143591558 } - case 2652 { rate := 1000000007459101132884947181 } - case 2653 { rate := 1000000007461607340530617012 } - case 2654 { rate := 1000000007464113350111911864 } - case 2655 { rate := 1000000007466619161660135123 } - case 2656 { rate := 1000000007469124775206582763 } - case 2657 { rate := 1000000007471630190782543332 } - case 2658 { rate := 1000000007474135408419297966 } - case 2659 { rate := 1000000007476640428148120386 } - case 2660 { rate := 1000000007479145250000276903 } - case 2661 { rate := 1000000007481649874007026420 } - case 2662 { rate := 1000000007484154300199620430 } - case 2663 { rate := 1000000007486658528609303027 } - case 2664 { rate := 1000000007489162559267310898 } - case 2665 { rate := 1000000007491666392204873334 } - case 2666 { rate := 1000000007494170027453212228 } - case 2667 { rate := 1000000007496673465043542080 } - case 2668 { rate := 1000000007499176705007069991 } - case 2669 { rate := 1000000007501679747374995682 } - case 2670 { rate := 1000000007504182592178511478 } - case 2671 { rate := 1000000007506685239448802322 } - case 2672 { rate := 1000000007509187689217045773 } - case 2673 { rate := 1000000007511689941514412011 } - case 2674 { rate := 1000000007514191996372063835 } - default { revert(0, 0) } - } - case 1 { // 2675-2699 - switch bps - case 2675 { rate := 1000000007516693853821156670 } - case 2676 { rate := 1000000007519195513892838566 } - case 2677 { rate := 1000000007521696976618250202 } - case 2678 { rate := 1000000007524198242028524886 } - case 2679 { rate := 1000000007526699310154788564 } - case 2680 { rate := 1000000007529200181028159813 } - case 2681 { rate := 1000000007531700854679749850 } - case 2682 { rate := 1000000007534201331140662531 } - case 2683 { rate := 1000000007536701610441994354 } - case 2684 { rate := 1000000007539201692614834466 } - case 2685 { rate := 1000000007541701577690264654 } - case 2686 { rate := 1000000007544201265699359361 } - case 2687 { rate := 1000000007546700756673185679 } - case 2688 { rate := 1000000007549200050642803353 } - case 2689 { rate := 1000000007551699147639264788 } - case 2690 { rate := 1000000007554198047693615043 } - case 2691 { rate := 1000000007556696750836891842 } - case 2692 { rate := 1000000007559195257100125570 } - case 2693 { rate := 1000000007561693566514339279 } - case 2694 { rate := 1000000007564191679110548687 } - case 2695 { rate := 1000000007566689594919762187 } - case 2696 { rate := 1000000007569187313972980838 } - case 2697 { rate := 1000000007571684836301198378 } - case 2698 { rate := 1000000007574182161935401222 } - case 2699 { rate := 1000000007576679290906568463 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2700-2799 - switch gt(bps, 2749) - case 0 { // 2700-2749 - switch gt(bps, 2724) - case 0 { // 2700-2724 - switch bps - case 2700 { rate := 1000000007579176223245671878 } - case 2701 { rate := 1000000007581672958983675926 } - case 2702 { rate := 1000000007584169498151537752 } - case 2703 { rate := 1000000007586665840780207194 } - case 2704 { rate := 1000000007589161986900626776 } - case 2705 { rate := 1000000007591657936543731717 } - case 2706 { rate := 1000000007594153689740449933 } - case 2707 { rate := 1000000007596649246521702037 } - case 2708 { rate := 1000000007599144606918401342 } - case 2709 { rate := 1000000007601639770961453862 } - case 2710 { rate := 1000000007604134738681758320 } - case 2711 { rate := 1000000007606629510110206142 } - case 2712 { rate := 1000000007609124085277681464 } - case 2713 { rate := 1000000007611618464215061138 } - case 2714 { rate := 1000000007614112646953214725 } - case 2715 { rate := 1000000007616606633523004503 } - case 2716 { rate := 1000000007619100423955285470 } - case 2717 { rate := 1000000007621594018280905346 } - case 2718 { rate := 1000000007624087416530704571 } - case 2719 { rate := 1000000007626580618735516314 } - case 2720 { rate := 1000000007629073624926166467 } - case 2721 { rate := 1000000007631566435133473656 } - case 2722 { rate := 1000000007634059049388249240 } - case 2723 { rate := 1000000007636551467721297309 } - case 2724 { rate := 1000000007639043690163414692 } - default { revert(0, 0) } - } - case 1 { // 2725-2749 - switch bps - case 2725 { rate := 1000000007641535716745390957 } - case 2726 { rate := 1000000007644027547498008412 } - case 2727 { rate := 1000000007646519182452042112 } - case 2728 { rate := 1000000007649010621638259855 } - case 2729 { rate := 1000000007651501865087422189 } - case 2730 { rate := 1000000007653992912830282410 } - case 2731 { rate := 1000000007656483764897586571 } - case 2732 { rate := 1000000007658974421320073477 } - case 2733 { rate := 1000000007661464882128474691 } - case 2734 { rate := 1000000007663955147353514535 } - case 2735 { rate := 1000000007666445217025910095 } - case 2736 { rate := 1000000007668935091176371220 } - case 2737 { rate := 1000000007671424769835600527 } - case 2738 { rate := 1000000007673914253034293397 } - case 2739 { rate := 1000000007676403540803137988 } - case 2740 { rate := 1000000007678892633172815227 } - case 2741 { rate := 1000000007681381530173998820 } - case 2742 { rate := 1000000007683870231837355249 } - case 2743 { rate := 1000000007686358738193543774 } - case 2744 { rate := 1000000007688847049273216443 } - case 2745 { rate := 1000000007691335165107018082 } - case 2746 { rate := 1000000007693823085725586308 } - case 2747 { rate := 1000000007696310811159551528 } - case 2748 { rate := 1000000007698798341439536935 } - case 2749 { rate := 1000000007701285676596158525 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2750-2799 - switch gt(bps, 2774) - case 0 { // 2750-2774 - switch bps - case 2750 { rate := 1000000007703772816660025079 } - case 2751 { rate := 1000000007706259761661738185 } - case 2752 { rate := 1000000007708746511631892227 } - case 2753 { rate := 1000000007711233066601074392 } - case 2754 { rate := 1000000007713719426599864675 } - case 2755 { rate := 1000000007716205591658835874 } - case 2756 { rate := 1000000007718691561808553598 } - case 2757 { rate := 1000000007721177337079576270 } - case 2758 { rate := 1000000007723662917502455126 } - case 2759 { rate := 1000000007726148303107734216 } - case 2760 { rate := 1000000007728633493925950409 } - case 2761 { rate := 1000000007731118489987633399 } - case 2762 { rate := 1000000007733603291323305697 } - case 2763 { rate := 1000000007736087897963482645 } - case 2764 { rate := 1000000007738572309938672406 } - case 2765 { rate := 1000000007741056527279375980 } - case 2766 { rate := 1000000007743540550016087193 } - case 2767 { rate := 1000000007746024378179292708 } - case 2768 { rate := 1000000007748508011799472026 } - case 2769 { rate := 1000000007750991450907097483 } - case 2770 { rate := 1000000007753474695532634259 } - case 2771 { rate := 1000000007755957745706540376 } - case 2772 { rate := 1000000007758440601459266700 } - case 2773 { rate := 1000000007760923262821256948 } - case 2774 { rate := 1000000007763405729822947685 } - default { revert(0, 0) } - } - case 1 { // 2775-2799 - switch bps - case 2775 { rate := 1000000007765888002494768329 } - case 2776 { rate := 1000000007768370080867141151 } - case 2777 { rate := 1000000007770851964970481280 } - case 2778 { rate := 1000000007773333654835196703 } - case 2779 { rate := 1000000007775815150491688269 } - case 2780 { rate := 1000000007778296451970349690 } - case 2781 { rate := 1000000007780777559301567543 } - case 2782 { rate := 1000000007783258472515721274 } - case 2783 { rate := 1000000007785739191643183199 } - case 2784 { rate := 1000000007788219716714318505 } - case 2785 { rate := 1000000007790700047759485254 } - case 2786 { rate := 1000000007793180184809034386 } - case 2787 { rate := 1000000007795660127893309718 } - case 2788 { rate := 1000000007798139877042647950 } - case 2789 { rate := 1000000007800619432287378665 } - case 2790 { rate := 1000000007803098793657824331 } - case 2791 { rate := 1000000007805577961184300304 } - case 2792 { rate := 1000000007808056934897114831 } - case 2793 { rate := 1000000007810535714826569051 } - case 2794 { rate := 1000000007813014301002956995 } - case 2795 { rate := 1000000007815492693456565596 } - case 2796 { rate := 1000000007817970892217674682 } - case 2797 { rate := 1000000007820448897316556983 } - case 2798 { rate := 1000000007822926708783478132 } - case 2799 { rate := 1000000007825404326648696672 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2800-3199 - switch gt(bps, 2999) - case 0 { // 2800-2999 - switch gt(bps, 2899) - case 0 { // 2800-2899 - switch gt(bps, 2849) - case 0 { // 2800-2849 - switch gt(bps, 2824) - case 0 { // 2800-2824 - switch bps - case 2800 { rate := 1000000007827881750942464045 } - case 2801 { rate := 1000000007830358981695024613 } - case 2802 { rate := 1000000007832836018936615642 } - case 2803 { rate := 1000000007835312862697467319 } - case 2804 { rate := 1000000007837789513007802744 } - case 2805 { rate := 1000000007840265969897837937 } - case 2806 { rate := 1000000007842742233397781838 } - case 2807 { rate := 1000000007845218303537836314 } - case 2808 { rate := 1000000007847694180348196153 } - case 2809 { rate := 1000000007850169863859049072 } - case 2810 { rate := 1000000007852645354100575721 } - case 2811 { rate := 1000000007855120651102949679 } - case 2812 { rate := 1000000007857595754896337460 } - case 2813 { rate := 1000000007860070665510898517 } - case 2814 { rate := 1000000007862545382976785237 } - case 2815 { rate := 1000000007865019907324142954 } - case 2816 { rate := 1000000007867494238583109939 } - case 2817 { rate := 1000000007869968376783817414 } - case 2818 { rate := 1000000007872442321956389545 } - case 2819 { rate := 1000000007874916074130943450 } - case 2820 { rate := 1000000007877389633337589198 } - case 2821 { rate := 1000000007879862999606429812 } - case 2822 { rate := 1000000007882336172967561271 } - case 2823 { rate := 1000000007884809153451072514 } - case 2824 { rate := 1000000007887281941087045441 } - default { revert(0, 0) } - } - case 1 { // 2825-2849 - switch bps - case 2825 { rate := 1000000007889754535905554913 } - case 2826 { rate := 1000000007892226937936668759 } - case 2827 { rate := 1000000007894699147210447772 } - case 2828 { rate := 1000000007897171163756945718 } - case 2829 { rate := 1000000007899642987606209333 } - case 2830 { rate := 1000000007902114618788278327 } - case 2831 { rate := 1000000007904586057333185387 } - case 2832 { rate := 1000000007907057303270956176 } - case 2833 { rate := 1000000007909528356631609343 } - case 2834 { rate := 1000000007911999217445156512 } - case 2835 { rate := 1000000007914469885741602299 } - case 2836 { rate := 1000000007916940361550944303 } - case 2837 { rate := 1000000007919410644903173113 } - case 2838 { rate := 1000000007921880735828272312 } - case 2839 { rate := 1000000007924350634356218473 } - case 2840 { rate := 1000000007926820340516981166 } - case 2841 { rate := 1000000007929289854340522961 } - case 2842 { rate := 1000000007931759175856799426 } - case 2843 { rate := 1000000007934228305095759133 } - case 2844 { rate := 1000000007936697242087343656 } - case 2845 { rate := 1000000007939165986861487579 } - case 2846 { rate := 1000000007941634539448118494 } - case 2847 { rate := 1000000007944102899877157001 } - case 2848 { rate := 1000000007946571068178516718 } - case 2849 { rate := 1000000007949039044382104276 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2850-2899 - switch gt(bps, 2874) - case 0 { // 2850-2874 - switch bps - case 2850 { rate := 1000000007951506828517819323 } - case 2851 { rate := 1000000007953974420615554529 } - case 2852 { rate := 1000000007956441820705195583 } - case 2853 { rate := 1000000007958909028816621201 } - case 2854 { rate := 1000000007961376044979703124 } - case 2855 { rate := 1000000007963842869224306123 } - case 2856 { rate := 1000000007966309501580287995 } - case 2857 { rate := 1000000007968775942077499577 } - case 2858 { rate := 1000000007971242190745784735 } - case 2859 { rate := 1000000007973708247614980375 } - case 2860 { rate := 1000000007976174112714916441 } - case 2861 { rate := 1000000007978639786075415919 } - case 2862 { rate := 1000000007981105267726294840 } - case 2863 { rate := 1000000007983570557697362280 } - case 2864 { rate := 1000000007986035656018420361 } - case 2865 { rate := 1000000007988500562719264258 } - case 2866 { rate := 1000000007990965277829682196 } - case 2867 { rate := 1000000007993429801379455456 } - case 2868 { rate := 1000000007995894133398358376 } - case 2869 { rate := 1000000007998358273916158351 } - case 2870 { rate := 1000000008000822222962615839 } - case 2871 { rate := 1000000008003285980567484358 } - case 2872 { rate := 1000000008005749546760510496 } - case 2873 { rate := 1000000008008212921571433904 } - case 2874 { rate := 1000000008010676105029987304 } - default { revert(0, 0) } - } - case 1 { // 2875-2899 - switch bps - case 2875 { rate := 1000000008013139097165896490 } - case 2876 { rate := 1000000008015601898008880332 } - case 2877 { rate := 1000000008018064507588650772 } - case 2878 { rate := 1000000008020526925934912831 } - case 2879 { rate := 1000000008022989153077364614 } - case 2880 { rate := 1000000008025451189045697303 } - case 2881 { rate := 1000000008027913033869595170 } - case 2882 { rate := 1000000008030374687578735570 } - case 2883 { rate := 1000000008032836150202788948 } - case 2884 { rate := 1000000008035297421771418841 } - case 2885 { rate := 1000000008037758502314281877 } - case 2886 { rate := 1000000008040219391861027783 } - case 2887 { rate := 1000000008042680090441299379 } - case 2888 { rate := 1000000008045140598084732587 } - case 2889 { rate := 1000000008047600914820956433 } - case 2890 { rate := 1000000008050061040679593042 } - case 2891 { rate := 1000000008052520975690257649 } - case 2892 { rate := 1000000008054980719882558595 } - case 2893 { rate := 1000000008057440273286097333 } - case 2894 { rate := 1000000008059899635930468427 } - case 2895 { rate := 1000000008062358807845259556 } - case 2896 { rate := 1000000008064817789060051517 } - case 2897 { rate := 1000000008067276579604418223 } - case 2898 { rate := 1000000008069735179507926713 } - case 2899 { rate := 1000000008072193588800137143 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2900-2999 - switch gt(bps, 2949) - case 0 { // 2900-2949 - switch gt(bps, 2924) - case 0 { // 2900-2924 - switch bps - case 2900 { rate := 1000000008074651807510602798 } - case 2901 { rate := 1000000008077109835668870091 } - case 2902 { rate := 1000000008079567673304478561 } - case 2903 { rate := 1000000008082025320446960884 } - case 2904 { rate := 1000000008084482777125842863 } - case 2905 { rate := 1000000008086940043370643444 } - case 2906 { rate := 1000000008089397119210874706 } - case 2907 { rate := 1000000008091854004676041869 } - case 2908 { rate := 1000000008094310699795643299 } - case 2909 { rate := 1000000008096767204599170500 } - case 2910 { rate := 1000000008099223519116108130 } - case 2911 { rate := 1000000008101679643375933989 } - case 2912 { rate := 1000000008104135577408119032 } - case 2913 { rate := 1000000008106591321242127364 } - case 2914 { rate := 1000000008109046874907416248 } - case 2915 { rate := 1000000008111502238433436104 } - case 2916 { rate := 1000000008113957411849630507 } - case 2917 { rate := 1000000008116412395185436200 } - case 2918 { rate := 1000000008118867188470283082 } - case 2919 { rate := 1000000008121321791733594224 } - case 2920 { rate := 1000000008123776205004785863 } - case 2921 { rate := 1000000008126230428313267405 } - case 2922 { rate := 1000000008128684461688441426 } - case 2923 { rate := 1000000008131138305159703681 } - case 2924 { rate := 1000000008133591958756443098 } - default { revert(0, 0) } - } - case 1 { // 2925-2949 - switch bps - case 2925 { rate := 1000000008136045422508041783 } - case 2926 { rate := 1000000008138498696443875023 } - case 2927 { rate := 1000000008140951780593311289 } - case 2928 { rate := 1000000008143404674985712235 } - case 2929 { rate := 1000000008145857379650432701 } - case 2930 { rate := 1000000008148309894616820721 } - case 2931 { rate := 1000000008150762219914217511 } - case 2932 { rate := 1000000008153214355571957489 } - case 2933 { rate := 1000000008155666301619368262 } - case 2934 { rate := 1000000008158118058085770639 } - case 2935 { rate := 1000000008160569625000478625 } - case 2936 { rate := 1000000008163021002392799426 } - case 2937 { rate := 1000000008165472190292033455 } - case 2938 { rate := 1000000008167923188727474329 } - case 2939 { rate := 1000000008170373997728408871 } - case 2940 { rate := 1000000008172824617324117117 } - case 2941 { rate := 1000000008175275047543872314 } - case 2942 { rate := 1000000008177725288416940921 } - case 2943 { rate := 1000000008180175339972582615 } - case 2944 { rate := 1000000008182625202240050293 } - case 2945 { rate := 1000000008185074875248590068 } - case 2946 { rate := 1000000008187524359027441281 } - case 2947 { rate := 1000000008189973653605836492 } - case 2948 { rate := 1000000008192422759013001491 } - case 2949 { rate := 1000000008194871675278155297 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 2950-2999 - switch gt(bps, 2974) - case 0 { // 2950-2974 - switch bps - case 2950 { rate := 1000000008197320402430510158 } - case 2951 { rate := 1000000008199768940499271556 } - case 2952 { rate := 1000000008202217289513638208 } - case 2953 { rate := 1000000008204665449502802068 } - case 2954 { rate := 1000000008207113420495948328 } - case 2955 { rate := 1000000008209561202522255424 } - case 2956 { rate := 1000000008212008795610895033 } - case 2957 { rate := 1000000008214456199791032080 } - case 2958 { rate := 1000000008216903415091824734 } - case 2959 { rate := 1000000008219350441542424416 } - case 2960 { rate := 1000000008221797279171975799 } - case 2961 { rate := 1000000008224243928009616809 } - case 2962 { rate := 1000000008226690388084478627 } - case 2963 { rate := 1000000008229136659425685693 } - case 2964 { rate := 1000000008231582742062355709 } - case 2965 { rate := 1000000008234028636023599636 } - case 2966 { rate := 1000000008236474341338521699 } - case 2967 { rate := 1000000008238919858036219393 } - case 2968 { rate := 1000000008241365186145783477 } - case 2969 { rate := 1000000008243810325696297983 } - case 2970 { rate := 1000000008246255276716840215 } - case 2971 { rate := 1000000008248700039236480752 } - case 2972 { rate := 1000000008251144613284283449 } - case 2973 { rate := 1000000008253588998889305439 } - case 2974 { rate := 1000000008256033196080597139 } - default { revert(0, 0) } - } - case 1 { // 2975-2999 - switch bps - case 2975 { rate := 1000000008258477204887202245 } - case 2976 { rate := 1000000008260921025338157740 } - case 2977 { rate := 1000000008263364657462493893 } - case 2978 { rate := 1000000008265808101289234264 } - case 2979 { rate := 1000000008268251356847395701 } - case 2980 { rate := 1000000008270694424165988349 } - case 2981 { rate := 1000000008273137303274015646 } - case 2982 { rate := 1000000008275579994200474327 } - case 2983 { rate := 1000000008278022496974354428 } - case 2984 { rate := 1000000008280464811624639285 } - case 2985 { rate := 1000000008282906938180305537 } - case 2986 { rate := 1000000008285348876670323134 } - case 2987 { rate := 1000000008287790627123655325 } - case 2988 { rate := 1000000008290232189569258676 } - case 2989 { rate := 1000000008292673564036083061 } - case 2990 { rate := 1000000008295114750553071670 } - case 2991 { rate := 1000000008297555749149161005 } - case 2992 { rate := 1000000008299996559853280893 } - case 2993 { rate := 1000000008302437182694354473 } - case 2994 { rate := 1000000008304877617701298212 } - case 2995 { rate := 1000000008307317864903021899 } - case 2996 { rate := 1000000008309757924328428649 } - case 2997 { rate := 1000000008312197796006414905 } - case 2998 { rate := 1000000008314637479965870443 } - case 2999 { rate := 1000000008317076976235678365 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3000-3199 - switch gt(bps, 3099) - case 0 { // 3000-3099 - switch gt(bps, 3049) - case 0 { // 3000-3049 - switch gt(bps, 3024) - case 0 { // 3000-3024 - switch bps - case 3000 { rate := 1000000008319516284844715115 } - case 3001 { rate := 1000000008321955405821850471 } - case 3002 { rate := 1000000008324394339195947545 } - case 3003 { rate := 1000000008326833084995862796 } - case 3004 { rate := 1000000008329271643250446021 } - case 3005 { rate := 1000000008331710013988540364 } - case 3006 { rate := 1000000008334148197238982316 } - case 3007 { rate := 1000000008336586193030601715 } - case 3008 { rate := 1000000008339024001392221751 } - case 3009 { rate := 1000000008341461622352658967 } - case 3010 { rate := 1000000008343899055940723259 } - case 3011 { rate := 1000000008346336302185217882 } - case 3012 { rate := 1000000008348773361114939450 } - case 3013 { rate := 1000000008351210232758677936 } - case 3014 { rate := 1000000008353646917145216679 } - case 3015 { rate := 1000000008356083414303332380 } - case 3016 { rate := 1000000008358519724261795110 } - case 3017 { rate := 1000000008360955847049368306 } - case 3018 { rate := 1000000008363391782694808779 } - case 3019 { rate := 1000000008365827531226866712 } - case 3020 { rate := 1000000008368263092674285664 } - case 3021 { rate := 1000000008370698467065802570 } - case 3022 { rate := 1000000008373133654430147746 } - case 3023 { rate := 1000000008375568654796044887 } - case 3024 { rate := 1000000008378003468192211075 } - default { revert(0, 0) } - } - case 1 { // 3025-3049 - switch bps - case 3025 { rate := 1000000008380438094647356774 } - case 3026 { rate := 1000000008382872534190185837 } - case 3027 { rate := 1000000008385306786849395508 } - case 3028 { rate := 1000000008387740852653676418 } - case 3029 { rate := 1000000008390174731631712596 } - case 3030 { rate := 1000000008392608423812181466 } - case 3031 { rate := 1000000008395041929223753848 } - case 3032 { rate := 1000000008397475247895093962 } - case 3033 { rate := 1000000008399908379854859430 } - case 3034 { rate := 1000000008402341325131701278 } - case 3035 { rate := 1000000008404774083754263937 } - case 3036 { rate := 1000000008407206655751185247 } - case 3037 { rate := 1000000008409639041151096456 } - case 3038 { rate := 1000000008412071239982622226 } - case 3039 { rate := 1000000008414503252274380631 } - case 3040 { rate := 1000000008416935078054983162 } - case 3041 { rate := 1000000008419366717353034726 } - case 3042 { rate := 1000000008421798170197133652 } - case 3043 { rate := 1000000008424229436615871690 } - case 3044 { rate := 1000000008426660516637834013 } - case 3045 { rate := 1000000008429091410291599222 } - case 3046 { rate := 1000000008431522117605739346 } - case 3047 { rate := 1000000008433952638608819840 } - case 3048 { rate := 1000000008436382973329399595 } - case 3049 { rate := 1000000008438813121796030934 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3050-3099 - switch gt(bps, 3074) - case 0 { // 3050-3074 - switch bps - case 3050 { rate := 1000000008441243084037259619 } - case 3051 { rate := 1000000008443672860081624846 } - case 3052 { rate := 1000000008446102449957659252 } - case 3053 { rate := 1000000008448531853693888919 } - case 3054 { rate := 1000000008450961071318833369 } - case 3055 { rate := 1000000008453390102861005572 } - case 3056 { rate := 1000000008455818948348911946 } - case 3057 { rate := 1000000008458247607811052360 } - case 3058 { rate := 1000000008460676081275920133 } - case 3059 { rate := 1000000008463104368772002040 } - case 3060 { rate := 1000000008465532470327778310 } - case 3061 { rate := 1000000008467960385971722632 } - case 3062 { rate := 1000000008470388115732302154 } - case 3063 { rate := 1000000008472815659637977489 } - case 3064 { rate := 1000000008475243017717202707 } - case 3065 { rate := 1000000008477670189998425353 } - case 3066 { rate := 1000000008480097176510086432 } - case 3067 { rate := 1000000008482523977280620426 } - case 3068 { rate := 1000000008484950592338455283 } - case 3069 { rate := 1000000008487377021712012431 } - case 3070 { rate := 1000000008489803265429706768 } - case 3071 { rate := 1000000008492229323519946677 } - case 3072 { rate := 1000000008494655196011134014 } - case 3073 { rate := 1000000008497080882931664122 } - case 3074 { rate := 1000000008499506384309925825 } - default { revert(0, 0) } - } - case 1 { // 3075-3099 - switch bps - case 3075 { rate := 1000000008501931700174301437 } - case 3076 { rate := 1000000008504356830553166755 } - case 3077 { rate := 1000000008506781775474891069 } - case 3078 { rate := 1000000008509206534967837162 } - case 3079 { rate := 1000000008511631109060361308 } - case 3080 { rate := 1000000008514055497780813280 } - case 3081 { rate := 1000000008516479701157536348 } - case 3082 { rate := 1000000008518903719218867280 } - case 3083 { rate := 1000000008521327551993136348 } - case 3084 { rate := 1000000008523751199508667330 } - case 3085 { rate := 1000000008526174661793777504 } - case 3086 { rate := 1000000008528597938876777661 } - case 3087 { rate := 1000000008531021030785972101 } - case 3088 { rate := 1000000008533443937549658636 } - case 3089 { rate := 1000000008535866659196128590 } - case 3090 { rate := 1000000008538289195753666803 } - case 3091 { rate := 1000000008540711547250551637 } - case 3092 { rate := 1000000008543133713715054969 } - case 3093 { rate := 1000000008545555695175442199 } - case 3094 { rate := 1000000008547977491659972252 } - case 3095 { rate := 1000000008550399103196897579 } - case 3096 { rate := 1000000008552820529814464158 } - case 3097 { rate := 1000000008555241771540911495 } - case 3098 { rate := 1000000008557662828404472630 } - case 3099 { rate := 1000000008560083700433374138 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3100-3199 - switch gt(bps, 3149) - case 0 { // 3100-3149 - switch gt(bps, 3124) - case 0 { // 3100-3124 - switch bps - case 3100 { rate := 1000000008562504387655836125 } - case 3101 { rate := 1000000008564924890100072238 } - case 3102 { rate := 1000000008567345207794289664 } - case 3103 { rate := 1000000008569765340766689130 } - case 3104 { rate := 1000000008572185289045464906 } - case 3105 { rate := 1000000008574605052658804811 } - case 3106 { rate := 1000000008577024631634890207 } - case 3107 { rate := 1000000008579444026001896008 } - case 3108 { rate := 1000000008581863235787990679 } - case 3109 { rate := 1000000008584282261021336238 } - case 3110 { rate := 1000000008586701101730088259 } - case 3111 { rate := 1000000008589119757942395872 } - case 3112 { rate := 1000000008591538229686401769 } - case 3113 { rate := 1000000008593956516990242201 } - case 3114 { rate := 1000000008596374619882046982 } - case 3115 { rate := 1000000008598792538389939493 } - case 3116 { rate := 1000000008601210272542036680 } - case 3117 { rate := 1000000008603627822366449059 } - case 3118 { rate := 1000000008606045187891280718 } - case 3119 { rate := 1000000008608462369144629317 } - case 3120 { rate := 1000000008610879366154586092 } - case 3121 { rate := 1000000008613296178949235855 } - case 3122 { rate := 1000000008615712807556656995 } - case 3123 { rate := 1000000008618129252004921486 } - case 3124 { rate := 1000000008620545512322094883 } - default { revert(0, 0) } - } - case 1 { // 3125-3149 - switch bps - case 3125 { rate := 1000000008622961588536236324 } - case 3126 { rate := 1000000008625377480675398538 } - case 3127 { rate := 1000000008627793188767627836 } - case 3128 { rate := 1000000008630208712840964127 } - case 3129 { rate := 1000000008632624052923440907 } - case 3130 { rate := 1000000008635039209043085270 } - case 3131 { rate := 1000000008637454181227917904 } - case 3132 { rate := 1000000008639868969505953098 } - case 3133 { rate := 1000000008642283573905198739 } - case 3134 { rate := 1000000008644697994453656318 } - case 3135 { rate := 1000000008647112231179320929 } - case 3136 { rate := 1000000008649526284110181275 } - case 3137 { rate := 1000000008651940153274219662 } - case 3138 { rate := 1000000008654353838699412010 } - case 3139 { rate := 1000000008656767340413727852 } - case 3140 { rate := 1000000008659180658445130332 } - case 3141 { rate := 1000000008661593792821576212 } - case 3142 { rate := 1000000008664006743571015870 } - case 3143 { rate := 1000000008666419510721393305 } - case 3144 { rate := 1000000008668832094300646140 } - case 3145 { rate := 1000000008671244494336705617 } - case 3146 { rate := 1000000008673656710857496608 } - case 3147 { rate := 1000000008676068743890937609 } - case 3148 { rate := 1000000008678480593464940750 } - case 3149 { rate := 1000000008680892259607411787 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3150-3199 - switch gt(bps, 3174) - case 0 { // 3150-3174 - switch bps - case 3150 { rate := 1000000008683303742346250114 } - case 3151 { rate := 1000000008685715041709348759 } - case 3152 { rate := 1000000008688126157724594385 } - case 3153 { rate := 1000000008690537090419867299 } - case 3154 { rate := 1000000008692947839823041443 } - case 3155 { rate := 1000000008695358405961984408 } - case 3156 { rate := 1000000008697768788864557426 } - case 3157 { rate := 1000000008700178988558615379 } - case 3158 { rate := 1000000008702589005072006795 } - case 3159 { rate := 1000000008704998838432573855 } - case 3160 { rate := 1000000008707408488668152392 } - case 3161 { rate := 1000000008709817955806571893 } - case 3162 { rate := 1000000008712227239875655502 } - case 3163 { rate := 1000000008714636340903220022 } - case 3164 { rate := 1000000008717045258917075917 } - case 3165 { rate := 1000000008719453993945027311 } - case 3166 { rate := 1000000008721862546014871996 } - case 3167 { rate := 1000000008724270915154401427 } - case 3168 { rate := 1000000008726679101391400728 } - case 3169 { rate := 1000000008729087104753648695 } - case 3170 { rate := 1000000008731494925268917794 } - case 3171 { rate := 1000000008733902562964974164 } - case 3172 { rate := 1000000008736310017869577622 } - case 3173 { rate := 1000000008738717290010481663 } - case 3174 { rate := 1000000008741124379415433461 } - default { revert(0, 0) } - } - case 1 { // 3175-3199 - switch bps - case 3175 { rate := 1000000008743531286112173869 } - case 3176 { rate := 1000000008745938010128437428 } - case 3177 { rate := 1000000008748344551491952362 } - case 3178 { rate := 1000000008750750910230440583 } - case 3179 { rate := 1000000008753157086371617690 } - case 3180 { rate := 1000000008755563079943192978 } - case 3181 { rate := 1000000008757968890972869430 } - case 3182 { rate := 1000000008760374519488343729 } - case 3183 { rate := 1000000008762779965517306250 } - case 3184 { rate := 1000000008765185229087441070 } - case 3185 { rate := 1000000008767590310226425966 } - case 3186 { rate := 1000000008769995208961932417 } - case 3187 { rate := 1000000008772399925321625609 } - case 3188 { rate := 1000000008774804459333164431 } - case 3189 { rate := 1000000008777208811024201482 } - case 3190 { rate := 1000000008779612980422383073 } - case 3191 { rate := 1000000008782016967555349225 } - case 3192 { rate := 1000000008784420772450733672 } - case 3193 { rate := 1000000008786824395136163869 } - case 3194 { rate := 1000000008789227835639260984 } - case 3195 { rate := 1000000008791631093987639905 } - case 3196 { rate := 1000000008794034170208909246 } - case 3197 { rate := 1000000008796437064330671341 } - case 3198 { rate := 1000000008798839776380522251 } - case 3199 { rate := 1000000008801242306386051763 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates3200To3999.sol b/src/repositories/Rates3200To3999.sol deleted file mode 100644 index 9a005ed..0000000 --- a/src/repositories/Rates3200To3999.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates3200To3999 { - uint256 constant public MIN = 3200; - uint256 constant public MAX = 3999; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 3599) - case 0 { // 3200-3599 - switch gt(bps, 3399) - case 0 { // 3200-3399 - switch gt(bps, 3299) - case 0 { // 3200-3299 - switch gt(bps, 3249) - case 0 { // 3200-3249 - switch gt(bps, 3224) - case 0 { // 3200-3224 - switch bps - case 3200 { rate := 1000000008803644654374843395 } - case 3201 { rate := 1000000008806046820374474396 } - case 3202 { rate := 1000000008808448804412515748 } - case 3203 { rate := 1000000008810850606516532167 } - case 3204 { rate := 1000000008813252226714082106 } - case 3205 { rate := 1000000008815653665032717760 } - case 3206 { rate := 1000000008818054921499985060 } - case 3207 { rate := 1000000008820455996143423684 } - case 3208 { rate := 1000000008822856888990567050 } - case 3209 { rate := 1000000008825257600068942328 } - case 3210 { rate := 1000000008827658129406070432 } - case 3211 { rate := 1000000008830058477029466028 } - case 3212 { rate := 1000000008832458642966637533 } - case 3213 { rate := 1000000008834858627245087117 } - case 3214 { rate := 1000000008837258429892310711 } - case 3215 { rate := 1000000008839658050935797999 } - case 3216 { rate := 1000000008842057490403032425 } - case 3217 { rate := 1000000008844456748321491195 } - case 3218 { rate := 1000000008846855824718645282 } - case 3219 { rate := 1000000008849254719621959420 } - case 3220 { rate := 1000000008851653433058892110 } - case 3221 { rate := 1000000008854051965056895625 } - case 3222 { rate := 1000000008856450315643416008 } - case 3223 { rate := 1000000008858848484845893073 } - case 3224 { rate := 1000000008861246472691760412 } - default { revert(0, 0) } - } - case 1 { // 3225-3249 - switch bps - case 3225 { rate := 1000000008863644279208445392 } - case 3226 { rate := 1000000008866041904423369157 } - case 3227 { rate := 1000000008868439348363946634 } - case 3228 { rate := 1000000008870836611057586530 } - case 3229 { rate := 1000000008873233692531691339 } - case 3230 { rate := 1000000008875630592813657337 } - case 3231 { rate := 1000000008878027311930874594 } - case 3232 { rate := 1000000008880423849910726963 } - case 3233 { rate := 1000000008882820206780592093 } - case 3234 { rate := 1000000008885216382567841425 } - case 3235 { rate := 1000000008887612377299840196 } - case 3236 { rate := 1000000008890008191003947440 } - case 3237 { rate := 1000000008892403823707515991 } - case 3238 { rate := 1000000008894799275437892482 } - case 3239 { rate := 1000000008897194546222417351 } - case 3240 { rate := 1000000008899589636088424841 } - case 3241 { rate := 1000000008901984545063242999 } - case 3242 { rate := 1000000008904379273174193682 } - case 3243 { rate := 1000000008906773820448592561 } - case 3244 { rate := 1000000008909168186913749112 } - case 3245 { rate := 1000000008911562372596966632 } - case 3246 { rate := 1000000008913956377525542231 } - case 3247 { rate := 1000000008916350201726766834 } - case 3248 { rate := 1000000008918743845227925192 } - case 3249 { rate := 1000000008921137308056295874 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3250-3299 - switch gt(bps, 3274) - case 0 { // 3250-3274 - switch bps - case 3250 { rate := 1000000008923530590239151272 } - case 3251 { rate := 1000000008925923691803757605 } - case 3252 { rate := 1000000008928316612777374918 } - case 3253 { rate := 1000000008930709353187257086 } - case 3254 { rate := 1000000008933101913060651814 } - case 3255 { rate := 1000000008935494292424800641 } - case 3256 { rate := 1000000008937886491306938939 } - case 3257 { rate := 1000000008940278509734295919 } - case 3258 { rate := 1000000008942670347734094627 } - case 3259 { rate := 1000000008945062005333551953 } - case 3260 { rate := 1000000008947453482559878626 } - case 3261 { rate := 1000000008949844779440279220 } - case 3262 { rate := 1000000008952235896001952156 } - case 3263 { rate := 1000000008954626832272089702 } - case 3264 { rate := 1000000008957017588277877973 } - case 3265 { rate := 1000000008959408164046496940 } - case 3266 { rate := 1000000008961798559605120424 } - case 3267 { rate := 1000000008964188774980916101 } - case 3268 { rate := 1000000008966578810201045506 } - case 3269 { rate := 1000000008968968665292664032 } - case 3270 { rate := 1000000008971358340282920931 } - case 3271 { rate := 1000000008973747835198959319 } - case 3272 { rate := 1000000008976137150067916177 } - case 3273 { rate := 1000000008978526284916922351 } - case 3274 { rate := 1000000008980915239773102555 } - default { revert(0, 0) } - } - case 1 { // 3275-3299 - switch bps - case 3275 { rate := 1000000008983304014663575373 } - case 3276 { rate := 1000000008985692609615453262 } - case 3277 { rate := 1000000008988081024655842550 } - case 3278 { rate := 1000000008990469259811843445 } - case 3279 { rate := 1000000008992857315110550026 } - case 3280 { rate := 1000000008995245190579050256 } - case 3281 { rate := 1000000008997632886244425977 } - case 3282 { rate := 1000000009000020402133752914 } - case 3283 { rate := 1000000009002407738274100677 } - case 3284 { rate := 1000000009004794894692532763 } - case 3285 { rate := 1000000009007181871416106556 } - case 3286 { rate := 1000000009009568668471873331 } - case 3287 { rate := 1000000009011955285886878254 } - case 3288 { rate := 1000000009014341723688160386 } - case 3289 { rate := 1000000009016727981902752684 } - case 3290 { rate := 1000000009019114060557682002 } - case 3291 { rate := 1000000009021499959679969092 } - case 3292 { rate := 1000000009023885679296628609 } - case 3293 { rate := 1000000009026271219434669112 } - case 3294 { rate := 1000000009028656580121093060 } - case 3295 { rate := 1000000009031041761382896825 } - case 3296 { rate := 1000000009033426763247070684 } - case 3297 { rate := 1000000009035811585740598824 } - case 3298 { rate := 1000000009038196228890459345 } - case 3299 { rate := 1000000009040580692723624262 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3300-3399 - switch gt(bps, 3349) - case 0 { // 3300-3349 - switch gt(bps, 3324) - case 0 { // 3300-3324 - switch bps - case 3300 { rate := 1000000009042964977267059505 } - case 3301 { rate := 1000000009045349082547724920 } - case 3302 { rate := 1000000009047733008592574277 } - case 3303 { rate := 1000000009050116755428555263 } - case 3304 { rate := 1000000009052500323082609490 } - case 3305 { rate := 1000000009054883711581672494 } - case 3306 { rate := 1000000009057266920952673739 } - case 3307 { rate := 1000000009059649951222536617 } - case 3308 { rate := 1000000009062032802418178451 } - case 3309 { rate := 1000000009064415474566510497 } - case 3310 { rate := 1000000009066797967694437943 } - case 3311 { rate := 1000000009069180281828859914 } - case 3312 { rate := 1000000009071562416996669472 } - case 3313 { rate := 1000000009073944373224753622 } - case 3314 { rate := 1000000009076326150539993305 } - case 3315 { rate := 1000000009078707748969263409 } - case 3316 { rate := 1000000009081089168539432766 } - case 3317 { rate := 1000000009083470409277364157 } - case 3318 { rate := 1000000009085851471209914307 } - case 3319 { rate := 1000000009088232354363933896 } - case 3320 { rate := 1000000009090613058766267552 } - case 3321 { rate := 1000000009092993584443753863 } - case 3322 { rate := 1000000009095373931423225367 } - case 3323 { rate := 1000000009097754099731508564 } - case 3324 { rate := 1000000009100134089395423911 } - default { revert(0, 0) } - } - case 1 { // 3325-3349 - switch bps - case 3325 { rate := 1000000009102513900441785827 } - case 3326 { rate := 1000000009104893532897402697 } - case 3327 { rate := 1000000009107272986789076865 } - case 3328 { rate := 1000000009109652262143604647 } - case 3329 { rate := 1000000009112031358987776327 } - case 3330 { rate := 1000000009114410277348376157 } - case 3331 { rate := 1000000009116789017252182363 } - case 3332 { rate := 1000000009119167578725967147 } - case 3333 { rate := 1000000009121545961796496682 } - case 3334 { rate := 1000000009123924166490531122 } - case 3335 { rate := 1000000009126302192834824601 } - case 3336 { rate := 1000000009128680040856125232 } - case 3337 { rate := 1000000009131057710581175113 } - case 3338 { rate := 1000000009133435202036710325 } - case 3339 { rate := 1000000009135812515249460939 } - case 3340 { rate := 1000000009138189650246151012 } - case 3341 { rate := 1000000009140566607053498590 } - case 3342 { rate := 1000000009142943385698215714 } - case 3343 { rate := 1000000009145319986207008418 } - case 3344 { rate := 1000000009147696408606576730 } - case 3345 { rate := 1000000009150072652923614679 } - case 3346 { rate := 1000000009152448719184810291 } - case 3347 { rate := 1000000009154824607416845592 } - case 3348 { rate := 1000000009157200317646396614 } - case 3349 { rate := 1000000009159575849900133392 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3350-3399 - switch gt(bps, 3374) - case 0 { // 3350-3374 - switch bps - case 3350 { rate := 1000000009161951204204719966 } - case 3351 { rate := 1000000009164326380586814388 } - case 3352 { rate := 1000000009166701379073068717 } - case 3353 { rate := 1000000009169076199690129024 } - case 3354 { rate := 1000000009171450842464635396 } - case 3355 { rate := 1000000009173825307423221934 } - case 3356 { rate := 1000000009176199594592516756 } - case 3357 { rate := 1000000009178573703999141999 } - case 3358 { rate := 1000000009180947635669713821 } - case 3359 { rate := 1000000009183321389630842403 } - case 3360 { rate := 1000000009185694965909131953 } - case 3361 { rate := 1000000009188068364531180699 } - case 3362 { rate := 1000000009190441585523580901 } - case 3363 { rate := 1000000009192814628912918850 } - case 3364 { rate := 1000000009195187494725774868 } - case 3365 { rate := 1000000009197560182988723306 } - case 3366 { rate := 1000000009199932693728332556 } - case 3367 { rate := 1000000009202305026971165043 } - case 3368 { rate := 1000000009204677182743777234 } - case 3369 { rate := 1000000009207049161072719633 } - case 3370 { rate := 1000000009209420961984536788 } - case 3371 { rate := 1000000009211792585505767292 } - case 3372 { rate := 1000000009214164031662943783 } - case 3373 { rate := 1000000009216535300482592946 } - case 3374 { rate := 1000000009218906391991235515 } - default { revert(0, 0) } - } - case 1 { // 3375-3399 - switch bps - case 3375 { rate := 1000000009221277306215386279 } - case 3376 { rate := 1000000009223648043181554075 } - case 3377 { rate := 1000000009226018602916241797 } - case 3378 { rate := 1000000009228388985445946397 } - case 3379 { rate := 1000000009230759190797158882 } - case 3380 { rate := 1000000009233129218996364321 } - case 3381 { rate := 1000000009235499070070041847 } - case 3382 { rate := 1000000009237868744044664652 } - case 3383 { rate := 1000000009240238240946699996 } - case 3384 { rate := 1000000009242607560802609207 } - case 3385 { rate := 1000000009244976703638847681 } - case 3386 { rate := 1000000009247345669481864883 } - case 3387 { rate := 1000000009249714458358104354 } - case 3388 { rate := 1000000009252083070294003707 } - case 3389 { rate := 1000000009254451505315994632 } - case 3390 { rate := 1000000009256819763450502896 } - case 3391 { rate := 1000000009259187844723948345 } - case 3392 { rate := 1000000009261555749162744907 } - case 3393 { rate := 1000000009263923476793300595 } - case 3394 { rate := 1000000009266291027642017505 } - case 3395 { rate := 1000000009268658401735291819 } - case 3396 { rate := 1000000009271025599099513809 } - case 3397 { rate := 1000000009273392619761067837 } - case 3398 { rate := 1000000009275759463746332356 } - case 3399 { rate := 1000000009278126131081679912 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3400-3599 - switch gt(bps, 3499) - case 0 { // 3400-3499 - switch gt(bps, 3449) - case 0 { // 3400-3449 - switch gt(bps, 3424) - case 0 { // 3400-3424 - switch bps - case 3400 { rate := 1000000009280492621793477151 } - case 3401 { rate := 1000000009282858935908084809 } - case 3402 { rate := 1000000009285225073451857728 } - case 3403 { rate := 1000000009287591034451144845 } - case 3404 { rate := 1000000009289956818932289205 } - case 3405 { rate := 1000000009292322426921627953 } - case 3406 { rate := 1000000009294687858445492342 } - case 3407 { rate := 1000000009297053113530207732 } - case 3408 { rate := 1000000009299418192202093592 } - case 3409 { rate := 1000000009301783094487463505 } - case 3410 { rate := 1000000009304147820412625165 } - case 3411 { rate := 1000000009306512370003880380 } - case 3412 { rate := 1000000009308876743287525076 } - case 3413 { rate := 1000000009311240940289849298 } - case 3414 { rate := 1000000009313604961037137210 } - case 3415 { rate := 1000000009315968805555667098 } - case 3416 { rate := 1000000009318332473871711372 } - case 3417 { rate := 1000000009320695966011536564 } - case 3418 { rate := 1000000009323059282001403339 } - case 3419 { rate := 1000000009325422421867566487 } - case 3420 { rate := 1000000009327785385636274930 } - case 3421 { rate := 1000000009330148173333771722 } - case 3422 { rate := 1000000009332510784986294051 } - case 3423 { rate := 1000000009334873220620073239 } - case 3424 { rate := 1000000009337235480261334748 } - default { revert(0, 0) } - } - case 1 { // 3425-3449 - switch bps - case 3425 { rate := 1000000009339597563936298181 } - case 3426 { rate := 1000000009341959471671177278 } - case 3427 { rate := 1000000009344321203492179924 } - case 3428 { rate := 1000000009346682759425508147 } - case 3429 { rate := 1000000009349044139497358124 } - case 3430 { rate := 1000000009351405343733920179 } - case 3431 { rate := 1000000009353766372161378785 } - case 3432 { rate := 1000000009356127224805912567 } - case 3433 { rate := 1000000009358487901693694303 } - case 3434 { rate := 1000000009360848402850890927 } - case 3435 { rate := 1000000009363208728303663528 } - case 3436 { rate := 1000000009365568878078167356 } - case 3437 { rate := 1000000009367928852200551818 } - case 3438 { rate := 1000000009370288650696960487 } - case 3439 { rate := 1000000009372648273593531096 } - case 3440 { rate := 1000000009375007720916395546 } - case 3441 { rate := 1000000009377366992691679904 } - case 3442 { rate := 1000000009379726088945504406 } - case 3443 { rate := 1000000009382085009703983460 } - case 3444 { rate := 1000000009384443754993225643 } - case 3445 { rate := 1000000009386802324839333712 } - case 3446 { rate := 1000000009389160719268404592 } - case 3447 { rate := 1000000009391518938306529393 } - case 3448 { rate := 1000000009393876981979793400 } - case 3449 { rate := 1000000009396234850314276081 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3450-3499 - switch gt(bps, 3474) - case 0 { // 3450-3474 - switch bps - case 3450 { rate := 1000000009398592543336051086 } - case 3451 { rate := 1000000009400950061071186249 } - case 3452 { rate := 1000000009403307403545743592 } - case 3453 { rate := 1000000009405664570785779323 } - case 3454 { rate := 1000000009408021562817343841 } - case 3455 { rate := 1000000009410378379666481736 } - case 3456 { rate := 1000000009412735021359231792 } - case 3457 { rate := 1000000009415091487921626986 } - case 3458 { rate := 1000000009417447779379694494 } - case 3459 { rate := 1000000009419803895759455687 } - case 3460 { rate := 1000000009422159837086926140 } - case 3461 { rate := 1000000009424515603388115629 } - case 3462 { rate := 1000000009426871194689028130 } - case 3463 { rate := 1000000009429226611015661829 } - case 3464 { rate := 1000000009431581852394009115 } - case 3465 { rate := 1000000009433936918850056588 } - case 3466 { rate := 1000000009436291810409785058 } - case 3467 { rate := 1000000009438646527099169546 } - case 3468 { rate := 1000000009441001068944179290 } - case 3469 { rate := 1000000009443355435970777739 } - case 3470 { rate := 1000000009445709628204922563 } - case 3471 { rate := 1000000009448063645672565649 } - case 3472 { rate := 1000000009450417488399653106 } - case 3473 { rate := 1000000009452771156412125264 } - case 3474 { rate := 1000000009455124649735916678 } - default { revert(0, 0) } - } - case 1 { // 3475-3499 - switch bps - case 3475 { rate := 1000000009457477968396956129 } - case 3476 { rate := 1000000009459831112421166625 } - case 3477 { rate := 1000000009462184081834465404 } - case 3478 { rate := 1000000009464536876662763935 } - case 3479 { rate := 1000000009466889496931967919 } - case 3480 { rate := 1000000009469241942667977291 } - case 3481 { rate := 1000000009471594213896686225 } - case 3482 { rate := 1000000009473946310643983128 } - case 3483 { rate := 1000000009476298232935750651 } - case 3484 { rate := 1000000009478649980797865683 } - case 3485 { rate := 1000000009481001554256199359 } - case 3486 { rate := 1000000009483352953336617058 } - case 3487 { rate := 1000000009485704178064978403 } - case 3488 { rate := 1000000009488055228467137266 } - case 3489 { rate := 1000000009490406104568941771 } - case 3490 { rate := 1000000009492756806396234293 } - case 3491 { rate := 1000000009495107333974851456 } - case 3492 { rate := 1000000009497457687330624144 } - case 3493 { rate := 1000000009499807866489377496 } - case 3494 { rate := 1000000009502157871476930909 } - case 3495 { rate := 1000000009504507702319098038 } - case 3496 { rate := 1000000009506857359041686805 } - case 3497 { rate := 1000000009509206841670499389 } - case 3498 { rate := 1000000009511556150231332239 } - case 3499 { rate := 1000000009513905284749976069 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3500-3599 - switch gt(bps, 3549) - case 0 { // 3500-3549 - switch gt(bps, 3524) - case 0 { // 3500-3524 - switch bps - case 3500 { rate := 1000000009516254245252215861 } - case 3501 { rate := 1000000009518603031763830869 } - case 3502 { rate := 1000000009520951644310594617 } - case 3503 { rate := 1000000009523300082918274904 } - case 3504 { rate := 1000000009525648347612633803 } - case 3505 { rate := 1000000009527996438419427664 } - case 3506 { rate := 1000000009530344355364407118 } - case 3507 { rate := 1000000009532692098473317073 } - case 3508 { rate := 1000000009535039667771896723 } - case 3509 { rate := 1000000009537387063285879541 } - case 3510 { rate := 1000000009539734285040993291 } - case 3511 { rate := 1000000009542081333062960018 } - case 3512 { rate := 1000000009544428207377496063 } - case 3513 { rate := 1000000009546774908010312050 } - case 3514 { rate := 1000000009549121434987112901 } - case 3515 { rate := 1000000009551467788333597830 } - case 3516 { rate := 1000000009553813968075460344 } - case 3517 { rate := 1000000009556159974238388253 } - case 3518 { rate := 1000000009558505806848063661 } - case 3519 { rate := 1000000009560851465930162975 } - case 3520 { rate := 1000000009563196951510356903 } - case 3521 { rate := 1000000009565542263614310457 } - case 3522 { rate := 1000000009567887402267682959 } - case 3523 { rate := 1000000009570232367496128031 } - case 3524 { rate := 1000000009572577159325293611 } - default { revert(0, 0) } - } - case 1 { // 3525-3549 - switch bps - case 3525 { rate := 1000000009574921777780821942 } - case 3526 { rate := 1000000009577266222888349586 } - case 3527 { rate := 1000000009579610494673507411 } - case 3528 { rate := 1000000009581954593161920610 } - case 3529 { rate := 1000000009584298518379208685 } - case 3530 { rate := 1000000009586642270350985464 } - case 3531 { rate := 1000000009588985849102859090 } - case 3532 { rate := 1000000009591329254660432033 } - case 3533 { rate := 1000000009593672487049301086 } - case 3534 { rate := 1000000009596015546295057365 } - case 3535 { rate := 1000000009598358432423286320 } - case 3536 { rate := 1000000009600701145459567724 } - case 3537 { rate := 1000000009603043685429475683 } - case 3538 { rate := 1000000009605386052358578639 } - case 3539 { rate := 1000000009607728246272439360 } - case 3540 { rate := 1000000009610070267196614960 } - case 3541 { rate := 1000000009612412115156656882 } - case 3542 { rate := 1000000009614753790178110915 } - case 3543 { rate := 1000000009617095292286517185 } - case 3544 { rate := 1000000009619436621507410162 } - case 3545 { rate := 1000000009621777777866318660 } - case 3546 { rate := 1000000009624118761388765837 } - case 3547 { rate := 1000000009626459572100269204 } - case 3548 { rate := 1000000009628800210026340615 } - case 3549 { rate := 1000000009631140675192486280 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3550-3599 - switch gt(bps, 3574) - case 0 { // 3550-3574 - switch bps - case 3550 { rate := 1000000009633480967624206760 } - case 3551 { rate := 1000000009635821087346996968 } - case 3552 { rate := 1000000009638161034386346176 } - case 3553 { rate := 1000000009640500808767738013 } - case 3554 { rate := 1000000009642840410516650466 } - case 3555 { rate := 1000000009645179839658555885 } - case 3556 { rate := 1000000009647519096218920981 } - case 3557 { rate := 1000000009649858180223206829 } - case 3558 { rate := 1000000009652197091696868873 } - case 3559 { rate := 1000000009654535830665356921 } - case 3560 { rate := 1000000009656874397154115153 } - case 3561 { rate := 1000000009659212791188582117 } - case 3562 { rate := 1000000009661551012794190737 } - case 3563 { rate := 1000000009663889061996368309 } - case 3564 { rate := 1000000009666226938820536506 } - case 3565 { rate := 1000000009668564643292111378 } - case 3566 { rate := 1000000009670902175436503355 } - case 3567 { rate := 1000000009673239535279117247 } - case 3568 { rate := 1000000009675576722845352247 } - case 3569 { rate := 1000000009677913738160601933 } - case 3570 { rate := 1000000009680250581250254266 } - case 3571 { rate := 1000000009682587252139691600 } - case 3572 { rate := 1000000009684923750854290672 } - case 3573 { rate := 1000000009687260077419422613 } - case 3574 { rate := 1000000009689596231860452947 } - default { revert(0, 0) } - } - case 1 { // 3575-3599 - switch bps - case 3575 { rate := 1000000009691932214202741592 } - case 3576 { rate := 1000000009694268024471642861 } - case 3577 { rate := 1000000009696603662692505463 } - case 3578 { rate := 1000000009698939128890672509 } - case 3579 { rate := 1000000009701274423091481510 } - case 3580 { rate := 1000000009703609545320264378 } - case 3581 { rate := 1000000009705944495602347430 } - case 3582 { rate := 1000000009708279273963051388 } - case 3583 { rate := 1000000009710613880427691383 } - case 3584 { rate := 1000000009712948315021576954 } - case 3585 { rate := 1000000009715282577770012051 } - case 3586 { rate := 1000000009717616668698295034 } - case 3587 { rate := 1000000009719950587831718681 } - case 3588 { rate := 1000000009722284335195570182 } - case 3589 { rate := 1000000009724617910815131148 } - case 3590 { rate := 1000000009726951314715677603 } - case 3591 { rate := 1000000009729284546922479998 } - case 3592 { rate := 1000000009731617607460803201 } - case 3593 { rate := 1000000009733950496355906508 } - case 3594 { rate := 1000000009736283213633043637 } - case 3595 { rate := 1000000009738615759317462734 } - case 3596 { rate := 1000000009740948133434406377 } - case 3597 { rate := 1000000009743280336009111568 } - case 3598 { rate := 1000000009745612367066809747 } - case 3599 { rate := 1000000009747944226632726785 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3600-3999 - switch gt(bps, 3799) - case 0 { // 3600-3799 - switch gt(bps, 3699) - case 0 { // 3600-3699 - switch gt(bps, 3649) - case 0 { // 3600-3649 - switch gt(bps, 3624) - case 0 { // 3600-3624 - switch bps - case 3600 { rate := 1000000009750275914732082986 } - case 3601 { rate := 1000000009752607431390093096 } - case 3602 { rate := 1000000009754938776631966296 } - case 3603 { rate := 1000000009757269950482906208 } - case 3604 { rate := 1000000009759600952968110896 } - case 3605 { rate := 1000000009761931784112772867 } - case 3606 { rate := 1000000009764262443942079074 } - case 3607 { rate := 1000000009766592932481210915 } - case 3608 { rate := 1000000009768923249755344240 } - case 3609 { rate := 1000000009771253395789649342 } - case 3610 { rate := 1000000009773583370609290973 } - case 3611 { rate := 1000000009775913174239428335 } - case 3612 { rate := 1000000009778242806705215085 } - case 3613 { rate := 1000000009780572268031799336 } - case 3614 { rate := 1000000009782901558244323661 } - case 3615 { rate := 1000000009785230677367925089 } - case 3616 { rate := 1000000009787559625427735116 } - case 3617 { rate := 1000000009789888402448879695 } - case 3618 { rate := 1000000009792217008456479248 } - case 3619 { rate := 1000000009794545443475648661 } - case 3620 { rate := 1000000009796873707531497290 } - case 3621 { rate := 1000000009799201800649128958 } - case 3622 { rate := 1000000009801529722853641960 } - case 3623 { rate := 1000000009803857474170129064 } - case 3624 { rate := 1000000009806185054623677514 } - default { revert(0, 0) } - } - case 1 { // 3625-3649 - switch bps - case 3625 { rate := 1000000009808512464239369028 } - case 3626 { rate := 1000000009810839703042279800 } - case 3627 { rate := 1000000009813166771057480507 } - case 3628 { rate := 1000000009815493668310036305 } - case 3629 { rate := 1000000009817820394825006832 } - case 3630 { rate := 1000000009820146950627446211 } - case 3631 { rate := 1000000009822473335742403050 } - case 3632 { rate := 1000000009824799550194920446 } - case 3633 { rate := 1000000009827125594010035982 } - case 3634 { rate := 1000000009829451467212781736 } - case 3635 { rate := 1000000009831777169828184273 } - case 3636 { rate := 1000000009834102701881264655 } - case 3637 { rate := 1000000009836428063397038439 } - case 3638 { rate := 1000000009838753254400515679 } - case 3639 { rate := 1000000009841078274916700926 } - case 3640 { rate := 1000000009843403124970593235 } - case 3641 { rate := 1000000009845727804587186159 } - case 3642 { rate := 1000000009848052313791467756 } - case 3643 { rate := 1000000009850376652608420590 } - case 3644 { rate := 1000000009852700821063021729 } - case 3645 { rate := 1000000009855024819180242754 } - case 3646 { rate := 1000000009857348646985049751 } - case 3647 { rate := 1000000009859672304502403321 } - case 3648 { rate := 1000000009861995791757258575 } - case 3649 { rate := 1000000009864319108774565142 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3650-3699 - switch gt(bps, 3674) - case 0 { // 3650-3674 - switch bps - case 3650 { rate := 1000000009866642255579267166 } - case 3651 { rate := 1000000009868965232196303308 } - case 3652 { rate := 1000000009871288038650606750 } - case 3653 { rate := 1000000009873610674967105195 } - case 3654 { rate := 1000000009875933141170720867 } - case 3655 { rate := 1000000009878255437286370517 } - case 3656 { rate := 1000000009880577563338965422 } - case 3657 { rate := 1000000009882899519353411383 } - case 3658 { rate := 1000000009885221305354608733 } - case 3659 { rate := 1000000009887542921367452338 } - case 3660 { rate := 1000000009889864367416831591 } - case 3661 { rate := 1000000009892185643527630423 } - case 3662 { rate := 1000000009894506749724727299 } - case 3663 { rate := 1000000009896827686032995223 } - case 3664 { rate := 1000000009899148452477301734 } - case 3665 { rate := 1000000009901469049082508916 } - case 3666 { rate := 1000000009903789475873473393 } - case 3667 { rate := 1000000009906109732875046331 } - case 3668 { rate := 1000000009908429820112073443 } - case 3669 { rate := 1000000009910749737609394990 } - case 3670 { rate := 1000000009913069485391845778 } - case 3671 { rate := 1000000009915389063484255166 } - case 3672 { rate := 1000000009917708471911447063 } - case 3673 { rate := 1000000009920027710698239932 } - case 3674 { rate := 1000000009922346779869446790 } - default { revert(0, 0) } - } - case 1 { // 3675-3699 - switch bps - case 3675 { rate := 1000000009924665679449875210 } - case 3676 { rate := 1000000009926984409464327325 } - case 3677 { rate := 1000000009929302969937599826 } - case 3678 { rate := 1000000009931621360894483965 } - case 3679 { rate := 1000000009933939582359765557 } - case 3680 { rate := 1000000009936257634358224982 } - case 3681 { rate := 1000000009938575516914637184 } - case 3682 { rate := 1000000009940893230053771678 } - case 3683 { rate := 1000000009943210773800392543 } - case 3684 { rate := 1000000009945528148179258435 } - case 3685 { rate := 1000000009947845353215122576 } - case 3686 { rate := 1000000009950162388932732765 } - case 3687 { rate := 1000000009952479255356831378 } - case 3688 { rate := 1000000009954795952512155365 } - case 3689 { rate := 1000000009957112480423436255 } - case 3690 { rate := 1000000009959428839115400159 } - case 3691 { rate := 1000000009961745028612767768 } - case 3692 { rate := 1000000009964061048940254356 } - case 3693 { rate := 1000000009966376900122569785 } - case 3694 { rate := 1000000009968692582184418500 } - case 3695 { rate := 1000000009971008095150499537 } - case 3696 { rate := 1000000009973323439045506518 } - case 3697 { rate := 1000000009975638613894127660 } - case 3698 { rate := 1000000009977953619721045772 } - case 3699 { rate := 1000000009980268456550938255 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3700-3799 - switch gt(bps, 3749) - case 0 { // 3700-3749 - switch gt(bps, 3724) - case 0 { // 3700-3724 - switch bps - case 3700 { rate := 1000000009982583124408477109 } - case 3701 { rate := 1000000009984897623318328929 } - case 3702 { rate := 1000000009987211953305154911 } - case 3703 { rate := 1000000009989526114393610852 } - case 3704 { rate := 1000000009991840106608347149 } - case 3705 { rate := 1000000009994153929974008806 } - case 3706 { rate := 1000000009996467584515235430 } - case 3707 { rate := 1000000009998781070256661235 } - case 3708 { rate := 1000000010001094387222915045 } - case 3709 { rate := 1000000010003407535438620294 } - case 3710 { rate := 1000000010005720514928395027 } - case 3711 { rate := 1000000010008033325716851902 } - case 3712 { rate := 1000000010010345967828598194 } - case 3713 { rate := 1000000010012658441288235791 } - case 3714 { rate := 1000000010014970746120361202 } - case 3715 { rate := 1000000010017282882349565556 } - case 3716 { rate := 1000000010019594850000434599 } - case 3717 { rate := 1000000010021906649097548706 } - case 3718 { rate := 1000000010024218279665482869 } - case 3719 { rate := 1000000010026529741728806711 } - case 3720 { rate := 1000000010028841035312084483 } - case 3721 { rate := 1000000010031152160439875061 } - case 3722 { rate := 1000000010033463117136731955 } - case 3723 { rate := 1000000010035773905427203304 } - case 3724 { rate := 1000000010038084525335831885 } - default { revert(0, 0) } - } - case 1 { // 3725-3749 - switch bps - case 3725 { rate := 1000000010040394976887155106 } - case 3726 { rate := 1000000010042705260105705014 } - case 3727 { rate := 1000000010045015375016008294 } - case 3728 { rate := 1000000010047325321642586271 } - case 3729 { rate := 1000000010049635100009954912 } - case 3730 { rate := 1000000010051944710142624825 } - case 3731 { rate := 1000000010054254152065101266 } - case 3732 { rate := 1000000010056563425801884135 } - case 3733 { rate := 1000000010058872531377467979 } - case 3734 { rate := 1000000010061181468816341997 } - case 3735 { rate := 1000000010063490238142990036 } - case 3736 { rate := 1000000010065798839381890598 } - case 3737 { rate := 1000000010068107272557516837 } - case 3738 { rate := 1000000010070415537694336563 } - case 3739 { rate := 1000000010072723634816812244 } - case 3740 { rate := 1000000010075031563949401005 } - case 3741 { rate := 1000000010077339325116554633 } - case 3742 { rate := 1000000010079646918342719577 } - case 3743 { rate := 1000000010081954343652336947 } - case 3744 { rate := 1000000010084261601069842519 } - case 3745 { rate := 1000000010086568690619666737 } - case 3746 { rate := 1000000010088875612326234711 } - case 3747 { rate := 1000000010091182366213966220 } - case 3748 { rate := 1000000010093488952307275716 } - case 3749 { rate := 1000000010095795370630572323 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3750-3799 - switch gt(bps, 3774) - case 0 { // 3750-3774 - switch bps - case 3750 { rate := 1000000010098101621208259840 } - case 3751 { rate := 1000000010100407704064736739 } - case 3752 { rate := 1000000010102713619224396172 } - case 3753 { rate := 1000000010105019366711625969 } - case 3754 { rate := 1000000010107324946550808639 } - case 3755 { rate := 1000000010109630358766321376 } - case 3756 { rate := 1000000010111935603382536054 } - case 3757 { rate := 1000000010114240680423819234 } - case 3758 { rate := 1000000010116545589914532164 } - case 3759 { rate := 1000000010118850331879030779 } - case 3760 { rate := 1000000010121154906341665703 } - case 3761 { rate := 1000000010123459313326782253 } - case 3762 { rate := 1000000010125763552858720438 } - case 3763 { rate := 1000000010128067624961814960 } - case 3764 { rate := 1000000010130371529660395218 } - case 3765 { rate := 1000000010132675266978785311 } - case 3766 { rate := 1000000010134978836941304031 } - case 3767 { rate := 1000000010137282239572264876 } - case 3768 { rate := 1000000010139585474895976041 } - case 3769 { rate := 1000000010141888542936740429 } - case 3770 { rate := 1000000010144191443718855647 } - case 3771 { rate := 1000000010146494177266614006 } - case 3772 { rate := 1000000010148796743604302527 } - case 3773 { rate := 1000000010151099142756202942 } - case 3774 { rate := 1000000010153401374746591692 } - default { revert(0, 0) } - } - case 1 { // 3775-3799 - switch bps - case 3775 { rate := 1000000010155703439599739931 } - case 3776 { rate := 1000000010158005337339913529 } - case 3777 { rate := 1000000010160307067991373070 } - case 3778 { rate := 1000000010162608631578373856 } - case 3779 { rate := 1000000010164910028125165907 } - case 3780 { rate := 1000000010167211257655993967 } - case 3781 { rate := 1000000010169512320195097496 } - case 3782 { rate := 1000000010171813215766710684 } - case 3783 { rate := 1000000010174113944395062439 } - case 3784 { rate := 1000000010176414506104376402 } - case 3785 { rate := 1000000010178714900918870939 } - case 3786 { rate := 1000000010181015128862759145 } - case 3787 { rate := 1000000010183315189960248848 } - case 3788 { rate := 1000000010185615084235542606 } - case 3789 { rate := 1000000010187914811712837715 } - case 3790 { rate := 1000000010190214372416326204 } - case 3791 { rate := 1000000010192513766370194839 } - case 3792 { rate := 1000000010194812993598625127 } - case 3793 { rate := 1000000010197112054125793313 } - case 3794 { rate := 1000000010199410947975870385 } - case 3795 { rate := 1000000010201709675173022073 } - case 3796 { rate := 1000000010204008235741408855 } - case 3797 { rate := 1000000010206306629705185952 } - case 3798 { rate := 1000000010208604857088503334 } - case 3799 { rate := 1000000010210902917915505722 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3800-3999 - switch gt(bps, 3899) - case 0 { // 3800-3899 - switch gt(bps, 3849) - case 0 { // 3800-3849 - switch gt(bps, 3824) - case 0 { // 3800-3824 - switch bps - case 3800 { rate := 1000000010213200812210332586 } - case 3801 { rate := 1000000010215498539997118147 } - case 3802 { rate := 1000000010217796101299991387 } - case 3803 { rate := 1000000010220093496143076034 } - case 3804 { rate := 1000000010222390724550490579 } - case 3805 { rate := 1000000010224687786546348272 } - case 3806 { rate := 1000000010226984682154757119 } - case 3807 { rate := 1000000010229281411399819892 } - case 3808 { rate := 1000000010231577974305634122 } - case 3809 { rate := 1000000010233874370896292108 } - case 3810 { rate := 1000000010236170601195880913 } - case 3811 { rate := 1000000010238466665228482369 } - case 3812 { rate := 1000000010240762563018173077 } - case 3813 { rate := 1000000010243058294589024407 } - case 3814 { rate := 1000000010245353859965102504 } - case 3815 { rate := 1000000010247649259170468285 } - case 3816 { rate := 1000000010249944492229177442 } - case 3817 { rate := 1000000010252239559165280445 } - case 3818 { rate := 1000000010254534460002822540 } - case 3819 { rate := 1000000010256829194765843755 } - case 3820 { rate := 1000000010259123763478378900 } - case 3821 { rate := 1000000010261418166164457564 } - case 3822 { rate := 1000000010263712402848104124 } - case 3823 { rate := 1000000010266006473553337741 } - case 3824 { rate := 1000000010268300378304172365 } - default { revert(0, 0) } - } - case 1 { // 3825-3849 - switch bps - case 3825 { rate := 1000000010270594117124616733 } - case 3826 { rate := 1000000010272887690038674371 } - case 3827 { rate := 1000000010275181097070343602 } - case 3828 { rate := 1000000010277474338243617536 } - case 3829 { rate := 1000000010279767413582484084 } - case 3830 { rate := 1000000010282060323110925948 } - case 3831 { rate := 1000000010284353066852920632 } - case 3832 { rate := 1000000010286645644832440436 } - case 3833 { rate := 1000000010288938057073452464 } - case 3834 { rate := 1000000010291230303599918619 } - case 3835 { rate := 1000000010293522384435795611 } - case 3836 { rate := 1000000010295814299605034955 } - case 3837 { rate := 1000000010298106049131582970 } - case 3838 { rate := 1000000010300397633039380787 } - case 3839 { rate := 1000000010302689051352364343 } - case 3840 { rate := 1000000010304980304094464392 } - case 3841 { rate := 1000000010307271391289606494 } - case 3842 { rate := 1000000010309562312961711031 } - case 3843 { rate := 1000000010311853069134693193 } - case 3844 { rate := 1000000010314143659832462993 } - case 3845 { rate := 1000000010316434085078925260 } - case 3846 { rate := 1000000010318724344897979646 } - case 3847 { rate := 1000000010321014439313520622 } - case 3848 { rate := 1000000010323304368349437485 } - case 3849 { rate := 1000000010325594132029614354 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3850-3899 - switch gt(bps, 3874) - case 0 { // 3850-3874 - switch bps - case 3850 { rate := 1000000010327883730377930177 } - case 3851 { rate := 1000000010330173163418258729 } - case 3852 { rate := 1000000010332462431174468613 } - case 3853 { rate := 1000000010334751533670423264 } - case 3854 { rate := 1000000010337040470929980950 } - case 3855 { rate := 1000000010339329242976994772 } - case 3856 { rate := 1000000010341617849835312667 } - case 3857 { rate := 1000000010343906291528777406 } - case 3858 { rate := 1000000010346194568081226603 } - case 3859 { rate := 1000000010348482679516492707 } - case 3860 { rate := 1000000010350770625858403013 } - case 3861 { rate := 1000000010353058407130779655 } - case 3862 { rate := 1000000010355346023357439613 } - case 3863 { rate := 1000000010357633474562194712 } - case 3864 { rate := 1000000010359920760768851624 } - case 3865 { rate := 1000000010362207882001211872 } - case 3866 { rate := 1000000010364494838283071825 } - case 3867 { rate := 1000000010366781629638222707 } - case 3868 { rate := 1000000010369068256090450597 } - case 3869 { rate := 1000000010371354717663536422 } - case 3870 { rate := 1000000010373641014381255972 } - case 3871 { rate := 1000000010375927146267379890 } - case 3872 { rate := 1000000010378213113345673681 } - case 3873 { rate := 1000000010380498915639897708 } - case 3874 { rate := 1000000010382784553173807199 } - default { revert(0, 0) } - } - case 1 { // 3875-3899 - switch bps - case 3875 { rate := 1000000010385070025971152244 } - case 3876 { rate := 1000000010387355334055677797 } - case 3877 { rate := 1000000010389640477451123680 } - case 3878 { rate := 1000000010391925456181224583 } - case 3879 { rate := 1000000010394210270269710063 } - case 3880 { rate := 1000000010396494919740304554 } - case 3881 { rate := 1000000010398779404616727355 } - case 3882 { rate := 1000000010401063724922692643 } - case 3883 { rate := 1000000010403347880681909471 } - case 3884 { rate := 1000000010405631871918081767 } - case 3885 { rate := 1000000010407915698654908337 } - case 3886 { rate := 1000000010410199360916082867 } - case 3887 { rate := 1000000010412482858725293929 } - case 3888 { rate := 1000000010414766192106224969 } - case 3889 { rate := 1000000010417049361082554324 } - case 3890 { rate := 1000000010419332365677955216 } - case 3891 { rate := 1000000010421615205916095750 } - case 3892 { rate := 1000000010423897881820638924 } - case 3893 { rate := 1000000010426180393415242626 } - case 3894 { rate := 1000000010428462740723559632 } - case 3895 { rate := 1000000010430744923769237614 } - case 3896 { rate := 1000000010433026942575919138 } - case 3897 { rate := 1000000010435308797167241666 } - case 3898 { rate := 1000000010437590487566837557 } - case 3899 { rate := 1000000010439872013798334068 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3900-3999 - switch gt(bps, 3949) - case 0 { // 3900-3949 - switch gt(bps, 3924) - case 0 { // 3900-3924 - switch bps - case 3900 { rate := 1000000010442153375885353361 } - case 3901 { rate := 1000000010444434573851512493 } - case 3902 { rate := 1000000010446715607720423430 } - case 3903 { rate := 1000000010448996477515693040 } - case 3904 { rate := 1000000010451277183260923098 } - case 3905 { rate := 1000000010453557724979710285 } - case 3906 { rate := 1000000010455838102695646196 } - case 3907 { rate := 1000000010458118316432317331 } - case 3908 { rate := 1000000010460398366213305107 } - case 3909 { rate := 1000000010462678252062185850 } - case 3910 { rate := 1000000010464957974002530804 } - case 3911 { rate := 1000000010467237532057906130 } - case 3912 { rate := 1000000010469516926251872906 } - case 3913 { rate := 1000000010471796156607987127 } - case 3914 { rate := 1000000010474075223149799712 } - case 3915 { rate := 1000000010476354125900856503 } - case 3916 { rate := 1000000010478632864884698262 } - case 3917 { rate := 1000000010480911440124860682 } - case 3918 { rate := 1000000010483189851644874376 } - case 3919 { rate := 1000000010485468099468264892 } - case 3920 { rate := 1000000010487746183618552701 } - case 3921 { rate := 1000000010490024104119253210 } - case 3922 { rate := 1000000010492301860993876758 } - case 3923 { rate := 1000000010494579454265928614 } - case 3924 { rate := 1000000010496856883958908988 } - default { revert(0, 0) } - } - case 1 { // 3925-3949 - switch bps - case 3925 { rate := 1000000010499134150096313024 } - case 3926 { rate := 1000000010501411252701630804 } - case 3927 { rate := 1000000010503688191798347350 } - case 3928 { rate := 1000000010505964967409942629 } - case 3929 { rate := 1000000010508241579559891545 } - case 3930 { rate := 1000000010510518028271663949 } - case 3931 { rate := 1000000010512794313568724638 } - case 3932 { rate := 1000000010515070435474533356 } - case 3933 { rate := 1000000010517346394012544796 } - case 3934 { rate := 1000000010519622189206208597 } - case 3935 { rate := 1000000010521897821078969357 } - case 3936 { rate := 1000000010524173289654266619 } - case 3937 { rate := 1000000010526448594955534886 } - case 3938 { rate := 1000000010528723737006203614 } - case 3939 { rate := 1000000010530998715829697217 } - case 3940 { rate := 1000000010533273531449435067 } - case 3941 { rate := 1000000010535548183888831498 } - case 3942 { rate := 1000000010537822673171295805 } - case 3943 { rate := 1000000010540096999320232244 } - case 3944 { rate := 1000000010542371162359040036 } - case 3945 { rate := 1000000010544645162311113372 } - case 3946 { rate := 1000000010546918999199841404 } - case 3947 { rate := 1000000010549192673048608259 } - case 3948 { rate := 1000000010551466183880793029 } - case 3949 { rate := 1000000010553739531719769780 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 3950-3999 - switch gt(bps, 3974) - case 0 { // 3950-3974 - switch bps - case 3950 { rate := 1000000010556012716588907553 } - case 3951 { rate := 1000000010558285738511570360 } - case 3952 { rate := 1000000010560558597511117192 } - case 3953 { rate := 1000000010562831293610902015 } - case 3954 { rate := 1000000010565103826834273775 } - case 3955 { rate := 1000000010567376197204576401 } - case 3956 { rate := 1000000010569648404745148797 } - case 3957 { rate := 1000000010571920449479324858 } - case 3958 { rate := 1000000010574192331430433458 } - case 3959 { rate := 1000000010576464050621798460 } - case 3960 { rate := 1000000010578735607076738714 } - case 3961 { rate := 1000000010581007000818568058 } - case 3962 { rate := 1000000010583278231870595322 } - case 3963 { rate := 1000000010585549300256124326 } - case 3964 { rate := 1000000010587820205998453884 } - case 3965 { rate := 1000000010590090949120877806 } - case 3966 { rate := 1000000010592361529646684896 } - case 3967 { rate := 1000000010594631947599158957 } - case 3968 { rate := 1000000010596902203001578791 } - case 3969 { rate := 1000000010599172295877218198 } - case 3970 { rate := 1000000010601442226249345986 } - case 3971 { rate := 1000000010603711994141225957 } - case 3972 { rate := 1000000010605981599576116928 } - case 3973 { rate := 1000000010608251042577272714 } - case 3974 { rate := 1000000010610520323167942140 } - default { revert(0, 0) } - } - case 1 { // 3975-3999 - switch bps - case 3975 { rate := 1000000010612789441371369043 } - case 3976 { rate := 1000000010615058397210792268 } - case 3977 { rate := 1000000010617327190709445671 } - case 3978 { rate := 1000000010619595821890558121 } - case 3979 { rate := 1000000010621864290777353506 } - case 3980 { rate := 1000000010624132597393050726 } - case 3981 { rate := 1000000010626400741760863700 } - case 3982 { rate := 1000000010628668723904001364 } - case 3983 { rate := 1000000010630936543845667679 } - case 3984 { rate := 1000000010633204201609061622 } - case 3985 { rate := 1000000010635471697217377200 } - case 3986 { rate := 1000000010637739030693803438 } - case 3987 { rate := 1000000010640006202061524391 } - case 3988 { rate := 1000000010642273211343719142 } - case 3989 { rate := 1000000010644540058563561801 } - case 3990 { rate := 1000000010646806743744221508 } - case 3991 { rate := 1000000010649073266908862437 } - case 3992 { rate := 1000000010651339628080643794 } - case 3993 { rate := 1000000010653605827282719820 } - case 3994 { rate := 1000000010655871864538239791 } - case 3995 { rate := 1000000010658137739870348023 } - case 3996 { rate := 1000000010660403453302183867 } - case 3997 { rate := 1000000010662669004856881719 } - case 3998 { rate := 1000000010664934394557571013 } - case 3999 { rate := 1000000010667199622427376228 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates4000To4799.sol b/src/repositories/Rates4000To4799.sol deleted file mode 100644 index 7e64477..0000000 --- a/src/repositories/Rates4000To4799.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates4000To4799 { - uint256 constant public MIN = 4000; - uint256 constant public MAX = 4799; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 4399) - case 0 { // 4000-4399 - switch gt(bps, 4199) - case 0 { // 4000-4199 - switch gt(bps, 4099) - case 0 { // 4000-4099 - switch gt(bps, 4049) - case 0 { // 4000-4049 - switch gt(bps, 4024) - case 0 { // 4000-4024 - switch bps - case 4000 { rate := 1000000010669464688489416886 } - case 4001 { rate := 1000000010671729592766807558 } - case 4002 { rate := 1000000010673994335282657858 } - case 4003 { rate := 1000000010676258916060072453 } - case 4004 { rate := 1000000010678523335122151059 } - case 4005 { rate := 1000000010680787592491988442 } - case 4006 { rate := 1000000010683051688192674423 } - case 4007 { rate := 1000000010685315622247293876 } - case 4008 { rate := 1000000010687579394678926732 } - case 4009 { rate := 1000000010689843005510647981 } - case 4010 { rate := 1000000010692106454765527665 } - case 4011 { rate := 1000000010694369742466630895 } - case 4012 { rate := 1000000010696632868637017837 } - case 4013 { rate := 1000000010698895833299743723 } - case 4014 { rate := 1000000010701158636477858849 } - case 4015 { rate := 1000000010703421278194408576 } - case 4016 { rate := 1000000010705683758472433332 } - case 4017 { rate := 1000000010707946077334968615 } - case 4018 { rate := 1000000010710208234805044991 } - case 4019 { rate := 1000000010712470230905688100 } - case 4020 { rate := 1000000010714732065659918652 } - case 4021 { rate := 1000000010716993739090752433 } - case 4022 { rate := 1000000010719255251221200304 } - case 4023 { rate := 1000000010721516602074268204 } - case 4024 { rate := 1000000010723777791672957148 } - default { revert(0, 0) } - } - case 1 { // 4025-4049 - switch bps - case 4025 { rate := 1000000010726038820040263233 } - case 4026 { rate := 1000000010728299687199177636 } - case 4027 { rate := 1000000010730560393172686618 } - case 4028 { rate := 1000000010732820937983771524 } - case 4029 { rate := 1000000010735081321655408782 } - case 4030 { rate := 1000000010737341544210569909 } - case 4031 { rate := 1000000010739601605672221510 } - case 4032 { rate := 1000000010741861506063325280 } - case 4033 { rate := 1000000010744121245406838002 } - case 4034 { rate := 1000000010746380823725711557 } - case 4035 { rate := 1000000010748640241042892914 } - case 4036 { rate := 1000000010750899497381324142 } - case 4037 { rate := 1000000010753158592763942403 } - case 4038 { rate := 1000000010755417527213679959 } - case 4039 { rate := 1000000010757676300753464170 } - case 4040 { rate := 1000000010759934913406217501 } - case 4041 { rate := 1000000010762193365194857512 } - case 4042 { rate := 1000000010764451656142296872 } - case 4043 { rate := 1000000010766709786271443355 } - case 4044 { rate := 1000000010768967755605199839 } - case 4045 { rate := 1000000010771225564166464310 } - case 4046 { rate := 1000000010773483211978129865 } - case 4047 { rate := 1000000010775740699063084710 } - case 4048 { rate := 1000000010777998025444212163 } - case 4049 { rate := 1000000010780255191144390658 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4050-4099 - switch gt(bps, 4074) - case 0 { // 4050-4074 - switch bps - case 4050 { rate := 1000000010782512196186493739 } - case 4051 { rate := 1000000010784769040593390070 } - case 4052 { rate := 1000000010787025724387943431 } - case 4053 { rate := 1000000010789282247593012723 } - case 4054 { rate := 1000000010791538610231451963 } - case 4055 { rate := 1000000010793794812326110293 } - case 4056 { rate := 1000000010796050853899831977 } - case 4057 { rate := 1000000010798306734975456405 } - case 4058 { rate := 1000000010800562455575818091 } - case 4059 { rate := 1000000010802818015723746677 } - case 4060 { rate := 1000000010805073415442066933 } - case 4061 { rate := 1000000010807328654753598760 } - case 4062 { rate := 1000000010809583733681157190 } - case 4063 { rate := 1000000010811838652247552387 } - case 4064 { rate := 1000000010814093410475589652 } - case 4065 { rate := 1000000010816348008388069418 } - case 4066 { rate := 1000000010818602446007787257 } - case 4067 { rate := 1000000010820856723357533878 } - case 4068 { rate := 1000000010823110840460095130 } - case 4069 { rate := 1000000010825364797338252005 } - case 4070 { rate := 1000000010827618594014780637 } - case 4071 { rate := 1000000010829872230512452300 } - case 4072 { rate := 1000000010832125706854033418 } - case 4073 { rate := 1000000010834379023062285559 } - case 4074 { rate := 1000000010836632179159965442 } - default { revert(0, 0) } - } - case 1 { // 4075-4099 - switch bps - case 4075 { rate := 1000000010838885175169824929 } - case 4076 { rate := 1000000010841138011114611041 } - case 4077 { rate := 1000000010843390687017065944 } - case 4078 { rate := 1000000010845643202899926963 } - case 4079 { rate := 1000000010847895558785926572 } - case 4080 { rate := 1000000010850147754697792408 } - case 4081 { rate := 1000000010852399790658247262 } - case 4082 { rate := 1000000010854651666690009082 } - case 4083 { rate := 1000000010856903382815790981 } - case 4084 { rate := 1000000010859154939058301230 } - case 4085 { rate := 1000000010861406335440243265 } - case 4086 { rate := 1000000010863657571984315686 } - case 4087 { rate := 1000000010865908648713212260 } - case 4088 { rate := 1000000010868159565649621919 } - case 4089 { rate := 1000000010870410322816228766 } - case 4090 { rate := 1000000010872660920235712071 } - case 4091 { rate := 1000000010874911357930746279 } - case 4092 { rate := 1000000010877161635924001006 } - case 4093 { rate := 1000000010879411754238141040 } - case 4094 { rate := 1000000010881661712895826350 } - case 4095 { rate := 1000000010883911511919712075 } - case 4096 { rate := 1000000010886161151332448538 } - case 4097 { rate := 1000000010888410631156681239 } - case 4098 { rate := 1000000010890659951415050857 } - case 4099 { rate := 1000000010892909112130193257 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4100-4199 - switch gt(bps, 4149) - case 0 { // 4100-4149 - switch gt(bps, 4124) - case 0 { // 4100-4124 - switch bps - case 4100 { rate := 1000000010895158113324739488 } - case 4101 { rate := 1000000010897406955021315779 } - case 4102 { rate := 1000000010899655637242543550 } - case 4103 { rate := 1000000010901904160011039408 } - case 4104 { rate := 1000000010904152523349415148 } - case 4105 { rate := 1000000010906400727280277756 } - case 4106 { rate := 1000000010908648771826229410 } - case 4107 { rate := 1000000010910896657009867483 } - case 4108 { rate := 1000000010913144382853784538 } - case 4109 { rate := 1000000010915391949380568338 } - case 4110 { rate := 1000000010917639356612801842 } - case 4111 { rate := 1000000010919886604573063209 } - case 4112 { rate := 1000000010922133693283925795 } - case 4113 { rate := 1000000010924380622767958161 } - case 4114 { rate := 1000000010926627393047724068 } - case 4115 { rate := 1000000010928874004145782483 } - case 4116 { rate := 1000000010931120456084687576 } - case 4117 { rate := 1000000010933366748886988728 } - case 4118 { rate := 1000000010935612882575230523 } - case 4119 { rate := 1000000010937858857171952760 } - case 4120 { rate := 1000000010940104672699690444 } - case 4121 { rate := 1000000010942350329180973795 } - case 4122 { rate := 1000000010944595826638328248 } - case 4123 { rate := 1000000010946841165094274449 } - case 4124 { rate := 1000000010949086344571328262 } - default { revert(0, 0) } - } - case 1 { // 4125-4149 - switch bps - case 4125 { rate := 1000000010951331365092000772 } - case 4126 { rate := 1000000010953576226678798278 } - case 4127 { rate := 1000000010955820929354222302 } - case 4128 { rate := 1000000010958065473140769588 } - case 4129 { rate := 1000000010960309858060932102 } - case 4130 { rate := 1000000010962554084137197035 } - case 4131 { rate := 1000000010964798151392046803 } - case 4132 { rate := 1000000010967042059847959052 } - case 4133 { rate := 1000000010969285809527406653 } - case 4134 { rate := 1000000010971529400452857709 } - case 4135 { rate := 1000000010973772832646775552 } - case 4136 { rate := 1000000010976016106131618751 } - case 4137 { rate := 1000000010978259220929841103 } - case 4138 { rate := 1000000010980502177063891645 } - case 4139 { rate := 1000000010982744974556214650 } - case 4140 { rate := 1000000010984987613429249625 } - case 4141 { rate := 1000000010987230093705431322 } - case 4142 { rate := 1000000010989472415407189730 } - case 4143 { rate := 1000000010991714578556950080 } - case 4144 { rate := 1000000010993956583177132848 } - case 4145 { rate := 1000000010996198429290153754 } - case 4146 { rate := 1000000010998440116918423764 } - case 4147 { rate := 1000000011000681646084349091 } - case 4148 { rate := 1000000011002923016810331196 } - case 4149 { rate := 1000000011005164229118766794 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4150-4199 - switch gt(bps, 4174) - case 0 { // 4150-4174 - switch bps - case 4150 { rate := 1000000011007405283032047846 } - case 4151 { rate := 1000000011009646178572561570 } - case 4152 { rate := 1000000011011886915762690435 } - case 4153 { rate := 1000000011014127494624812168 } - case 4154 { rate := 1000000011016367915181299751 } - case 4155 { rate := 1000000011018608177454521425 } - case 4156 { rate := 1000000011020848281466840690 } - case 4157 { rate := 1000000011023088227240616307 } - case 4158 { rate := 1000000011025328014798202299 } - case 4159 { rate := 1000000011027567644161947953 } - case 4160 { rate := 1000000011029807115354197820 } - case 4161 { rate := 1000000011032046428397291718 } - case 4162 { rate := 1000000011034285583313564733 } - case 4163 { rate := 1000000011036524580125347217 } - case 4164 { rate := 1000000011038763418854964795 } - case 4165 { rate := 1000000011041002099524738363 } - case 4166 { rate := 1000000011043240622156984088 } - case 4167 { rate := 1000000011045478986774013414 } - case 4168 { rate := 1000000011047717193398133058 } - case 4169 { rate := 1000000011049955242051645015 } - case 4170 { rate := 1000000011052193132756846559 } - case 4171 { rate := 1000000011054430865536030243 } - case 4172 { rate := 1000000011056668440411483899 } - case 4173 { rate := 1000000011058905857405490642 } - case 4174 { rate := 1000000011061143116540328874 } - default { revert(0, 0) } - } - case 1 { // 4175-4199 - switch bps - case 4175 { rate := 1000000011063380217838272275 } - case 4176 { rate := 1000000011065617161321589818 } - case 4177 { rate := 1000000011067853947012545760 } - case 4178 { rate := 1000000011070090574933399646 } - case 4179 { rate := 1000000011072327045106406314 } - case 4180 { rate := 1000000011074563357553815892 } - case 4181 { rate := 1000000011076799512297873799 } - case 4182 { rate := 1000000011079035509360820752 } - case 4183 { rate := 1000000011081271348764892760 } - case 4184 { rate := 1000000011083507030532321133 } - case 4185 { rate := 1000000011085742554685332472 } - case 4186 { rate := 1000000011087977921246148683 } - case 4187 { rate := 1000000011090213130236986974 } - case 4188 { rate := 1000000011092448181680059850 } - case 4189 { rate := 1000000011094683075597575122 } - case 4190 { rate := 1000000011096917812011735908 } - case 4191 { rate := 1000000011099152390944740628 } - case 4192 { rate := 1000000011101386812418783011 } - case 4193 { rate := 1000000011103621076456052096 } - case 4194 { rate := 1000000011105855183078732230 } - case 4195 { rate := 1000000011108089132309003072 } - case 4196 { rate := 1000000011110322924169039595 } - case 4197 { rate := 1000000011112556558681012085 } - case 4198 { rate := 1000000011114790035867086142 } - case 4199 { rate := 1000000011117023355749422684 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4200-4399 - switch gt(bps, 4299) - case 0 { // 4200-4299 - switch gt(bps, 4249) - case 0 { // 4200-4249 - switch gt(bps, 4224) - case 0 { // 4200-4224 - switch bps - case 4200 { rate := 1000000011119256518350177948 } - case 4201 { rate := 1000000011121489523691503488 } - case 4202 { rate := 1000000011123722371795546180 } - case 4203 { rate := 1000000011125955062684448222 } - case 4204 { rate := 1000000011128187596380347134 } - case 4205 { rate := 1000000011130419972905375761 } - case 4206 { rate := 1000000011132652192281662277 } - case 4207 { rate := 1000000011134884254531330177 } - case 4208 { rate := 1000000011137116159676498289 } - case 4209 { rate := 1000000011139347907739280771 } - case 4210 { rate := 1000000011141579498741787109 } - case 4211 { rate := 1000000011143810932706122123 } - case 4212 { rate := 1000000011146042209654385969 } - case 4213 { rate := 1000000011148273329608674134 } - case 4214 { rate := 1000000011150504292591077445 } - case 4215 { rate := 1000000011152735098623682064 } - case 4216 { rate := 1000000011154965747728569493 } - case 4217 { rate := 1000000011157196239927816576 } - case 4218 { rate := 1000000011159426575243495495 } - case 4219 { rate := 1000000011161656753697673778 } - case 4220 { rate := 1000000011163886775312414296 } - case 4221 { rate := 1000000011166116640109775265 } - case 4222 { rate := 1000000011168346348111810249 } - case 4223 { rate := 1000000011170575899340568161 } - case 4224 { rate := 1000000011172805293818093260 } - default { revert(0, 0) } - } - case 1 { // 4225-4249 - switch bps - case 4225 { rate := 1000000011175034531566425160 } - case 4226 { rate := 1000000011177263612607598825 } - case 4227 { rate := 1000000011179492536963644571 } - case 4228 { rate := 1000000011181721304656588071 } - case 4229 { rate := 1000000011183949915708450354 } - case 4230 { rate := 1000000011186178370141247803 } - case 4231 { rate := 1000000011188406667976992166 } - case 4232 { rate := 1000000011190634809237690543 } - case 4233 { rate := 1000000011192862793945345402 } - case 4234 { rate := 1000000011195090622121954571 } - case 4235 { rate := 1000000011197318293789511240 } - case 4236 { rate := 1000000011199545808970003967 } - case 4237 { rate := 1000000011201773167685416674 } - case 4238 { rate := 1000000011204000369957728654 } - case 4239 { rate := 1000000011206227415808914565 } - case 4240 { rate := 1000000011208454305260944438 } - case 4241 { rate := 1000000011210681038335783676 } - case 4242 { rate := 1000000011212907615055393052 } - case 4243 { rate := 1000000011215134035441728718 } - case 4244 { rate := 1000000011217360299516742197 } - case 4245 { rate := 1000000011219586407302380389 } - case 4246 { rate := 1000000011221812358820585577 } - case 4247 { rate := 1000000011224038154093295418 } - case 4248 { rate := 1000000011226263793142442953 } - case 4249 { rate := 1000000011228489275989956604 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4250-4299 - switch gt(bps, 4274) - case 0 { // 4250-4274 - switch bps - case 4250 { rate := 1000000011230714602657760176 } - case 4251 { rate := 1000000011232939773167772858 } - case 4252 { rate := 1000000011235164787541909226 } - case 4253 { rate := 1000000011237389645802079244 } - case 4254 { rate := 1000000011239614347970188264 } - case 4255 { rate := 1000000011241838894068137026 } - case 4256 { rate := 1000000011244063284117821662 } - case 4257 { rate := 1000000011246287518141133699 } - case 4258 { rate := 1000000011248511596159960053 } - case 4259 { rate := 1000000011250735518196183039 } - case 4260 { rate := 1000000011252959284271680367 } - case 4261 { rate := 1000000011255182894408325144 } - case 4262 { rate := 1000000011257406348627985874 } - case 4263 { rate := 1000000011259629646952526467 } - case 4264 { rate := 1000000011261852789403806228 } - case 4265 { rate := 1000000011264075776003679869 } - case 4266 { rate := 1000000011266298606773997503 } - case 4267 { rate := 1000000011268521281736604652 } - case 4268 { rate := 1000000011270743800913342239 } - case 4269 { rate := 1000000011272966164326046602 } - case 4270 { rate := 1000000011275188371996549481 } - case 4271 { rate := 1000000011277410423946678031 } - case 4272 { rate := 1000000011279632320198254820 } - case 4273 { rate := 1000000011281854060773097822 } - case 4274 { rate := 1000000011284075645693020433 } - default { revert(0, 0) } - } - case 1 { // 4275-4299 - switch bps - case 4275 { rate := 1000000011286297074979831462 } - case 4276 { rate := 1000000011288518348655335131 } - case 4277 { rate := 1000000011290739466741331087 } - case 4278 { rate := 1000000011292960429259614390 } - case 4279 { rate := 1000000011295181236231975526 } - case 4280 { rate := 1000000011297401887680200399 } - case 4281 { rate := 1000000011299622383626070339 } - case 4282 { rate := 1000000011301842724091362099 } - case 4283 { rate := 1000000011304062909097847859 } - case 4284 { rate := 1000000011306282938667295224 } - case 4285 { rate := 1000000011308502812821467231 } - case 4286 { rate := 1000000011310722531582122343 } - case 4287 { rate := 1000000011312942094971014457 } - case 4288 { rate := 1000000011315161503009892899 } - case 4289 { rate := 1000000011317380755720502432 } - case 4290 { rate := 1000000011319599853124583251 } - case 4291 { rate := 1000000011321818795243870989 } - case 4292 { rate := 1000000011324037582100096715 } - case 4293 { rate := 1000000011326256213714986939 } - case 4294 { rate := 1000000011328474690110263606 } - case 4295 { rate := 1000000011330693011307644108 } - case 4296 { rate := 1000000011332911177328841276 } - case 4297 { rate := 1000000011335129188195563387 } - case 4298 { rate := 1000000011337347043929514159 } - case 4299 { rate := 1000000011339564744552392760 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4300-4399 - switch gt(bps, 4349) - case 0 { // 4300-4349 - switch gt(bps, 4324) - case 0 { // 4300-4324 - switch bps - case 4300 { rate := 1000000011341782290085893805 } - case 4301 { rate := 1000000011343999680551707357 } - case 4302 { rate := 1000000011346216915971518931 } - case 4303 { rate := 1000000011348433996367009488 } - case 4304 { rate := 1000000011350650921759855449 } - case 4305 { rate := 1000000011352867692171728685 } - case 4306 { rate := 1000000011355084307624296520 } - case 4307 { rate := 1000000011357300768139221740 } - case 4308 { rate := 1000000011359517073738162585 } - case 4309 { rate := 1000000011361733224442772754 } - case 4310 { rate := 1000000011363949220274701408 } - case 4311 { rate := 1000000011366165061255593168 } - case 4312 { rate := 1000000011368380747407088120 } - case 4313 { rate := 1000000011370596278750821810 } - case 4314 { rate := 1000000011372811655308425254 } - case 4315 { rate := 1000000011375026877101524932 } - case 4316 { rate := 1000000011377241944151742792 } - case 4317 { rate := 1000000011379456856480696254 } - case 4318 { rate := 1000000011381671614109998202 } - case 4319 { rate := 1000000011383886217061256998 } - case 4320 { rate := 1000000011386100665356076475 } - case 4321 { rate := 1000000011388314959016055939 } - case 4322 { rate := 1000000011390529098062790173 } - case 4323 { rate := 1000000011392743082517869435 } - case 4324 { rate := 1000000011394956912402879463 } - default { revert(0, 0) } - } - case 1 { // 4325-4349 - switch bps - case 4325 { rate := 1000000011397170587739401474 } - case 4326 { rate := 1000000011399384108549012164 } - case 4327 { rate := 1000000011401597474853283711 } - case 4328 { rate := 1000000011403810686673783778 } - case 4329 { rate := 1000000011406023744032075511 } - case 4330 { rate := 1000000011408236646949717541 } - case 4331 { rate := 1000000011410449395448263986 } - case 4332 { rate := 1000000011412661989549264455 } - case 4333 { rate := 1000000011414874429274264041 } - case 4334 { rate := 1000000011417086714644803332 } - case 4335 { rate := 1000000011419298845682418407 } - case 4336 { rate := 1000000011421510822408640836 } - case 4337 { rate := 1000000011423722644844997686 } - case 4338 { rate := 1000000011425934313013011518 } - case 4339 { rate := 1000000011428145826934200391 } - case 4340 { rate := 1000000011430357186630077862 } - case 4341 { rate := 1000000011432568392122152986 } - case 4342 { rate := 1000000011434779443431930319 } - case 4343 { rate := 1000000011436990340580909922 } - case 4344 { rate := 1000000011439201083590587356 } - case 4345 { rate := 1000000011441411672482453687 } - case 4346 { rate := 1000000011443622107277995486 } - case 4347 { rate := 1000000011445832387998694833 } - case 4348 { rate := 1000000011448042514666029315 } - case 4349 { rate := 1000000011450252487301472028 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4350-4399 - switch gt(bps, 4374) - case 0 { // 4350-4374 - switch bps - case 4350 { rate := 1000000011452462305926491579 } - case 4351 { rate := 1000000011454671970562552089 } - case 4352 { rate := 1000000011456881481231113188 } - case 4353 { rate := 1000000011459090837953630024 } - case 4354 { rate := 1000000011461300040751553259 } - case 4355 { rate := 1000000011463509089646329073 } - case 4356 { rate := 1000000011465717984659399163 } - case 4357 { rate := 1000000011467926725812200747 } - case 4358 { rate := 1000000011470135313126166561 } - case 4359 { rate := 1000000011472343746622724867 } - case 4360 { rate := 1000000011474552026323299446 } - case 4361 { rate := 1000000011476760152249309607 } - case 4362 { rate := 1000000011478968124422170181 } - case 4363 { rate := 1000000011481175942863291530 } - case 4364 { rate := 1000000011483383607594079540 } - case 4365 { rate := 1000000011485591118635935631 } - case 4366 { rate := 1000000011487798476010256750 } - case 4367 { rate := 1000000011490005679738435376 } - case 4368 { rate := 1000000011492212729841859524 } - case 4369 { rate := 1000000011494419626341912740 } - case 4370 { rate := 1000000011496626369259974109 } - case 4371 { rate := 1000000011498832958617418250 } - case 4372 { rate := 1000000011501039394435615322 } - case 4373 { rate := 1000000011503245676735931022 } - case 4374 { rate := 1000000011505451805539726589 } - default { revert(0, 0) } - } - case 1 { // 4375-4399 - switch bps - case 4375 { rate := 1000000011507657780868358802 } - case 4376 { rate := 1000000011509863602743179986 } - case 4377 { rate := 1000000011512069271185538006 } - case 4378 { rate := 1000000011514274786216776278 } - case 4379 { rate := 1000000011516480147858233760 } - case 4380 { rate := 1000000011518685356131244960 } - case 4381 { rate := 1000000011520890411057139937 } - case 4382 { rate := 1000000011523095312657244296 } - case 4383 { rate := 1000000011525300060952879198 } - case 4384 { rate := 1000000011527504655965361356 } - case 4385 { rate := 1000000011529709097716003036 } - case 4386 { rate := 1000000011531913386226112060 } - case 4387 { rate := 1000000011534117521516991808 } - case 4388 { rate := 1000000011536321503609941215 } - case 4389 { rate := 1000000011538525332526254779 } - case 4390 { rate := 1000000011540729008287222556 } - case 4391 { rate := 1000000011542932530914130163 } - case 4392 { rate := 1000000011545135900428258782 } - case 4393 { rate := 1000000011547339116850885159 } - case 4394 { rate := 1000000011549542180203281602 } - case 4395 { rate := 1000000011551745090506715989 } - case 4396 { rate := 1000000011553947847782451765 } - case 4397 { rate := 1000000011556150452051747944 } - case 4398 { rate := 1000000011558352903335859111 } - case 4399 { rate := 1000000011560555201656035419 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4400-4799 - switch gt(bps, 4599) - case 0 { // 4400-4599 - switch gt(bps, 4499) - case 0 { // 4400-4499 - switch gt(bps, 4449) - case 0 { // 4400-4449 - switch gt(bps, 4424) - case 0 { // 4400-4424 - switch bps - case 4400 { rate := 1000000011562757347033522598 } - case 4401 { rate := 1000000011564959339489561951 } - case 4402 { rate := 1000000011567161179045390355 } - case 4403 { rate := 1000000011569362865722240263 } - case 4404 { rate := 1000000011571564399541339706 } - case 4405 { rate := 1000000011573765780523912298 } - case 4406 { rate := 1000000011575967008691177226 } - case 4407 { rate := 1000000011578168084064349263 } - case 4408 { rate := 1000000011580369006664638762 } - case 4409 { rate := 1000000011582569776513251664 } - case 4410 { rate := 1000000011584770393631389491 } - case 4411 { rate := 1000000011586970858040249351 } - case 4412 { rate := 1000000011589171169761023944 } - case 4413 { rate := 1000000011591371328814901553 } - case 4414 { rate := 1000000011593571335223066054 } - case 4415 { rate := 1000000011595771189006696913 } - case 4416 { rate := 1000000011597970890186969190 } - case 4417 { rate := 1000000011600170438785053539 } - case 4418 { rate := 1000000011602369834822116205 } - case 4419 { rate := 1000000011604569078319319032 } - case 4420 { rate := 1000000011606768169297819461 } - case 4421 { rate := 1000000011608967107778770531 } - case 4422 { rate := 1000000011611165893783320880 } - case 4423 { rate := 1000000011613364527332614750 } - case 4424 { rate := 1000000011615563008447791980 } - default { revert(0, 0) } - } - case 1 { // 4425-4449 - switch bps - case 4425 { rate := 1000000011617761337149988016 } - case 4426 { rate := 1000000011619959513460333909 } - case 4427 { rate := 1000000011622157537399956313 } - case 4428 { rate := 1000000011624355408989977491 } - case 4429 { rate := 1000000011626553128251515315 } - case 4430 { rate := 1000000011628750695205683263 } - case 4431 { rate := 1000000011630948109873590427 } - case 4432 { rate := 1000000011633145372276341510 } - case 4433 { rate := 1000000011635342482435036828 } - case 4434 { rate := 1000000011637539440370772309 } - case 4435 { rate := 1000000011639736246104639501 } - case 4436 { rate := 1000000011641932899657725566 } - case 4437 { rate := 1000000011644129401051113283 } - case 4438 { rate := 1000000011646325750305881052 } - case 4439 { rate := 1000000011648521947443102894 } - case 4440 { rate := 1000000011650717992483848450 } - case 4441 { rate := 1000000011652913885449182982 } - case 4442 { rate := 1000000011655109626360167380 } - case 4443 { rate := 1000000011657305215237858159 } - case 4444 { rate := 1000000011659500652103307456 } - case 4445 { rate := 1000000011661695936977563040 } - case 4446 { rate := 1000000011663891069881668309 } - case 4447 { rate := 1000000011666086050836662286 } - case 4448 { rate := 1000000011668280879863579631 } - case 4449 { rate := 1000000011670475556983450634 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4450-4499 - switch gt(bps, 4474) - case 0 { // 4450-4474 - switch bps - case 4450 { rate := 1000000011672670082217301219 } - case 4451 { rate := 1000000011674864455586152944 } - case 4452 { rate := 1000000011677058677111023005 } - case 4453 { rate := 1000000011679252746812924234 } - case 4454 { rate := 1000000011681446664712865102 } - case 4455 { rate := 1000000011683640430831849720 } - case 4456 { rate := 1000000011685834045190877838 } - case 4457 { rate := 1000000011688027507810944851 } - case 4458 { rate := 1000000011690220818713041795 } - case 4459 { rate := 1000000011692413977918155352 } - case 4460 { rate := 1000000011694606985447267850 } - case 4461 { rate := 1000000011696799841321357263 } - case 4462 { rate := 1000000011698992545561397213 } - case 4463 { rate := 1000000011701185098188356972 } - case 4464 { rate := 1000000011703377499223201464 } - case 4465 { rate := 1000000011705569748686891261 } - case 4466 { rate := 1000000011707761846600382591 } - case 4467 { rate := 1000000011709953792984627335 } - case 4468 { rate := 1000000011712145587860573032 } - case 4469 { rate := 1000000011714337231249162871 } - case 4470 { rate := 1000000011716528723171335709 } - case 4471 { rate := 1000000011718720063648026051 } - case 4472 { rate := 1000000011720911252700164071 } - case 4473 { rate := 1000000011723102290348675597 } - case 4474 { rate := 1000000011725293176614482128 } - default { revert(0, 0) } - } - case 1 { // 4475-4499 - switch bps - case 4475 { rate := 1000000011727483911518500818 } - case 4476 { rate := 1000000011729674495081644493 } - case 4477 { rate := 1000000011731864927324821641 } - case 4478 { rate := 1000000011734055208268936418 } - case 4479 { rate := 1000000011736245337934888652 } - case 4480 { rate := 1000000011738435316343573834 } - case 4481 { rate := 1000000011740625143515883134 } - case 4482 { rate := 1000000011742814819472703388 } - case 4483 { rate := 1000000011745004344234917107 } - case 4484 { rate := 1000000011747193717823402479 } - case 4485 { rate := 1000000011749382940259033365 } - case 4486 { rate := 1000000011751572011562679304 } - case 4487 { rate := 1000000011753760931755205513 } - case 4488 { rate := 1000000011755949700857472887 } - case 4489 { rate := 1000000011758138318890338005 } - case 4490 { rate := 1000000011760326785874653124 } - case 4491 { rate := 1000000011762515101831266185 } - case 4492 { rate := 1000000011764703266781020815 } - case 4493 { rate := 1000000011766891280744756325 } - case 4494 { rate := 1000000011769079143743307711 } - case 4495 { rate := 1000000011771266855797505659 } - case 4496 { rate := 1000000011773454416928176542 } - case 4497 { rate := 1000000011775641827156142425 } - case 4498 { rate := 1000000011777829086502221061 } - case 4499 { rate := 1000000011780016194987225901 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4500-4599 - switch gt(bps, 4549) - case 0 { // 4500-4549 - switch gt(bps, 4524) - case 0 { // 4500-4524 - switch bps - case 4500 { rate := 1000000011782203152631966084 } - case 4501 { rate := 1000000011784389959457246446 } - case 4502 { rate := 1000000011786576615483867520 } - case 4503 { rate := 1000000011788763120732625534 } - case 4504 { rate := 1000000011790949475224312417 } - case 4505 { rate := 1000000011793135678979715794 } - case 4506 { rate := 1000000011795321732019618995 } - case 4507 { rate := 1000000011797507634364801050 } - case 4508 { rate := 1000000011799693386036036690 } - case 4509 { rate := 1000000011801878987054096353 } - case 4510 { rate := 1000000011804064437439746183 } - case 4511 { rate := 1000000011806249737213748028 } - case 4512 { rate := 1000000011808434886396859445 } - case 4513 { rate := 1000000011810619885009833701 } - case 4514 { rate := 1000000011812804733073419772 } - case 4515 { rate := 1000000011814989430608362346 } - case 4516 { rate := 1000000011817173977635401824 } - case 4517 { rate := 1000000011819358374175274320 } - case 4518 { rate := 1000000011821542620248711663 } - case 4519 { rate := 1000000011823726715876441397 } - case 4520 { rate := 1000000011825910661079186786 } - case 4521 { rate := 1000000011828094455877666811 } - case 4522 { rate := 1000000011830278100292596173 } - case 4523 { rate := 1000000011832461594344685292 } - case 4524 { rate := 1000000011834644938054640314 } - default { revert(0, 0) } - } - case 1 { // 4525-4549 - switch bps - case 4525 { rate := 1000000011836828131443163102 } - case 4526 { rate := 1000000011839011174530951252 } - case 4527 { rate := 1000000011841194067338698076 } - case 4528 { rate := 1000000011843376809887092621 } - case 4529 { rate := 1000000011845559402196819657 } - case 4530 { rate := 1000000011847741844288559684 } - case 4531 { rate := 1000000011849924136182988931 } - case 4532 { rate := 1000000011852106277900779365 } - case 4533 { rate := 1000000011854288269462598676 } - case 4534 { rate := 1000000011856470110889110294 } - case 4535 { rate := 1000000011858651802200973384 } - case 4536 { rate := 1000000011860833343418842843 } - case 4537 { rate := 1000000011863014734563369310 } - case 4538 { rate := 1000000011865195975655199159 } - case 4539 { rate := 1000000011867377066714974505 } - case 4540 { rate := 1000000011869558007763333206 } - case 4541 { rate := 1000000011871738798820908856 } - case 4542 { rate := 1000000011873919439908330799 } - case 4543 { rate := 1000000011876099931046224119 } - case 4544 { rate := 1000000011878280272255209648 } - case 4545 { rate := 1000000011880460463555903962 } - case 4546 { rate := 1000000011882640504968919386 } - case 4547 { rate := 1000000011884820396514863997 } - case 4548 { rate := 1000000011887000138214341617 } - case 4549 { rate := 1000000011889179730087951822 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4550-4599 - switch gt(bps, 4574) - case 0 { // 4550-4574 - switch bps - case 4550 { rate := 1000000011891359172156289942 } - case 4551 { rate := 1000000011893538464439947057 } - case 4552 { rate := 1000000011895717606959510007 } - case 4553 { rate := 1000000011897896599735561381 } - case 4554 { rate := 1000000011900075442788679533 } - case 4555 { rate := 1000000011902254136139438568 } - case 4556 { rate := 1000000011904432679808408357 } - case 4557 { rate := 1000000011906611073816154526 } - case 4558 { rate := 1000000011908789318183238468 } - case 4559 { rate := 1000000011910967412930217335 } - case 4560 { rate := 1000000011913145358077644046 } - case 4561 { rate := 1000000011915323153646067283 } - case 4562 { rate := 1000000011917500799656031495 } - case 4563 { rate := 1000000011919678296128076901 } - case 4564 { rate := 1000000011921855643082739486 } - case 4565 { rate := 1000000011924032840540551006 } - case 4566 { rate := 1000000011926209888522038989 } - case 4567 { rate := 1000000011928386787047726732 } - case 4568 { rate := 1000000011930563536138133312 } - case 4569 { rate := 1000000011932740135813773575 } - case 4570 { rate := 1000000011934916586095158143 } - case 4571 { rate := 1000000011937092887002793418 } - case 4572 { rate := 1000000011939269038557181578 } - case 4573 { rate := 1000000011941445040778820581 } - case 4574 { rate := 1000000011943620893688204164 } - default { revert(0, 0) } - } - case 1 { // 4575-4599 - switch bps - case 4575 { rate := 1000000011945796597305821848 } - case 4576 { rate := 1000000011947972151652158936 } - case 4577 { rate := 1000000011950147556747696515 } - case 4578 { rate := 1000000011952322812612911454 } - case 4579 { rate := 1000000011954497919268276412 } - case 4580 { rate := 1000000011956672876734259834 } - case 4581 { rate := 1000000011958847685031325954 } - case 4582 { rate := 1000000011961022344179934796 } - case 4583 { rate := 1000000011963196854200542173 } - case 4584 { rate := 1000000011965371215113599692 } - case 4585 { rate := 1000000011967545426939554751 } - case 4586 { rate := 1000000011969719489698850545 } - case 4587 { rate := 1000000011971893403411926063 } - case 4588 { rate := 1000000011974067168099216089 } - case 4589 { rate := 1000000011976240783781151209 } - case 4590 { rate := 1000000011978414250478157804 } - case 4591 { rate := 1000000011980587568210658056 } - case 4592 { rate := 1000000011982760736999069949 } - case 4593 { rate := 1000000011984933756863807269 } - case 4594 { rate := 1000000011987106627825279606 } - case 4595 { rate := 1000000011989279349903892354 } - case 4596 { rate := 1000000011991451923120046712 } - case 4597 { rate := 1000000011993624347494139689 } - case 4598 { rate := 1000000011995796623046564099 } - case 4599 { rate := 1000000011997968749797708565 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4600-4799 - switch gt(bps, 4699) - case 0 { // 4600-4699 - switch gt(bps, 4649) - case 0 { // 4600-4649 - switch gt(bps, 4624) - case 0 { // 4600-4624 - switch bps - case 4600 { rate := 1000000012000140727767957524 } - case 4601 { rate := 1000000012002312556977691222 } - case 4602 { rate := 1000000012004484237447285716 } - case 4603 { rate := 1000000012006655769197112882 } - case 4604 { rate := 1000000012008827152247540405 } - case 4605 { rate := 1000000012010998386618931791 } - case 4606 { rate := 1000000012013169472331646360 } - case 4607 { rate := 1000000012015340409406039253 } - case 4608 { rate := 1000000012017511197862461428 } - case 4609 { rate := 1000000012019681837721259668 } - case 4610 { rate := 1000000012021852329002776572 } - case 4611 { rate := 1000000012024022671727350564 } - case 4612 { rate := 1000000012026192865915315897 } - case 4613 { rate := 1000000012028362911587002643 } - case 4614 { rate := 1000000012030532808762736703 } - case 4615 { rate := 1000000012032702557462839807 } - case 4616 { rate := 1000000012034872157707629511 } - case 4617 { rate := 1000000012037041609517419201 } - case 4618 { rate := 1000000012039210912912518097 } - case 4619 { rate := 1000000012041380067913231248 } - case 4620 { rate := 1000000012043549074539859539 } - case 4621 { rate := 1000000012045717932812699686 } - case 4622 { rate := 1000000012047886642752044245 } - case 4623 { rate := 1000000012050055204378181605 } - case 4624 { rate := 1000000012052223617711395993 } - default { revert(0, 0) } - } - case 1 { // 4625-4649 - switch bps - case 4625 { rate := 1000000012054391882771967477 } - case 4626 { rate := 1000000012056559999580171966 } - case 4627 { rate := 1000000012058727968156281206 } - case 4628 { rate := 1000000012060895788520562788 } - case 4629 { rate := 1000000012063063460693280149 } - case 4630 { rate := 1000000012065230984694692566 } - case 4631 { rate := 1000000012067398360545055164 } - case 4632 { rate := 1000000012069565588264618915 } - case 4633 { rate := 1000000012071732667873630640 } - case 4634 { rate := 1000000012073899599392333007 } - case 4635 { rate := 1000000012076066382840964537 } - case 4636 { rate := 1000000012078233018239759599 } - case 4637 { rate := 1000000012080399505608948418 } - case 4638 { rate := 1000000012082565844968757072 } - case 4639 { rate := 1000000012084732036339407491 } - case 4640 { rate := 1000000012086898079741117465 } - case 4641 { rate := 1000000012089063975194100640 } - case 4642 { rate := 1000000012091229722718566519 } - case 4643 { rate := 1000000012093395322334720465 } - case 4644 { rate := 1000000012095560774062763701 } - case 4645 { rate := 1000000012097726077922893315 } - case 4646 { rate := 1000000012099891233935302252 } - case 4647 { rate := 1000000012102056242120179326 } - case 4648 { rate := 1000000012104221102497709214 } - case 4649 { rate := 1000000012106385815088072459 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4650-4699 - switch gt(bps, 4674) - case 0 { // 4650-4674 - switch bps - case 4650 { rate := 1000000012108550379911445472 } - case 4651 { rate := 1000000012110714796988000533 } - case 4652 { rate := 1000000012112879066337905789 } - case 4653 { rate := 1000000012115043187981325261 } - case 4654 { rate := 1000000012117207161938418839 } - case 4655 { rate := 1000000012119370988229342288 } - case 4656 { rate := 1000000012121534666874247247 } - case 4657 { rate := 1000000012123698197893281228 } - case 4658 { rate := 1000000012125861581306587623 } - case 4659 { rate := 1000000012128024817134305697 } - case 4660 { rate := 1000000012130187905396570598 } - case 4661 { rate := 1000000012132350846113513350 } - case 4662 { rate := 1000000012134513639305260860 } - case 4663 { rate := 1000000012136676284991935918 } - case 4664 { rate := 1000000012138838783193657193 } - case 4665 { rate := 1000000012141001133930539244 } - case 4666 { rate := 1000000012143163337222692509 } - case 4667 { rate := 1000000012145325393090223317 } - case 4668 { rate := 1000000012147487301553233883 } - case 4669 { rate := 1000000012149649062631822311 } - case 4670 { rate := 1000000012151810676346082594 } - case 4671 { rate := 1000000012153972142716104618 } - case 4672 { rate := 1000000012156133461761974158 } - case 4673 { rate := 1000000012158294633503772885 } - case 4674 { rate := 1000000012160455657961578363 } - default { revert(0, 0) } - } - case 1 { // 4675-4699 - switch bps - case 4675 { rate := 1000000012162616535155464050 } - case 4676 { rate := 1000000012164777265105499304 } - case 4677 { rate := 1000000012166937847831749378 } - case 4678 { rate := 1000000012169098283354275425 } - case 4679 { rate := 1000000012171258571693134496 } - case 4680 { rate := 1000000012173418712868379547 } - case 4681 { rate := 1000000012175578706900059431 } - case 4682 { rate := 1000000012177738553808218907 } - case 4683 { rate := 1000000012179898253612898639 } - case 4684 { rate := 1000000012182057806334135196 } - case 4685 { rate := 1000000012184217211991961053 } - case 4686 { rate := 1000000012186376470606404593 } - case 4687 { rate := 1000000012188535582197490106 } - case 4688 { rate := 1000000012190694546785237795 } - case 4689 { rate := 1000000012192853364389663774 } - case 4690 { rate := 1000000012195012035030780065 } - case 4691 { rate := 1000000012197170558728594608 } - case 4692 { rate := 1000000012199328935503111256 } - case 4693 { rate := 1000000012201487165374329775 } - case 4694 { rate := 1000000012203645248362245852 } - case 4695 { rate := 1000000012205803184486851087 } - case 4696 { rate := 1000000012207960973768133003 } - case 4697 { rate := 1000000012210118616226075039 } - case 4698 { rate := 1000000012212276111880656560 } - case 4699 { rate := 1000000012214433460751852848 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4700-4799 - switch gt(bps, 4749) - case 0 { // 4700-4749 - switch gt(bps, 4724) - case 0 { // 4700-4724 - switch bps - case 4700 { rate := 1000000012216590662859635112 } - case 4701 { rate := 1000000012218747718223970482 } - case 4702 { rate := 1000000012220904626864822019 } - case 4703 { rate := 1000000012223061388802148704 } - case 4704 { rate := 1000000012225218004055905450 } - case 4705 { rate := 1000000012227374472646043097 } - case 4706 { rate := 1000000012229530794592508416 } - case 4707 { rate := 1000000012231686969915244108 } - case 4708 { rate := 1000000012233842998634188809 } - case 4709 { rate := 1000000012235998880769277082 } - case 4710 { rate := 1000000012238154616340439431 } - case 4711 { rate := 1000000012240310205367602293 } - case 4712 { rate := 1000000012242465647870688040 } - case 4713 { rate := 1000000012244620943869614982 } - case 4714 { rate := 1000000012246776093384297371 } - case 4715 { rate := 1000000012248931096434645396 } - case 4716 { rate := 1000000012251085953040565187 } - case 4717 { rate := 1000000012253240663221958817 } - case 4718 { rate := 1000000012255395226998724301 } - case 4719 { rate := 1000000012257549644390755600 } - case 4720 { rate := 1000000012259703915417942619 } - case 4721 { rate := 1000000012261858040100171212 } - case 4722 { rate := 1000000012264012018457323175 } - case 4723 { rate := 1000000012266165850509276259 } - case 4724 { rate := 1000000012268319536275904161 } - default { revert(0, 0) } - } - case 1 { // 4725-4749 - switch bps - case 4725 { rate := 1000000012270473075777076530 } - case 4726 { rate := 1000000012272626469032658968 } - case 4727 { rate := 1000000012274779716062513028 } - case 4728 { rate := 1000000012276932816886496218 } - case 4729 { rate := 1000000012279085771524462002 } - case 4730 { rate := 1000000012281238579996259799 } - case 4731 { rate := 1000000012283391242321734988 } - case 4732 { rate := 1000000012285543758520728905 } - case 4733 { rate := 1000000012287696128613078844 } - case 4734 { rate := 1000000012289848352618618062 } - case 4735 { rate := 1000000012292000430557175778 } - case 4736 { rate := 1000000012294152362448577173 } - case 4737 { rate := 1000000012296304148312643392 } - case 4738 { rate := 1000000012298455788169191545 } - case 4739 { rate := 1000000012300607282038034711 } - case 4740 { rate := 1000000012302758629938981931 } - case 4741 { rate := 1000000012304909831891838220 } - case 4742 { rate := 1000000012307060887916404559 } - case 4743 { rate := 1000000012309211798032477901 } - case 4744 { rate := 1000000012311362562259851171 } - case 4745 { rate := 1000000012313513180618313265 } - case 4746 { rate := 1000000012315663653127649055 } - case 4747 { rate := 1000000012317813979807639387 } - case 4748 { rate := 1000000012319964160678061084 } - case 4749 { rate := 1000000012322114195758686945 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4750-4799 - switch gt(bps, 4774) - case 0 { // 4750-4774 - switch bps - case 4750 { rate := 1000000012324264085069285747 } - case 4751 { rate := 1000000012326413828629622247 } - case 4752 { rate := 1000000012328563426459457184 } - case 4753 { rate := 1000000012330712878578547277 } - case 4754 { rate := 1000000012332862185006645225 } - case 4755 { rate := 1000000012335011345763499718 } - case 4756 { rate := 1000000012337160360868855422 } - case 4757 { rate := 1000000012339309230342452997 } - case 4758 { rate := 1000000012341457954204029084 } - case 4759 { rate := 1000000012343606532473316314 } - case 4760 { rate := 1000000012345754965170043307 } - case 4761 { rate := 1000000012347903252313934676 } - case 4762 { rate := 1000000012350051393924711022 } - case 4763 { rate := 1000000012352199390022088940 } - case 4764 { rate := 1000000012354347240625781016 } - case 4765 { rate := 1000000012356494945755495834 } - case 4766 { rate := 1000000012358642505430937972 } - case 4767 { rate := 1000000012360789919671808004 } - case 4768 { rate := 1000000012362937188497802506 } - case 4769 { rate := 1000000012365084311928614047 } - case 4770 { rate := 1000000012367231289983931199 } - case 4771 { rate := 1000000012369378122683438536 } - case 4772 { rate := 1000000012371524810046816632 } - case 4773 { rate := 1000000012373671352093742067 } - case 4774 { rate := 1000000012375817748843887422 } - default { revert(0, 0) } - } - case 1 { // 4775-4799 - switch bps - case 4775 { rate := 1000000012377964000316921287 } - case 4776 { rate := 1000000012380110106532508255 } - case 4777 { rate := 1000000012382256067510308928 } - case 4778 { rate := 1000000012384401883269979920 } - case 4779 { rate := 1000000012386547553831173848 } - case 4780 { rate := 1000000012388693079213539345 } - case 4781 { rate := 1000000012390838459436721054 } - case 4782 { rate := 1000000012392983694520359633 } - case 4783 { rate := 1000000012395128784484091752 } - case 4784 { rate := 1000000012397273729347550096 } - case 4785 { rate := 1000000012399418529130363366 } - case 4786 { rate := 1000000012401563183852156283 } - case 4787 { rate := 1000000012403707693532549584 } - case 4788 { rate := 1000000012405852058191160026 } - case 4789 { rate := 1000000012407996277847600385 } - case 4790 { rate := 1000000012410140352521479464 } - case 4791 { rate := 1000000012412284282232402082 } - case 4792 { rate := 1000000012414428066999969084 } - case 4793 { rate := 1000000012416571706843777343 } - case 4794 { rate := 1000000012418715201783419755 } - case 4795 { rate := 1000000012420858551838485241 } - case 4796 { rate := 1000000012423001757028558755 } - case 4797 { rate := 1000000012425144817373221276 } - case 4798 { rate := 1000000012427287732892049817 } - case 4799 { rate := 1000000012429430503604617418 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates4800To5599.sol b/src/repositories/Rates4800To5599.sol deleted file mode 100644 index 8fb81f1..0000000 --- a/src/repositories/Rates4800To5599.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates4800To5599 { - uint256 constant public MIN = 4800; - uint256 constant public MAX = 5599; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 5199) - case 0 { // 4800-5199 - switch gt(bps, 4999) - case 0 { // 4800-4999 - switch gt(bps, 4899) - case 0 { // 4800-4899 - switch gt(bps, 4849) - case 0 { // 4800-4849 - switch gt(bps, 4824) - case 0 { // 4800-4824 - switch bps - case 4800 { rate := 1000000012431573129530493155 } - case 4801 { rate := 1000000012433715610689242134 } - case 4802 { rate := 1000000012435857947100425498 } - case 4803 { rate := 1000000012438000138783600426 } - case 4804 { rate := 1000000012440142185758320132 } - case 4805 { rate := 1000000012442284088044133868 } - case 4806 { rate := 1000000012444425845660586926 } - case 4807 { rate := 1000000012446567458627220637 } - case 4808 { rate := 1000000012448708926963572372 } - case 4809 { rate := 1000000012450850250689175545 } - case 4810 { rate := 1000000012452991429823559613 } - case 4811 { rate := 1000000012455132464386250078 } - case 4812 { rate := 1000000012457273354396768485 } - case 4813 { rate := 1000000012459414099874632428 } - case 4814 { rate := 1000000012461554700839355545 } - case 4815 { rate := 1000000012463695157310447527 } - case 4816 { rate := 1000000012465835469307414110 } - case 4817 { rate := 1000000012467975636849757081 } - case 4818 { rate := 1000000012470115659956974282 } - case 4819 { rate := 1000000012472255538648559605 } - case 4820 { rate := 1000000012474395272944002997 } - case 4821 { rate := 1000000012476534862862790458 } - case 4822 { rate := 1000000012478674308424404046 } - case 4823 { rate := 1000000012480813609648321873 } - case 4824 { rate := 1000000012482952766554018113 } - default { revert(0, 0) } - } - case 1 { // 4825-4849 - switch bps - case 4825 { rate := 1000000012485091779160962996 } - case 4826 { rate := 1000000012487230647488622814 } - case 4827 { rate := 1000000012489369371556459918 } - case 4828 { rate := 1000000012491507951383932723 } - case 4829 { rate := 1000000012493646386990495707 } - case 4830 { rate := 1000000012495784678395599413 } - case 4831 { rate := 1000000012497922825618690446 } - case 4832 { rate := 1000000012500060828679211483 } - case 4833 { rate := 1000000012502198687596601264 } - case 4834 { rate := 1000000012504336402390294600 } - case 4835 { rate := 1000000012506473973079722370 } - case 4836 { rate := 1000000012508611399684311526 } - case 4837 { rate := 1000000012510748682223485091 } - case 4838 { rate := 1000000012512885820716662158 } - case 4839 { rate := 1000000012515022815183257897 } - case 4840 { rate := 1000000012517159665642683553 } - case 4841 { rate := 1000000012519296372114346446 } - case 4842 { rate := 1000000012521432934617649973 } - case 4843 { rate := 1000000012523569353171993611 } - case 4844 { rate := 1000000012525705627796772912 } - case 4845 { rate := 1000000012527841758511379512 } - case 4846 { rate := 1000000012529977745335201128 } - case 4847 { rate := 1000000012532113588287621558 } - case 4848 { rate := 1000000012534249287388020684 } - case 4849 { rate := 1000000012536384842655774473 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4850-4899 - switch gt(bps, 4874) - case 0 { // 4850-4874 - switch bps - case 4850 { rate := 1000000012538520254110254976 } - case 4851 { rate := 1000000012540655521770830332 } - case 4852 { rate := 1000000012542790645656864768 } - case 4853 { rate := 1000000012544925625787718599 } - case 4854 { rate := 1000000012547060462182748227 } - case 4855 { rate := 1000000012549195154861306151 } - case 4856 { rate := 1000000012551329703842740957 } - case 4857 { rate := 1000000012553464109146397324 } - case 4858 { rate := 1000000012555598370791616028 } - case 4859 { rate := 1000000012557732488797733936 } - case 4860 { rate := 1000000012559866463184084017 } - case 4861 { rate := 1000000012562000293969995331 } - case 4862 { rate := 1000000012564133981174793037 } - case 4863 { rate := 1000000012566267524817798398 } - case 4864 { rate := 1000000012568400924918328770 } - case 4865 { rate := 1000000012570534181495697619 } - case 4866 { rate := 1000000012572667294569214506 } - case 4867 { rate := 1000000012574800264158185098 } - case 4868 { rate := 1000000012576933090281911168 } - case 4869 { rate := 1000000012579065772959690591 } - case 4870 { rate := 1000000012581198312210817352 } - case 4871 { rate := 1000000012583330708054581542 } - case 4872 { rate := 1000000012585462960510269361 } - case 4873 { rate := 1000000012587595069597163118 } - case 4874 { rate := 1000000012589727035334541233 } - default { revert(0, 0) } - } - case 1 { // 4875-4899 - switch bps - case 4875 { rate := 1000000012591858857741678240 } - case 4876 { rate := 1000000012593990536837844781 } - case 4877 { rate := 1000000012596122072642307617 } - case 4878 { rate := 1000000012598253465174329620 } - case 4879 { rate := 1000000012600384714453169781 } - case 4880 { rate := 1000000012602515820498083206 } - case 4881 { rate := 1000000012604646783328321121 } - case 4882 { rate := 1000000012606777602963130868 } - case 4883 { rate := 1000000012608908279421755911 } - case 4884 { rate := 1000000012611038812723435837 } - case 4885 { rate := 1000000012613169202887406351 } - case 4886 { rate := 1000000012615299449932899285 } - case 4887 { rate := 1000000012617429553879142594 } - case 4888 { rate := 1000000012619559514745360358 } - case 4889 { rate := 1000000012621689332550772783 } - case 4890 { rate := 1000000012623819007314596205 } - case 4891 { rate := 1000000012625948539056043084 } - case 4892 { rate := 1000000012628077927794322013 } - case 4893 { rate := 1000000012630207173548637715 } - case 4894 { rate := 1000000012632336276338191046 } - case 4895 { rate := 1000000012634465236182178989 } - case 4896 { rate := 1000000012636594053099794667 } - case 4897 { rate := 1000000012638722727110227335 } - case 4898 { rate := 1000000012640851258232662384 } - case 4899 { rate := 1000000012642979646486281341 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4900-4999 - switch gt(bps, 4949) - case 0 { // 4900-4949 - switch gt(bps, 4924) - case 0 { // 4900-4924 - switch bps - case 4900 { rate := 1000000012645107891890261872 } - case 4901 { rate := 1000000012647235994463777781 } - case 4902 { rate := 1000000012649363954225999014 } - case 4903 { rate := 1000000012651491771196091654 } - case 4904 { rate := 1000000012653619445393217929 } - case 4905 { rate := 1000000012655746976836536210 } - case 4906 { rate := 1000000012657874365545201009 } - case 4907 { rate := 1000000012660001611538362988 } - case 4908 { rate := 1000000012662128714835168951 } - case 4909 { rate := 1000000012664255675454761851 } - case 4910 { rate := 1000000012666382493416280789 } - case 4911 { rate := 1000000012668509168738861013 } - case 4912 { rate := 1000000012670635701441633926 } - case 4913 { rate := 1000000012672762091543727077 } - case 4914 { rate := 1000000012674888339064264171 } - case 4915 { rate := 1000000012677014444022365063 } - case 4916 { rate := 1000000012679140406437145768 } - case 4917 { rate := 1000000012681266226327718450 } - case 4918 { rate := 1000000012683391903713191434 } - case 4919 { rate := 1000000012685517438612669200 } - case 4920 { rate := 1000000012687642831045252386 } - case 4921 { rate := 1000000012689768081030037793 } - case 4922 { rate := 1000000012691893188586118377 } - case 4923 { rate := 1000000012694018153732583262 } - case 4924 { rate := 1000000012696142976488517730 } - default { revert(0, 0) } - } - case 1 { // 4925-4949 - switch bps - case 4925 { rate := 1000000012698267656873003228 } - case 4926 { rate := 1000000012700392194905117369 } - case 4927 { rate := 1000000012702516590603933928 } - case 4928 { rate := 1000000012704640843988522851 } - case 4929 { rate := 1000000012706764955077950249 } - case 4930 { rate := 1000000012708888923891278404 } - case 4931 { rate := 1000000012711012750447565765 } - case 4932 { rate := 1000000012713136434765866954 } - case 4933 { rate := 1000000012715259976865232764 } - case 4934 { rate := 1000000012717383376764710160 } - case 4935 { rate := 1000000012719506634483342283 } - case 4936 { rate := 1000000012721629750040168448 } - case 4937 { rate := 1000000012723752723454224145 } - case 4938 { rate := 1000000012725875554744541042 } - case 4939 { rate := 1000000012727998243930146984 } - case 4940 { rate := 1000000012730120791030065998 } - case 4941 { rate := 1000000012732243196063318286 } - case 4942 { rate := 1000000012734365459048920235 } - case 4943 { rate := 1000000012736487580005884415 } - case 4944 { rate := 1000000012738609558953219573 } - case 4945 { rate := 1000000012740731395909930647 } - case 4946 { rate := 1000000012742853090895018757 } - case 4947 { rate := 1000000012744974643927481210 } - case 4948 { rate := 1000000012747096055026311497 } - case 4949 { rate := 1000000012749217324210499303 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 4950-4999 - switch gt(bps, 4974) - case 0 { // 4950-4974 - switch bps - case 4950 { rate := 1000000012751338451499030498 } - case 4951 { rate := 1000000012753459436910887143 } - case 4952 { rate := 1000000012755580280465047490 } - case 4953 { rate := 1000000012757700982180485986 } - case 4954 { rate := 1000000012759821542076173268 } - case 4955 { rate := 1000000012761941960171076169 } - case 4956 { rate := 1000000012764062236484157718 } - case 4957 { rate := 1000000012766182371034377136 } - case 4958 { rate := 1000000012768302363840689849 } - case 4959 { rate := 1000000012770422214922047473 } - case 4960 { rate := 1000000012772541924297397831 } - case 4961 { rate := 1000000012774661491985684940 } - case 4962 { rate := 1000000012776780918005849024 } - case 4963 { rate := 1000000012778900202376826505 } - case 4964 { rate := 1000000012781019345117550012 } - case 4965 { rate := 1000000012783138346246948375 } - case 4966 { rate := 1000000012785257205783946632 } - case 4967 { rate := 1000000012787375923747466027 } - case 4968 { rate := 1000000012789494500156424011 } - case 4969 { rate := 1000000012791612935029734245 } - case 4970 { rate := 1000000012793731228386306598 } - case 4971 { rate := 1000000012795849380245047149 } - case 4972 { rate := 1000000012797967390624858191 } - case 4973 { rate := 1000000012800085259544638227 } - case 4974 { rate := 1000000012802202987023281977 } - default { revert(0, 0) } - } - case 1 { // 4975-4999 - switch bps - case 4975 { rate := 1000000012804320573079680371 } - case 4976 { rate := 1000000012806438017732720558 } - case 4977 { rate := 1000000012808555321001285904 } - case 4978 { rate := 1000000012810672482904255989 } - case 4979 { rate := 1000000012812789503460506616 } - case 4980 { rate := 1000000012814906382688909806 } - case 4981 { rate := 1000000012817023120608333799 } - case 4982 { rate := 1000000012819139717237643058 } - case 4983 { rate := 1000000012821256172595698271 } - case 4984 { rate := 1000000012823372486701356345 } - case 4985 { rate := 1000000012825488659573470415 } - case 4986 { rate := 1000000012827604691230889842 } - case 4987 { rate := 1000000012829720581692460212 } - case 4988 { rate := 1000000012831836330977023339 } - case 4989 { rate := 1000000012833951939103417266 } - case 4990 { rate := 1000000012836067406090476267 } - case 4991 { rate := 1000000012838182731957030847 } - case 4992 { rate := 1000000012840297916721907738 } - case 4993 { rate := 1000000012842412960403929910 } - case 4994 { rate := 1000000012844527863021916565 } - case 4995 { rate := 1000000012846642624594683140 } - case 4996 { rate := 1000000012848757245141041307 } - case 4997 { rate := 1000000012850871724679798976 } - case 4998 { rate := 1000000012852986063229760294 } - case 4999 { rate := 1000000012855100260809725646 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5000-5199 - switch gt(bps, 5099) - case 0 { // 5000-5099 - switch gt(bps, 5049) - case 0 { // 5000-5049 - switch gt(bps, 5024) - case 0 { // 5000-5024 - switch bps - case 5000 { rate := 1000000012857214317438491659 } - case 5001 { rate := 1000000012859328233134851198 } - case 5002 { rate := 1000000012861442007917593374 } - case 5003 { rate := 1000000012863555641805503536 } - case 5004 { rate := 1000000012865669134817363279 } - case 5005 { rate := 1000000012867782486971950443 } - case 5006 { rate := 1000000012869895698288039115 } - case 5007 { rate := 1000000012872008768784399625 } - case 5008 { rate := 1000000012874121698479798555 } - case 5009 { rate := 1000000012876234487392998733 } - case 5010 { rate := 1000000012878347135542759238 } - case 5011 { rate := 1000000012880459642947835401 } - case 5012 { rate := 1000000012882572009626978801 } - case 5013 { rate := 1000000012884684235598937274 } - case 5014 { rate := 1000000012886796320882454907 } - case 5015 { rate := 1000000012888908265496272044 } - case 5016 { rate := 1000000012891020069459125282 } - case 5017 { rate := 1000000012893131732789747478 } - case 5018 { rate := 1000000012895243255506867744 } - case 5019 { rate := 1000000012897354637629211454 } - case 5020 { rate := 1000000012899465879175500237 } - case 5021 { rate := 1000000012901576980164451988 } - case 5022 { rate := 1000000012903687940614780860 } - case 5023 { rate := 1000000012905798760545197270 } - case 5024 { rate := 1000000012907909439974407900 } - default { revert(0, 0) } - } - case 1 { // 5025-5049 - switch bps - case 5025 { rate := 1000000012910019978921115695 } - case 5026 { rate := 1000000012912130377404019867 } - case 5027 { rate := 1000000012914240635441815894 } - case 5028 { rate := 1000000012916350753053195521 } - case 5029 { rate := 1000000012918460730256846763 } - case 5030 { rate := 1000000012920570567071453907 } - case 5031 { rate := 1000000012922680263515697504 } - case 5032 { rate := 1000000012924789819608254383 } - case 5033 { rate := 1000000012926899235367797644 } - case 5034 { rate := 1000000012929008510812996659 } - case 5035 { rate := 1000000012931117645962517078 } - case 5036 { rate := 1000000012933226640835020822 } - case 5037 { rate := 1000000012935335495449166093 } - case 5038 { rate := 1000000012937444209823607369 } - case 5039 { rate := 1000000012939552783976995406 } - case 5040 { rate := 1000000012941661217927977241 } - case 5041 { rate := 1000000012943769511695196190 } - case 5042 { rate := 1000000012945877665297291852 } - case 5043 { rate := 1000000012947985678752900108 } - case 5044 { rate := 1000000012950093552080653122 } - case 5045 { rate := 1000000012952201285299179347 } - case 5046 { rate := 1000000012954308878427103514 } - case 5047 { rate := 1000000012956416331483046645 } - case 5048 { rate := 1000000012958523644485626051 } - case 5049 { rate := 1000000012960630817453455327 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5050-5099 - switch gt(bps, 5074) - case 0 { // 5050-5074 - switch bps - case 5050 { rate := 1000000012962737850405144363 } - case 5051 { rate := 1000000012964844743359299334 } - case 5052 { rate := 1000000012966951496334522711 } - case 5053 { rate := 1000000012969058109349413254 } - case 5054 { rate := 1000000012971164582422566020 } - case 5055 { rate := 1000000012973270915572572357 } - case 5056 { rate := 1000000012975377108818019910 } - case 5057 { rate := 1000000012977483162177492621 } - case 5058 { rate := 1000000012979589075669570729 } - case 5059 { rate := 1000000012981694849312830772 } - case 5060 { rate := 1000000012983800483125845583 } - case 5061 { rate := 1000000012985905977127184302 } - case 5062 { rate := 1000000012988011331335412367 } - case 5063 { rate := 1000000012990116545769091518 } - case 5064 { rate := 1000000012992221620446779799 } - case 5065 { rate := 1000000012994326555387031557 } - case 5066 { rate := 1000000012996431350608397447 } - case 5067 { rate := 1000000012998536006129424429 } - case 5068 { rate := 1000000013000640521968655768 } - case 5069 { rate := 1000000013002744898144631040 } - case 5070 { rate := 1000000013004849134675886130 } - case 5071 { rate := 1000000013006953231580953231 } - case 5072 { rate := 1000000013009057188878360849 } - case 5073 { rate := 1000000013011161006586633804 } - case 5074 { rate := 1000000013013264684724293223 } - default { revert(0, 0) } - } - case 1 { // 5075-5099 - switch bps - case 5075 { rate := 1000000013015368223309856554 } - case 5076 { rate := 1000000013017471622361837555 } - case 5077 { rate := 1000000013019574881898746303 } - case 5078 { rate := 1000000013021678001939089190 } - case 5079 { rate := 1000000013023780982501368928 } - case 5080 { rate := 1000000013025883823604084547 } - case 5081 { rate := 1000000013027986525265731396 } - case 5082 { rate := 1000000013030089087504801146 } - case 5083 { rate := 1000000013032191510339781792 } - case 5084 { rate := 1000000013034293793789157646 } - case 5085 { rate := 1000000013036395937871409348 } - case 5086 { rate := 1000000013038497942605013865 } - case 5087 { rate := 1000000013040599808008444486 } - case 5088 { rate := 1000000013042701534100170826 } - case 5089 { rate := 1000000013044803120898658830 } - case 5090 { rate := 1000000013046904568422370773 } - case 5091 { rate := 1000000013049005876689765257 } - case 5092 { rate := 1000000013051107045719297215 } - case 5093 { rate := 1000000013053208075529417914 } - case 5094 { rate := 1000000013055308966138574949 } - case 5095 { rate := 1000000013057409717565212254 } - case 5096 { rate := 1000000013059510329827770095 } - case 5097 { rate := 1000000013061610802944685072 } - case 5098 { rate := 1000000013063711136934390123 } - case 5099 { rate := 1000000013065811331815314524 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5100-5199 - switch gt(bps, 5149) - case 0 { // 5100-5149 - switch gt(bps, 5124) - case 0 { // 5100-5124 - switch bps - case 5100 { rate := 1000000013067911387605883890 } - case 5101 { rate := 1000000013070011304324520173 } - case 5102 { rate := 1000000013072111081989641667 } - case 5103 { rate := 1000000013074210720619663007 } - case 5104 { rate := 1000000013076310220232995171 } - case 5105 { rate := 1000000013078409580848045479 } - case 5106 { rate := 1000000013080508802483217595 } - case 5107 { rate := 1000000013082607885156911531 } - case 5108 { rate := 1000000013084706828887523642 } - case 5109 { rate := 1000000013086805633693446631 } - case 5110 { rate := 1000000013088904299593069551 } - case 5111 { rate := 1000000013091002826604777801 } - case 5112 { rate := 1000000013093101214746953133 } - case 5113 { rate := 1000000013095199464037973648 } - case 5114 { rate := 1000000013097297574496213800 } - case 5115 { rate := 1000000013099395546140044395 } - case 5116 { rate := 1000000013101493378987832595 } - case 5117 { rate := 1000000013103591073057941913 } - case 5118 { rate := 1000000013105688628368732223 } - case 5119 { rate := 1000000013107786044938559751 } - case 5120 { rate := 1000000013109883322785777084 } - case 5121 { rate := 1000000013111980461928733165 } - case 5122 { rate := 1000000013114077462385773300 } - case 5123 { rate := 1000000013116174324175239154 } - case 5124 { rate := 1000000013118271047315468752 } - default { revert(0, 0) } - } - case 1 { // 5125-5149 - switch bps - case 5125 { rate := 1000000013120367631824796485 } - case 5126 { rate := 1000000013122464077721553103 } - case 5127 { rate := 1000000013124560385024065726 } - case 5128 { rate := 1000000013126656553750657835 } - case 5129 { rate := 1000000013128752583919649280 } - case 5130 { rate := 1000000013130848475549356277 } - case 5131 { rate := 1000000013132944228658091410 } - case 5132 { rate := 1000000013135039843264163635 } - case 5133 { rate := 1000000013137135319385878275 } - case 5134 { rate := 1000000013139230657041537026 } - case 5135 { rate := 1000000013141325856249437956 } - case 5136 { rate := 1000000013143420917027875507 } - case 5137 { rate := 1000000013145515839395140491 } - case 5138 { rate := 1000000013147610623369520102 } - case 5139 { rate := 1000000013149705268969297904 } - case 5140 { rate := 1000000013151799776212753840 } - case 5141 { rate := 1000000013153894145118164231 } - case 5142 { rate := 1000000013155988375703801779 } - case 5143 { rate := 1000000013158082467987935562 } - case 5144 { rate := 1000000013160176421988831041 } - case 5145 { rate := 1000000013162270237724750059 } - case 5146 { rate := 1000000013164363915213950840 } - case 5147 { rate := 1000000013166457454474687994 } - case 5148 { rate := 1000000013168550855525212514 } - case 5149 { rate := 1000000013170644118383771778 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5150-5199 - switch gt(bps, 5174) - case 0 { // 5150-5174 - switch bps - case 5150 { rate := 1000000013172737243068609553 } - case 5151 { rate := 1000000013174830229597965992 } - case 5152 { rate := 1000000013176923077990077635 } - case 5153 { rate := 1000000013179015788263177415 } - case 5154 { rate := 1000000013181108360435494653 } - case 5155 { rate := 1000000013183200794525255059 } - case 5156 { rate := 1000000013185293090550680741 } - case 5157 { rate := 1000000013187385248529990196 } - case 5158 { rate := 1000000013189477268481398315 } - case 5159 { rate := 1000000013191569150423116386 } - case 5160 { rate := 1000000013193660894373352093 } - case 5161 { rate := 1000000013195752500350309515 } - case 5162 { rate := 1000000013197843968372189132 } - case 5163 { rate := 1000000013199935298457187821 } - case 5164 { rate := 1000000013202026490623498857 } - case 5165 { rate := 1000000013204117544889311921 } - case 5166 { rate := 1000000013206208461272813091 } - case 5167 { rate := 1000000013208299239792184850 } - case 5168 { rate := 1000000013210389880465606084 } - case 5169 { rate := 1000000013212480383311252082 } - case 5170 { rate := 1000000013214570748347294544 } - case 5171 { rate := 1000000013216660975591901569 } - case 5172 { rate := 1000000013218751065063237670 } - case 5173 { rate := 1000000013220841016779463763 } - case 5174 { rate := 1000000013222930830758737177 } - default { revert(0, 0) } - } - case 1 { // 5175-5199 - switch bps - case 5175 { rate := 1000000013225020507019211652 } - case 5176 { rate := 1000000013227110045579037336 } - case 5177 { rate := 1000000013229199446456360791 } - case 5178 { rate := 1000000013231288709669324991 } - case 5179 { rate := 1000000013233377835236069326 } - case 5180 { rate := 1000000013235466823174729599 } - case 5181 { rate := 1000000013237555673503438031 } - case 5182 { rate := 1000000013239644386240323257 } - case 5183 { rate := 1000000013241732961403510334 } - case 5184 { rate := 1000000013243821399011120734 } - case 5185 { rate := 1000000013245909699081272350 } - case 5186 { rate := 1000000013247997861632079496 } - case 5187 { rate := 1000000013250085886681652909 } - case 5188 { rate := 1000000013252173774248099746 } - case 5189 { rate := 1000000013254261524349523588 } - case 5190 { rate := 1000000013256349137004024442 } - case 5191 { rate := 1000000013258436612229698739 } - case 5192 { rate := 1000000013260523950044639336 } - case 5193 { rate := 1000000013262611150466935520 } - case 5194 { rate := 1000000013264698213514673002 } - case 5195 { rate := 1000000013266785139205933927 } - case 5196 { rate := 1000000013268871927558796866 } - case 5197 { rate := 1000000013270958578591336822 } - case 5198 { rate := 1000000013273045092321625231 } - case 5199 { rate := 1000000013275131468767729963 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5200-5599 - switch gt(bps, 5399) - case 0 { // 5200-5399 - switch gt(bps, 5299) - case 0 { // 5200-5299 - switch gt(bps, 5249) - case 0 { // 5200-5249 - switch gt(bps, 5224) - case 0 { // 5200-5224 - switch bps - case 5200 { rate := 1000000013277217707947715318 } - case 5201 { rate := 1000000013279303809879642035 } - case 5202 { rate := 1000000013281389774581567286 } - case 5203 { rate := 1000000013283475602071544681 } - case 5204 { rate := 1000000013285561292367624266 } - case 5205 { rate := 1000000013287646845487852528 } - case 5206 { rate := 1000000013289732261450272392 } - case 5207 { rate := 1000000013291817540272923222 } - case 5208 { rate := 1000000013293902681973840827 } - case 5209 { rate := 1000000013295987686571057456 } - case 5210 { rate := 1000000013298072554082601799 } - case 5211 { rate := 1000000013300157284526498996 } - case 5212 { rate := 1000000013302241877920770626 } - case 5213 { rate := 1000000013304326334283434719 } - case 5214 { rate := 1000000013306410653632505749 } - case 5215 { rate := 1000000013308494835985994637 } - case 5216 { rate := 1000000013310578881361908756 } - case 5217 { rate := 1000000013312662789778251927 } - case 5218 { rate := 1000000013314746561253024422 } - case 5219 { rate := 1000000013316830195804222964 } - case 5220 { rate := 1000000013318913693449840730 } - case 5221 { rate := 1000000013320997054207867349 } - case 5222 { rate := 1000000013323080278096288904 } - case 5223 { rate := 1000000013325163365133087937 } - case 5224 { rate := 1000000013327246315336243441 } - default { revert(0, 0) } - } - case 1 { // 5225-5249 - switch bps - case 5225 { rate := 1000000013329329128723730871 } - case 5226 { rate := 1000000013331411805313522137 } - case 5227 { rate := 1000000013333494345123585609 } - case 5228 { rate := 1000000013335576748171886118 } - case 5229 { rate := 1000000013337659014476384955 } - case 5230 { rate := 1000000013339741144055039872 } - case 5231 { rate := 1000000013341823136925805086 } - case 5232 { rate := 1000000013343904993106631276 } - case 5233 { rate := 1000000013345986712615465587 } - case 5234 { rate := 1000000013348068295470251626 } - case 5235 { rate := 1000000013350149741688929473 } - case 5236 { rate := 1000000013352231051289435670 } - case 5237 { rate := 1000000013354312224289703229 } - case 5238 { rate := 1000000013356393260707661631 } - case 5239 { rate := 1000000013358474160561236828 } - case 5240 { rate := 1000000013360554923868351244 } - case 5241 { rate := 1000000013362635550646923773 } - case 5242 { rate := 1000000013364716040914869783 } - case 5243 { rate := 1000000013366796394690101115 } - case 5244 { rate := 1000000013368876611990526086 } - case 5245 { rate := 1000000013370956692834049490 } - case 5246 { rate := 1000000013373036637238572595 } - case 5247 { rate := 1000000013375116445221993147 } - case 5248 { rate := 1000000013377196116802205372 } - case 5249 { rate := 1000000013379275651997099976 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5250-5299 - switch gt(bps, 5274) - case 0 { // 5250-5274 - switch bps - case 5250 { rate := 1000000013381355050824564143 } - case 5251 { rate := 1000000013383434313302481540 } - case 5252 { rate := 1000000013385513439448732314 } - case 5253 { rate := 1000000013387592429281193100 } - case 5254 { rate := 1000000013389671282817737012 } - case 5255 { rate := 1000000013391750000076233652 } - case 5256 { rate := 1000000013393828581074549107 } - case 5257 { rate := 1000000013395907025830545951 } - case 5258 { rate := 1000000013397985334362083244 } - case 5259 { rate := 1000000013400063506687016538 } - case 5260 { rate := 1000000013402141542823197873 } - case 5261 { rate := 1000000013404219442788475779 } - case 5262 { rate := 1000000013406297206600695278 } - case 5263 { rate := 1000000013408374834277697885 } - case 5264 { rate := 1000000013410452325837321606 } - case 5265 { rate := 1000000013412529681297400945 } - case 5266 { rate := 1000000013414606900675766898 } - case 5267 { rate := 1000000013416683983990246957 } - case 5268 { rate := 1000000013418760931258665113 } - case 5269 { rate := 1000000013420837742498841855 } - case 5270 { rate := 1000000013422914417728594168 } - case 5271 { rate := 1000000013424990956965735539 } - case 5272 { rate := 1000000013427067360228075956 } - case 5273 { rate := 1000000013429143627533421906 } - case 5274 { rate := 1000000013431219758899576381 } - default { revert(0, 0) } - } - case 1 { // 5275-5299 - switch bps - case 5275 { rate := 1000000013433295754344338876 } - case 5276 { rate := 1000000013435371613885505389 } - case 5277 { rate := 1000000013437447337540868424 } - case 5278 { rate := 1000000013439522925328216993 } - case 5279 { rate := 1000000013441598377265336611 } - case 5280 { rate := 1000000013443673693370009304 } - case 5281 { rate := 1000000013445748873660013605 } - case 5282 { rate := 1000000013447823918153124560 } - case 5283 { rate := 1000000013449898826867113722 } - case 5284 { rate := 1000000013451973599819749157 } - case 5285 { rate := 1000000013454048237028795446 } - case 5286 { rate := 1000000013456122738512013678 } - case 5287 { rate := 1000000013458197104287161462 } - case 5288 { rate := 1000000013460271334371992918 } - case 5289 { rate := 1000000013462345428784258685 } - case 5290 { rate := 1000000013464419387541705919 } - case 5291 { rate := 1000000013466493210662078291 } - case 5292 { rate := 1000000013468566898163115994 } - case 5293 { rate := 1000000013470640450062555739 } - case 5294 { rate := 1000000013472713866378130761 } - case 5295 { rate := 1000000013474787147127570811 } - case 5296 { rate := 1000000013476860292328602168 } - case 5297 { rate := 1000000013478933301998947631 } - case 5298 { rate := 1000000013481006176156326525 } - case 5299 { rate := 1000000013483078914818454700 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5300-5399 - switch gt(bps, 5349) - case 0 { // 5300-5349 - switch gt(bps, 5324) - case 0 { // 5300-5324 - switch bps - case 5300 { rate := 1000000013485151518003044532 } - case 5301 { rate := 1000000013487223985727804923 } - case 5302 { rate := 1000000013489296318010441307 } - case 5303 { rate := 1000000013491368514868655641 } - case 5304 { rate := 1000000013493440576320146417 } - case 5305 { rate := 1000000013495512502382608654 } - case 5306 { rate := 1000000013497584293073733906 } - case 5307 { rate := 1000000013499655948411210256 } - case 5308 { rate := 1000000013501727468412722324 } - case 5309 { rate := 1000000013503798853095951261 } - case 5310 { rate := 1000000013505870102478574756 } - case 5311 { rate := 1000000013507941216578267032 } - case 5312 { rate := 1000000013510012195412698851 } - case 5313 { rate := 1000000013512083038999537512 } - case 5314 { rate := 1000000013514153747356446852 } - case 5315 { rate := 1000000013516224320501087249 } - case 5316 { rate := 1000000013518294758451115623 } - case 5317 { rate := 1000000013520365061224185433 } - case 5318 { rate := 1000000013522435228837946681 } - case 5319 { rate := 1000000013524505261310045913 } - case 5320 { rate := 1000000013526575158658126219 } - case 5321 { rate := 1000000013528644920899827235 } - case 5322 { rate := 1000000013530714548052785142 } - case 5323 { rate := 1000000013532784040134632670 } - case 5324 { rate := 1000000013534853397162999093 } - default { revert(0, 0) } - } - case 1 { // 5325-5349 - switch bps - case 5325 { rate := 1000000013536922619155510237 } - case 5326 { rate := 1000000013538991706129788478 } - case 5327 { rate := 1000000013541060658103452740 } - case 5328 { rate := 1000000013543129475094118502 } - case 5329 { rate := 1000000013545198157119397791 } - case 5330 { rate := 1000000013547266704196899191 } - case 5331 { rate := 1000000013549335116344227839 } - case 5332 { rate := 1000000013551403393578985427 } - case 5333 { rate := 1000000013553471535918770203 } - case 5334 { rate := 1000000013555539543381176971 } - case 5335 { rate := 1000000013557607415983797096 } - case 5336 { rate := 1000000013559675153744218497 } - case 5337 { rate := 1000000013561742756680025656 } - case 5338 { rate := 1000000013563810224808799615 } - case 5339 { rate := 1000000013565877558148117977 } - case 5340 { rate := 1000000013567944756715554906 } - case 5341 { rate := 1000000013570011820528681131 } - case 5342 { rate := 1000000013572078749605063945 } - case 5343 { rate := 1000000013574145543962267205 } - case 5344 { rate := 1000000013576212203617851334 } - case 5345 { rate := 1000000013578278728589373323 } - case 5346 { rate := 1000000013580345118894386729 } - case 5347 { rate := 1000000013582411374550441678 } - case 5348 { rate := 1000000013584477495575084867 } - case 5349 { rate := 1000000013586543481985859560 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5350-5399 - switch gt(bps, 5374) - case 0 { // 5350-5374 - switch bps - case 5350 { rate := 1000000013588609333800305597 } - case 5351 { rate := 1000000013590675051035959386 } - case 5352 { rate := 1000000013592740633710353909 } - case 5353 { rate := 1000000013594806081841018723 } - case 5354 { rate := 1000000013596871395445479960 } - case 5355 { rate := 1000000013598936574541260325 } - case 5356 { rate := 1000000013601001619145879103 } - case 5357 { rate := 1000000013603066529276852154 } - case 5358 { rate := 1000000013605131304951691920 } - case 5359 { rate := 1000000013607195946187907415 } - case 5360 { rate := 1000000013609260453003004241 } - case 5361 { rate := 1000000013611324825414484577 } - case 5362 { rate := 1000000013613389063439847186 } - case 5363 { rate := 1000000013615453167096587411 } - case 5364 { rate := 1000000013617517136402197181 } - case 5365 { rate := 1000000013619580971374165008 } - case 5366 { rate := 1000000013621644672029975992 } - case 5367 { rate := 1000000013623708238387111817 } - case 5368 { rate := 1000000013625771670463050755 } - case 5369 { rate := 1000000013627834968275267666 } - case 5370 { rate := 1000000013629898131841234000 } - case 5371 { rate := 1000000013631961161178417796 } - case 5372 { rate := 1000000013634024056304283684 } - case 5373 { rate := 1000000013636086817236292885 } - case 5374 { rate := 1000000013638149443991903215 } - default { revert(0, 0) } - } - case 1 { // 5375-5399 - switch bps - case 5375 { rate := 1000000013640211936588569081 } - case 5376 { rate := 1000000013642274295043741485 } - case 5377 { rate := 1000000013644336519374868025 } - case 5378 { rate := 1000000013646398609599392894 } - case 5379 { rate := 1000000013648460565734756883 } - case 5380 { rate := 1000000013650522387798397382 } - case 5381 { rate := 1000000013652584075807748376 } - case 5382 { rate := 1000000013654645629780240453 } - case 5383 { rate := 1000000013656707049733300801 } - case 5384 { rate := 1000000013658768335684353209 } - case 5385 { rate := 1000000013660829487650818068 } - case 5386 { rate := 1000000013662890505650112373 } - case 5387 { rate := 1000000013664951389699649722 } - case 5388 { rate := 1000000013667012139816840321 } - case 5389 { rate := 1000000013669072756019090977 } - case 5390 { rate := 1000000013671133238323805108 } - case 5391 { rate := 1000000013673193586748382737 } - case 5392 { rate := 1000000013675253801310220496 } - case 5393 { rate := 1000000013677313882026711628 } - case 5394 { rate := 1000000013679373828915245986 } - case 5395 { rate := 1000000013681433641993210032 } - case 5396 { rate := 1000000013683493321277986841 } - case 5397 { rate := 1000000013685552866786956102 } - case 5398 { rate := 1000000013687612278537494116 } - case 5399 { rate := 1000000013689671556546973802 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5400-5599 - switch gt(bps, 5499) - case 0 { // 5400-5499 - switch gt(bps, 5449) - case 0 { // 5400-5449 - switch gt(bps, 5424) - case 0 { // 5400-5424 - switch bps - case 5400 { rate := 1000000013691730700832764691 } - case 5401 { rate := 1000000013693789711412232932 } - case 5402 { rate := 1000000013695848588302741289 } - case 5403 { rate := 1000000013697907331521649149 } - case 5404 { rate := 1000000013699965941086312515 } - case 5405 { rate := 1000000013702024417014084009 } - case 5406 { rate := 1000000013704082759322312876 } - case 5407 { rate := 1000000013706140968028344981 } - case 5408 { rate := 1000000013708199043149522812 } - case 5409 { rate := 1000000013710256984703185483 } - case 5410 { rate := 1000000013712314792706668728 } - case 5411 { rate := 1000000013714372467177304910 } - case 5412 { rate := 1000000013716430008132423015 } - case 5413 { rate := 1000000013718487415589348659 } - case 5414 { rate := 1000000013720544689565404082 } - case 5415 { rate := 1000000013722601830077908157 } - case 5416 { rate := 1000000013724658837144176384 } - case 5417 { rate := 1000000013726715710781520893 } - case 5418 { rate := 1000000013728772451007250448 } - case 5419 { rate := 1000000013730829057838670442 } - case 5420 { rate := 1000000013732885531293082904 } - case 5421 { rate := 1000000013734941871387786495 } - case 5422 { rate := 1000000013736998078140076511 } - case 5423 { rate := 1000000013739054151567244885 } - case 5424 { rate := 1000000013741110091686580185 } - default { revert(0, 0) } - } - case 1 { // 5425-5449 - switch bps - case 5425 { rate := 1000000013743165898515367617 } - case 5426 { rate := 1000000013745221572070889027 } - case 5427 { rate := 1000000013747277112370422896 } - case 5428 { rate := 1000000013749332519431244349 } - case 5429 { rate := 1000000013751387793270625152 } - case 5430 { rate := 1000000013753442933905833710 } - case 5431 { rate := 1000000013755497941354135072 } - case 5432 { rate := 1000000013757552815632790932 } - case 5433 { rate := 1000000013759607556759059626 } - case 5434 { rate := 1000000013761662164750196136 } - case 5435 { rate := 1000000013763716639623452091 } - case 5436 { rate := 1000000013765770981396075767 } - case 5437 { rate := 1000000013767825190085312088 } - case 5438 { rate := 1000000013769879265708402624 } - case 5439 { rate := 1000000013771933208282585599 } - case 5440 { rate := 1000000013773987017825095883 } - case 5441 { rate := 1000000013776040694353165002 } - case 5442 { rate := 1000000013778094237884021131 } - case 5443 { rate := 1000000013780147648434889099 } - case 5444 { rate := 1000000013782200926022990388 } - case 5445 { rate := 1000000013784254070665543138 } - case 5446 { rate := 1000000013786307082379762141 } - case 5447 { rate := 1000000013788359961182858847 } - case 5448 { rate := 1000000013790412707092041364 } - case 5449 { rate := 1000000013792465320124514458 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5450-5499 - switch gt(bps, 5474) - case 0 { // 5450-5474 - switch bps - case 5450 { rate := 1000000013794517800297479554 } - case 5451 { rate := 1000000013796570147628134736 } - case 5452 { rate := 1000000013798622362133674751 } - case 5453 { rate := 1000000013800674443831291006 } - case 5454 { rate := 1000000013802726392738171571 } - case 5455 { rate := 1000000013804778208871501181 } - case 5456 { rate := 1000000013806829892248461232 } - case 5457 { rate := 1000000013808881442886229789 } - case 5458 { rate := 1000000013810932860801981581 } - case 5459 { rate := 1000000013812984146012888004 } - case 5460 { rate := 1000000013815035298536117122 } - case 5461 { rate := 1000000013817086318388833668 } - case 5462 { rate := 1000000013819137205588199044 } - case 5463 { rate := 1000000013821187960151371324 } - case 5464 { rate := 1000000013823238582095505250 } - case 5465 { rate := 1000000013825289071437752239 } - case 5466 { rate := 1000000013827339428195260380 } - case 5467 { rate := 1000000013829389652385174435 } - case 5468 { rate := 1000000013831439744024635842 } - case 5469 { rate := 1000000013833489703130782714 } - case 5470 { rate := 1000000013835539529720749841 } - case 5471 { rate := 1000000013837589223811668689 } - case 5472 { rate := 1000000013839638785420667403 } - case 5473 { rate := 1000000013841688214564870807 } - case 5474 { rate := 1000000013843737511261400404 } - default { revert(0, 0) } - } - case 1 { // 5475-5499 - switch bps - case 5475 { rate := 1000000013845786675527374380 } - case 5476 { rate := 1000000013847835707379907599 } - case 5477 { rate := 1000000013849884606836111609 } - case 5478 { rate := 1000000013851933373913094644 } - case 5479 { rate := 1000000013853982008627961619 } - case 5480 { rate := 1000000013856030510997814133 } - case 5481 { rate := 1000000013858078881039750473 } - case 5482 { rate := 1000000013860127118770865614 } - case 5483 { rate := 1000000013862175224208251215 } - case 5484 { rate := 1000000013864223197368995626 } - case 5485 { rate := 1000000013866271038270183886 } - case 5486 { rate := 1000000013868318746928897723 } - case 5487 { rate := 1000000013870366323362215556 } - case 5488 { rate := 1000000013872413767587212497 } - case 5489 { rate := 1000000013874461079620960351 } - case 5490 { rate := 1000000013876508259480527614 } - case 5491 { rate := 1000000013878555307182979479 } - case 5492 { rate := 1000000013880602222745377833 } - case 5493 { rate := 1000000013882649006184781260 } - case 5494 { rate := 1000000013884695657518245039 } - case 5495 { rate := 1000000013886742176762821150 } - case 5496 { rate := 1000000013888788563935558267 } - case 5497 { rate := 1000000013890834819053501770 } - case 5498 { rate := 1000000013892880942133693733 } - case 5499 { rate := 1000000013894926933193172935 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5500-5599 - switch gt(bps, 5549) - case 0 { // 5500-5549 - switch gt(bps, 5524) - case 0 { // 5500-5524 - switch bps - case 5500 { rate := 1000000013896972792248974855 } - case 5501 { rate := 1000000013899018519318131677 } - case 5502 { rate := 1000000013901064114417672287 } - case 5503 { rate := 1000000013903109577564622276 } - case 5504 { rate := 1000000013905154908776003941 } - case 5505 { rate := 1000000013907200108068836286 } - case 5506 { rate := 1000000013909245175460135020 } - case 5507 { rate := 1000000013911290110966912561 } - case 5508 { rate := 1000000013913334914606178038 } - case 5509 { rate := 1000000013915379586394937285 } - case 5510 { rate := 1000000013917424126350192852 } - case 5511 { rate := 1000000013919468534488943996 } - case 5512 { rate := 1000000013921512810828186689 } - case 5513 { rate := 1000000013923556955384913616 } - case 5514 { rate := 1000000013925600968176114173 } - case 5515 { rate := 1000000013927644849218774474 } - case 5516 { rate := 1000000013929688598529877347 } - case 5517 { rate := 1000000013931732216126402338 } - case 5518 { rate := 1000000013933775702025325709 } - case 5519 { rate := 1000000013935819056243620441 } - case 5520 { rate := 1000000013937862278798256232 } - case 5521 { rate := 1000000013939905369706199504 } - case 5522 { rate := 1000000013941948328984413395 } - case 5523 { rate := 1000000013943991156649857768 } - case 5524 { rate := 1000000013946033852719489207 } - default { revert(0, 0) } - } - case 1 { // 5525-5549 - switch bps - case 5525 { rate := 1000000013948076417210261020 } - case 5526 { rate := 1000000013950118850139123237 } - case 5527 { rate := 1000000013952161151523022616 } - case 5528 { rate := 1000000013954203321378902639 } - case 5529 { rate := 1000000013956245359723703515 } - case 5530 { rate := 1000000013958287266574362180 } - case 5531 { rate := 1000000013960329041947812299 } - case 5532 { rate := 1000000013962370685860984266 } - case 5533 { rate := 1000000013964412198330805204 } - case 5534 { rate := 1000000013966453579374198970 } - case 5535 { rate := 1000000013968494829008086149 } - case 5536 { rate := 1000000013970535947249384059 } - case 5537 { rate := 1000000013972576934115006754 } - case 5538 { rate := 1000000013974617789621865021 } - case 5539 { rate := 1000000013976658513786866380 } - case 5540 { rate := 1000000013978699106626915089 } - case 5541 { rate := 1000000013980739568158912143 } - case 5542 { rate := 1000000013982779898399755273 } - case 5543 { rate := 1000000013984820097366338950 } - case 5544 { rate := 1000000013986860165075554382 } - case 5545 { rate := 1000000013988900101544289521 } - case 5546 { rate := 1000000013990939906789429055 } - case 5547 { rate := 1000000013992979580827854418 } - case 5548 { rate := 1000000013995019123676443785 } - case 5549 { rate := 1000000013997058535352072073 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5550-5599 - switch gt(bps, 5574) - case 0 { // 5550-5574 - switch bps - case 5550 { rate := 1000000013999097815871610946 } - case 5551 { rate := 1000000014001136965251928811 } - case 5552 { rate := 1000000014003175983509890823 } - case 5553 { rate := 1000000014005214870662358881 } - case 5554 { rate := 1000000014007253626726191632 } - case 5555 { rate := 1000000014009292251718244476 } - case 5556 { rate := 1000000014011330745655369557 } - case 5557 { rate := 1000000014013369108554415771 } - case 5558 { rate := 1000000014015407340432228765 } - case 5559 { rate := 1000000014017445441305650938 } - case 5560 { rate := 1000000014019483411191521442 } - case 5561 { rate := 1000000014021521250106676181 } - case 5562 { rate := 1000000014023558958067947815 } - case 5563 { rate := 1000000014025596535092165759 } - case 5564 { rate := 1000000014027633981196156184 } - case 5565 { rate := 1000000014029671296396742013 } - case 5566 { rate := 1000000014031708480710742936 } - case 5567 { rate := 1000000014033745534154975394 } - case 5568 { rate := 1000000014035782456746252590 } - case 5569 { rate := 1000000014037819248501384486 } - case 5570 { rate := 1000000014039855909437177808 } - case 5571 { rate := 1000000014041892439570436040 } - case 5572 { rate := 1000000014043928838917959430 } - case 5573 { rate := 1000000014045965107496544991 } - case 5574 { rate := 1000000014048001245322986499 } - default { revert(0, 0) } - } - case 1 { // 5575-5599 - switch bps - case 5575 { rate := 1000000014050037252414074493 } - case 5576 { rate := 1000000014052073128786596283 } - case 5577 { rate := 1000000014054108874457335942 } - case 5578 { rate := 1000000014056144489443074311 } - case 5579 { rate := 1000000014058179973760589001 } - case 5580 { rate := 1000000014060215327426654391 } - case 5581 { rate := 1000000014062250550458041631 } - case 5582 { rate := 1000000014064285642871518639 } - case 5583 { rate := 1000000014066320604683850111 } - case 5584 { rate := 1000000014068355435911797509 } - case 5585 { rate := 1000000014070390136572119073 } - case 5586 { rate := 1000000014072424706681569814 } - case 5587 { rate := 1000000014074459146256901521 } - case 5588 { rate := 1000000014076493455314862758 } - case 5589 { rate := 1000000014078527633872198862 } - case 5590 { rate := 1000000014080561681945651954 } - case 5591 { rate := 1000000014082595599551960930 } - case 5592 { rate := 1000000014084629386707861464 } - case 5593 { rate := 1000000014086663043430086012 } - case 5594 { rate := 1000000014088696569735363811 } - case 5595 { rate := 1000000014090729965640420880 } - case 5596 { rate := 1000000014092763231161980018 } - case 5597 { rate := 1000000014094796366316760809 } - case 5598 { rate := 1000000014096829371121479623 } - case 5599 { rate := 1000000014098862245592849610 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates5600To6399.sol b/src/repositories/Rates5600To6399.sol deleted file mode 100644 index bc3dfcb..0000000 --- a/src/repositories/Rates5600To6399.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates5600To6399 { - uint256 constant public MIN = 5600; - uint256 constant public MAX = 6399; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 5999) - case 0 { // 5600-5999 - switch gt(bps, 5799) - case 0 { // 5600-5799 - switch gt(bps, 5699) - case 0 { // 5600-5699 - switch gt(bps, 5649) - case 0 { // 5600-5649 - switch gt(bps, 5624) - case 0 { // 5600-5624 - switch bps - case 5600 { rate := 1000000014100894989747580713 } - case 5601 { rate := 1000000014102927603602379655 } - case 5602 { rate := 1000000014104960087173949949 } - case 5603 { rate := 1000000014106992440478991899 } - case 5604 { rate := 1000000014109024663534202592 } - case 5605 { rate := 1000000014111056756356275911 } - case 5606 { rate := 1000000014113088718961902527 } - case 5607 { rate := 1000000014115120551367769903 } - case 5608 { rate := 1000000014117152253590562293 } - case 5609 { rate := 1000000014119183825646960746 } - case 5610 { rate := 1000000014121215267553643106 } - case 5611 { rate := 1000000014123246579327284009 } - case 5612 { rate := 1000000014125277760984554889 } - case 5613 { rate := 1000000014127308812542123975 } - case 5614 { rate := 1000000014129339734016656294 } - case 5615 { rate := 1000000014131370525424813672 } - case 5616 { rate := 1000000014133401186783254733 } - case 5617 { rate := 1000000014135431718108634901 } - case 5618 { rate := 1000000014137462119417606400 } - case 5619 { rate := 1000000014139492390726818256 } - case 5620 { rate := 1000000014141522532052916298 } - case 5621 { rate := 1000000014143552543412543158 } - case 5622 { rate := 1000000014145582424822338270 } - case 5623 { rate := 1000000014147612176298937873 } - case 5624 { rate := 1000000014149641797858975016 } - default { revert(0, 0) } - } - case 1 { // 5625-5649 - switch bps - case 5625 { rate := 1000000014151671289519079548 } - case 5626 { rate := 1000000014153700651295878130 } - case 5627 { rate := 1000000014155729883205994226 } - case 5628 { rate := 1000000014157758985266048116 } - case 5629 { rate := 1000000014159787957492656883 } - case 5630 { rate := 1000000014161816799902434423 } - case 5631 { rate := 1000000014163845512511991443 } - case 5632 { rate := 1000000014165874095337935463 } - case 5633 { rate := 1000000014167902548396870816 } - case 5634 { rate := 1000000014169930871705398646 } - case 5635 { rate := 1000000014171959065280116914 } - case 5636 { rate := 1000000014173987129137620396 } - case 5637 { rate := 1000000014176015063294500683 } - case 5638 { rate := 1000000014178042867767346186 } - case 5639 { rate := 1000000014180070542572742128 } - case 5640 { rate := 1000000014182098087727270558 } - case 5641 { rate := 1000000014184125503247510337 } - case 5642 { rate := 1000000014186152789150037153 } - case 5643 { rate := 1000000014188179945451423510 } - case 5644 { rate := 1000000014190206972168238736 } - case 5645 { rate := 1000000014192233869317048980 } - case 5646 { rate := 1000000014194260636914417219 } - case 5647 { rate := 1000000014196287274976903248 } - case 5648 { rate := 1000000014198313783521063691 } - case 5649 { rate := 1000000014200340162563451997 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5650-5699 - switch gt(bps, 5674) - case 0 { // 5650-5674 - switch bps - case 5650 { rate := 1000000014202366412120618444 } - case 5651 { rate := 1000000014204392532209110132 } - case 5652 { rate := 1000000014206418522845470993 } - case 5653 { rate := 1000000014208444384046241790 } - case 5654 { rate := 1000000014210470115827960111 } - case 5655 { rate := 1000000014212495718207160381 } - case 5656 { rate := 1000000014214521191200373850 } - case 5657 { rate := 1000000014216546534824128603 } - case 5658 { rate := 1000000014218571749094949561 } - case 5659 { rate := 1000000014220596834029358476 } - case 5660 { rate := 1000000014222621789643873935 } - case 5661 { rate := 1000000014224646615955011361 } - case 5662 { rate := 1000000014226671312979283014 } - case 5663 { rate := 1000000014228695880733197990 } - case 5664 { rate := 1000000014230720319233262225 } - case 5665 { rate := 1000000014232744628495978491 } - case 5666 { rate := 1000000014234768808537846403 } - case 5667 { rate := 1000000014236792859375362413 } - case 5668 { rate := 1000000014238816781025019818 } - case 5669 { rate := 1000000014240840573503308754 } - case 5670 { rate := 1000000014242864236826716200 } - case 5671 { rate := 1000000014244887771011725981 } - case 5672 { rate := 1000000014246911176074818766 } - case 5673 { rate := 1000000014248934452032472066 } - case 5674 { rate := 1000000014250957598901160243 } - default { revert(0, 0) } - } - case 1 { // 5675-5699 - switch bps - case 5675 { rate := 1000000014252980616697354502 } - case 5676 { rate := 1000000014255003505437522899 } - case 5677 { rate := 1000000014257026265138130334 } - case 5678 { rate := 1000000014259048895815638562 } - case 5679 { rate := 1000000014261071397486506182 } - case 5680 { rate := 1000000014263093770167188651 } - case 5681 { rate := 1000000014265116013874138270 } - case 5682 { rate := 1000000014267138128623804199 } - case 5683 { rate := 1000000014269160114432632448 } - case 5684 { rate := 1000000014271181971317065881 } - case 5685 { rate := 1000000014273203699293544220 } - case 5686 { rate := 1000000014275225298378504039 } - case 5687 { rate := 1000000014277246768588378769 } - case 5688 { rate := 1000000014279268109939598702 } - case 5689 { rate := 1000000014281289322448590984 } - case 5690 { rate := 1000000014283310406131779623 } - case 5691 { rate := 1000000014285331361005585484 } - case 5692 { rate := 1000000014287352187086426294 } - case 5693 { rate := 1000000014289372884390716643 } - case 5694 { rate := 1000000014291393452934867978 } - case 5695 { rate := 1000000014293413892735288616 } - case 5696 { rate := 1000000014295434203808383731 } - case 5697 { rate := 1000000014297454386170555368 } - case 5698 { rate := 1000000014299474439838202432 } - case 5699 { rate := 1000000014301494364827720695 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5700-5799 - switch gt(bps, 5749) - case 0 { // 5700-5749 - switch gt(bps, 5724) - case 0 { // 5700-5724 - switch bps - case 5700 { rate := 1000000014303514161155502800 } - case 5701 { rate := 1000000014305533828837938253 } - case 5702 { rate := 1000000014307553367891413431 } - case 5703 { rate := 1000000014309572778332311579 } - case 5704 { rate := 1000000014311592060177012815 } - case 5705 { rate := 1000000014313611213441894123 } - case 5706 { rate := 1000000014315630238143329364 } - case 5707 { rate := 1000000014317649134297689268 } - case 5708 { rate := 1000000014319667901921341438 } - case 5709 { rate := 1000000014321686541030650356 } - case 5710 { rate := 1000000014323705051641977373 } - case 5711 { rate := 1000000014325723433771680719 } - case 5712 { rate := 1000000014327741687436115500 } - case 5713 { rate := 1000000014329759812651633698 } - case 5714 { rate := 1000000014331777809434584175 } - case 5715 { rate := 1000000014333795677801312670 } - case 5716 { rate := 1000000014335813417768161804 } - case 5717 { rate := 1000000014337831029351471077 } - case 5718 { rate := 1000000014339848512567576870 } - case 5719 { rate := 1000000014341865867432812447 } - case 5720 { rate := 1000000014343883093963507953 } - case 5721 { rate := 1000000014345900192175990420 } - case 5722 { rate := 1000000014347917162086583762 } - case 5723 { rate := 1000000014349934003711608778 } - case 5724 { rate := 1000000014351950717067383155 } - default { revert(0, 0) } - } - case 1 { // 5725-5749 - switch bps - case 5725 { rate := 1000000014353967302170221464 } - case 5726 { rate := 1000000014355983759036435166 } - case 5727 { rate := 1000000014358000087682332611 } - case 5728 { rate := 1000000014360016288124219035 } - case 5729 { rate := 1000000014362032360378396567 } - case 5730 { rate := 1000000014364048304461164225 } - case 5731 { rate := 1000000014366064120388817920 } - case 5732 { rate := 1000000014368079808177650454 } - case 5733 { rate := 1000000014370095367843951523 } - case 5734 { rate := 1000000014372110799404007716 } - case 5735 { rate := 1000000014374126102874102518 } - case 5736 { rate := 1000000014376141278270516310 } - case 5737 { rate := 1000000014378156325609526367 } - case 5738 { rate := 1000000014380171244907406862 } - case 5739 { rate := 1000000014382186036180428868 } - case 5740 { rate := 1000000014384200699444860352 } - case 5741 { rate := 1000000014386215234716966187 } - case 5742 { rate := 1000000014388229642013008140 } - case 5743 { rate := 1000000014390243921349244884 } - case 5744 { rate := 1000000014392258072741931989 } - case 5745 { rate := 1000000014394272096207321932 } - case 5746 { rate := 1000000014396285991761664091 } - case 5747 { rate := 1000000014398299759421204750 } - case 5748 { rate := 1000000014400313399202187095 } - case 5749 { rate := 1000000014402326911120851219 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5750-5799 - switch gt(bps, 5774) - case 0 { // 5750-5774 - switch bps - case 5750 { rate := 1000000014404340295193434124 } - case 5751 { rate := 1000000014406353551436169717 } - case 5752 { rate := 1000000014408366679865288813 } - case 5753 { rate := 1000000014410379680497019136 } - case 5754 { rate := 1000000014412392553347585321 } - case 5755 { rate := 1000000014414405298433208913 } - case 5756 { rate := 1000000014416417915770108367 } - case 5757 { rate := 1000000014418430405374499050 } - case 5758 { rate := 1000000014420442767262593245 } - case 5759 { rate := 1000000014422455001450600144 } - case 5760 { rate := 1000000014424467107954725858 } - case 5761 { rate := 1000000014426479086791173409 } - case 5762 { rate := 1000000014428490937976142739 } - case 5763 { rate := 1000000014430502661525830703 } - case 5764 { rate := 1000000014432514257456431075 } - case 5765 { rate := 1000000014434525725784134548 } - case 5766 { rate := 1000000014436537066525128734 } - case 5767 { rate := 1000000014438548279695598164 } - case 5768 { rate := 1000000014440559365311724289 } - case 5769 { rate := 1000000014442570323389685485 } - case 5770 { rate := 1000000014444581153945657045 } - case 5771 { rate := 1000000014446591856995811191 } - case 5772 { rate := 1000000014448602432556317062 } - case 5773 { rate := 1000000014450612880643340727 } - case 5774 { rate := 1000000014452623201273045178 } - default { revert(0, 0) } - } - case 1 { // 5775-5799 - switch bps - case 5775 { rate := 1000000014454633394461590334 } - case 5776 { rate := 1000000014456643460225133039 } - case 5777 { rate := 1000000014458653398579827068 } - case 5778 { rate := 1000000014460663209541823120 } - case 5779 { rate := 1000000014462672893127268829 } - case 5780 { rate := 1000000014464682449352308754 } - case 5781 { rate := 1000000014466691878233084386 } - case 5782 { rate := 1000000014468701179785734150 } - case 5783 { rate := 1000000014470710354026393400 } - case 5784 { rate := 1000000014472719400971194424 } - case 5785 { rate := 1000000014474728320636266446 } - case 5786 { rate := 1000000014476737113037735623 } - case 5787 { rate := 1000000014478745778191725047 } - case 5788 { rate := 1000000014480754316114354747 } - case 5789 { rate := 1000000014482762726821741689 } - case 5790 { rate := 1000000014484771010329999776 } - case 5791 { rate := 1000000014486779166655239853 } - case 5792 { rate := 1000000014488787195813569697 } - case 5793 { rate := 1000000014490795097821094034 } - case 5794 { rate := 1000000014492802872693914523 } - case 5795 { rate := 1000000014494810520448129771 } - case 5796 { rate := 1000000014496818041099835323 } - case 5797 { rate := 1000000014498825434665123670 } - case 5798 { rate := 1000000014500832701160084244 } - case 5799 { rate := 1000000014502839840600803425 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5800-5999 - switch gt(bps, 5899) - case 0 { // 5800-5899 - switch gt(bps, 5849) - case 0 { // 5800-5849 - switch gt(bps, 5824) - case 0 { // 5800-5824 - switch bps - case 5800 { rate := 1000000014504846853003364537 } - case 5801 { rate := 1000000014506853738383847849 } - case 5802 { rate := 1000000014508860496758330582 } - case 5803 { rate := 1000000014510867128142886896 } - case 5804 { rate := 1000000014512873632553587910 } - case 5805 { rate := 1000000014514880010006501685 } - case 5806 { rate := 1000000014516886260517693233 } - case 5807 { rate := 1000000014518892384103224522 } - case 5808 { rate := 1000000014520898380779154465 } - case 5809 { rate := 1000000014522904250561538932 } - case 5810 { rate := 1000000014524909993466430745 } - case 5811 { rate := 1000000014526915609509879680 } - case 5812 { rate := 1000000014528921098707932466 } - case 5813 { rate := 1000000014530926461076632791 } - case 5814 { rate := 1000000014532931696632021298 } - case 5815 { rate := 1000000014534936805390135584 } - case 5816 { rate := 1000000014536941787367010209 } - case 5817 { rate := 1000000014538946642578676689 } - case 5818 { rate := 1000000014540951371041163498 } - case 5819 { rate := 1000000014542955972770496074 } - case 5820 { rate := 1000000014544960447782696812 } - case 5821 { rate := 1000000014546964796093785070 } - case 5822 { rate := 1000000014548969017719777170 } - case 5823 { rate := 1000000014550973112676686396 } - case 5824 { rate := 1000000014552977080980522997 } - default { revert(0, 0) } - } - case 1 { // 5825-5849 - switch bps - case 5825 { rate := 1000000014554980922647294184 } - case 5826 { rate := 1000000014556984637693004137 } - case 5827 { rate := 1000000014558988226133654001 } - case 5828 { rate := 1000000014560991687985241886 } - case 5829 { rate := 1000000014562995023263762875 } - case 5830 { rate := 1000000014564998231985209012 } - case 5831 { rate := 1000000014567001314165569320 } - case 5832 { rate := 1000000014569004269820829782 } - case 5833 { rate := 1000000014571007098966973360 } - case 5834 { rate := 1000000014573009801619979984 } - case 5835 { rate := 1000000014575012377795826556 } - case 5836 { rate := 1000000014577014827510486953 } - case 5837 { rate := 1000000014579017150779932024 } - case 5838 { rate := 1000000014581019347620129595 } - case 5839 { rate := 1000000014583021418047044467 } - case 5840 { rate := 1000000014585023362076638415 } - case 5841 { rate := 1000000014587025179724870195 } - case 5842 { rate := 1000000014589026871007695536 } - case 5843 { rate := 1000000014591028435941067149 } - case 5844 { rate := 1000000014593029874540934724 } - case 5845 { rate := 1000000014595031186823244930 } - case 5846 { rate := 1000000014597032372803941418 } - case 5847 { rate := 1000000014599033432498964818 } - case 5848 { rate := 1000000014601034365924252746 } - case 5849 { rate := 1000000014603035173095739799 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5850-5899 - switch gt(bps, 5874) - case 0 { // 5850-5874 - switch bps - case 5850 { rate := 1000000014605035854029357558 } - case 5851 { rate := 1000000014607036408741034590 } - case 5852 { rate := 1000000014609036837246696444 } - case 5853 { rate := 1000000014611037139562265661 } - case 5854 { rate := 1000000014613037315703661762 } - case 5855 { rate := 1000000014615037365686801262 } - case 5856 { rate := 1000000014617037289527597660 } - case 5857 { rate := 1000000014619037087241961446 } - case 5858 { rate := 1000000014621036758845800100 } - case 5859 { rate := 1000000014623036304355018094 } - case 5860 { rate := 1000000014625035723785516888 } - case 5861 { rate := 1000000014627035017153194937 } - case 5862 { rate := 1000000014629034184473947689 } - case 5863 { rate := 1000000014631033225763667584 } - case 5864 { rate := 1000000014633032141038244058 } - case 5865 { rate := 1000000014635030930313563542 } - case 5866 { rate := 1000000014637029593605509464 } - case 5867 { rate := 1000000014639028130929962246 } - case 5868 { rate := 1000000014641026542302799310 } - case 5869 { rate := 1000000014643024827739895076 } - case 5870 { rate := 1000000014645022987257120962 } - case 5871 { rate := 1000000014647021020870345387 } - case 5872 { rate := 1000000014649018928595433770 } - case 5873 { rate := 1000000014651016710448248531 } - case 5874 { rate := 1000000014653014366444649093 } - default { revert(0, 0) } - } - case 1 { // 5875-5899 - switch bps - case 5875 { rate := 1000000014655011896600491882 } - case 5876 { rate := 1000000014657009300931630326 } - case 5877 { rate := 1000000014659006579453914859 } - case 5878 { rate := 1000000014661003732183192919 } - case 5879 { rate := 1000000014663000759135308949 } - case 5880 { rate := 1000000014664997660326104403 } - case 5881 { rate := 1000000014666994435771417736 } - case 5882 { rate := 1000000014668991085487084417 } - case 5883 { rate := 1000000014670987609488936922 } - case 5884 { rate := 1000000014672984007792804732 } - case 5885 { rate := 1000000014674980280414514346 } - case 5886 { rate := 1000000014676976427369889269 } - case 5887 { rate := 1000000014678972448674750021 } - case 5888 { rate := 1000000014680968344344914131 } - case 5889 { rate := 1000000014682964114396196144 } - case 5890 { rate := 1000000014684959758844407618 } - case 5891 { rate := 1000000014686955277705357128 } - case 5892 { rate := 1000000014688950670994850263 } - case 5893 { rate := 1000000014690945938728689628 } - case 5894 { rate := 1000000014692941080922674845 } - case 5895 { rate := 1000000014694936097592602556 } - case 5896 { rate := 1000000014696930988754266420 } - case 5897 { rate := 1000000014698925754423457115 } - case 5898 { rate := 1000000014700920394615962341 } - case 5899 { rate := 1000000014702914909347566817 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5900-5999 - switch gt(bps, 5949) - case 0 { // 5900-5949 - switch gt(bps, 5924) - case 0 { // 5900-5924 - switch bps - case 5900 { rate := 1000000014704909298634052283 } - case 5901 { rate := 1000000014706903562491197505 } - case 5902 { rate := 1000000014708897700934778270 } - case 5903 { rate := 1000000014710891713980567389 } - case 5904 { rate := 1000000014712885601644334694 } - case 5905 { rate := 1000000014714879363941847051 } - case 5906 { rate := 1000000014716873000888868344 } - case 5907 { rate := 1000000014718866512501159488 } - case 5908 { rate := 1000000014720859898794478424 } - case 5909 { rate := 1000000014722853159784580123 } - case 5910 { rate := 1000000014724846295487216583 } - case 5911 { rate := 1000000014726839305918136834 } - case 5912 { rate := 1000000014728832191093086935 } - case 5913 { rate := 1000000014730824951027809978 } - case 5914 { rate := 1000000014732817585738046086 } - case 5915 { rate := 1000000014734810095239532414 } - case 5916 { rate := 1000000014736802479548003151 } - case 5917 { rate := 1000000014738794738679189525 } - case 5918 { rate := 1000000014740786872648819790 } - case 5919 { rate := 1000000014742778881472619245 } - case 5920 { rate := 1000000014744770765166310220 } - case 5921 { rate := 1000000014746762523745612083 } - case 5922 { rate := 1000000014748754157226241244 } - case 5923 { rate := 1000000014750745665623911146 } - case 5924 { rate := 1000000014752737048954332275 } - default { revert(0, 0) } - } - case 1 { // 5925-5949 - switch bps - case 5925 { rate := 1000000014754728307233212158 } - case 5926 { rate := 1000000014756719440476255360 } - case 5927 { rate := 1000000014758710448699163491 } - case 5928 { rate := 1000000014760701331917635202 } - case 5929 { rate := 1000000014762692090147366186 } - case 5930 { rate := 1000000014764682723404049184 } - case 5931 { rate := 1000000014766673231703373978 } - case 5932 { rate := 1000000014768663615061027396 } - case 5933 { rate := 1000000014770653873492693314 } - case 5934 { rate := 1000000014772644007014052654 } - case 5935 { rate := 1000000014774634015640783386 } - case 5936 { rate := 1000000014776623899388560526 } - case 5937 { rate := 1000000014778613658273056145 } - case 5938 { rate := 1000000014780603292309939358 } - case 5939 { rate := 1000000014782592801514876334 } - case 5940 { rate := 1000000014784582185903530293 } - case 5941 { rate := 1000000014786571445491561506 } - case 5942 { rate := 1000000014788560580294627298 } - case 5943 { rate := 1000000014790549590328382048 } - case 5944 { rate := 1000000014792538475608477188 } - case 5945 { rate := 1000000014794527236150561205 } - case 5946 { rate := 1000000014796515871970279644 } - case 5947 { rate := 1000000014798504383083275106 } - case 5948 { rate := 1000000014800492769505187248 } - case 5949 { rate := 1000000014802481031251652786 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 5950-5999 - switch gt(bps, 5974) - case 0 { // 5950-5974 - switch bps - case 5950 { rate := 1000000014804469168338305494 } - case 5951 { rate := 1000000014806457180780776207 } - case 5952 { rate := 1000000014808445068594692819 } - case 5953 { rate := 1000000014810432831795680286 } - case 5954 { rate := 1000000014812420470399360626 } - case 5955 { rate := 1000000014814407984421352919 } - case 5956 { rate := 1000000014816395373877273307 } - case 5957 { rate := 1000000014818382638782734998 } - case 5958 { rate := 1000000014820369779153348262 } - case 5959 { rate := 1000000014822356795004720439 } - case 5960 { rate := 1000000014824343686352455932 } - case 5961 { rate := 1000000014826330453212156210 } - case 5962 { rate := 1000000014828317095599419813 } - case 5963 { rate := 1000000014830303613529842346 } - case 5964 { rate := 1000000014832290007019016486 } - case 5965 { rate := 1000000014834276276082531977 } - case 5966 { rate := 1000000014836262420735975636 } - case 5967 { rate := 1000000014838248440994931352 } - case 5968 { rate := 1000000014840234336874980083 } - case 5969 { rate := 1000000014842220108391699861 } - case 5970 { rate := 1000000014844205755560665792 } - case 5971 { rate := 1000000014846191278397450058 } - case 5972 { rate := 1000000014848176676917621912 } - case 5973 { rate := 1000000014850161951136747686 } - case 5974 { rate := 1000000014852147101070390787 } - default { revert(0, 0) } - } - case 1 { // 5975-5999 - switch bps - case 5975 { rate := 1000000014854132126734111701 } - case 5976 { rate := 1000000014856117028143467990 } - case 5977 { rate := 1000000014858101805314014293 } - case 5978 { rate := 1000000014860086458261302333 } - case 5979 { rate := 1000000014862070987000880911 } - case 5980 { rate := 1000000014864055391548295906 } - case 5981 { rate := 1000000014866039671919090284 } - case 5982 { rate := 1000000014868023828128804090 } - case 5983 { rate := 1000000014870007860192974452 } - case 5984 { rate := 1000000014871991768127135581 } - case 5985 { rate := 1000000014873975551946818776 } - case 5986 { rate := 1000000014875959211667552419 } - case 5987 { rate := 1000000014877942747304861976 } - case 5988 { rate := 1000000014879926158874270004 } - case 5989 { rate := 1000000014881909446391296144 } - case 5990 { rate := 1000000014883892609871457128 } - case 5991 { rate := 1000000014885875649330266773 } - case 5992 { rate := 1000000014887858564783235989 } - case 5993 { rate := 1000000014889841356245872775 } - case 5994 { rate := 1000000014891824023733682222 } - case 5995 { rate := 1000000014893806567262166511 } - case 5996 { rate := 1000000014895788986846824917 } - case 5997 { rate := 1000000014897771282503153808 } - case 5998 { rate := 1000000014899753454246646646 } - case 5999 { rate := 1000000014901735502092793986 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6000-6399 - switch gt(bps, 6199) - case 0 { // 6000-6199 - switch gt(bps, 6099) - case 0 { // 6000-6099 - switch gt(bps, 6049) - case 0 { // 6000-6049 - switch gt(bps, 6024) - case 0 { // 6000-6024 - switch bps - case 6000 { rate := 1000000014903717426057083481 } - case 6001 { rate := 1000000014905699226154999880 } - case 6002 { rate := 1000000014907680902402025027 } - case 6003 { rate := 1000000014909662454813637865 } - case 6004 { rate := 1000000014911643883405314435 } - case 6005 { rate := 1000000014913625188192527876 } - case 6006 { rate := 1000000014915606369190748429 } - case 6007 { rate := 1000000014917587426415443433 } - case 6008 { rate := 1000000014919568359882077330 } - case 6009 { rate := 1000000014921549169606111665 } - case 6010 { rate := 1000000014923529855603005082 } - case 6011 { rate := 1000000014925510417888213331 } - case 6012 { rate := 1000000014927490856477189267 } - case 6013 { rate := 1000000014929471171385382847 } - case 6014 { rate := 1000000014931451362628241136 } - case 6015 { rate := 1000000014933431430221208304 } - case 6016 { rate := 1000000014935411374179725629 } - case 6017 { rate := 1000000014937391194519231495 } - case 6018 { rate := 1000000014939370891255161396 } - case 6019 { rate := 1000000014941350464402947936 } - case 6020 { rate := 1000000014943329913978020826 } - case 6021 { rate := 1000000014945309239995806891 } - case 6022 { rate := 1000000014947288442471730065 } - case 6023 { rate := 1000000014949267521421211394 } - case 6024 { rate := 1000000014951246476859669038 } - default { revert(0, 0) } - } - case 1 { // 6025-6049 - switch bps - case 6025 { rate := 1000000014953225308802518272 } - case 6026 { rate := 1000000014955204017265171481 } - case 6027 { rate := 1000000014957182602263038168 } - case 6028 { rate := 1000000014959161063811524950 } - case 6029 { rate := 1000000014961139401926035563 } - case 6030 { rate := 1000000014963117616621970858 } - case 6031 { rate := 1000000014965095707914728804 } - case 6032 { rate := 1000000014967073675819704489 } - case 6033 { rate := 1000000014969051520352290120 } - case 6034 { rate := 1000000014971029241527875024 } - case 6035 { rate := 1000000014973006839361845649 } - case 6036 { rate := 1000000014974984313869585565 } - case 6037 { rate := 1000000014976961665066475462 } - case 6038 { rate := 1000000014978938892967893156 } - case 6039 { rate := 1000000014980915997589213583 } - case 6040 { rate := 1000000014982892978945808807 } - case 6041 { rate := 1000000014984869837053048013 } - case 6042 { rate := 1000000014986846571926297515 } - case 6043 { rate := 1000000014988823183580920752 } - case 6044 { rate := 1000000014990799672032278292 } - case 6045 { rate := 1000000014992776037295727828 } - case 6046 { rate := 1000000014994752279386624184 } - case 6047 { rate := 1000000014996728398320319311 } - case 6048 { rate := 1000000014998704394112162292 } - case 6049 { rate := 1000000015000680266777499339 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6050-6099 - switch gt(bps, 6074) - case 0 { // 6050-6074 - switch bps - case 6050 { rate := 1000000015002656016331673799 } - case 6051 { rate := 1000000015004631642790026146 } - case 6052 { rate := 1000000015006607146167893992 } - case 6053 { rate := 1000000015008582526480612079 } - case 6054 { rate := 1000000015010557783743512285 } - case 6055 { rate := 1000000015012532917971923621 } - case 6056 { rate := 1000000015014507929181172237 } - case 6057 { rate := 1000000015016482817386581417 } - case 6058 { rate := 1000000015018457582603471584 } - case 6059 { rate := 1000000015020432224847160297 } - case 6060 { rate := 1000000015022406744132962253 } - case 6061 { rate := 1000000015024381140476189292 } - case 6062 { rate := 1000000015026355413892150391 } - case 6063 { rate := 1000000015028329564396151668 } - case 6064 { rate := 1000000015030303592003496384 } - case 6065 { rate := 1000000015032277496729484940 } - case 6066 { rate := 1000000015034251278589414882 } - case 6067 { rate := 1000000015036224937598580896 } - case 6068 { rate := 1000000015038198473772274819 } - case 6069 { rate := 1000000015040171887125785626 } - case 6070 { rate := 1000000015042145177674399441 } - case 6071 { rate := 1000000015044118345433399534 } - case 6072 { rate := 1000000015046091390418066323 } - case 6073 { rate := 1000000015048064312643677371 } - case 6074 { rate := 1000000015050037112125507393 } - default { revert(0, 0) } - } - case 1 { // 6075-6099 - switch bps - case 6075 { rate := 1000000015052009788878828253 } - case 6076 { rate := 1000000015053982342918908961 } - case 6077 { rate := 1000000015055954774261015682 } - case 6078 { rate := 1000000015057927082920411731 } - case 6079 { rate := 1000000015059899268912357574 } - case 6080 { rate := 1000000015061871332252110832 } - case 6081 { rate := 1000000015063843272954926277 } - case 6082 { rate := 1000000015065815091036055837 } - case 6083 { rate := 1000000015067786786510748595 } - case 6084 { rate := 1000000015069758359394250789 } - case 6085 { rate := 1000000015071729809701805813 } - case 6086 { rate := 1000000015073701137448654217 } - case 6087 { rate := 1000000015075672342650033713 } - case 6088 { rate := 1000000015077643425321179167 } - case 6089 { rate := 1000000015079614385477322606 } - case 6090 { rate := 1000000015081585223133693217 } - case 6091 { rate := 1000000015083555938305517348 } - case 6092 { rate := 1000000015085526531008018506 } - case 6093 { rate := 1000000015087497001256417364 } - case 6094 { rate := 1000000015089467349065931754 } - case 6095 { rate := 1000000015091437574451776672 } - case 6096 { rate := 1000000015093407677429164279 } - case 6097 { rate := 1000000015095377658013303902 } - case 6098 { rate := 1000000015097347516219402031 } - case 6099 { rate := 1000000015099317252062662325 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6100-6199 - switch gt(bps, 6149) - case 0 { // 6100-6149 - switch gt(bps, 6124) - case 0 { // 6100-6124 - switch bps - case 6100 { rate := 1000000015101286865558285606 } - case 6101 { rate := 1000000015103256356721469870 } - case 6102 { rate := 1000000015105225725567410272 } - case 6103 { rate := 1000000015107194972111299145 } - case 6104 { rate := 1000000015109164096368325987 } - case 6105 { rate := 1000000015111133098353677468 } - case 6106 { rate := 1000000015113101978082537430 } - case 6107 { rate := 1000000015115070735570086883 } - case 6108 { rate := 1000000015117039370831504013 } - case 6109 { rate := 1000000015119007883881964179 } - case 6110 { rate := 1000000015120976274736639914 } - case 6111 { rate := 1000000015122944543410700923 } - case 6112 { rate := 1000000015124912689919314090 } - case 6113 { rate := 1000000015126880714277643473 } - case 6114 { rate := 1000000015128848616500850307 } - case 6115 { rate := 1000000015130816396604093005 } - case 6116 { rate := 1000000015132784054602527158 } - case 6117 { rate := 1000000015134751590511305536 } - case 6118 { rate := 1000000015136719004345578088 } - case 6119 { rate := 1000000015138686296120491942 } - case 6120 { rate := 1000000015140653465851191411 } - case 6121 { rate := 1000000015142620513552817987 } - case 6122 { rate := 1000000015144587439240510342 } - case 6123 { rate := 1000000015146554242929404336 } - case 6124 { rate := 1000000015148520924634633011 } - default { revert(0, 0) } - } - case 1 { // 6125-6149 - switch bps - case 6125 { rate := 1000000015150487484371326590 } - case 6126 { rate := 1000000015152453922154612487 } - case 6127 { rate := 1000000015154420237999615297 } - case 6128 { rate := 1000000015156386431921456805 } - case 6129 { rate := 1000000015158352503935255979 } - case 6130 { rate := 1000000015160318454056128981 } - case 6131 { rate := 1000000015162284282299189156 } - case 6132 { rate := 1000000015164249988679547042 } - case 6133 { rate := 1000000015166215573212310364 } - case 6134 { rate := 1000000015168181035912584041 } - case 6135 { rate := 1000000015170146376795470181 } - case 6136 { rate := 1000000015172111595876068086 } - case 6137 { rate := 1000000015174076693169474249 } - case 6138 { rate := 1000000015176041668690782357 } - case 6139 { rate := 1000000015178006522455083294 } - case 6140 { rate := 1000000015179971254477465133 } - case 6141 { rate := 1000000015181935864773013148 } - case 6142 { rate := 1000000015183900353356809808 } - case 6143 { rate := 1000000015185864720243934777 } - case 6144 { rate := 1000000015187828965449464919 } - case 6145 { rate := 1000000015189793088988474295 } - case 6146 { rate := 1000000015191757090876034166 } - case 6147 { rate := 1000000015193720971127212993 } - case 6148 { rate := 1000000015195684729757076435 } - case 6149 { rate := 1000000015197648366780687356 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6150-6199 - switch gt(bps, 6174) - case 0 { // 6150-6174 - switch bps - case 6150 { rate := 1000000015199611882213105818 } - case 6151 { rate := 1000000015201575276069389089 } - case 6152 { rate := 1000000015203538548364591637 } - case 6153 { rate := 1000000015205501699113765138 } - case 6154 { rate := 1000000015207464728331958468 } - case 6155 { rate := 1000000015209427636034217712 } - case 6156 { rate := 1000000015211390422235586158 } - case 6157 { rate := 1000000015213353086951104304 } - case 6158 { rate := 1000000015215315630195809853 } - case 6159 { rate := 1000000015217278051984737717 } - case 6160 { rate := 1000000015219240352332920015 } - case 6161 { rate := 1000000015221202531255386080 } - case 6162 { rate := 1000000015223164588767162449 } - case 6163 { rate := 1000000015225126524883272874 } - case 6164 { rate := 1000000015227088339618738319 } - case 6165 { rate := 1000000015229050032988576957 } - case 6166 { rate := 1000000015231011605007804177 } - case 6167 { rate := 1000000015232973055691432580 } - case 6168 { rate := 1000000015234934385054471980 } - case 6169 { rate := 1000000015236895593111929410 } - case 6170 { rate := 1000000015238856679878809116 } - case 6171 { rate := 1000000015240817645370112558 } - case 6172 { rate := 1000000015242778489600838420 } - case 6173 { rate := 1000000015244739212585982595 } - case 6174 { rate := 1000000015246699814340538201 } - default { revert(0, 0) } - } - case 1 { // 6175-6199 - switch bps - case 6175 { rate := 1000000015248660294879495575 } - case 6176 { rate := 1000000015250620654217842268 } - case 6177 { rate := 1000000015252580892370563058 } - case 6178 { rate := 1000000015254541009352639939 } - case 6179 { rate := 1000000015256501005179052132 } - case 6180 { rate := 1000000015258460879864776078 } - case 6181 { rate := 1000000015260420633424785438 } - case 6182 { rate := 1000000015262380265874051103 } - case 6183 { rate := 1000000015264339777227541185 } - case 6184 { rate := 1000000015266299167500221022 } - case 6185 { rate := 1000000015268258436707053177 } - case 6186 { rate := 1000000015270217584862997442 } - case 6187 { rate := 1000000015272176611983010835 } - case 6188 { rate := 1000000015274135518082047600 } - case 6189 { rate := 1000000015276094303175059215 } - case 6190 { rate := 1000000015278052967276994381 } - case 6191 { rate := 1000000015280011510402799035 } - case 6192 { rate := 1000000015281969932567416340 } - case 6193 { rate := 1000000015283928233785786694 } - case 6194 { rate := 1000000015285886414072847725 } - case 6195 { rate := 1000000015287844473443534295 } - case 6196 { rate := 1000000015289802411912778498 } - case 6197 { rate := 1000000015291760229495509665 } - case 6198 { rate := 1000000015293717926206654358 } - case 6199 { rate := 1000000015295675502061136378 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6200-6399 - switch gt(bps, 6299) - case 0 { // 6200-6299 - switch gt(bps, 6249) - case 0 { // 6200-6249 - switch gt(bps, 6224) - case 0 { // 6200-6224 - switch bps - case 6200 { rate := 1000000015297632957073876761 } - case 6201 { rate := 1000000015299590291259793780 } - case 6202 { rate := 1000000015301547504633802945 } - case 6203 { rate := 1000000015303504597210817004 } - case 6204 { rate := 1000000015305461569005745947 } - case 6205 { rate := 1000000015307418420033496998 } - case 6206 { rate := 1000000015309375150308974628 } - case 6207 { rate := 1000000015311331759847080545 } - case 6208 { rate := 1000000015313288248662713699 } - case 6209 { rate := 1000000015315244616770770282 } - case 6210 { rate := 1000000015317200864186143732 } - case 6211 { rate := 1000000015319156990923724726 } - case 6212 { rate := 1000000015321112996998401190 } - case 6213 { rate := 1000000015323068882425058294 } - case 6214 { rate := 1000000015325024647218578451 } - case 6215 { rate := 1000000015326980291393841323 } - case 6216 { rate := 1000000015328935814965723819 } - case 6217 { rate := 1000000015330891217949100095 } - case 6218 { rate := 1000000015332846500358841555 } - case 6219 { rate := 1000000015334801662209816855 } - case 6220 { rate := 1000000015336756703516891898 } - case 6221 { rate := 1000000015338711624294929839 } - case 6222 { rate := 1000000015340666424558791082 } - case 6223 { rate := 1000000015342621104323333287 } - case 6224 { rate := 1000000015344575663603411362 } - default { revert(0, 0) } - } - case 1 { // 6225-6249 - switch bps - case 6225 { rate := 1000000015346530102413877471 } - case 6226 { rate := 1000000015348484420769581033 } - case 6227 { rate := 1000000015350438618685368717 } - case 6228 { rate := 1000000015352392696176084451 } - case 6229 { rate := 1000000015354346653256569420 } - case 6230 { rate := 1000000015356300489941662062 } - case 6231 { rate := 1000000015358254206246198075 } - case 6232 { rate := 1000000015360207802185010413 } - case 6233 { rate := 1000000015362161277772929290 } - case 6234 { rate := 1000000015364114633024782180 } - case 6235 { rate := 1000000015366067867955393814 } - case 6236 { rate := 1000000015368020982579586188 } - case 6237 { rate := 1000000015369973976912178557 } - case 6238 { rate := 1000000015371926850967987435 } - case 6239 { rate := 1000000015373879604761826606 } - case 6240 { rate := 1000000015375832238308507110 } - case 6241 { rate := 1000000015377784751622837256 } - case 6242 { rate := 1000000015379737144719622615 } - case 6243 { rate := 1000000015381689417613666024 } - case 6244 { rate := 1000000015383641570319767589 } - case 6245 { rate := 1000000015385593602852724678 } - case 6246 { rate := 1000000015387545515227331928 } - case 6247 { rate := 1000000015389497307458381246 } - case 6248 { rate := 1000000015391448979560661806 } - case 6249 { rate := 1000000015393400531548960052 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6250-6299 - switch gt(bps, 6274) - case 0 { // 6250-6274 - switch bps - case 6250 { rate := 1000000015395351963438059699 } - case 6251 { rate := 1000000015397303275242741731 } - case 6252 { rate := 1000000015399254466977784403 } - case 6253 { rate := 1000000015401205538657963245 } - case 6254 { rate := 1000000015403156490298051058 } - case 6255 { rate := 1000000015405107321912817917 } - case 6256 { rate := 1000000015407058033517031169 } - case 6257 { rate := 1000000015409008625125455440 } - case 6258 { rate := 1000000015410959096752852627 } - case 6259 { rate := 1000000015412909448413981907 } - case 6260 { rate := 1000000015414859680123599731 } - case 6261 { rate := 1000000015416809791896459828 } - case 6262 { rate := 1000000015418759783747313206 } - case 6263 { rate := 1000000015420709655690908154 } - case 6264 { rate := 1000000015422659407741990234 } - case 6265 { rate := 1000000015424609039915302295 } - case 6266 { rate := 1000000015426558552225584464 } - case 6267 { rate := 1000000015428507944687574148 } - case 6268 { rate := 1000000015430457217316006040 } - case 6269 { rate := 1000000015432406370125612111 } - case 6270 { rate := 1000000015434355403131121619 } - case 6271 { rate := 1000000015436304316347261106 } - case 6272 { rate := 1000000015438253109788754397 } - case 6273 { rate := 1000000015440201783470322605 } - case 6274 { rate := 1000000015442150337406684127 } - default { revert(0, 0) } - } - case 1 { // 6275-6299 - switch bps - case 6275 { rate := 1000000015444098771612554646 } - case 6276 { rate := 1000000015446047086102647137 } - case 6277 { rate := 1000000015447995280891671860 } - case 6278 { rate := 1000000015449943355994336362 } - case 6279 { rate := 1000000015451891311425345484 } - case 6280 { rate := 1000000015453839147199401353 } - case 6281 { rate := 1000000015455786863331203391 } - case 6282 { rate := 1000000015457734459835448307 } - case 6283 { rate := 1000000015459681936726830105 } - case 6284 { rate := 1000000015461629294020040082 } - case 6285 { rate := 1000000015463576531729766828 } - case 6286 { rate := 1000000015465523649870696226 } - case 6287 { rate := 1000000015467470648457511454 } - case 6288 { rate := 1000000015469417527504892989 } - case 6289 { rate := 1000000015471364287027518599 } - case 6290 { rate := 1000000015473310927040063352 } - case 6291 { rate := 1000000015475257447557199613 } - case 6292 { rate := 1000000015477203848593597045 } - case 6293 { rate := 1000000015479150130163922609 } - case 6294 { rate := 1000000015481096292282840567 } - case 6295 { rate := 1000000015483042334965012479 } - case 6296 { rate := 1000000015484988258225097210 } - case 6297 { rate := 1000000015486934062077750921 } - case 6298 { rate := 1000000015488879746537627079 } - case 6299 { rate := 1000000015490825311619376452 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6300-6399 - switch gt(bps, 6349) - case 0 { // 6300-6349 - switch gt(bps, 6324) - case 0 { // 6300-6324 - switch bps - case 6300 { rate := 1000000015492770757337647112 } - case 6301 { rate := 1000000015494716083707084436 } - case 6302 { rate := 1000000015496661290742331104 } - case 6303 { rate := 1000000015498606378458027103 } - case 6304 { rate := 1000000015500551346868809725 } - case 6305 { rate := 1000000015502496195989313568 } - case 6306 { rate := 1000000015504440925834170541 } - case 6307 { rate := 1000000015506385536418009859 } - case 6308 { rate := 1000000015508330027755458043 } - case 6309 { rate := 1000000015510274399861138927 } - case 6310 { rate := 1000000015512218652749673656 } - case 6311 { rate := 1000000015514162786435680680 } - case 6312 { rate := 1000000015516106800933775766 } - case 6313 { rate := 1000000015518050696258571992 } - case 6314 { rate := 1000000015519994472424679745 } - case 6315 { rate := 1000000015521938129446706731 } - case 6316 { rate := 1000000015523881667339257966 } - case 6317 { rate := 1000000015525825086116935783 } - case 6318 { rate := 1000000015527768385794339827 } - case 6319 { rate := 1000000015529711566386067064 } - case 6320 { rate := 1000000015531654627906711771 } - case 6321 { rate := 1000000015533597570370865546 } - case 6322 { rate := 1000000015535540393793117305 } - case 6323 { rate := 1000000015537483098188053282 } - case 6324 { rate := 1000000015539425683570257029 } - default { revert(0, 0) } - } - case 1 { // 6325-6349 - switch bps - case 6325 { rate := 1000000015541368149954309419 } - case 6326 { rate := 1000000015543310497354788646 } - case 6327 { rate := 1000000015545252725786270226 } - case 6328 { rate := 1000000015547194835263326993 } - case 6329 { rate := 1000000015549136825800529108 } - case 6330 { rate := 1000000015551078697412444053 } - case 6331 { rate := 1000000015553020450113636636 } - case 6332 { rate := 1000000015554962083918668986 } - case 6333 { rate := 1000000015556903598842100559 } - case 6334 { rate := 1000000015558844994898488139 } - case 6335 { rate := 1000000015560786272102385832 } - case 6336 { rate := 1000000015562727430468345075 } - case 6337 { rate := 1000000015564668470010914631 } - case 6338 { rate := 1000000015566609390744640592 } - case 6339 { rate := 1000000015568550192684066380 } - case 6340 { rate := 1000000015570490875843732744 } - case 6341 { rate := 1000000015572431440238177765 } - case 6342 { rate := 1000000015574371885881936857 } - case 6343 { rate := 1000000015576312212789542763 } - case 6344 { rate := 1000000015578252420975525559 } - case 6345 { rate := 1000000015580192510454412655 } - case 6346 { rate := 1000000015582132481240728794 } - case 6347 { rate := 1000000015584072333348996053 } - case 6348 { rate := 1000000015586012066793733846 } - case 6349 { rate := 1000000015587951681589458919 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6350-6399 - switch gt(bps, 6374) - case 0 { // 6350-6374 - switch bps - case 6350 { rate := 1000000015589891177750685357 } - case 6351 { rate := 1000000015591830555291924580 } - case 6352 { rate := 1000000015593769814227685350 } - case 6353 { rate := 1000000015595708954572473762 } - case 6354 { rate := 1000000015597647976340793253 } - case 6355 { rate := 1000000015599586879547144596 } - case 6356 { rate := 1000000015601525664206025911 } - case 6357 { rate := 1000000015603464330331932651 } - case 6358 { rate := 1000000015605402877939357616 } - case 6359 { rate := 1000000015607341307042790947 } - case 6360 { rate := 1000000015609279617656720124 } - case 6361 { rate := 1000000015611217809795629977 } - case 6362 { rate := 1000000015613155883474002675 } - case 6363 { rate := 1000000015615093838706317732 } - case 6364 { rate := 1000000015617031675507052012 } - case 6365 { rate := 1000000015618969393890679720 } - case 6366 { rate := 1000000015620906993871672410 } - case 6367 { rate := 1000000015622844475464498982 } - case 6368 { rate := 1000000015624781838683625685 } - case 6369 { rate := 1000000015626719083543516119 } - case 6370 { rate := 1000000015628656210058631227 } - case 6371 { rate := 1000000015630593218243429309 } - case 6372 { rate := 1000000015632530108112366010 } - case 6373 { rate := 1000000015634466879679894331 } - case 6374 { rate := 1000000015636403532960464619 } - default { revert(0, 0) } - } - case 1 { // 6375-6399 - switch bps - case 6375 { rate := 1000000015638340067968524580 } - case 6376 { rate := 1000000015640276484718519269 } - case 6377 { rate := 1000000015642212783224891098 } - case 6378 { rate := 1000000015644148963502079827 } - case 6379 { rate := 1000000015646085025564522580 } - case 6380 { rate := 1000000015648020969426653830 } - case 6381 { rate := 1000000015649956795102905409 } - case 6382 { rate := 1000000015651892502607706506 } - case 6383 { rate := 1000000015653828091955483667 } - case 6384 { rate := 1000000015655763563160660798 } - case 6385 { rate := 1000000015657698916237659162 } - case 6386 { rate := 1000000015659634151200897382 } - case 6387 { rate := 1000000015661569268064791442 } - case 6388 { rate := 1000000015663504266843754688 } - case 6389 { rate := 1000000015665439147552197824 } - case 6390 { rate := 1000000015667373910204528920 } - case 6391 { rate := 1000000015669308554815153405 } - case 6392 { rate := 1000000015671243081398474077 } - case 6393 { rate := 1000000015673177489968891092 } - case 6394 { rate := 1000000015675111780540801975 } - case 6395 { rate := 1000000015677045953128601614 } - case 6396 { rate := 1000000015678980007746682266 } - case 6397 { rate := 1000000015680913944409433552 } - case 6398 { rate := 1000000015682847763131242461 } - case 6399 { rate := 1000000015684781463926493350 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates6400To7199.sol b/src/repositories/Rates6400To7199.sol deleted file mode 100644 index 1c2192a..0000000 --- a/src/repositories/Rates6400To7199.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates6400To7199 { - uint256 constant public MIN = 6400; - uint256 constant public MAX = 7199; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 6799) - case 0 { // 6400-6799 - switch gt(bps, 6599) - case 0 { // 6400-6599 - switch gt(bps, 6499) - case 0 { // 6400-6499 - switch gt(bps, 6449) - case 0 { // 6400-6449 - switch gt(bps, 6424) - case 0 { // 6400-6424 - switch bps - case 6400 { rate := 1000000015686715046809567945 } - case 6401 { rate := 1000000015688648511794845341 } - case 6402 { rate := 1000000015690581858896702002 } - case 6403 { rate := 1000000015692515088129511766 } - case 6404 { rate := 1000000015694448199507645837 } - case 6405 { rate := 1000000015696381193045472797 } - case 6406 { rate := 1000000015698314068757358594 } - case 6407 { rate := 1000000015700246826657666553 } - case 6408 { rate := 1000000015702179466760757373 } - case 6409 { rate := 1000000015704111989080989125 } - case 6410 { rate := 1000000015706044393632717258 } - case 6411 { rate := 1000000015707976680430294594 } - case 6412 { rate := 1000000015709908849488071333 } - case 6413 { rate := 1000000015711840900820395051 } - case 6414 { rate := 1000000015713772834441610701 } - case 6415 { rate := 1000000015715704650366060617 } - case 6416 { rate := 1000000015717636348608084511 } - case 6417 { rate := 1000000015719567929182019470 } - case 6418 { rate := 1000000015721499392102199968 } - case 6419 { rate := 1000000015723430737382957855 } - case 6420 { rate := 1000000015725361965038622365 } - case 6421 { rate := 1000000015727293075083520113 } - case 6422 { rate := 1000000015729224067531975096 } - case 6423 { rate := 1000000015731154942398308695 } - case 6424 { rate := 1000000015733085699696839676 } - default { revert(0, 0) } - } - case 1 { // 6425-6449 - switch bps - case 6425 { rate := 1000000015735016339441884188 } - case 6426 { rate := 1000000015736946861647755768 } - case 6427 { rate := 1000000015738877266328765334 } - case 6428 { rate := 1000000015740807553499221196 } - case 6429 { rate := 1000000015742737723173429047 } - case 6430 { rate := 1000000015744667775365691970 } - case 6431 { rate := 1000000015746597710090310436 } - case 6432 { rate := 1000000015748527527361582305 } - case 6433 { rate := 1000000015750457227193802825 } - case 6434 { rate := 1000000015752386809601264637 } - case 6435 { rate := 1000000015754316274598257774 } - case 6436 { rate := 1000000015756245622199069656 } - case 6437 { rate := 1000000015758174852417985099 } - case 6438 { rate := 1000000015760103965269286310 } - case 6439 { rate := 1000000015762032960767252891 } - case 6440 { rate := 1000000015763961838926161836 } - case 6441 { rate := 1000000015765890599760287538 } - case 6442 { rate := 1000000015767819243283901779 } - case 6443 { rate := 1000000015769747769511273744 } - case 6444 { rate := 1000000015771676178456670009 } - case 6445 { rate := 1000000015773604470134354550 } - case 6446 { rate := 1000000015775532644558588743 } - case 6447 { rate := 1000000015777460701743631357 } - case 6448 { rate := 1000000015779388641703738565 } - case 6449 { rate := 1000000015781316464453163938 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6450-6499 - switch gt(bps, 6474) - case 0 { // 6450-6474 - switch bps - case 6450 { rate := 1000000015783244170006158447 } - case 6451 { rate := 1000000015785171758376970467 } - case 6452 { rate := 1000000015787099229579845770 } - case 6453 { rate := 1000000015789026583629027536 } - case 6454 { rate := 1000000015790953820538756342 } - case 6455 { rate := 1000000015792880940323270174 } - case 6456 { rate := 1000000015794807942996804419 } - case 6457 { rate := 1000000015796734828573591870 } - case 6458 { rate := 1000000015798661597067862724 } - case 6459 { rate := 1000000015800588248493844588 } - case 6460 { rate := 1000000015802514782865762472 } - case 6461 { rate := 1000000015804441200197838795 } - case 6462 { rate := 1000000015806367500504293384 } - case 6463 { rate := 1000000015808293683799343474 } - case 6464 { rate := 1000000015810219750097203710 } - case 6465 { rate := 1000000015812145699412086147 } - case 6466 { rate := 1000000015814071531758200252 } - case 6467 { rate := 1000000015815997247149752899 } - case 6468 { rate := 1000000015817922845600948377 } - case 6469 { rate := 1000000015819848327125988387 } - case 6470 { rate := 1000000015821773691739072044 } - case 6471 { rate := 1000000015823698939454395875 } - case 6472 { rate := 1000000015825624070286153821 } - case 6473 { rate := 1000000015827549084248537241 } - case 6474 { rate := 1000000015829473981355734906 } - default { revert(0, 0) } - } - case 1 { // 6475-6499 - switch bps - case 6475 { rate := 1000000015831398761621933006 } - case 6476 { rate := 1000000015833323425061315145 } - case 6477 { rate := 1000000015835247971688062347 } - case 6478 { rate := 1000000015837172401516353055 } - case 6479 { rate := 1000000015839096714560363128 } - case 6480 { rate := 1000000015841020910834265843 } - case 6481 { rate := 1000000015842944990352231903 } - case 6482 { rate := 1000000015844868953128429425 } - case 6483 { rate := 1000000015846792799177023953 } - case 6484 { rate := 1000000015848716528512178448 } - case 6485 { rate := 1000000015850640141148053296 } - case 6486 { rate := 1000000015852563637098806307 } - case 6487 { rate := 1000000015854487016378592712 } - case 6488 { rate := 1000000015856410279001565169 } - case 6489 { rate := 1000000015858333424981873758 } - case 6490 { rate := 1000000015860256454333665989 } - case 6491 { rate := 1000000015862179367071086794 } - case 6492 { rate := 1000000015864102163208278534 } - case 6493 { rate := 1000000015866024842759380997 } - case 6494 { rate := 1000000015867947405738531398 } - case 6495 { rate := 1000000015869869852159864384 } - case 6496 { rate := 1000000015871792182037512030 } - case 6497 { rate := 1000000015873714395385603836 } - case 6498 { rate := 1000000015875636492218266741 } - case 6499 { rate := 1000000015877558472549625110 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6500-6599 - switch gt(bps, 6549) - case 0 { // 6500-6549 - switch gt(bps, 6524) - case 0 { // 6500-6524 - switch bps - case 6500 { rate := 1000000015879480336393800741 } - case 6501 { rate := 1000000015881402083764912862 } - case 6502 { rate := 1000000015883323714677078140 } - case 6503 { rate := 1000000015885245229144410671 } - case 6504 { rate := 1000000015887166627181021987 } - case 6505 { rate := 1000000015889087908801021053 } - case 6506 { rate := 1000000015891009074018514273 } - case 6507 { rate := 1000000015892930122847605485 } - case 6508 { rate := 1000000015894851055302395963 } - case 6509 { rate := 1000000015896771871396984421 } - case 6510 { rate := 1000000015898692571145467010 } - case 6511 { rate := 1000000015900613154561937317 } - case 6512 { rate := 1000000015902533621660486374 } - case 6513 { rate := 1000000015904453972455202647 } - case 6514 { rate := 1000000015906374206960172047 } - case 6515 { rate := 1000000015908294325189477924 } - case 6516 { rate := 1000000015910214327157201069 } - case 6517 { rate := 1000000015912134212877419719 } - case 6518 { rate := 1000000015914053982364209549 } - case 6519 { rate := 1000000015915973635631643682 } - case 6520 { rate := 1000000015917893172693792683 } - case 6521 { rate := 1000000015919812593564724562 } - case 6522 { rate := 1000000015921731898258504776 } - case 6523 { rate := 1000000015923651086789196227 } - case 6524 { rate := 1000000015925570159170859262 } - default { revert(0, 0) } - } - case 1 { // 6525-6549 - switch bps - case 6525 { rate := 1000000015927489115417551681 } - case 6526 { rate := 1000000015929407955543328724 } - case 6527 { rate := 1000000015931326679562243086 } - case 6528 { rate := 1000000015933245287488344910 } - case 6529 { rate := 1000000015935163779335681785 } - case 6530 { rate := 1000000015937082155118298755 } - case 6531 { rate := 1000000015939000414850238313 } - case 6532 { rate := 1000000015940918558545540404 } - case 6533 { rate := 1000000015942836586218242426 } - case 6534 { rate := 1000000015944754497882379228 } - case 6535 { rate := 1000000015946672293551983115 } - case 6536 { rate := 1000000015948589973241083845 } - case 6537 { rate := 1000000015950507536963708629 } - case 6538 { rate := 1000000015952424984733882136 } - case 6539 { rate := 1000000015954342316565626492 } - case 6540 { rate := 1000000015956259532472961274 } - case 6541 { rate := 1000000015958176632469903523 } - case 6542 { rate := 1000000015960093616570467734 } - case 6543 { rate := 1000000015962010484788665860 } - case 6544 { rate := 1000000015963927237138507317 } - case 6545 { rate := 1000000015965843873633998974 } - case 6546 { rate := 1000000015967760394289145167 } - case 6547 { rate := 1000000015969676799117947690 } - case 6548 { rate := 1000000015971593088134405798 } - case 6549 { rate := 1000000015973509261352516209 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6550-6599 - switch gt(bps, 6574) - case 0 { // 6550-6574 - switch bps - case 6550 { rate := 1000000015975425318786273105 } - case 6551 { rate := 1000000015977341260449668127 } - case 6552 { rate := 1000000015979257086356690385 } - case 6553 { rate := 1000000015981172796521326452 } - case 6554 { rate := 1000000015983088390957560365 } - case 6555 { rate := 1000000015985003869679373628 } - case 6556 { rate := 1000000015986919232700745209 } - case 6557 { rate := 1000000015988834480035651548 } - case 6558 { rate := 1000000015990749611698066548 } - case 6559 { rate := 1000000015992664627701961582 } - case 6560 { rate := 1000000015994579528061305491 } - case 6561 { rate := 1000000015996494312790064590 } - case 6562 { rate := 1000000015998408981902202656 } - case 6563 { rate := 1000000016000323535411680943 } - case 6564 { rate := 1000000016002237973332458175 } - case 6565 { rate := 1000000016004152295678490547 } - case 6566 { rate := 1000000016006066502463731726 } - case 6567 { rate := 1000000016007980593702132855 } - case 6568 { rate := 1000000016009894569407642547 } - case 6569 { rate := 1000000016011808429594206893 } - case 6570 { rate := 1000000016013722174275769455 } - case 6571 { rate := 1000000016015635803466271275 } - case 6572 { rate := 1000000016017549317179650868 } - case 6573 { rate := 1000000016019462715429844226 } - case 6574 { rate := 1000000016021375998230784820 } - default { revert(0, 0) } - } - case 1 { // 6575-6599 - switch bps - case 6575 { rate := 1000000016023289165596403599 } - case 6576 { rate := 1000000016025202217540628989 } - case 6577 { rate := 1000000016027115154077386896 } - case 6578 { rate := 1000000016029027975220600708 } - case 6579 { rate := 1000000016030940680984191289 } - case 6580 { rate := 1000000016032853271382076987 } - case 6581 { rate := 1000000016034765746428173632 } - case 6582 { rate := 1000000016036678106136394535 } - case 6583 { rate := 1000000016038590350520650490 } - case 6584 { rate := 1000000016040502479594849776 } - case 6585 { rate := 1000000016042414493372898155 } - case 6586 { rate := 1000000016044326391868698872 } - case 6587 { rate := 1000000016046238175096152661 } - case 6588 { rate := 1000000016048149843069157739 } - case 6589 { rate := 1000000016050061395801609810 } - case 6590 { rate := 1000000016051972833307402066 } - case 6591 { rate := 1000000016053884155600425188 } - case 6592 { rate := 1000000016055795362694567342 } - case 6593 { rate := 1000000016057706454603714184 } - case 6594 { rate := 1000000016059617431341748863 } - case 6595 { rate := 1000000016061528292922552013 } - case 6596 { rate := 1000000016063439039360001761 } - case 6597 { rate := 1000000016065349670667973728 } - case 6598 { rate := 1000000016067260186860341022 } - case 6599 { rate := 1000000016069170587950974247 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6600-6799 - switch gt(bps, 6699) - case 0 { // 6600-6699 - switch gt(bps, 6649) - case 0 { // 6600-6649 - switch gt(bps, 6624) - case 0 { // 6600-6624 - switch bps - case 6600 { rate := 1000000016071080873953741499 } - case 6601 { rate := 1000000016072991044882508369 } - case 6602 { rate := 1000000016074901100751137941 } - case 6603 { rate := 1000000016076811041573490795 } - case 6604 { rate := 1000000016078720867363425005 } - case 6605 { rate := 1000000016080630578134796143 } - case 6606 { rate := 1000000016082540173901457278 } - case 6607 { rate := 1000000016084449654677258973 } - case 6608 { rate := 1000000016086359020476049294 } - case 6609 { rate := 1000000016088268271311673802 } - case 6610 { rate := 1000000016090177407197975559 } - case 6611 { rate := 1000000016092086428148795125 } - case 6612 { rate := 1000000016093995334177970563 } - case 6613 { rate := 1000000016095904125299337436 } - case 6614 { rate := 1000000016097812801526728807 } - case 6615 { rate := 1000000016099721362873975244 } - case 6616 { rate := 1000000016101629809354904814 } - case 6617 { rate := 1000000016103538140983343092 } - case 6618 { rate := 1000000016105446357773113153 } - case 6619 { rate := 1000000016107354459738035580 } - case 6620 { rate := 1000000016109262446891928459 } - case 6621 { rate := 1000000016111170319248607383 } - case 6622 { rate := 1000000016113078076821885451 } - case 6623 { rate := 1000000016114985719625573268 } - case 6624 { rate := 1000000016116893247673478948 } - default { revert(0, 0) } - } - case 1 { // 6625-6649 - switch bps - case 6625 { rate := 1000000016118800660979408115 } - case 6626 { rate := 1000000016120707959557163897 } - case 6627 { rate := 1000000016122615143420546934 } - case 6628 { rate := 1000000016124522212583355378 } - case 6629 { rate := 1000000016126429167059384889 } - case 6630 { rate := 1000000016128336006862428639 } - case 6631 { rate := 1000000016130242732006277312 } - case 6632 { rate := 1000000016132149342504719104 } - case 6633 { rate := 1000000016134055838371539725 } - case 6634 { rate := 1000000016135962219620522398 } - case 6635 { rate := 1000000016137868486265447859 } - case 6636 { rate := 1000000016139774638320094360 } - case 6637 { rate := 1000000016141680675798237669 } - case 6638 { rate := 1000000016143586598713651070 } - case 6639 { rate := 1000000016145492407080105363 } - case 6640 { rate := 1000000016147398100911368865 } - case 6641 { rate := 1000000016149303680221207410 } - case 6642 { rate := 1000000016151209145023384352 } - case 6643 { rate := 1000000016153114495331660565 } - case 6644 { rate := 1000000016155019731159794439 } - case 6645 { rate := 1000000016156924852521541888 } - case 6646 { rate := 1000000016158829859430656342 } - case 6647 { rate := 1000000016160734751900888759 } - case 6648 { rate := 1000000016162639529945987614 } - case 6649 { rate := 1000000016164544193579698905 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6650-6699 - switch gt(bps, 6674) - case 0 { // 6650-6674 - switch bps - case 6650 { rate := 1000000016166448742815766155 } - case 6651 { rate := 1000000016168353177667930410 } - case 6652 { rate := 1000000016170257498149930239 } - case 6653 { rate := 1000000016172161704275501740 } - case 6654 { rate := 1000000016174065796058378532 } - case 6655 { rate := 1000000016175969773512291760 } - case 6656 { rate := 1000000016177873636650970102 } - case 6657 { rate := 1000000016179777385488139756 } - case 6658 { rate := 1000000016181681020037524450 } - case 6659 { rate := 1000000016183584540312845443 } - case 6660 { rate := 1000000016185487946327821522 } - case 6661 { rate := 1000000016187391238096169003 } - case 6662 { rate := 1000000016189294415631601732 } - case 6663 { rate := 1000000016191197478947831086 } - case 6664 { rate := 1000000016193100428058565975 } - case 6665 { rate := 1000000016195003262977512839 } - case 6666 { rate := 1000000016196905983718375652 } - case 6667 { rate := 1000000016198808590294855920 } - case 6668 { rate := 1000000016200711082720652686 } - case 6669 { rate := 1000000016202613461009462523 } - case 6670 { rate := 1000000016204515725174979542 } - case 6671 { rate := 1000000016206417875230895389 } - case 6672 { rate := 1000000016208319911190899247 } - case 6673 { rate := 1000000016210221833068677832 } - case 6674 { rate := 1000000016212123640877915404 } - default { revert(0, 0) } - } - case 1 { // 6675-6699 - switch bps - case 6675 { rate := 1000000016214025334632293755 } - case 6676 { rate := 1000000016215926914345492218 } - case 6677 { rate := 1000000016217828380031187665 } - case 6678 { rate := 1000000016219729731703054508 } - case 6679 { rate := 1000000016221630969374764700 } - case 6680 { rate := 1000000016223532093059987732 } - case 6681 { rate := 1000000016225433102772390641 } - case 6682 { rate := 1000000016227333998525638003 } - case 6683 { rate := 1000000016229234780333391936 } - case 6684 { rate := 1000000016231135448209312105 } - case 6685 { rate := 1000000016233036002167055714 } - case 6686 { rate := 1000000016234936442220277518 } - case 6687 { rate := 1000000016236836768382629809 } - case 6688 { rate := 1000000016238736980667762431 } - case 6689 { rate := 1000000016240637079089322772 } - case 6690 { rate := 1000000016242537063660955766 } - case 6691 { rate := 1000000016244436934396303896 } - case 6692 { rate := 1000000016246336691309007193 } - case 6693 { rate := 1000000016248236334412703235 } - case 6694 { rate := 1000000016250135863721027150 } - case 6695 { rate := 1000000016252035279247611617 } - case 6696 { rate := 1000000016253934581006086862 } - case 6697 { rate := 1000000016255833769010080666 } - case 6698 { rate := 1000000016257732843273218361 } - case 6699 { rate := 1000000016259631803809122826 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6700-6799 - switch gt(bps, 6749) - case 0 { // 6700-6749 - switch gt(bps, 6724) - case 0 { // 6700-6724 - switch bps - case 6700 { rate := 1000000016261530650631414500 } - case 6701 { rate := 1000000016263429383753711370 } - case 6702 { rate := 1000000016265328003189628979 } - case 6703 { rate := 1000000016267226508952780424 } - case 6704 { rate := 1000000016269124901056776358 } - case 6705 { rate := 1000000016271023179515224989 } - case 6706 { rate := 1000000016272921344341732080 } - case 6707 { rate := 1000000016274819395549900951 } - case 6708 { rate := 1000000016276717333153332483 } - case 6709 { rate := 1000000016278615157165625110 } - case 6710 { rate := 1000000016280512867600374827 } - case 6711 { rate := 1000000016282410464471175189 } - case 6712 { rate := 1000000016284307947791617308 } - case 6713 { rate := 1000000016286205317575289861 } - case 6714 { rate := 1000000016288102573835779079 } - case 6715 { rate := 1000000016289999716586668760 } - case 6716 { rate := 1000000016291896745841540263 } - case 6717 { rate := 1000000016293793661613972507 } - case 6718 { rate := 1000000016295690463917541979 } - case 6719 { rate := 1000000016297587152765822726 } - case 6720 { rate := 1000000016299483728172386359 } - case 6721 { rate := 1000000016301380190150802056 } - case 6722 { rate := 1000000016303276538714636561 } - case 6723 { rate := 1000000016305172773877454184 } - case 6724 { rate := 1000000016307068895652816797 } - default { revert(0, 0) } - } - case 1 { // 6725-6749 - switch bps - case 6725 { rate := 1000000016308964904054283846 } - case 6726 { rate := 1000000016310860799095412343 } - case 6727 { rate := 1000000016312756580789756865 } - case 6728 { rate := 1000000016314652249150869561 } - case 6729 { rate := 1000000016316547804192300151 } - case 6730 { rate := 1000000016318443245927595921 } - case 6731 { rate := 1000000016320338574370301732 } - case 6732 { rate := 1000000016322233789533960012 } - case 6733 { rate := 1000000016324128891432110768 } - case 6734 { rate := 1000000016326023880078291569 } - case 6735 { rate := 1000000016327918755486037569 } - case 6736 { rate := 1000000016329813517668881487 } - case 6737 { rate := 1000000016331708166640353619 } - case 6738 { rate := 1000000016333602702413981835 } - case 6739 { rate := 1000000016335497125003291584 } - case 6740 { rate := 1000000016337391434421805887 } - case 6741 { rate := 1000000016339285630683045343 } - case 6742 { rate := 1000000016341179713800528128 } - case 6743 { rate := 1000000016343073683787769996 } - case 6744 { rate := 1000000016344967540658284281 } - case 6745 { rate := 1000000016346861284425581891 } - case 6746 { rate := 1000000016348754915103171319 } - case 6747 { rate := 1000000016350648432704558634 } - case 6748 { rate := 1000000016352541837243247489 } - case 6749 { rate := 1000000016354435128732739115 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6750-6799 - switch gt(bps, 6774) - case 0 { // 6750-6774 - switch bps - case 6750 { rate := 1000000016356328307186532328 } - case 6751 { rate := 1000000016358221372618123524 } - case 6752 { rate := 1000000016360114325041006682 } - case 6753 { rate := 1000000016362007164468673366 } - case 6754 { rate := 1000000016363899890914612724 } - case 6755 { rate := 1000000016365792504392311486 } - case 6756 { rate := 1000000016367685004915253971 } - case 6757 { rate := 1000000016369577392496922081 } - case 6758 { rate := 1000000016371469667150795306 } - case 6759 { rate := 1000000016373361828890350723 } - case 6760 { rate := 1000000016375253877729062995 } - case 6761 { rate := 1000000016377145813680404375 } - case 6762 { rate := 1000000016379037636757844703 } - case 6763 { rate := 1000000016380929346974851411 } - case 6764 { rate := 1000000016382820944344889517 } - case 6765 { rate := 1000000016384712428881421632 } - case 6766 { rate := 1000000016386603800597907959 } - case 6767 { rate := 1000000016388495059507806289 } - case 6768 { rate := 1000000016390386205624572010 } - case 6769 { rate := 1000000016392277238961658097 } - case 6770 { rate := 1000000016394168159532515122 } - case 6771 { rate := 1000000016396058967350591252 } - case 6772 { rate := 1000000016397949662429332245 } - case 6773 { rate := 1000000016399840244782181456 } - case 6774 { rate := 1000000016401730714422579836 } - default { revert(0, 0) } - } - case 1 { // 6775-6799 - switch bps - case 6775 { rate := 1000000016403621071363965932 } - case 6776 { rate := 1000000016405511315619775885 } - case 6777 { rate := 1000000016407401447203443437 } - case 6778 { rate := 1000000016409291466128399927 } - case 6779 { rate := 1000000016411181372408074291 } - case 6780 { rate := 1000000016413071166055893066 } - case 6781 { rate := 1000000016414960847085280386 } - case 6782 { rate := 1000000016416850415509657988 } - case 6783 { rate := 1000000016418739871342445209 } - case 6784 { rate := 1000000016420629214597058985 } - case 6785 { rate := 1000000016422518445286913858 } - case 6786 { rate := 1000000016424407563425421969 } - case 6787 { rate := 1000000016426296569025993065 } - case 6788 { rate := 1000000016428185462102034492 } - case 6789 { rate := 1000000016430074242666951206 } - case 6790 { rate := 1000000016431962910734145763 } - case 6791 { rate := 1000000016433851466317018328 } - case 6792 { rate := 1000000016435739909428966668 } - case 6793 { rate := 1000000016437628240083386160 } - case 6794 { rate := 1000000016439516458293669787 } - case 6795 { rate := 1000000016441404564073208138 } - case 6796 { rate := 1000000016443292557435389412 } - case 6797 { rate := 1000000016445180438393599417 } - case 6798 { rate := 1000000016447068206961221569 } - case 6799 { rate := 1000000016448955863151636894 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6800-7199 - switch gt(bps, 6999) - case 0 { // 6800-6999 - switch gt(bps, 6899) - case 0 { // 6800-6899 - switch gt(bps, 6849) - case 0 { // 6800-6849 - switch gt(bps, 6824) - case 0 { // 6800-6824 - switch bps - case 6800 { rate := 1000000016450843406978224029 } - case 6801 { rate := 1000000016452730838454359222 } - case 6802 { rate := 1000000016454618157593416334 } - case 6803 { rate := 1000000016456505364408766833 } - case 6804 { rate := 1000000016458392458913779807 } - case 6805 { rate := 1000000016460279441121821953 } - case 6806 { rate := 1000000016462166311046257581 } - case 6807 { rate := 1000000016464053068700448618 } - case 6808 { rate := 1000000016465939714097754606 } - case 6809 { rate := 1000000016467826247251532699 } - case 6810 { rate := 1000000016469712668175137672 } - case 6811 { rate := 1000000016471598976881921914 } - case 6812 { rate := 1000000016473485173385235432 } - case 6813 { rate := 1000000016475371257698425850 } - case 6814 { rate := 1000000016477257229834838411 } - case 6815 { rate := 1000000016479143089807815977 } - case 6816 { rate := 1000000016481028837630699030 } - case 6817 { rate := 1000000016482914473316825670 } - case 6818 { rate := 1000000016484799996879531621 } - case 6819 { rate := 1000000016486685408332150226 } - case 6820 { rate := 1000000016488570707688012450 } - case 6821 { rate := 1000000016490455894960446883 } - case 6822 { rate := 1000000016492340970162779731 } - case 6823 { rate := 1000000016494225933308334832 } - case 6824 { rate := 1000000016496110784410433643 } - default { revert(0, 0) } - } - case 1 { // 6825-6849 - switch bps - case 6825 { rate := 1000000016497995523482395247 } - case 6826 { rate := 1000000016499880150537536351 } - case 6827 { rate := 1000000016501764665589171290 } - case 6828 { rate := 1000000016503649068650612025 } - case 6829 { rate := 1000000016505533359735168140 } - case 6830 { rate := 1000000016507417538856146852 } - case 6831 { rate := 1000000016509301606026853003 } - case 6832 { rate := 1000000016511185561260589063 } - case 6833 { rate := 1000000016513069404570655134 } - case 6834 { rate := 1000000016514953135970348945 } - case 6835 { rate := 1000000016516836755472965855 } - case 6836 { rate := 1000000016518720263091798857 } - case 6837 { rate := 1000000016520603658840138572 } - case 6838 { rate := 1000000016522486942731273255 } - case 6839 { rate := 1000000016524370114778488794 } - case 6840 { rate := 1000000016526253174995068707 } - case 6841 { rate := 1000000016528136123394294149 } - case 6842 { rate := 1000000016530018959989443907 } - case 6843 { rate := 1000000016531901684793794404 } - case 6844 { rate := 1000000016533784297820619698 } - case 6845 { rate := 1000000016535666799083191483 } - case 6846 { rate := 1000000016537549188594779088 } - case 6847 { rate := 1000000016539431466368649483 } - case 6848 { rate := 1000000016541313632418067271 } - case 6849 { rate := 1000000016543195686756294694 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6850-6899 - switch gt(bps, 6874) - case 0 { // 6850-6874 - switch bps - case 6850 { rate := 1000000016545077629396591637 } - case 6851 { rate := 1000000016546959460352215619 } - case 6852 { rate := 1000000016548841179636421799 } - case 6853 { rate := 1000000016550722787262462982 } - case 6854 { rate := 1000000016552604283243589608 } - case 6855 { rate := 1000000016554485667593049761 } - case 6856 { rate := 1000000016556366940324089165 } - case 6857 { rate := 1000000016558248101449951192 } - case 6858 { rate := 1000000016560129150983876850 } - case 6859 { rate := 1000000016562010088939104796 } - case 6860 { rate := 1000000016563890915328871330 } - case 6861 { rate := 1000000016565771630166410395 } - case 6862 { rate := 1000000016567652233464953581 } - case 6863 { rate := 1000000016569532725237730125 } - case 6864 { rate := 1000000016571413105497966909 } - case 6865 { rate := 1000000016573293374258888461 } - case 6866 { rate := 1000000016575173531533716960 } - case 6867 { rate := 1000000016577053577335672229 } - case 6868 { rate := 1000000016578933511677971744 } - case 6869 { rate := 1000000016580813334573830628 } - case 6870 { rate := 1000000016582693046036461653 } - case 6871 { rate := 1000000016584572646079075244 } - case 6872 { rate := 1000000016586452134714879475 } - case 6873 { rate := 1000000016588331511957080072 } - case 6874 { rate := 1000000016590210777818880415 } - default { revert(0, 0) } - } - case 1 { // 6875-6899 - switch bps - case 6875 { rate := 1000000016592089932313481533 } - case 6876 { rate := 1000000016593968975454082111 } - case 6877 { rate := 1000000016595847907253878486 } - case 6878 { rate := 1000000016597726727726064651 } - case 6879 { rate := 1000000016599605436883832255 } - case 6880 { rate := 1000000016601484034740370597 } - case 6881 { rate := 1000000016603362521308866639 } - case 6882 { rate := 1000000016605240896602504994 } - case 6883 { rate := 1000000016607119160634467936 } - case 6884 { rate := 1000000016608997313417935393 } - case 6885 { rate := 1000000016610875354966084955 } - case 6886 { rate := 1000000016612753285292091867 } - case 6887 { rate := 1000000016614631104409129037 } - case 6888 { rate := 1000000016616508812330367032 } - case 6889 { rate := 1000000016618386409068974076 } - case 6890 { rate := 1000000016620263894638116058 } - case 6891 { rate := 1000000016622141269050956527 } - case 6892 { rate := 1000000016624018532320656694 } - case 6893 { rate := 1000000016625895684460375433 } - case 6894 { rate := 1000000016627772725483269281 } - case 6895 { rate := 1000000016629649655402492440 } - case 6896 { rate := 1000000016631526474231196774 } - case 6897 { rate := 1000000016633403181982531813 } - case 6898 { rate := 1000000016635279778669644752 } - case 6899 { rate := 1000000016637156264305680454 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6900-6999 - switch gt(bps, 6949) - case 0 { // 6900-6949 - switch gt(bps, 6924) - case 0 { // 6900-6924 - switch bps - case 6900 { rate := 1000000016639032638903781446 } - case 6901 { rate := 1000000016640908902477087924 } - case 6902 { rate := 1000000016642785055038737748 } - case 6903 { rate := 1000000016644661096601866452 } - case 6904 { rate := 1000000016646537027179607234 } - case 6905 { rate := 1000000016648412846785090963 } - case 6906 { rate := 1000000016650288555431446177 } - case 6907 { rate := 1000000016652164153131799087 } - case 6908 { rate := 1000000016654039639899273571 } - case 6909 { rate := 1000000016655915015746991182 } - case 6910 { rate := 1000000016657790280688071142 } - case 6911 { rate := 1000000016659665434735630349 } - case 6912 { rate := 1000000016661540477902783371 } - case 6913 { rate := 1000000016663415410202642451 } - case 6914 { rate := 1000000016665290231648317506 } - case 6915 { rate := 1000000016667164942252916129 } - case 6916 { rate := 1000000016669039542029543587 } - case 6917 { rate := 1000000016670914030991302822 } - case 6918 { rate := 1000000016672788409151294456 } - case 6919 { rate := 1000000016674662676522616783 } - case 6920 { rate := 1000000016676536833118365780 } - case 6921 { rate := 1000000016678410878951635096 } - case 6922 { rate := 1000000016680284814035516064 } - case 6923 { rate := 1000000016682158638383097695 } - case 6924 { rate := 1000000016684032352007466677 } - default { revert(0, 0) } - } - case 1 { // 6925-6949 - switch bps - case 6925 { rate := 1000000016685905954921707380 } - case 6926 { rate := 1000000016687779447138901857 } - case 6927 { rate := 1000000016689652828672129838 } - case 6928 { rate := 1000000016691526099534468738 } - case 6929 { rate := 1000000016693399259738993654 } - case 6930 { rate := 1000000016695272309298777366 } - case 6931 { rate := 1000000016697145248226890337 } - case 6932 { rate := 1000000016699018076536400715 } - case 6933 { rate := 1000000016700890794240374330 } - case 6934 { rate := 1000000016702763401351874702 } - case 6935 { rate := 1000000016704635897883963033 } - case 6936 { rate := 1000000016706508283849698211 } - case 6937 { rate := 1000000016708380559262136815 } - case 6938 { rate := 1000000016710252724134333106 } - case 6939 { rate := 1000000016712124778479339037 } - case 6940 { rate := 1000000016713996722310204248 } - case 6941 { rate := 1000000016715868555639976067 } - case 6942 { rate := 1000000016717740278481699513 } - case 6943 { rate := 1000000016719611890848417297 } - case 6944 { rate := 1000000016721483392753169815 } - case 6945 { rate := 1000000016723354784208995160 } - case 6946 { rate := 1000000016725226065228929112 } - case 6947 { rate := 1000000016727097235826005150 } - case 6948 { rate := 1000000016728968296013254437 } - case 6949 { rate := 1000000016730839245803705837 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 6950-6999 - switch gt(bps, 6974) - case 0 { // 6950-6974 - switch bps - case 6950 { rate := 1000000016732710085210385903 } - case 6951 { rate := 1000000016734580814246318886 } - case 6952 { rate := 1000000016736451432924526729 } - case 6953 { rate := 1000000016738321941258029073 } - case 6954 { rate := 1000000016740192339259843253 } - case 6955 { rate := 1000000016742062626942984304 } - case 6956 { rate := 1000000016743932804320464954 } - case 6957 { rate := 1000000016745802871405295631 } - case 6958 { rate := 1000000016747672828210484461 } - case 6959 { rate := 1000000016749542674749037270 } - case 6960 { rate := 1000000016751412411033957580 } - case 6961 { rate := 1000000016753282037078246617 } - case 6962 { rate := 1000000016755151552894903305 } - case 6963 { rate := 1000000016757020958496924269 } - case 6964 { rate := 1000000016758890253897303837 } - case 6965 { rate := 1000000016760759439109034038 } - case 6966 { rate := 1000000016762628514145104603 } - case 6967 { rate := 1000000016764497479018502969 } - case 6968 { rate := 1000000016766366333742214272 } - case 6969 { rate := 1000000016768235078329221357 } - case 6970 { rate := 1000000016770103712792504771 } - case 6971 { rate := 1000000016771972237145042768 } - case 6972 { rate := 1000000016773840651399811306 } - case 6973 { rate := 1000000016775708955569784050 } - case 6974 { rate := 1000000016777577149667932373 } - default { revert(0, 0) } - } - case 1 { // 6975-6999 - switch bps - case 6975 { rate := 1000000016779445233707225354 } - case 6976 { rate := 1000000016781313207700629783 } - case 6977 { rate := 1000000016783181071661110154 } - case 6978 { rate := 1000000016785048825601628673 } - case 6979 { rate := 1000000016786916469535145257 } - case 6980 { rate := 1000000016788784003474617530 } - case 6981 { rate := 1000000016790651427433000828 } - case 6982 { rate := 1000000016792518741423248199 } - case 6983 { rate := 1000000016794385945458310402 } - case 6984 { rate := 1000000016796253039551135908 } - case 6985 { rate := 1000000016798120023714670903 } - case 6986 { rate := 1000000016799986897961859283 } - case 6987 { rate := 1000000016801853662305642661 } - case 6988 { rate := 1000000016803720316758960363 } - case 6989 { rate := 1000000016805586861334749431 } - case 6990 { rate := 1000000016807453296045944621 } - case 6991 { rate := 1000000016809319620905478407 } - case 6992 { rate := 1000000016811185835926280979 } - case 6993 { rate := 1000000016813051941121280243 } - case 6994 { rate := 1000000016814917936503401823 } - case 6995 { rate := 1000000016816783822085569065 } - case 6996 { rate := 1000000016818649597880703028 } - case 6997 { rate := 1000000016820515263901722494 } - case 6998 { rate := 1000000016822380820161543963 } - case 6999 { rate := 1000000016824246266673081659 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7000-7199 - switch gt(bps, 7099) - case 0 { // 7000-7099 - switch gt(bps, 7049) - case 0 { // 7000-7049 - switch gt(bps, 7024) - case 0 { // 7000-7024 - switch bps - case 7000 { rate := 1000000016826111603449247521 } - case 7001 { rate := 1000000016827976830502951216 } - case 7002 { rate := 1000000016829841947847100128 } - case 7003 { rate := 1000000016831706955494599366 } - case 7004 { rate := 1000000016833571853458351761 } - case 7005 { rate := 1000000016835436641751257869 } - case 7006 { rate := 1000000016837301320386215969 } - case 7007 { rate := 1000000016839165889376122066 } - case 7008 { rate := 1000000016841030348733869887 } - case 7009 { rate := 1000000016842894698472350889 } - case 7010 { rate := 1000000016844758938604454252 } - case 7011 { rate := 1000000016846623069143066886 } - case 7012 { rate := 1000000016848487090101073424 } - case 7013 { rate := 1000000016850351001491356231 } - case 7014 { rate := 1000000016852214803326795400 } - case 7015 { rate := 1000000016854078495620268751 } - case 7016 { rate := 1000000016855942078384651834 } - case 7017 { rate := 1000000016857805551632817929 } - case 7018 { rate := 1000000016859668915377638048 } - case 7019 { rate := 1000000016861532169631980933 } - case 7020 { rate := 1000000016863395314408713059 } - case 7021 { rate := 1000000016865258349720698630 } - case 7022 { rate := 1000000016867121275580799585 } - case 7023 { rate := 1000000016868984092001875597 } - case 7024 { rate := 1000000016870846798996784070 } - default { revert(0, 0) } - } - case 1 { // 7025-7049 - switch bps - case 7025 { rate := 1000000016872709396578380147 } - case 7026 { rate := 1000000016874571884759516701 } - case 7027 { rate := 1000000016876434263553044341 } - case 7028 { rate := 1000000016878296532971811416 } - case 7029 { rate := 1000000016880158693028664007 } - case 7030 { rate := 1000000016882020743736445934 } - case 7031 { rate := 1000000016883882685107998752 } - case 7032 { rate := 1000000016885744517156161760 } - case 7033 { rate := 1000000016887606239893771989 } - case 7034 { rate := 1000000016889467853333664213 } - case 7035 { rate := 1000000016891329357488670944 } - case 7036 { rate := 1000000016893190752371622434 } - case 7037 { rate := 1000000016895052037995346676 } - case 7038 { rate := 1000000016896913214372669406 } - case 7039 { rate := 1000000016898774281516414100 } - case 7040 { rate := 1000000016900635239439401976 } - case 7041 { rate := 1000000016902496088154451995 } - case 7042 { rate := 1000000016904356827674380861 } - case 7043 { rate := 1000000016906217458012003025 } - case 7044 { rate := 1000000016908077979180130677 } - case 7045 { rate := 1000000016909938391191573757 } - case 7046 { rate := 1000000016911798694059139947 } - case 7047 { rate := 1000000016913658887795634678 } - case 7048 { rate := 1000000016915518972413861124 } - case 7049 { rate := 1000000016917378947926620208 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7050-7099 - switch gt(bps, 7074) - case 0 { // 7050-7074 - switch bps - case 7050 { rate := 1000000016919238814346710603 } - case 7051 { rate := 1000000016921098571686928723 } - case 7052 { rate := 1000000016922958219960068739 } - case 7053 { rate := 1000000016924817759178922565 } - case 7054 { rate := 1000000016926677189356279869 } - case 7055 { rate := 1000000016928536510504928066 } - case 7056 { rate := 1000000016930395722637652322 } - case 7057 { rate := 1000000016932254825767235558 } - case 7058 { rate := 1000000016934113819906458442 } - case 7059 { rate := 1000000016935972705068099396 } - case 7060 { rate := 1000000016937831481264934596 } - case 7061 { rate := 1000000016939690148509737971 } - case 7062 { rate := 1000000016941548706815281202 } - case 7063 { rate := 1000000016943407156194333727 } - case 7064 { rate := 1000000016945265496659662739 } - case 7065 { rate := 1000000016947123728224033182 } - case 7066 { rate := 1000000016948981850900207763 } - case 7067 { rate := 1000000016950839864700946939 } - case 7068 { rate := 1000000016952697769639008929 } - case 7069 { rate := 1000000016954555565727149706 } - case 7070 { rate := 1000000016956413252978123003 } - case 7071 { rate := 1000000016958270831404680312 } - case 7072 { rate := 1000000016960128301019570884 } - case 7073 { rate := 1000000016961985661835541727 } - case 7074 { rate := 1000000016963842913865337612 } - default { revert(0, 0) } - } - case 1 { // 7075-7099 - switch bps - case 7075 { rate := 1000000016965700057121701072 } - case 7076 { rate := 1000000016967557091617372397 } - case 7077 { rate := 1000000016969414017365089642 } - case 7078 { rate := 1000000016971270834377588623 } - case 7079 { rate := 1000000016973127542667602920 } - case 7080 { rate := 1000000016974984142247863875 } - case 7081 { rate := 1000000016976840633131100595 } - case 7082 { rate := 1000000016978697015330039950 } - case 7083 { rate := 1000000016980553288857406577 } - case 7084 { rate := 1000000016982409453725922877 } - case 7085 { rate := 1000000016984265509948309016 } - case 7086 { rate := 1000000016986121457537282929 } - case 7087 { rate := 1000000016987977296505560317 } - case 7088 { rate := 1000000016989833026865854647 } - case 7089 { rate := 1000000016991688648630877157 } - case 7090 { rate := 1000000016993544161813336850 } - case 7091 { rate := 1000000016995399566425940502 } - case 7092 { rate := 1000000016997254862481392657 } - case 7093 { rate := 1000000016999110049992395626 } - case 7094 { rate := 1000000017000965128971649496 } - case 7095 { rate := 1000000017002820099431852122 } - case 7096 { rate := 1000000017004674961385699132 } - case 7097 { rate := 1000000017006529714845883924 } - case 7098 { rate := 1000000017008384359825097672 } - case 7099 { rate := 1000000017010238896336029322 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7100-7199 - switch gt(bps, 7149) - case 0 { // 7100-7149 - switch gt(bps, 7124) - case 0 { // 7100-7124 - switch bps - case 7100 { rate := 1000000017012093324391365593 } - case 7101 { rate := 1000000017013947644003790979 } - case 7102 { rate := 1000000017015801855185987748 } - case 7103 { rate := 1000000017017655957950635945 } - case 7104 { rate := 1000000017019509952310413390 } - case 7105 { rate := 1000000017021363838277995678 } - case 7106 { rate := 1000000017023217615866056185 } - case 7107 { rate := 1000000017025071285087266058 } - case 7108 { rate := 1000000017026924845954294229 } - case 7109 { rate := 1000000017028778298479807404 } - case 7110 { rate := 1000000017030631642676470068 } - case 7111 { rate := 1000000017032484878556944490 } - case 7112 { rate := 1000000017034338006133890711 } - case 7113 { rate := 1000000017036191025419966563 } - case 7114 { rate := 1000000017038043936427827649 } - case 7115 { rate := 1000000017039896739170127359 } - case 7116 { rate := 1000000017041749433659516866 } - case 7117 { rate := 1000000017043602019908645121 } - case 7118 { rate := 1000000017045454497930158862 } - case 7119 { rate := 1000000017047306867736702611 } - case 7120 { rate := 1000000017049159129340918671 } - case 7121 { rate := 1000000017051011282755447132 } - case 7122 { rate := 1000000017052863327992925869 } - case 7123 { rate := 1000000017054715265065990543 } - case 7124 { rate := 1000000017056567093987274599 } - default { revert(0, 0) } - } - case 1 { // 7125-7149 - switch bps - case 7125 { rate := 1000000017058418814769409273 } - case 7126 { rate := 1000000017060270427425023583 } - case 7127 { rate := 1000000017062121931966744339 } - case 7128 { rate := 1000000017063973328407196139 } - case 7129 { rate := 1000000017065824616759001367 } - case 7130 { rate := 1000000017067675797034780199 } - case 7131 { rate := 1000000017069526869247150599 } - case 7132 { rate := 1000000017071377833408728323 } - case 7133 { rate := 1000000017073228689532126918 } - case 7134 { rate := 1000000017075079437629957721 } - case 7135 { rate := 1000000017076930077714829862 } - case 7136 { rate := 1000000017078780609799350263 } - case 7137 { rate := 1000000017080631033896123639 } - case 7138 { rate := 1000000017082481350017752499 } - case 7139 { rate := 1000000017084331558176837145 } - case 7140 { rate := 1000000017086181658385975674 } - case 7141 { rate := 1000000017088031650657763979 } - case 7142 { rate := 1000000017089881535004795747 } - case 7143 { rate := 1000000017091731311439662461 } - case 7144 { rate := 1000000017093580979974953404 } - case 7145 { rate := 1000000017095430540623255651 } - case 7146 { rate := 1000000017097279993397154077 } - case 7147 { rate := 1000000017099129338309231355 } - case 7148 { rate := 1000000017100978575372067958 } - case 7149 { rate := 1000000017102827704598242158 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7150-7199 - switch gt(bps, 7174) - case 0 { // 7150-7174 - switch bps - case 7150 { rate := 1000000017104676726000330021 } - case 7151 { rate := 1000000017106525639590905422 } - case 7152 { rate := 1000000017108374445382540031 } - case 7153 { rate := 1000000017110223143387803320 } - case 7154 { rate := 1000000017112071733619262563 } - case 7155 { rate := 1000000017113920216089482839 } - case 7156 { rate := 1000000017115768590811027024 } - case 7157 { rate := 1000000017117616857796455803 } - case 7158 { rate := 1000000017119465017058327660 } - case 7159 { rate := 1000000017121313068609198888 } - case 7160 { rate := 1000000017123161012461623580 } - case 7161 { rate := 1000000017125008848628153638 } - case 7162 { rate := 1000000017126856577121338769 } - case 7163 { rate := 1000000017128704197953726483 } - case 7164 { rate := 1000000017130551711137862102 } - case 7165 { rate := 1000000017132399116686288751 } - case 7166 { rate := 1000000017134246414611547366 } - case 7167 { rate := 1000000017136093604926176691 } - case 7168 { rate := 1000000017137940687642713275 } - case 7169 { rate := 1000000017139787662773691483 } - case 7170 { rate := 1000000017141634530331643482 } - case 7171 { rate := 1000000017143481290329099258 } - case 7172 { rate := 1000000017145327942778586600 } - case 7173 { rate := 1000000017147174487692631114 } - case 7174 { rate := 1000000017149020925083756215 } - default { revert(0, 0) } - } - case 1 { // 7175-7199 - switch bps - case 7175 { rate := 1000000017150867254964483131 } - case 7176 { rate := 1000000017152713477347330904 } - case 7177 { rate := 1000000017154559592244816389 } - case 7178 { rate := 1000000017156405599669454253 } - case 7179 { rate := 1000000017158251499633756981 } - case 7180 { rate := 1000000017160097292150234871 } - case 7181 { rate := 1000000017161942977231396035 } - case 7182 { rate := 1000000017163788554889746405 } - case 7183 { rate := 1000000017165634025137789725 } - case 7184 { rate := 1000000017167479387988027559 } - case 7185 { rate := 1000000017169324643452959289 } - case 7186 { rate := 1000000017171169791545082111 } - case 7187 { rate := 1000000017173014832276891044 } - case 7188 { rate := 1000000017174859765660878925 } - case 7189 { rate := 1000000017176704591709536409 } - case 7190 { rate := 1000000017178549310435351971 } - case 7191 { rate := 1000000017180393921850811909 } - case 7192 { rate := 1000000017182238425968400340 } - case 7193 { rate := 1000000017184082822800599204 } - case 7194 { rate := 1000000017185927112359888261 } - case 7195 { rate := 1000000017187771294658745097 } - case 7196 { rate := 1000000017189615369709645117 } - case 7197 { rate := 1000000017191459337525061551 } - case 7198 { rate := 1000000017193303198117465456 } - case 7199 { rate := 1000000017195146951499325710 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates7200To7999.sol b/src/repositories/Rates7200To7999.sol deleted file mode 100644 index 4526207..0000000 --- a/src/repositories/Rates7200To7999.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates7200To7999 { - uint256 constant public MIN = 7200; - uint256 constant public MAX = 7999; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 7599) - case 0 { // 7200-7599 - switch gt(bps, 7399) - case 0 { // 7200-7399 - switch gt(bps, 7299) - case 0 { // 7200-7299 - switch gt(bps, 7249) - case 0 { // 7200-7249 - switch gt(bps, 7224) - case 0 { // 7200-7224 - switch bps - case 7200 { rate := 1000000017196990597683109018 } - case 7201 { rate := 1000000017198834136681279909 } - case 7202 { rate := 1000000017200677568506300742 } - case 7203 { rate := 1000000017202520893170631697 } - case 7204 { rate := 1000000017204364110686730786 } - case 7205 { rate := 1000000017206207221067053846 } - case 7206 { rate := 1000000017208050224324054541 } - case 7207 { rate := 1000000017209893120470184369 } - case 7208 { rate := 1000000017211735909517892653 } - case 7209 { rate := 1000000017213578591479626545 } - case 7210 { rate := 1000000017215421166367831029 } - case 7211 { rate := 1000000017217263634194948920 } - case 7212 { rate := 1000000017219105994973420864 } - case 7213 { rate := 1000000017220948248715685336 } - case 7214 { rate := 1000000017222790395434178647 } - case 7215 { rate := 1000000017224632435141334939 } - case 7216 { rate := 1000000017226474367849586187 } - case 7217 { rate := 1000000017228316193571362200 } - case 7218 { rate := 1000000017230157912319090621 } - case 7219 { rate := 1000000017231999524105196929 } - case 7220 { rate := 1000000017233841028942104436 } - case 7221 { rate := 1000000017235682426842234291 } - case 7222 { rate := 1000000017237523717818005480 } - case 7223 { rate := 1000000017239364901881834825 } - case 7224 { rate := 1000000017241205979046136983 } - default { revert(0, 0) } - } - case 1 { // 7225-7249 - switch bps - case 7225 { rate := 1000000017243046949323324453 } - case 7226 { rate := 1000000017244887812725807569 } - case 7227 { rate := 1000000017246728569265994504 } - case 7228 { rate := 1000000017248569218956291274 } - case 7229 { rate := 1000000017250409761809101729 } - case 7230 { rate := 1000000017252250197836827562 } - case 7231 { rate := 1000000017254090527051868307 } - case 7232 { rate := 1000000017255930749466621341 } - case 7233 { rate := 1000000017257770865093481878 } - case 7234 { rate := 1000000017259610873944842979 } - case 7235 { rate := 1000000017261450776033095544 } - case 7236 { rate := 1000000017263290571370628319 } - case 7237 { rate := 1000000017265130259969827893 } - case 7238 { rate := 1000000017266969841843078698 } - case 7239 { rate := 1000000017268809317002763012 } - case 7240 { rate := 1000000017270648685461260960 } - case 7241 { rate := 1000000017272487947230950506 } - case 7242 { rate := 1000000017274327102324207470 } - case 7243 { rate := 1000000017276166150753405511 } - case 7244 { rate := 1000000017278005092530916139 } - case 7245 { rate := 1000000017279843927669108709 } - case 7246 { rate := 1000000017281682656180350428 } - case 7247 { rate := 1000000017283521278077006348 } - case 7248 { rate := 1000000017285359793371439374 } - case 7249 { rate := 1000000017287198202076010256 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7250-7299 - switch gt(bps, 7274) - case 0 { // 7250-7274 - switch bps - case 7250 { rate := 1000000017289036504203077600 } - case 7251 { rate := 1000000017290874699764997857 } - case 7252 { rate := 1000000017292712788774125333 } - case 7253 { rate := 1000000017294550771242812185 } - case 7254 { rate := 1000000017296388647183408421 } - case 7255 { rate := 1000000017298226416608261903 } - case 7256 { rate := 1000000017300064079529718345 } - case 7257 { rate := 1000000017301901635960121318 } - case 7258 { rate := 1000000017303739085911812243 } - case 7259 { rate := 1000000017305576429397130398 } - case 7260 { rate := 1000000017307413666428412915 } - case 7261 { rate := 1000000017309250797017994782 } - case 7262 { rate := 1000000017311087821178208846 } - case 7263 { rate := 1000000017312924738921385806 } - case 7264 { rate := 1000000017314761550259854221 } - case 7265 { rate := 1000000017316598255205940510 } - case 7266 { rate := 1000000017318434853771968943 } - case 7267 { rate := 1000000017320271345970261657 } - case 7268 { rate := 1000000017322107731813138642 } - case 7269 { rate := 1000000017323944011312917751 } - case 7270 { rate := 1000000017325780184481914696 } - case 7271 { rate := 1000000017327616251332443050 } - case 7272 { rate := 1000000017329452211876814248 } - case 7273 { rate := 1000000017331288066127337584 } - case 7274 { rate := 1000000017333123814096320217 } - default { revert(0, 0) } - } - case 1 { // 7275-7299 - switch bps - case 7275 { rate := 1000000017334959455796067168 } - case 7276 { rate := 1000000017336794991238881320 } - case 7277 { rate := 1000000017338630420437063420 } - case 7278 { rate := 1000000017340465743402912081 } - case 7279 { rate := 1000000017342300960148723777 } - case 7280 { rate := 1000000017344136070686792852 } - case 7281 { rate := 1000000017345971075029411511 } - case 7282 { rate := 1000000017347805973188869827 } - case 7283 { rate := 1000000017349640765177455741 } - case 7284 { rate := 1000000017351475451007455060 } - case 7285 { rate := 1000000017353310030691151455 } - case 7286 { rate := 1000000017355144504240826473 } - case 7287 { rate := 1000000017356978871668759522 } - case 7288 { rate := 1000000017358813132987227884 } - case 7289 { rate := 1000000017360647288208506708 } - case 7290 { rate := 1000000017362481337344869013 } - case 7291 { rate := 1000000017364315280408585691 } - case 7292 { rate := 1000000017366149117411925502 } - case 7293 { rate := 1000000017367982848367155079 } - case 7294 { rate := 1000000017369816473286538927 } - case 7295 { rate := 1000000017371649992182339426 } - case 7296 { rate := 1000000017373483405066816824 } - case 7297 { rate := 1000000017375316711952229244 } - case 7298 { rate := 1000000017377149912850832687 } - case 7299 { rate := 1000000017378983007774881025 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7300-7399 - switch gt(bps, 7349) - case 0 { // 7300-7349 - switch gt(bps, 7324) - case 0 { // 7300-7324 - switch bps - case 7300 { rate := 1000000017380815996736626004 } - case 7301 { rate := 1000000017382648879748317248 } - case 7302 { rate := 1000000017384481656822202255 } - case 7303 { rate := 1000000017386314327970526403 } - case 7304 { rate := 1000000017388146893205532943 } - case 7305 { rate := 1000000017389979352539463003 } - case 7306 { rate := 1000000017391811705984555594 } - case 7307 { rate := 1000000017393643953553047601 } - case 7308 { rate := 1000000017395476095257173788 } - case 7309 { rate := 1000000017397308131109166801 } - case 7310 { rate := 1000000017399140061121257164 } - case 7311 { rate := 1000000017400971885305673282 } - case 7312 { rate := 1000000017402803603674641440 } - case 7313 { rate := 1000000017404635216240385805 } - case 7314 { rate := 1000000017406466723015128428 } - case 7315 { rate := 1000000017408298124011089238 } - case 7316 { rate := 1000000017410129419240486051 } - case 7317 { rate := 1000000017411960608715534563 } - case 7318 { rate := 1000000017413791692448448355 } - case 7319 { rate := 1000000017415622670451438895 } - case 7320 { rate := 1000000017417453542736715530 } - case 7321 { rate := 1000000017419284309316485497 } - case 7322 { rate := 1000000017421114970202953919 } - case 7323 { rate := 1000000017422945525408323801 } - case 7324 { rate := 1000000017424775974944796039 } - default { revert(0, 0) } - } - case 1 { // 7325-7349 - switch bps - case 7325 { rate := 1000000017426606318824569415 } - case 7326 { rate := 1000000017428436557059840598 } - case 7327 { rate := 1000000017430266689662804144 } - case 7328 { rate := 1000000017432096716645652500 } - case 7329 { rate := 1000000017433926638020576003 } - case 7330 { rate := 1000000017435756453799762877 } - case 7331 { rate := 1000000017437586163995399235 } - case 7332 { rate := 1000000017439415768619669087 } - case 7333 { rate := 1000000017441245267684754328 } - case 7334 { rate := 1000000017443074661202834746 } - case 7335 { rate := 1000000017444903949186088022 } - case 7336 { rate := 1000000017446733131646689731 } - case 7337 { rate := 1000000017448562208596813336 } - case 7338 { rate := 1000000017450391180048630201 } - case 7339 { rate := 1000000017452220046014309577 } - case 7340 { rate := 1000000017454048806506018613 } - case 7341 { rate := 1000000017455877461535922354 } - case 7342 { rate := 1000000017457706011116183737 } - case 7343 { rate := 1000000017459534455258963600 } - case 7344 { rate := 1000000017461362793976420670 } - case 7345 { rate := 1000000017463191027280711580 } - case 7346 { rate := 1000000017465019155183990853 } - case 7347 { rate := 1000000017466847177698410915 } - case 7348 { rate := 1000000017468675094836122086 } - case 7349 { rate := 1000000017470502906609272589 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7350-7399 - switch gt(bps, 7374) - case 0 { // 7350-7374 - switch bps - case 7350 { rate := 1000000017472330613030008543 } - case 7351 { rate := 1000000017474158214110473970 } - case 7352 { rate := 1000000017475985709862810789 } - case 7353 { rate := 1000000017477813100299158823 } - case 7354 { rate := 1000000017479640385431655794 } - case 7355 { rate := 1000000017481467565272437328 } - case 7356 { rate := 1000000017483294639833636950 } - case 7357 { rate := 1000000017485121609127386092 } - case 7358 { rate := 1000000017486948473165814085 } - case 7359 { rate := 1000000017488775231961048167 } - case 7360 { rate := 1000000017490601885525213478 } - case 7361 { rate := 1000000017492428433870433064 } - case 7362 { rate := 1000000017494254877008827878 } - case 7363 { rate := 1000000017496081214952516772 } - case 7364 { rate := 1000000017497907447713616513 } - case 7365 { rate := 1000000017499733575304241768 } - case 7366 { rate := 1000000017501559597736505115 } - case 7367 { rate := 1000000017503385515022517037 } - case 7368 { rate := 1000000017505211327174385925 } - case 7369 { rate := 1000000017507037034204218081 } - case 7370 { rate := 1000000017508862636124117716 } - case 7371 { rate := 1000000017510688132946186946 } - case 7372 { rate := 1000000017512513524682525802 } - case 7373 { rate := 1000000017514338811345232225 } - case 7374 { rate := 1000000017516163992946402063 } - default { revert(0, 0) } - } - case 1 { // 7375-7399 - switch bps - case 7375 { rate := 1000000017517989069498129080 } - case 7376 { rate := 1000000017519814041012504950 } - case 7377 { rate := 1000000017521638907501619258 } - case 7378 { rate := 1000000017523463668977559505 } - case 7379 { rate := 1000000017525288325452411102 } - case 7380 { rate := 1000000017527112876938257378 } - case 7381 { rate := 1000000017528937323447179572 } - case 7382 { rate := 1000000017530761664991256840 } - case 7383 { rate := 1000000017532585901582566253 } - case 7384 { rate := 1000000017534410033233182798 } - case 7385 { rate := 1000000017536234059955179379 } - case 7386 { rate := 1000000017538057981760626814 } - case 7387 { rate := 1000000017539881798661593840 } - case 7388 { rate := 1000000017541705510670147114 } - case 7389 { rate := 1000000017543529117798351206 } - case 7390 { rate := 1000000017545352620058268609 } - case 7391 { rate := 1000000017547176017461959733 } - case 7392 { rate := 1000000017548999310021482909 } - case 7393 { rate := 1000000017550822497748894386 } - case 7394 { rate := 1000000017552645580656248336 } - case 7395 { rate := 1000000017554468558755596849 } - case 7396 { rate := 1000000017556291432058989941 } - case 7397 { rate := 1000000017558114200578475546 } - case 7398 { rate := 1000000017559936864326099522 } - case 7399 { rate := 1000000017561759423313905650 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7400-7599 - switch gt(bps, 7499) - case 0 { // 7400-7499 - switch gt(bps, 7449) - case 0 { // 7400-7449 - switch gt(bps, 7424) - case 0 { // 7400-7424 - switch bps - case 7400 { rate := 1000000017563581877553935633 } - case 7401 { rate := 1000000017565404227058229101 } - case 7402 { rate := 1000000017567226471838823606 } - case 7403 { rate := 1000000017569048611907754624 } - case 7404 { rate := 1000000017570870647277055559 } - case 7405 { rate := 1000000017572692577958757738 } - case 7406 { rate := 1000000017574514403964890419 } - case 7407 { rate := 1000000017576336125307480780 } - case 7408 { rate := 1000000017578157741998553932 } - case 7409 { rate := 1000000017579979254050132911 } - case 7410 { rate := 1000000017581800661474238681 } - case 7411 { rate := 1000000017583621964282890136 } - case 7412 { rate := 1000000017585443162488104098 } - case 7413 { rate := 1000000017587264256101895320 } - case 7414 { rate := 1000000017589085245136276485 } - case 7415 { rate := 1000000017590906129603258203 } - case 7416 { rate := 1000000017592726909514849021 } - case 7417 { rate := 1000000017594547584883055411 } - case 7418 { rate := 1000000017596368155719881784 } - case 7419 { rate := 1000000017598188622037330478 } - case 7420 { rate := 1000000017600008983847401766 } - case 7421 { rate := 1000000017601829241162093854 } - case 7422 { rate := 1000000017603649393993402882 } - case 7423 { rate := 1000000017605469442353322925 } - case 7424 { rate := 1000000017607289386253845993 } - default { revert(0, 0) } - } - case 1 { // 7425-7449 - switch bps - case 7425 { rate := 1000000017609109225706962029 } - case 7426 { rate := 1000000017610928960724658915 } - case 7427 { rate := 1000000017612748591318922467 } - case 7428 { rate := 1000000017614568117501736438 } - case 7429 { rate := 1000000017616387539285082519 } - case 7430 { rate := 1000000017618206856680940339 } - case 7431 { rate := 1000000017620026069701287465 } - case 7432 { rate := 1000000017621845178358099399 } - case 7433 { rate := 1000000017623664182663349590 } - case 7434 { rate := 1000000017625483082629009418 } - case 7435 { rate := 1000000017627301878267048209 } - case 7436 { rate := 1000000017629120569589433226 } - case 7437 { rate := 1000000017630939156608129676 } - case 7438 { rate := 1000000017632757639335100704 } - case 7439 { rate := 1000000017634576017782307401 } - case 7440 { rate := 1000000017636394291961708797 } - case 7441 { rate := 1000000017638212461885261865 } - case 7442 { rate := 1000000017640030527564921525 } - case 7443 { rate := 1000000017641848489012640637 } - case 7444 { rate := 1000000017643666346240370005 } - case 7445 { rate := 1000000017645484099260058384 } - case 7446 { rate := 1000000017647301748083652465 } - case 7447 { rate := 1000000017649119292723096891 } - case 7448 { rate := 1000000017650936733190334250 } - case 7449 { rate := 1000000017652754069497305076 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7450-7499 - switch gt(bps, 7474) - case 0 { // 7450-7474 - switch bps - case 7450 { rate := 1000000017654571301655947851 } - case 7451 { rate := 1000000017656388429678199002 } - case 7452 { rate := 1000000017658205453575992908 } - case 7453 { rate := 1000000017660022373361261892 } - case 7454 { rate := 1000000017661839189045936232 } - case 7455 { rate := 1000000017663655900641944150 } - case 7456 { rate := 1000000017665472508161211819 } - case 7457 { rate := 1000000017667289011615663365 } - case 7458 { rate := 1000000017669105411017220864 } - case 7459 { rate := 1000000017670921706377804340 } - case 7460 { rate := 1000000017672737897709331773 } - case 7461 { rate := 1000000017674553985023719095 } - case 7462 { rate := 1000000017676369968332880187 } - case 7463 { rate := 1000000017678185847648726887 } - case 7464 { rate := 1000000017680001622983168986 } - case 7465 { rate := 1000000017681817294348114228 } - case 7466 { rate := 1000000017683632861755468312 } - case 7467 { rate := 1000000017685448325217134893 } - case 7468 { rate := 1000000017687263684745015581 } - case 7469 { rate := 1000000017689078940351009940 } - case 7470 { rate := 1000000017690894092047015496 } - case 7471 { rate := 1000000017692709139844927726 } - case 7472 { rate := 1000000017694524083756640068 } - case 7473 { rate := 1000000017696338923794043916 } - case 7474 { rate := 1000000017698153659969028624 } - default { revert(0, 0) } - } - case 1 { // 7475-7499 - switch bps - case 7475 { rate := 1000000017699968292293481503 } - case 7476 { rate := 1000000017701782820779287826 } - case 7477 { rate := 1000000017703597245438330823 } - case 7478 { rate := 1000000017705411566282491686 } - case 7479 { rate := 1000000017707225783323649568 } - case 7480 { rate := 1000000017709039896573681579 } - case 7481 { rate := 1000000017710853906044462798 } - case 7482 { rate := 1000000017712667811747866261 } - case 7483 { rate := 1000000017714481613695762967 } - case 7484 { rate := 1000000017716295311900021878 } - case 7485 { rate := 1000000017718108906372509921 } - case 7486 { rate := 1000000017719922397125091988 } - case 7487 { rate := 1000000017721735784169630931 } - case 7488 { rate := 1000000017723549067517987571 } - case 7489 { rate := 1000000017725362247182020693 } - case 7490 { rate := 1000000017727175323173587048 } - case 7491 { rate := 1000000017728988295504541353 } - case 7492 { rate := 1000000017730801164186736290 } - case 7493 { rate := 1000000017732613929232022514 } - case 7494 { rate := 1000000017734426590652248641 } - case 7495 { rate := 1000000017736239148459261259 } - case 7496 { rate := 1000000017738051602664904924 } - case 7497 { rate := 1000000017739863953281022159 } - case 7498 { rate := 1000000017741676200319453460 } - case 7499 { rate := 1000000017743488343792037292 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7500-7599 - switch gt(bps, 7549) - case 0 { // 7500-7549 - switch gt(bps, 7524) - case 0 { // 7500-7524 - switch bps - case 7500 { rate := 1000000017745300383710610088 } - case 7501 { rate := 1000000017747112320087006255 } - case 7502 { rate := 1000000017748924152933058170 } - case 7503 { rate := 1000000017750735882260596182 } - case 7504 { rate := 1000000017752547508081448613 } - case 7505 { rate := 1000000017754359030407441756 } - case 7506 { rate := 1000000017756170449250399880 } - case 7507 { rate := 1000000017757981764622145224 } - case 7508 { rate := 1000000017759792976534498007 } - case 7509 { rate := 1000000017761604084999276416 } - case 7510 { rate := 1000000017763415090028296618 } - case 7511 { rate := 1000000017765225991633372753 } - case 7512 { rate := 1000000017767036789826316939 } - case 7513 { rate := 1000000017768847484618939268 } - case 7514 { rate := 1000000017770658076023047811 } - case 7515 { rate := 1000000017772468564050448615 } - case 7516 { rate := 1000000017774278948712945708 } - case 7517 { rate := 1000000017776089230022341092 } - case 7518 { rate := 1000000017777899407990434751 } - case 7519 { rate := 1000000017779709482629024645 } - case 7520 { rate := 1000000017781519453949906719 } - case 7521 { rate := 1000000017783329321964874894 } - case 7522 { rate := 1000000017785139086685721072 } - case 7523 { rate := 1000000017786948748124235137 } - case 7524 { rate := 1000000017788758306292204955 } - default { revert(0, 0) } - } - case 1 { // 7525-7549 - switch bps - case 7525 { rate := 1000000017790567761201416374 } - case 7526 { rate := 1000000017792377112863653223 } - case 7527 { rate := 1000000017794186361290697316 } - case 7528 { rate := 1000000017795995506494328448 } - case 7529 { rate := 1000000017797804548486324401 } - case 7530 { rate := 1000000017799613487278460940 } - case 7531 { rate := 1000000017801422322882511813 } - case 7532 { rate := 1000000017803231055310248755 } - case 7533 { rate := 1000000017805039684573441487 } - case 7534 { rate := 1000000017806848210683857715 } - case 7535 { rate := 1000000017808656633653263133 } - case 7536 { rate := 1000000017810464953493421421 } - case 7537 { rate := 1000000017812273170216094248 } - case 7538 { rate := 1000000017814081283833041270 } - case 7539 { rate := 1000000017815889294356020130 } - case 7540 { rate := 1000000017817697201796786462 } - case 7541 { rate := 1000000017819505006167093890 } - case 7542 { rate := 1000000017821312707478694026 } - case 7543 { rate := 1000000017823120305743336473 } - case 7544 { rate := 1000000017824927800972768824 } - case 7545 { rate := 1000000017826735193178736665 } - case 7546 { rate := 1000000017828542482372983573 } - case 7547 { rate := 1000000017830349668567251118 } - case 7548 { rate := 1000000017832156751773278858 } - case 7549 { rate := 1000000017833963732002804350 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7550-7599 - switch gt(bps, 7574) - case 0 { // 7550-7574 - switch bps - case 7550 { rate := 1000000017835770609267563142 } - case 7551 { rate := 1000000017837577383579288776 } - case 7552 { rate := 1000000017839384054949712789 } - case 7553 { rate := 1000000017841190623390564711 } - case 7554 { rate := 1000000017842997088913572069 } - case 7555 { rate := 1000000017844803451530460387 } - case 7556 { rate := 1000000017846609711252953183 } - case 7557 { rate := 1000000017848415868092771972 } - case 7558 { rate := 1000000017850221922061636268 } - case 7559 { rate := 1000000017852027873171263580 } - case 7560 { rate := 1000000017853833721433369417 } - case 7561 { rate := 1000000017855639466859667286 } - case 7562 { rate := 1000000017857445109461868694 } - case 7563 { rate := 1000000017859250649251683144 } - case 7564 { rate := 1000000017861056086240818144 } - case 7565 { rate := 1000000017862861420440979199 } - case 7566 { rate := 1000000017864666651863869815 } - case 7567 { rate := 1000000017866471780521191500 } - case 7568 { rate := 1000000017868276806424643763 } - case 7569 { rate := 1000000017870081729585924118 } - case 7570 { rate := 1000000017871886550016728077 } - case 7571 { rate := 1000000017873691267728749159 } - case 7572 { rate := 1000000017875495882733678884 } - case 7573 { rate := 1000000017877300395043206778 } - case 7574 { rate := 1000000017879104804669020371 } - default { revert(0, 0) } - } - case 1 { // 7575-7599 - switch bps - case 7575 { rate := 1000000017880909111622805195 } - case 7576 { rate := 1000000017882713315916244793 } - case 7577 { rate := 1000000017884517417561020708 } - case 7578 { rate := 1000000017886321416568812494 } - case 7579 { rate := 1000000017888125312951297708 } - case 7580 { rate := 1000000017889929106720151917 } - case 7581 { rate := 1000000017891732797887048694 } - case 7582 { rate := 1000000017893536386463659622 } - case 7583 { rate := 1000000017895339872461654288 } - case 7584 { rate := 1000000017897143255892700294 } - case 7585 { rate := 1000000017898946536768463247 } - case 7586 { rate := 1000000017900749715100606767 } - case 7587 { rate := 1000000017902552790900792481 } - case 7588 { rate := 1000000017904355764180680030 } - case 7589 { rate := 1000000017906158634951927065 } - case 7590 { rate := 1000000017907961403226189248 } - case 7591 { rate := 1000000017909764069015120253 } - case 7592 { rate := 1000000017911566632330371770 } - case 7593 { rate := 1000000017913369093183593497 } - case 7594 { rate := 1000000017915171451586433149 } - case 7595 { rate := 1000000017916973707550536454 } - case 7596 { rate := 1000000017918775861087547154 } - case 7597 { rate := 1000000017920577912209107007 } - case 7598 { rate := 1000000017922379860926855785 } - case 7599 { rate := 1000000017924181707252431276 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7600-7999 - switch gt(bps, 7799) - case 0 { // 7600-7799 - switch gt(bps, 7699) - case 0 { // 7600-7699 - switch gt(bps, 7649) - case 0 { // 7600-7649 - switch gt(bps, 7624) - case 0 { // 7600-7624 - switch bps - case 7600 { rate := 1000000017925983451197469286 } - case 7601 { rate := 1000000017927785092773603635 } - case 7602 { rate := 1000000017929586631992466162 } - case 7603 { rate := 1000000017931388068865686724 } - case 7604 { rate := 1000000017933189403404893193 } - case 7605 { rate := 1000000017934990635621711463 } - case 7606 { rate := 1000000017936791765527765445 } - case 7607 { rate := 1000000017938592793134677070 } - case 7608 { rate := 1000000017940393718454066288 } - case 7609 { rate := 1000000017942194541497551072 } - case 7610 { rate := 1000000017943995262276747410 } - case 7611 { rate := 1000000017945795880803269319 } - case 7612 { rate := 1000000017947596397088728831 } - case 7613 { rate := 1000000017949396811144736003 } - case 7614 { rate := 1000000017951197122982898913 } - case 7615 { rate := 1000000017952997332614823666 } - case 7616 { rate := 1000000017954797440052114387 } - case 7617 { rate := 1000000017956597445306373223 } - case 7618 { rate := 1000000017958397348389200349 } - case 7619 { rate := 1000000017960197149312193963 } - case 7620 { rate := 1000000017961996848086950291 } - case 7621 { rate := 1000000017963796444725063580 } - case 7622 { rate := 1000000017965595939238126106 } - case 7623 { rate := 1000000017967395331637728171 } - case 7624 { rate := 1000000017969194621935458105 } - default { revert(0, 0) } - } - case 1 { // 7625-7649 - switch bps - case 7625 { rate := 1000000017970993810142902264 } - case 7626 { rate := 1000000017972792896271645032 } - case 7627 { rate := 1000000017974591880333268823 } - case 7628 { rate := 1000000017976390762339354077 } - case 7629 { rate := 1000000017978189542301479266 } - case 7630 { rate := 1000000017979988220231220891 } - case 7631 { rate := 1000000017981786796140153482 } - case 7632 { rate := 1000000017983585270039849600 } - case 7633 { rate := 1000000017985383641941879838 } - case 7634 { rate := 1000000017987181911857812820 } - case 7635 { rate := 1000000017988980079799215201 } - case 7636 { rate := 1000000017990778145777651670 } - case 7637 { rate := 1000000017992576109804684946 } - case 7638 { rate := 1000000017994373971891875786 } - case 7639 { rate := 1000000017996171732050782977 } - case 7640 { rate := 1000000017997969390292963342 } - case 7641 { rate := 1000000017999766946629971735 } - case 7642 { rate := 1000000018001564401073361051 } - case 7643 { rate := 1000000018003361753634682215 } - case 7644 { rate := 1000000018005159004325484191 } - case 7645 { rate := 1000000018006956153157313979 } - case 7646 { rate := 1000000018008753200141716615 } - case 7647 { rate := 1000000018010550145290235173 } - case 7648 { rate := 1000000018012346988614410765 } - case 7649 { rate := 1000000018014143730125782540 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7650-7699 - switch gt(bps, 7674) - case 0 { // 7650-7674 - switch bps - case 7650 { rate := 1000000018015940369835887686 } - case 7651 { rate := 1000000018017736907756261431 } - case 7652 { rate := 1000000018019533343898437042 } - case 7653 { rate := 1000000018021329678273945825 } - case 7654 { rate := 1000000018023125910894317128 } - case 7655 { rate := 1000000018024922041771078339 } - case 7656 { rate := 1000000018026718070915754887 } - case 7657 { rate := 1000000018028513998339870242 } - case 7658 { rate := 1000000018030309824054945918 } - case 7659 { rate := 1000000018032105548072501472 } - case 7660 { rate := 1000000018033901170404054502 } - case 7661 { rate := 1000000018035696691061120650 } - case 7662 { rate := 1000000018037492110055213602 } - case 7663 { rate := 1000000018039287427397845090 } - case 7664 { rate := 1000000018041082643100524888 } - case 7665 { rate := 1000000018042877757174760818 } - case 7666 { rate := 1000000018044672769632058746 } - case 7667 { rate := 1000000018046467680483922585 } - case 7668 { rate := 1000000018048262489741854293 } - case 7669 { rate := 1000000018050057197417353878 } - case 7670 { rate := 1000000018051851803521919393 } - case 7671 { rate := 1000000018053646308067046939 } - case 7672 { rate := 1000000018055440711064230668 } - case 7673 { rate := 1000000018057235012524962777 } - case 7674 { rate := 1000000018059029212460733515 } - default { revert(0, 0) } - } - case 1 { // 7675-7699 - switch bps - case 7675 { rate := 1000000018060823310883031179 } - case 7676 { rate := 1000000018062617307803342118 } - case 7677 { rate := 1000000018064411203233150730 } - case 7678 { rate := 1000000018066204997183939464 } - case 7679 { rate := 1000000018067998689667188822 } - case 7680 { rate := 1000000018069792280694377358 } - case 7681 { rate := 1000000018071585770276981673 } - case 7682 { rate := 1000000018073379158426476430 } - case 7683 { rate := 1000000018075172445154334336 } - case 7684 { rate := 1000000018076965630472026159 } - case 7685 { rate := 1000000018078758714391020716 } - case 7686 { rate := 1000000018080551696922784882 } - case 7687 { rate := 1000000018082344578078783584 } - case 7688 { rate := 1000000018084137357870479807 } - case 7689 { rate := 1000000018085930036309334591 } - case 7690 { rate := 1000000018087722613406807031 } - case 7691 { rate := 1000000018089515089174354279 } - case 7692 { rate := 1000000018091307463623431547 } - case 7693 { rate := 1000000018093099736765492103 } - case 7694 { rate := 1000000018094891908611987271 } - case 7695 { rate := 1000000018096683979174366435 } - case 7696 { rate := 1000000018098475948464077039 } - case 7697 { rate := 1000000018100267816492564585 } - case 7698 { rate := 1000000018102059583271272636 } - case 7699 { rate := 1000000018103851248811642814 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7700-7799 - switch gt(bps, 7749) - case 0 { // 7700-7749 - switch gt(bps, 7724) - case 0 { // 7700-7724 - switch bps - case 7700 { rate := 1000000018105642813125114801 } - case 7701 { rate := 1000000018107434276223126344 } - case 7702 { rate := 1000000018109225638117113246 } - case 7703 { rate := 1000000018111016898818509377 } - case 7704 { rate := 1000000018112808058338746667 } - case 7705 { rate := 1000000018114599116689255107 } - case 7706 { rate := 1000000018116390073881462757 } - case 7707 { rate := 1000000018118180929926795735 } - case 7708 { rate := 1000000018119971684836678225 } - case 7709 { rate := 1000000018121762338622532479 } - case 7710 { rate := 1000000018123552891295778807 } - case 7711 { rate := 1000000018125343342867835592 } - case 7712 { rate := 1000000018127133693350119278 } - case 7713 { rate := 1000000018128923942754044379 } - case 7714 { rate := 1000000018130714091091023470 } - case 7715 { rate := 1000000018132504138372467200 } - case 7716 { rate := 1000000018134294084609784283 } - case 7717 { rate := 1000000018136083929814381499 } - case 7718 { rate := 1000000018137873673997663698 } - case 7719 { rate := 1000000018139663317171033802 } - case 7720 { rate := 1000000018141452859345892798 } - case 7721 { rate := 1000000018143242300533639746 } - case 7722 { rate := 1000000018145031640745671772 } - case 7723 { rate := 1000000018146820879993384079 } - case 7724 { rate := 1000000018148610018288169936 } - default { revert(0, 0) } - } - case 1 { // 7725-7749 - switch bps - case 7725 { rate := 1000000018150399055641420686 } - case 7726 { rate := 1000000018152187992064525743 } - case 7727 { rate := 1000000018153976827568872596 } - case 7728 { rate := 1000000018155765562165846803 } - case 7729 { rate := 1000000018157554195866831997 } - case 7730 { rate := 1000000018159342728683209886 } - case 7731 { rate := 1000000018161131160626360252 } - case 7732 { rate := 1000000018162919491707660948 } - case 7733 { rate := 1000000018164707721938487908 } - case 7734 { rate := 1000000018166495851330215138 } - case 7735 { rate := 1000000018168283879894214720 } - case 7736 { rate := 1000000018170071807641856811 } - case 7737 { rate := 1000000018171859634584509651 } - case 7738 { rate := 1000000018173647360733539548 } - case 7739 { rate := 1000000018175434986100310896 } - case 7740 { rate := 1000000018177222510696186163 } - case 7741 { rate := 1000000018179009934532525896 } - case 7742 { rate := 1000000018180797257620688721 } - case 7743 { rate := 1000000018182584479972031343 } - case 7744 { rate := 1000000018184371601597908550 } - case 7745 { rate := 1000000018186158622509673205 } - case 7746 { rate := 1000000018187945542718676256 } - case 7747 { rate := 1000000018189732362236266731 } - case 7748 { rate := 1000000018191519081073791739 } - case 7749 { rate := 1000000018193305699242596471 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7750-7799 - switch gt(bps, 7774) - case 0 { // 7750-7774 - switch bps - case 7750 { rate := 1000000018195092216754024201 } - case 7751 { rate := 1000000018196878633619416285 } - case 7752 { rate := 1000000018198664949850112165 } - case 7753 { rate := 1000000018200451165457449362 } - case 7754 { rate := 1000000018202237280452763485 } - case 7755 { rate := 1000000018204023294847388227 } - case 7756 { rate := 1000000018205809208652655365 } - case 7757 { rate := 1000000018207595021879894762 } - case 7758 { rate := 1000000018209380734540434368 } - case 7759 { rate := 1000000018211166346645600216 } - case 7760 { rate := 1000000018212951858206716428 } - case 7761 { rate := 1000000018214737269235105217 } - case 7762 { rate := 1000000018216522579742086876 } - case 7763 { rate := 1000000018218307789738979791 } - case 7764 { rate := 1000000018220092899237100435 } - case 7765 { rate := 1000000018221877908247763371 } - case 7766 { rate := 1000000018223662816782281250 } - case 7767 { rate := 1000000018225447624851964814 } - case 7768 { rate := 1000000018227232332468122895 } - case 7769 { rate := 1000000018229016939642062413 } - case 7770 { rate := 1000000018230801446385088385 } - case 7771 { rate := 1000000018232585852708503911 } - case 7772 { rate := 1000000018234370158623610192 } - case 7773 { rate := 1000000018236154364141706515 } - case 7774 { rate := 1000000018237938469274090263 } - default { revert(0, 0) } - } - case 1 { // 7775-7799 - switch bps - case 7775 { rate := 1000000018239722474032056911 } - case 7776 { rate := 1000000018241506378426900026 } - case 7777 { rate := 1000000018243290182469911273 } - case 7778 { rate := 1000000018245073886172380408 } - case 7779 { rate := 1000000018246857489545595283 } - case 7780 { rate := 1000000018248640992600841846 } - case 7781 { rate := 1000000018250424395349404142 } - case 7782 { rate := 1000000018252207697802564308 } - case 7783 { rate := 1000000018253990899971602583 } - case 7784 { rate := 1000000018255774001867797298 } - case 7785 { rate := 1000000018257557003502424884 } - case 7786 { rate := 1000000018259339904886759871 } - case 7787 { rate := 1000000018261122706032074886 } - case 7788 { rate := 1000000018262905406949640654 } - case 7789 { rate := 1000000018264688007650726000 } - case 7790 { rate := 1000000018266470508146597849 } - case 7791 { rate := 1000000018268252908448521228 } - case 7792 { rate := 1000000018270035208567759259 } - case 7793 { rate := 1000000018271817408515573169 } - case 7794 { rate := 1000000018273599508303222287 } - case 7795 { rate := 1000000018275381507941964042 } - case 7796 { rate := 1000000018277163407443053964 } - case 7797 { rate := 1000000018278945206817745690 } - case 7798 { rate := 1000000018280726906077290954 } - case 7799 { rate := 1000000018282508505232939599 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7800-7999 - switch gt(bps, 7899) - case 0 { // 7800-7899 - switch gt(bps, 7849) - case 0 { // 7800-7849 - switch gt(bps, 7824) - case 0 { // 7800-7824 - switch bps - case 7800 { rate := 1000000018284290004295939569 } - case 7801 { rate := 1000000018286071403277536912 } - case 7802 { rate := 1000000018287852702188975783 } - case 7803 { rate := 1000000018289633901041498440 } - case 7804 { rate := 1000000018291414999846345249 } - case 7805 { rate := 1000000018293195998614754679 } - case 7806 { rate := 1000000018294976897357963307 } - case 7807 { rate := 1000000018296757696087205817 } - case 7808 { rate := 1000000018298538394813715001 } - case 7809 { rate := 1000000018300318993548721757 } - case 7810 { rate := 1000000018302099492303455093 } - case 7811 { rate := 1000000018303879891089142124 } - case 7812 { rate := 1000000018305660189917008076 } - case 7813 { rate := 1000000018307440388798276281 } - case 7814 { rate := 1000000018309220487744168184 } - case 7815 { rate := 1000000018311000486765903339 } - case 7816 { rate := 1000000018312780385874699412 } - case 7817 { rate := 1000000018314560185081772178 } - case 7818 { rate := 1000000018316339884398335526 } - case 7819 { rate := 1000000018318119483835601454 } - case 7820 { rate := 1000000018319898983404780074 } - case 7821 { rate := 1000000018321678383117079613 } - case 7822 { rate := 1000000018323457682983706407 } - case 7823 { rate := 1000000018325236883015864909 } - case 7824 { rate := 1000000018327015983224757684 } - default { revert(0, 0) } - } - case 1 { // 7825-7849 - switch bps - case 7825 { rate := 1000000018328794983621585414 } - case 7826 { rate := 1000000018330573884217546893 } - case 7827 { rate := 1000000018332352685023839031 } - case 7828 { rate := 1000000018334131386051656857 } - case 7829 { rate := 1000000018335909987312193512 } - case 7830 { rate := 1000000018337688488816640255 } - case 7831 { rate := 1000000018339466890576186465 } - case 7832 { rate := 1000000018341245192602019632 } - case 7833 { rate := 1000000018343023394905325372 } - case 7834 { rate := 1000000018344801497497287412 } - case 7835 { rate := 1000000018346579500389087603 } - case 7836 { rate := 1000000018348357403591905911 } - case 7837 { rate := 1000000018350135207116920426 } - case 7838 { rate := 1000000018351912910975307354 } - case 7839 { rate := 1000000018353690515178241024 } - case 7840 { rate := 1000000018355468019736893884 } - case 7841 { rate := 1000000018357245424662436505 } - case 7842 { rate := 1000000018359022729966037580 } - case 7843 { rate := 1000000018360799935658863920 } - case 7844 { rate := 1000000018362577041752080465 } - case 7845 { rate := 1000000018364354048256850272 } - case 7846 { rate := 1000000018366130955184334526 } - case 7847 { rate := 1000000018367907762545692533 } - case 7848 { rate := 1000000018369684470352081722 } - case 7849 { rate := 1000000018371461078614657652 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7850-7899 - switch gt(bps, 7874) - case 0 { // 7850-7874 - switch bps - case 7850 { rate := 1000000018373237587344574003 } - case 7851 { rate := 1000000018375013996552982578 } - case 7852 { rate := 1000000018376790306251033313 } - case 7853 { rate := 1000000018378566516449874264 } - case 7854 { rate := 1000000018380342627160651618 } - case 7855 { rate := 1000000018382118638394509685 } - case 7856 { rate := 1000000018383894550162590906 } - case 7857 { rate := 1000000018385670362476035850 } - case 7858 { rate := 1000000018387446075345983212 } - case 7859 { rate := 1000000018389221688783569817 } - case 7860 { rate := 1000000018390997202799930621 } - case 7861 { rate := 1000000018392772617406198706 } - case 7862 { rate := 1000000018394547932613505288 } - case 7863 { rate := 1000000018396323148432979711 } - case 7864 { rate := 1000000018398098264875749451 } - case 7865 { rate := 1000000018399873281952940114 } - case 7866 { rate := 1000000018401648199675675439 } - case 7867 { rate := 1000000018403423018055077298 } - case 7868 { rate := 1000000018405197737102265694 } - case 7869 { rate := 1000000018406972356828358763 } - case 7870 { rate := 1000000018408746877244472776 } - case 7871 { rate := 1000000018410521298361722136 } - case 7872 { rate := 1000000018412295620191219382 } - case 7873 { rate := 1000000018414069842744075188 } - case 7874 { rate := 1000000018415843966031398359 } - default { revert(0, 0) } - } - case 1 { // 7875-7899 - switch bps - case 7875 { rate := 1000000018417617990064295840 } - case 7876 { rate := 1000000018419391914853872712 } - case 7877 { rate := 1000000018421165740411232189 } - case 7878 { rate := 1000000018422939466747475623 } - case 7879 { rate := 1000000018424713093873702506 } - case 7880 { rate := 1000000018426486621801010465 } - case 7881 { rate := 1000000018428260050540495264 } - case 7882 { rate := 1000000018430033380103250808 } - case 7883 { rate := 1000000018431806610500369140 } - case 7884 { rate := 1000000018433579741742940441 } - case 7885 { rate := 1000000018435352773842053034 } - case 7886 { rate := 1000000018437125706808793381 } - case 7887 { rate := 1000000018438898540654246083 } - case 7888 { rate := 1000000018440671275389493885 } - case 7889 { rate := 1000000018442443911025617670 } - case 7890 { rate := 1000000018444216447573696466 } - case 7891 { rate := 1000000018445988885044807442 } - case 7892 { rate := 1000000018447761223450025908 } - case 7893 { rate := 1000000018449533462800425319 } - case 7894 { rate := 1000000018451305603107077273 } - case 7895 { rate := 1000000018453077644381051511 } - case 7896 { rate := 1000000018454849586633415920 } - case 7897 { rate := 1000000018456621429875236530 } - case 7898 { rate := 1000000018458393174117577515 } - case 7899 { rate := 1000000018460164819371501200 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7900-7999 - switch gt(bps, 7949) - case 0 { // 7900-7949 - switch gt(bps, 7924) - case 0 { // 7900-7924 - switch bps - case 7900 { rate := 1000000018461936365648068049 } - case 7901 { rate := 1000000018463707812958336676 } - case 7902 { rate := 1000000018465479161313363842 } - case 7903 { rate := 1000000018467250410724204454 } - case 7904 { rate := 1000000018469021561201911568 } - case 7905 { rate := 1000000018470792612757536386 } - case 7906 { rate := 1000000018472563565402128258 } - case 7907 { rate := 1000000018474334419146734687 } - case 7908 { rate := 1000000018476105174002401321 } - case 7909 { rate := 1000000018477875829980171960 } - case 7910 { rate := 1000000018479646387091088551 } - case 7911 { rate := 1000000018481416845346191196 } - case 7912 { rate := 1000000018483187204756518145 } - case 7913 { rate := 1000000018484957465333105800 } - case 7914 { rate := 1000000018486727627086988714 } - case 7915 { rate := 1000000018488497690029199592 } - case 7916 { rate := 1000000018490267654170769294 } - case 7917 { rate := 1000000018492037519522726829 } - case 7918 { rate := 1000000018493807286096099365 } - case 7919 { rate := 1000000018495576953901912217 } - case 7920 { rate := 1000000018497346522951188860 } - case 7921 { rate := 1000000018499115993254950919 } - case 7922 { rate := 1000000018500885364824218178 } - case 7923 { rate := 1000000018502654637670008573 } - case 7924 { rate := 1000000018504423811803338199 } - default { revert(0, 0) } - } - case 1 { // 7925-7949 - switch bps - case 7925 { rate := 1000000018506192887235221305 } - case 7926 { rate := 1000000018507961863976670296 } - case 7927 { rate := 1000000018509730742038695738 } - case 7928 { rate := 1000000018511499521432306350 } - case 7929 { rate := 1000000018513268202168509012 } - case 7930 { rate := 1000000018515036784258308760 } - case 7931 { rate := 1000000018516805267712708791 } - case 7932 { rate := 1000000018518573652542710459 } - case 7933 { rate := 1000000018520341938759313279 } - case 7934 { rate := 1000000018522110126373514925 } - case 7935 { rate := 1000000018523878215396311232 } - case 7936 { rate := 1000000018525646205838696196 } - case 7937 { rate := 1000000018527414097711661974 } - case 7938 { rate := 1000000018529181891026198882 } - case 7939 { rate := 1000000018530949585793295404 } - case 7940 { rate := 1000000018532717182023938179 } - case 7941 { rate := 1000000018534484679729112016 } - case 7942 { rate := 1000000018536252078919799882 } - case 7943 { rate := 1000000018538019379606982909 } - case 7944 { rate := 1000000018539786581801640396 } - case 7945 { rate := 1000000018541553685514749800 } - case 7946 { rate := 1000000018543320690757286750 } - case 7947 { rate := 1000000018545087597540225037 } - case 7948 { rate := 1000000018546854405874536615 } - case 7949 { rate := 1000000018548621115771191610 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 7950-7999 - switch gt(bps, 7974) - case 0 { // 7950-7974 - switch bps - case 7950 { rate := 1000000018550387727241158310 } - case 7951 { rate := 1000000018552154240295403172 } - case 7952 { rate := 1000000018553920654944890818 } - case 7953 { rate := 1000000018555686971200584040 } - case 7954 { rate := 1000000018557453189073443800 } - case 7955 { rate := 1000000018559219308574429223 } - case 7956 { rate := 1000000018560985329714497605 } - case 7957 { rate := 1000000018562751252504604416 } - case 7958 { rate := 1000000018564517076955703290 } - case 7959 { rate := 1000000018566282803078746033 } - case 7960 { rate := 1000000018568048430884682622 } - case 7961 { rate := 1000000018569813960384461207 } - case 7962 { rate := 1000000018571579391589028103 } - case 7963 { rate := 1000000018573344724509327805 } - case 7964 { rate := 1000000018575109959156302976 } - case 7965 { rate := 1000000018576875095540894448 } - case 7966 { rate := 1000000018578640133674041234 } - case 7967 { rate := 1000000018580405073566680515 } - case 7968 { rate := 1000000018582169915229747647 } - case 7969 { rate := 1000000018583934658674176160 } - case 7970 { rate := 1000000018585699303910897760 } - case 7971 { rate := 1000000018587463850950842326 } - case 7972 { rate := 1000000018589228299804937915 } - case 7973 { rate := 1000000018590992650484110758 } - case 7974 { rate := 1000000018592756902999285262 } - default { revert(0, 0) } - } - case 1 { // 7975-7999 - switch bps - case 7975 { rate := 1000000018594521057361384012 } - case 7976 { rate := 1000000018596285113581327769 } - case 7977 { rate := 1000000018598049071670035472 } - case 7978 { rate := 1000000018599812931638424240 } - case 7979 { rate := 1000000018601576693497409365 } - case 7980 { rate := 1000000018603340357257904322 } - case 7981 { rate := 1000000018605103922930820766 } - case 7982 { rate := 1000000018606867390527068528 } - case 7983 { rate := 1000000018608630760057555620 } - case 7984 { rate := 1000000018610394031533188235 } - case 7985 { rate := 1000000018612157204964870748 } - case 7986 { rate := 1000000018613920280363505711 } - case 7987 { rate := 1000000018615683257739993862 } - case 7988 { rate := 1000000018617446137105234120 } - case 7989 { rate := 1000000018619208918470123584 } - case 7990 { rate := 1000000018620971601845557538 } - case 7991 { rate := 1000000018622734187242429447 } - case 7992 { rate := 1000000018624496674671630963 } - case 7993 { rate := 1000000018626259064144051920 } - case 7994 { rate := 1000000018628021355670580334 } - case 7995 { rate := 1000000018629783549262102411 } - case 7996 { rate := 1000000018631545644929502537 } - case 7997 { rate := 1000000018633307642683663287 } - case 7998 { rate := 1000000018635069542535465422 } - case 7999 { rate := 1000000018636831344495787885 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates8000To8799.sol b/src/repositories/Rates8000To8799.sol deleted file mode 100644 index f194de6..0000000 --- a/src/repositories/Rates8000To8799.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates8000To8799 { - uint256 constant public MIN = 8000; - uint256 constant public MAX = 8799; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 8399) - case 0 { // 8000-8399 - switch gt(bps, 8199) - case 0 { // 8000-8199 - switch gt(bps, 8099) - case 0 { // 8000-8099 - switch gt(bps, 8049) - case 0 { // 8000-8049 - switch gt(bps, 8024) - case 0 { // 8000-8024 - switch bps - case 8000 { rate := 1000000018638593048575507813 } - case 8001 { rate := 1000000018640354654785500524 } - case 8002 { rate := 1000000018642116163136639525 } - case 8003 { rate := 1000000018643877573639796513 } - case 8004 { rate := 1000000018645638886305841373 } - case 8005 { rate := 1000000018647400101145642177 } - case 8006 { rate := 1000000018649161218170065187 } - case 8007 { rate := 1000000018650922237389974856 } - case 8008 { rate := 1000000018652683158816233826 } - case 8009 { rate := 1000000018654443982459702927 } - case 8010 { rate := 1000000018656204708331241185 } - case 8011 { rate := 1000000018657965336441705812 } - case 8012 { rate := 1000000018659725866801952216 } - case 8013 { rate := 1000000018661486299422833994 } - case 8014 { rate := 1000000018663246634315202936 } - case 8015 { rate := 1000000018665006871489909025 } - case 8016 { rate := 1000000018666767010957800439 } - case 8017 { rate := 1000000018668527052729723547 } - case 8018 { rate := 1000000018670286996816522913 } - case 8019 { rate := 1000000018672046843229041295 } - case 8020 { rate := 1000000018673806591978119648 } - case 8021 { rate := 1000000018675566243074597119 } - case 8022 { rate := 1000000018677325796529311054 } - case 8023 { rate := 1000000018679085252353096991 } - case 8024 { rate := 1000000018680844610556788668 } - default { revert(0, 0) } - } - case 1 { // 8025-8049 - switch bps - case 8025 { rate := 1000000018682603871151218019 } - case 8026 { rate := 1000000018684363034147215174 } - case 8027 { rate := 1000000018686122099555608460 } - case 8028 { rate := 1000000018687881067387224406 } - case 8029 { rate := 1000000018689639937652887737 } - case 8030 { rate := 1000000018691398710363421374 } - case 8031 { rate := 1000000018693157385529646441 } - case 8032 { rate := 1000000018694915963162382261 } - case 8033 { rate := 1000000018696674443272446357 } - case 8034 { rate := 1000000018698432825870654450 } - case 8035 { rate := 1000000018700191110967820466 } - case 8036 { rate := 1000000018701949298574756529 } - case 8037 { rate := 1000000018703707388702272967 } - case 8038 { rate := 1000000018705465381361178307 } - case 8039 { rate := 1000000018707223276562279280 } - case 8040 { rate := 1000000018708981074316380821 } - case 8041 { rate := 1000000018710738774634286066 } - case 8042 { rate := 1000000018712496377526796358 } - case 8043 { rate := 1000000018714253883004711240 } - case 8044 { rate := 1000000018716011291078828461 } - case 8045 { rate := 1000000018717768601759943976 } - case 8046 { rate := 1000000018719525815058851943 } - case 8047 { rate := 1000000018721282930986344728 } - case 8048 { rate := 1000000018723039949553212902 } - case 8049 { rate := 1000000018724796870770245242 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8050-8099 - switch gt(bps, 8074) - case 0 { // 8050-8074 - switch bps - case 8050 { rate := 1000000018726553694648228732 } - case 8051 { rate := 1000000018728310421197948562 } - case 8052 { rate := 1000000018730067050430188132 } - case 8053 { rate := 1000000018731823582355729050 } - case 8054 { rate := 1000000018733580016985351129 } - case 8055 { rate := 1000000018735336354329832394 } - case 8056 { rate := 1000000018737092594399949079 } - case 8057 { rate := 1000000018738848737206475625 } - case 8058 { rate := 1000000018740604782760184687 } - case 8059 { rate := 1000000018742360731071847127 } - case 8060 { rate := 1000000018744116582152232018 } - case 8061 { rate := 1000000018745872336012106646 } - case 8062 { rate := 1000000018747627992662236508 } - case 8063 { rate := 1000000018749383552113385312 } - case 8064 { rate := 1000000018751139014376314979 } - case 8065 { rate := 1000000018752894379461785643 } - case 8066 { rate := 1000000018754649647380555651 } - case 8067 { rate := 1000000018756404818143381562 } - case 8068 { rate := 1000000018758159891761018152 } - case 8069 { rate := 1000000018759914868244218410 } - case 8070 { rate := 1000000018761669747603733537 } - case 8071 { rate := 1000000018763424529850312954 } - case 8072 { rate := 1000000018765179214994704293 } - case 8073 { rate := 1000000018766933803047653406 } - case 8074 { rate := 1000000018768688294019904359 } - default { revert(0, 0) } - } - case 1 { // 8075-8099 - switch bps - case 8075 { rate := 1000000018770442687922199432 } - case 8076 { rate := 1000000018772196984765279129 } - case 8077 { rate := 1000000018773951184559882166 } - case 8078 { rate := 1000000018775705287316745477 } - case 8079 { rate := 1000000018777459293046604218 } - case 8080 { rate := 1000000018779213201760191760 } - case 8081 { rate := 1000000018780967013468239695 } - case 8082 { rate := 1000000018782720728181477833 } - case 8083 { rate := 1000000018784474345910634206 } - case 8084 { rate := 1000000018786227866666435065 } - case 8085 { rate := 1000000018787981290459604881 } - case 8086 { rate := 1000000018789734617300866347 } - case 8087 { rate := 1000000018791487847200940377 } - case 8088 { rate := 1000000018793240980170546107 } - case 8089 { rate := 1000000018794994016220400896 } - case 8090 { rate := 1000000018796746955361220324 } - case 8091 { rate := 1000000018798499797603718194 } - case 8092 { rate := 1000000018800252542958606535 } - case 8093 { rate := 1000000018802005191436595596 } - case 8094 { rate := 1000000018803757743048393855 } - case 8095 { rate := 1000000018805510197804708009 } - case 8096 { rate := 1000000018807262555716242984 } - case 8097 { rate := 1000000018809014816793701930 } - case 8098 { rate := 1000000018810766981047786222 } - case 8099 { rate := 1000000018812519048489195463 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8100-8199 - switch gt(bps, 8149) - case 0 { // 8100-8149 - switch gt(bps, 8124) - case 0 { // 8100-8124 - switch bps - case 8100 { rate := 1000000018814271019128627481 } - case 8101 { rate := 1000000018816022892976778332 } - case 8102 { rate := 1000000018817774670044342299 } - case 8103 { rate := 1000000018819526350342011891 } - case 8104 { rate := 1000000018821277933880477847 } - case 8105 { rate := 1000000018823029420670429136 } - case 8106 { rate := 1000000018824780810722552952 } - case 8107 { rate := 1000000018826532104047534720 } - case 8108 { rate := 1000000018828283300656058095 } - case 8109 { rate := 1000000018830034400558804964 } - case 8110 { rate := 1000000018831785403766455440 } - case 8111 { rate := 1000000018833536310289687871 } - case 8112 { rate := 1000000018835287120139178833 } - case 8113 { rate := 1000000018837037833325603137 } - case 8114 { rate := 1000000018838788449859633821 } - case 8115 { rate := 1000000018840538969751942163 } - case 8116 { rate := 1000000018842289393013197665 } - case 8117 { rate := 1000000018844039719654068068 } - case 8118 { rate := 1000000018845789949685219346 } - case 8119 { rate := 1000000018847540083117315706 } - case 8120 { rate := 1000000018849290119961019588 } - case 8121 { rate := 1000000018851040060226991670 } - case 8122 { rate := 1000000018852789903925890862 } - case 8123 { rate := 1000000018854539651068374310 } - case 8124 { rate := 1000000018856289301665097399 } - default { revert(0, 0) } - } - case 1 { // 8125-8149 - switch bps - case 8125 { rate := 1000000018858038855726713746 } - case 8126 { rate := 1000000018859788313263875208 } - case 8127 { rate := 1000000018861537674287231877 } - case 8128 { rate := 1000000018863286938807432083 } - case 8129 { rate := 1000000018865036106835122396 } - case 8130 { rate := 1000000018866785178380947620 } - case 8131 { rate := 1000000018868534153455550800 } - case 8132 { rate := 1000000018870283032069573223 } - case 8133 { rate := 1000000018872031814233654409 } - case 8134 { rate := 1000000018873780499958432124 } - case 8135 { rate := 1000000018875529089254542368 } - case 8136 { rate := 1000000018877277582132619389 } - case 8137 { rate := 1000000018879025978603295669 } - case 8138 { rate := 1000000018880774278677201936 } - case 8139 { rate := 1000000018882522482364967158 } - case 8140 { rate := 1000000018884270589677218543 } - case 8141 { rate := 1000000018886018600624581547 } - case 8142 { rate := 1000000018887766515217679862 } - case 8143 { rate := 1000000018889514333467135430 } - case 8144 { rate := 1000000018891262055383568433 } - case 8145 { rate := 1000000018893009680977597295 } - case 8146 { rate := 1000000018894757210259838691 } - case 8147 { rate := 1000000018896504643240907534 } - case 8148 { rate := 1000000018898251979931416987 } - case 8149 { rate := 1000000018899999220341978457 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8150-8199 - switch gt(bps, 8174) - case 0 { // 8150-8174 - switch bps - case 8150 { rate := 1000000018901746364483201594 } - case 8151 { rate := 1000000018903493412365694300 } - case 8152 { rate := 1000000018905240364000062719 } - case 8153 { rate := 1000000018906987219396911245 } - case 8154 { rate := 1000000018908733978566842519 } - case 8155 { rate := 1000000018910480641520457429 } - case 8156 { rate := 1000000018912227208268355112 } - case 8157 { rate := 1000000018913973678821132954 } - case 8158 { rate := 1000000018915720053189386589 } - case 8159 { rate := 1000000018917466331383709901 } - case 8160 { rate := 1000000018919212513414695026 } - case 8161 { rate := 1000000018920958599292932347 } - case 8162 { rate := 1000000018922704589029010497 } - case 8163 { rate := 1000000018924450482633516364 } - case 8164 { rate := 1000000018926196280117035085 } - case 8165 { rate := 1000000018927941981490150050 } - case 8166 { rate := 1000000018929687586763442899 } - case 8167 { rate := 1000000018931433095947493526 } - case 8168 { rate := 1000000018933178509052880078 } - case 8169 { rate := 1000000018934923826090178954 } - case 8170 { rate := 1000000018936669047069964810 } - case 8171 { rate := 1000000018938414172002810552 } - case 8172 { rate := 1000000018940159200899287344 } - case 8173 { rate := 1000000018941904133769964603 } - case 8174 { rate := 1000000018943648970625410000 } - default { revert(0, 0) } - } - case 1 { // 8175-8199 - switch bps - case 8175 { rate := 1000000018945393711476189463 } - case 8176 { rate := 1000000018947138356332867178 } - case 8177 { rate := 1000000018948882905206005585 } - case 8178 { rate := 1000000018950627358106165381 } - case 8179 { rate := 1000000018952371715043905520 } - case 8180 { rate := 1000000018954115976029783215 } - case 8181 { rate := 1000000018955860141074353935 } - case 8182 { rate := 1000000018957604210188171410 } - case 8183 { rate := 1000000018959348183381787625 } - case 8184 { rate := 1000000018961092060665752828 } - case 8185 { rate := 1000000018962835842050615522 } - case 8186 { rate := 1000000018964579527546922474 } - case 8187 { rate := 1000000018966323117165218711 } - case 8188 { rate := 1000000018968066610916047517 } - case 8189 { rate := 1000000018969810008809950439 } - case 8190 { rate := 1000000018971553310857467288 } - case 8191 { rate := 1000000018973296517069136132 } - case 8192 { rate := 1000000018975039627455493305 } - case 8193 { rate := 1000000018976782642027073402 } - case 8194 { rate := 1000000018978525560794409280 } - case 8195 { rate := 1000000018980268383768032061 } - case 8196 { rate := 1000000018982011110958471130 } - case 8197 { rate := 1000000018983753742376254135 } - case 8198 { rate := 1000000018985496278031906990 } - case 8199 { rate := 1000000018987238717935953874 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8200-8399 - switch gt(bps, 8299) - case 0 { // 8200-8299 - switch gt(bps, 8249) - case 0 { // 8200-8249 - switch gt(bps, 8224) - case 0 { // 8200-8224 - switch bps - case 8200 { rate := 1000000018988981062098917230 } - case 8201 { rate := 1000000018990723310531317765 } - case 8202 { rate := 1000000018992465463243674457 } - case 8203 { rate := 1000000018994207520246504546 } - case 8204 { rate := 1000000018995949481550323540 } - case 8205 { rate := 1000000018997691347165645214 } - case 8206 { rate := 1000000018999433117102981611 } - case 8207 { rate := 1000000019001174791372843041 } - case 8208 { rate := 1000000019002916369985738082 } - case 8209 { rate := 1000000019004657852952173583 } - case 8210 { rate := 1000000019006399240282654660 } - case 8211 { rate := 1000000019008140531987684699 } - case 8212 { rate := 1000000019009881728077765354 } - case 8213 { rate := 1000000019011622828563396552 } - case 8214 { rate := 1000000019013363833455076488 } - case 8215 { rate := 1000000019015104742763301630 } - case 8216 { rate := 1000000019016845556498566716 } - case 8217 { rate := 1000000019018586274671364757 } - case 8218 { rate := 1000000019020326897292187034 } - case 8219 { rate := 1000000019022067424371523101 } - case 8220 { rate := 1000000019023807855919860787 } - case 8221 { rate := 1000000019025548191947686191 } - case 8222 { rate := 1000000019027288432465483687 } - case 8223 { rate := 1000000019029028577483735925 } - case 8224 { rate := 1000000019030768627012923824 } - default { revert(0, 0) } - } - case 1 { // 8225-8249 - switch bps - case 8225 { rate := 1000000019032508581063526585 } - case 8226 { rate := 1000000019034248439646021677 } - case 8227 { rate := 1000000019035988202770884848 } - case 8228 { rate := 1000000019037727870448590123 } - case 8229 { rate := 1000000019039467442689609800 } - case 8230 { rate := 1000000019041206919504414455 } - case 8231 { rate := 1000000019042946300903472942 } - case 8232 { rate := 1000000019044685586897252392 } - case 8233 { rate := 1000000019046424777496218212 } - case 8234 { rate := 1000000019048163872710834089 } - case 8235 { rate := 1000000019049902872551561987 } - case 8236 { rate := 1000000019051641777028862150 } - case 8237 { rate := 1000000019053380586153193101 } - case 8238 { rate := 1000000019055119299935011644 } - case 8239 { rate := 1000000019056857918384772859 } - case 8240 { rate := 1000000019058596441512930110 } - case 8241 { rate := 1000000019060334869329935041 } - case 8242 { rate := 1000000019062073201846237576 } - case 8243 { rate := 1000000019063811439072285921 } - case 8244 { rate := 1000000019065549581018526566 } - case 8245 { rate := 1000000019067287627695404278 } - case 8246 { rate := 1000000019069025579113362113 } - case 8247 { rate := 1000000019070763435282841406 } - case 8248 { rate := 1000000019072501196214281776 } - case 8249 { rate := 1000000019074238861918121125 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8250-8299 - switch gt(bps, 8274) - case 0 { // 8250-8274 - switch bps - case 8250 { rate := 1000000019075976432404795643 } - case 8251 { rate := 1000000019077713907684739801 } - case 8252 { rate := 1000000019079451287768386354 } - case 8253 { rate := 1000000019081188572666166345 } - case 8254 { rate := 1000000019082925762388509101 } - case 8255 { rate := 1000000019084662856945842236 } - case 8256 { rate := 1000000019086399856348591650 } - case 8257 { rate := 1000000019088136760607181530 } - case 8258 { rate := 1000000019089873569732034349 } - case 8259 { rate := 1000000019091610283733570869 } - case 8260 { rate := 1000000019093346902622210139 } - case 8261 { rate := 1000000019095083426408369496 } - case 8262 { rate := 1000000019096819855102464568 } - case 8263 { rate := 1000000019098556188714909268 } - case 8264 { rate := 1000000019100292427256115802 } - case 8265 { rate := 1000000019102028570736494664 } - case 8266 { rate := 1000000019103764619166454637 } - case 8267 { rate := 1000000019105500572556402798 } - case 8268 { rate := 1000000019107236430916744512 } - case 8269 { rate := 1000000019108972194257883436 } - case 8270 { rate := 1000000019110707862590221519 } - case 8271 { rate := 1000000019112443435924159001 } - case 8272 { rate := 1000000019114178914270094416 } - case 8273 { rate := 1000000019115914297638424590 } - case 8274 { rate := 1000000019117649586039544643 } - default { revert(0, 0) } - } - case 1 { // 8275-8299 - switch bps - case 8275 { rate := 1000000019119384779483847985 } - case 8276 { rate := 1000000019121119877981726323 } - case 8277 { rate := 1000000019122854881543569660 } - case 8278 { rate := 1000000019124589790179766288 } - case 8279 { rate := 1000000019126324603900702800 } - case 8280 { rate := 1000000019128059322716764080 } - case 8281 { rate := 1000000019129793946638333310 } - case 8282 { rate := 1000000019131528475675791968 } - case 8283 { rate := 1000000019133262909839519827 } - case 8284 { rate := 1000000019134997249139894958 } - case 8285 { rate := 1000000019136731493587293730 } - case 8286 { rate := 1000000019138465643192090809 } - case 8287 { rate := 1000000019140199697964659157 } - case 8288 { rate := 1000000019141933657915370038 } - case 8289 { rate := 1000000019143667523054593010 } - case 8290 { rate := 1000000019145401293392695935 } - case 8291 { rate := 1000000019147134968940044972 } - case 8292 { rate := 1000000019148868549707004581 } - case 8293 { rate := 1000000019150602035703937519 } - case 8294 { rate := 1000000019152335426941204848 } - case 8295 { rate := 1000000019154068723429165929 } - case 8296 { rate := 1000000019155801925178178423 } - case 8297 { rate := 1000000019157535032198598294 } - case 8298 { rate := 1000000019159268044500779809 } - case 8299 { rate := 1000000019161000962095075535 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8300-8399 - switch gt(bps, 8349) - case 0 { // 8300-8349 - switch gt(bps, 8324) - case 0 { // 8300-8324 - switch bps - case 8300 { rate := 1000000019162733784991836346 } - case 8301 { rate := 1000000019164466513201411414 } - case 8302 { rate := 1000000019166199146734148217 } - case 8303 { rate := 1000000019167931685600392538 } - case 8304 { rate := 1000000019169664129810488463 } - case 8305 { rate := 1000000019171396479374778382 } - case 8306 { rate := 1000000019173128734303602993 } - case 8307 { rate := 1000000019174860894607301295 } - case 8308 { rate := 1000000019176592960296210597 } - case 8309 { rate := 1000000019178324931380666510 } - case 8310 { rate := 1000000019180056807871002956 } - case 8311 { rate := 1000000019181788589777552160 } - case 8312 { rate := 1000000019183520277110644657 } - case 8313 { rate := 1000000019185251869880609289 } - case 8314 { rate := 1000000019186983368097773204 } - case 8315 { rate := 1000000019188714771772461861 } - case 8316 { rate := 1000000019190446080914999025 } - case 8317 { rate := 1000000019192177295535706774 } - case 8318 { rate := 1000000019193908415644905492 } - case 8319 { rate := 1000000019195639441252913873 } - case 8320 { rate := 1000000019197370372370048924 } - case 8321 { rate := 1000000019199101209006625961 } - case 8322 { rate := 1000000019200831951172958609 } - case 8323 { rate := 1000000019202562598879358809 } - case 8324 { rate := 1000000019204293152136136807 } - default { revert(0, 0) } - } - case 1 { // 8325-8349 - switch bps - case 8325 { rate := 1000000019206023610953601168 } - case 8326 { rate := 1000000019207753975342058765 } - case 8327 { rate := 1000000019209484245311814785 } - case 8328 { rate := 1000000019211214420873172728 } - case 8329 { rate := 1000000019212944502036434409 } - case 8330 { rate := 1000000019214674488811899953 } - case 8331 { rate := 1000000019216404381209867805 } - case 8332 { rate := 1000000019218134179240634720 } - case 8333 { rate := 1000000019219863882914495771 } - case 8334 { rate := 1000000019221593492241744342 } - case 8335 { rate := 1000000019223323007232672138 } - case 8336 { rate := 1000000019225052427897569177 } - case 8337 { rate := 1000000019226781754246723793 } - case 8338 { rate := 1000000019228510986290422641 } - case 8339 { rate := 1000000019230240124038950687 } - case 8340 { rate := 1000000019231969167502591220 } - case 8341 { rate := 1000000019233698116691625845 } - case 8342 { rate := 1000000019235426971616334484 } - case 8343 { rate := 1000000019237155732286995379 } - case 8344 { rate := 1000000019238884398713885090 } - case 8345 { rate := 1000000019240612970907278498 } - case 8346 { rate := 1000000019242341448877448803 } - case 8347 { rate := 1000000019244069832634667526 } - case 8348 { rate := 1000000019245798122189204505 } - case 8349 { rate := 1000000019247526317551327904 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8350-8399 - switch gt(bps, 8374) - case 0 { // 8350-8374 - switch bps - case 8350 { rate := 1000000019249254418731304205 } - case 8351 { rate := 1000000019250982425739398211 } - case 8352 { rate := 1000000019252710338585873049 } - case 8353 { rate := 1000000019254438157280990169 } - case 8354 { rate := 1000000019256165881835009342 } - case 8355 { rate := 1000000019257893512258188661 } - case 8356 { rate := 1000000019259621048560784543 } - case 8357 { rate := 1000000019261348490753051732 } - case 8358 { rate := 1000000019263075838845243292 } - case 8359 { rate := 1000000019264803092847610615 } - case 8360 { rate := 1000000019266530252770403415 } - case 8361 { rate := 1000000019268257318623869732 } - case 8362 { rate := 1000000019269984290418255933 } - case 8363 { rate := 1000000019271711168163806709 } - case 8364 { rate := 1000000019273437951870765080 } - case 8365 { rate := 1000000019275164641549372390 } - case 8366 { rate := 1000000019276891237209868311 } - case 8367 { rate := 1000000019278617738862490844 } - case 8368 { rate := 1000000019280344146517476314 } - case 8369 { rate := 1000000019282070460185059378 } - case 8370 { rate := 1000000019283796679875473021 } - case 8371 { rate := 1000000019285522805598948554 } - case 8372 { rate := 1000000019287248837365715621 } - case 8373 { rate := 1000000019288974775186002193 } - case 8374 { rate := 1000000019290700619070034572 } - default { revert(0, 0) } - } - case 1 { // 8375-8399 - switch bps - case 8375 { rate := 1000000019292426369028037391 } - case 8376 { rate := 1000000019294152025070233613 } - case 8377 { rate := 1000000019295877587206844530 } - case 8378 { rate := 1000000019297603055448089770 } - case 8379 { rate := 1000000019299328429804187289 } - case 8380 { rate := 1000000019301053710285353377 } - case 8381 { rate := 1000000019302778896901802656 } - case 8382 { rate := 1000000019304503989663748081 } - case 8383 { rate := 1000000019306228988581400940 } - case 8384 { rate := 1000000019307953893664970854 } - case 8385 { rate := 1000000019309678704924665780 } - case 8386 { rate := 1000000019311403422370692008 } - case 8387 { rate := 1000000019313128046013254162 } - case 8388 { rate := 1000000019314852575862555202 } - case 8389 { rate := 1000000019316577011928796425 } - case 8390 { rate := 1000000019318301354222177460 } - case 8391 { rate := 1000000019320025602752896275 } - case 8392 { rate := 1000000019321749757531149174 } - case 8393 { rate := 1000000019323473818567130798 } - case 8394 { rate := 1000000019325197785871034125 } - case 8395 { rate := 1000000019326921659453050469 } - case 8396 { rate := 1000000019328645439323369486 } - case 8397 { rate := 1000000019330369125492179166 } - case 8398 { rate := 1000000019332092717969665839 } - case 8399 { rate := 1000000019333816216766014177 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8400-8799 - switch gt(bps, 8599) - case 0 { // 8400-8599 - switch gt(bps, 8499) - case 0 { // 8400-8499 - switch gt(bps, 8449) - case 0 { // 8400-8449 - switch gt(bps, 8424) - case 0 { // 8400-8424 - switch bps - case 8400 { rate := 1000000019335539621891407188 } - case 8401 { rate := 1000000019337262933356026219 } - case 8402 { rate := 1000000019338986151170050961 } - case 8403 { rate := 1000000019340709275343659442 } - case 8404 { rate := 1000000019342432305887028033 } - case 8405 { rate := 1000000019344155242810331446 } - case 8406 { rate := 1000000019345878086123742733 } - case 8407 { rate := 1000000019347600835837433289 } - case 8408 { rate := 1000000019349323491961572852 } - case 8409 { rate := 1000000019351046054506329501 } - case 8410 { rate := 1000000019352768523481869660 } - case 8411 { rate := 1000000019354490898898358095 } - case 8412 { rate := 1000000019356213180765957915 } - case 8413 { rate := 1000000019357935369094830575 } - case 8414 { rate := 1000000019359657463895135874 } - case 8415 { rate := 1000000019361379465177031955 } - case 8416 { rate := 1000000019363101372950675305 } - case 8417 { rate := 1000000019364823187226220761 } - case 8418 { rate := 1000000019366544908013821502 } - case 8419 { rate := 1000000019368266535323629053 } - case 8420 { rate := 1000000019369988069165793289 } - case 8421 { rate := 1000000019371709509550462428 } - case 8422 { rate := 1000000019373430856487783037 } - case 8423 { rate := 1000000019375152109987900033 } - case 8424 { rate := 1000000019376873270060956677 } - default { revert(0, 0) } - } - case 1 { // 8425-8449 - switch bps - case 8425 { rate := 1000000019378594336717094581 } - case 8426 { rate := 1000000019380315309966453706 } - case 8427 { rate := 1000000019382036189819172359 } - case 8428 { rate := 1000000019383756976285387201 } - case 8429 { rate := 1000000019385477669375233239 } - case 8430 { rate := 1000000019387198269098843832 } - case 8431 { rate := 1000000019388918775466350690 } - case 8432 { rate := 1000000019390639188487883872 } - case 8433 { rate := 1000000019392359508173571791 } - case 8434 { rate := 1000000019394079734533541209 } - case 8435 { rate := 1000000019395799867577917242 } - case 8436 { rate := 1000000019397519907316823356 } - case 8437 { rate := 1000000019399239853760381372 } - case 8438 { rate := 1000000019400959706918711464 } - case 8439 { rate := 1000000019402679466801932157 } - case 8440 { rate := 1000000019404399133420160333 } - case 8441 { rate := 1000000019406118706783511225 } - case 8442 { rate := 1000000019407838186902098423 } - case 8443 { rate := 1000000019409557573786033870 } - case 8444 { rate := 1000000019411276867445427867 } - case 8445 { rate := 1000000019412996067890389067 } - case 8446 { rate := 1000000019414715175131024480 } - case 8447 { rate := 1000000019416434189177439474 } - case 8448 { rate := 1000000019418153110039737771 } - case 8449 { rate := 1000000019419871937728021454 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8450-8499 - switch gt(bps, 8474) - case 0 { // 8450-8474 - switch bps - case 8450 { rate := 1000000019421590672252390959 } - case 8451 { rate := 1000000019423309313622945081 } - case 8452 { rate := 1000000019425027861849780974 } - case 8453 { rate := 1000000019426746316942994151 } - case 8454 { rate := 1000000019428464678912678481 } - case 8455 { rate := 1000000019430182947768926195 } - case 8456 { rate := 1000000019431901123521827882 } - case 8457 { rate := 1000000019433619206181472490 } - case 8458 { rate := 1000000019435337195757947331 } - case 8459 { rate := 1000000019437055092261338072 } - case 8460 { rate := 1000000019438772895701728744 } - case 8461 { rate := 1000000019440490606089201741 } - case 8462 { rate := 1000000019442208223433837815 } - case 8463 { rate := 1000000019443925747745716082 } - case 8464 { rate := 1000000019445643179034914020 } - case 8465 { rate := 1000000019447360517311507470 } - case 8466 { rate := 1000000019449077762585570634 } - case 8467 { rate := 1000000019450794914867176081 } - case 8468 { rate := 1000000019452511974166394739 } - case 8469 { rate := 1000000019454228940493295906 } - case 8470 { rate := 1000000019455945813857947238 } - case 8471 { rate := 1000000019457662594270414762 } - case 8472 { rate := 1000000019459379281740762866 } - case 8473 { rate := 1000000019461095876279054304 } - case 8474 { rate := 1000000019462812377895350198 } - default { revert(0, 0) } - } - case 1 { // 8475-8499 - switch bps - case 8475 { rate := 1000000019464528786599710033 } - case 8476 { rate := 1000000019466245102402191663 } - case 8477 { rate := 1000000019467961325312851309 } - case 8478 { rate := 1000000019469677455341743557 } - case 8479 { rate := 1000000019471393492498921365 } - case 8480 { rate := 1000000019473109436794436053 } - case 8481 { rate := 1000000019474825288238337314 } - case 8482 { rate := 1000000019476541046840673208 } - case 8483 { rate := 1000000019478256712611490164 } - case 8484 { rate := 1000000019479972285560832982 } - case 8485 { rate := 1000000019481687765698744828 } - case 8486 { rate := 1000000019483403153035267242 } - case 8487 { rate := 1000000019485118447580440132 } - case 8488 { rate := 1000000019486833649344301778 } - case 8489 { rate := 1000000019488548758336888832 } - case 8490 { rate := 1000000019490263774568236316 } - case 8491 { rate := 1000000019491978698048377623 } - case 8492 { rate := 1000000019493693528787344519 } - case 8493 { rate := 1000000019495408266795167146 } - case 8494 { rate := 1000000019497122912081874013 } - case 8495 { rate := 1000000019498837464657492007 } - case 8496 { rate := 1000000019500551924532046386 } - case 8497 { rate := 1000000019502266291715560784 } - case 8498 { rate := 1000000019503980566218057206 } - case 8499 { rate := 1000000019505694748049556036 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8500-8599 - switch gt(bps, 8549) - case 0 { // 8500-8549 - switch gt(bps, 8524) - case 0 { // 8500-8524 - switch bps - case 8500 { rate := 1000000019507408837220076029 } - case 8501 { rate := 1000000019509122833739634318 } - case 8502 { rate := 1000000019510836737618246412 } - case 8503 { rate := 1000000019512550548865926194 } - case 8504 { rate := 1000000019514264267492685924 } - case 8505 { rate := 1000000019515977893508536240 } - case 8506 { rate := 1000000019517691426923486156 } - case 8507 { rate := 1000000019519404867747543065 } - case 8508 { rate := 1000000019521118215990712736 } - case 8509 { rate := 1000000019522831471662999316 } - case 8510 { rate := 1000000019524544634774405332 } - case 8511 { rate := 1000000019526257705334931690 } - case 8512 { rate := 1000000019527970683354577675 } - case 8513 { rate := 1000000019529683568843340950 } - case 8514 { rate := 1000000019531396361811217559 } - case 8515 { rate := 1000000019533109062268201927 } - case 8516 { rate := 1000000019534821670224286859 } - case 8517 { rate := 1000000019536534185689463541 } - case 8518 { rate := 1000000019538246608673721540 } - case 8519 { rate := 1000000019539958939187048805 } - case 8520 { rate := 1000000019541671177239431669 } - case 8521 { rate := 1000000019543383322840854842 } - case 8522 { rate := 1000000019545095376001301423 } - case 8523 { rate := 1000000019546807336730752891 } - case 8524 { rate := 1000000019548519205039189107 } - default { revert(0, 0) } - } - case 1 { // 8525-8549 - switch bps - case 8525 { rate := 1000000019550230980936588320 } - case 8526 { rate := 1000000019551942664432927159 } - case 8527 { rate := 1000000019553654255538180638 } - case 8528 { rate := 1000000019555365754262322160 } - case 8529 { rate := 1000000019557077160615323508 } - case 8530 { rate := 1000000019558788474607154854 } - case 8531 { rate := 1000000019560499696247784753 } - case 8532 { rate := 1000000019562210825547180149 } - case 8533 { rate := 1000000019563921862515306371 } - case 8534 { rate := 1000000019565632807162127135 } - case 8535 { rate := 1000000019567343659497604546 } - case 8536 { rate := 1000000019569054419531699092 } - case 8537 { rate := 1000000019570765087274369656 } - case 8538 { rate := 1000000019572475662735573501 } - case 8539 { rate := 1000000019574186145925266288 } - case 8540 { rate := 1000000019575896536853402059 } - case 8541 { rate := 1000000019577606835529933249 } - case 8542 { rate := 1000000019579317041964810682 } - case 8543 { rate := 1000000019581027156167983573 } - case 8544 { rate := 1000000019582737178149399527 } - case 8545 { rate := 1000000019584447107919004537 } - case 8546 { rate := 1000000019586156945486742993 } - case 8547 { rate := 1000000019587866690862557669 } - case 8548 { rate := 1000000019589576344056389737 } - case 8549 { rate := 1000000019591285905078178759 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8550-8599 - switch gt(bps, 8574) - case 0 { // 8550-8574 - switch bps - case 8550 { rate := 1000000019592995373937862689 } - case 8551 { rate := 1000000019594704750645377873 } - case 8552 { rate := 1000000019596414035210659053 } - case 8553 { rate := 1000000019598123227643639361 } - case 8554 { rate := 1000000019599832327954250327 } - case 8555 { rate := 1000000019601541336152421872 } - case 8556 { rate := 1000000019603250252248082310 } - case 8557 { rate := 1000000019604959076251158355 } - case 8558 { rate := 1000000019606667808171575114 } - case 8559 { rate := 1000000019608376448019256087 } - case 8560 { rate := 1000000019610084995804123174 } - case 8561 { rate := 1000000019611793451536096669 } - case 8562 { rate := 1000000019613501815225095263 } - case 8563 { rate := 1000000019615210086881036044 } - case 8564 { rate := 1000000019616918266513834497 } - case 8565 { rate := 1000000019618626354133404505 } - case 8566 { rate := 1000000019620334349749658350 } - case 8567 { rate := 1000000019622042253372506711 } - case 8568 { rate := 1000000019623750065011858666 } - case 8569 { rate := 1000000019625457784677621692 } - case 8570 { rate := 1000000019627165412379701666 } - case 8571 { rate := 1000000019628872948128002863 } - case 8572 { rate := 1000000019630580391932427962 } - case 8573 { rate := 1000000019632287743802878037 } - case 8574 { rate := 1000000019633995003749252568 } - default { revert(0, 0) } - } - case 1 { // 8575-8599 - switch bps - case 8575 { rate := 1000000019635702171781449432 } - case 8576 { rate := 1000000019637409247909364910 } - case 8577 { rate := 1000000019639116232142893683 } - case 8578 { rate := 1000000019640823124491928838 } - case 8579 { rate := 1000000019642529924966361858 } - case 8580 { rate := 1000000019644236633576082635 } - case 8581 { rate := 1000000019645943250330979460 } - case 8582 { rate := 1000000019647649775240939030 } - case 8583 { rate := 1000000019649356208315846444 } - case 8584 { rate := 1000000019651062549565585208 } - case 8585 { rate := 1000000019652768799000037231 } - case 8586 { rate := 1000000019654474956629082825 } - case 8587 { rate := 1000000019656181022462600710 } - case 8588 { rate := 1000000019657886996510468009 } - case 8589 { rate := 1000000019659592878782560255 } - case 8590 { rate := 1000000019661298669288751384 } - case 8591 { rate := 1000000019663004368038913738 } - case 8592 { rate := 1000000019664709975042918068 } - case 8593 { rate := 1000000019666415490310633533 } - case 8594 { rate := 1000000019668120913851927696 } - case 8595 { rate := 1000000019669826245676666531 } - case 8596 { rate := 1000000019671531485794714421 } - case 8597 { rate := 1000000019673236634215934155 } - case 8598 { rate := 1000000019674941690950186933 } - case 8599 { rate := 1000000019676646656007332363 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8600-8799 - switch gt(bps, 8699) - case 0 { // 8600-8699 - switch gt(bps, 8649) - case 0 { // 8600-8649 - switch gt(bps, 8624) - case 0 { // 8600-8624 - switch bps - case 8600 { rate := 1000000019678351529397228463 } - case 8601 { rate := 1000000019680056311129731662 } - case 8602 { rate := 1000000019681761001214696799 } - case 8603 { rate := 1000000019683465599661977123 } - case 8604 { rate := 1000000019685170106481424294 } - case 8605 { rate := 1000000019686874521682888385 } - case 8606 { rate := 1000000019688578845276217880 } - case 8607 { rate := 1000000019690283077271259672 } - case 8608 { rate := 1000000019691987217677859074 } - case 8609 { rate := 1000000019693691266505859802 } - case 8610 { rate := 1000000019695395223765103993 } - case 8611 { rate := 1000000019697099089465432194 } - case 8612 { rate := 1000000019698802863616683367 } - case 8613 { rate := 1000000019700506546228694886 } - case 8614 { rate := 1000000019702210137311302542 } - case 8615 { rate := 1000000019703913636874340539 } - case 8616 { rate := 1000000019705617044927641498 } - case 8617 { rate := 1000000019707320361481036453 } - case 8618 { rate := 1000000019709023586544354858 } - case 8619 { rate := 1000000019710726720127424577 } - case 8620 { rate := 1000000019712429762240071896 } - case 8621 { rate := 1000000019714132712892121515 } - case 8622 { rate := 1000000019715835572093396554 } - case 8623 { rate := 1000000019717538339853718546 } - case 8624 { rate := 1000000019719241016182907446 } - default { revert(0, 0) } - } - case 1 { // 8625-8649 - switch bps - case 8625 { rate := 1000000019720943601090781625 } - case 8626 { rate := 1000000019722646094587157873 } - case 8627 { rate := 1000000019724348496681851400 } - case 8628 { rate := 1000000019726050807384675834 } - case 8629 { rate := 1000000019727753026705443223 } - case 8630 { rate := 1000000019729455154653964034 } - case 8631 { rate := 1000000019731157191240047158 } - case 8632 { rate := 1000000019732859136473499900 } - case 8633 { rate := 1000000019734560990364127992 } - case 8634 { rate := 1000000019736262752921735584 } - case 8635 { rate := 1000000019737964424156125249 } - case 8636 { rate := 1000000019739666004077097982 } - case 8637 { rate := 1000000019741367492694453198 } - case 8638 { rate := 1000000019743068890017988738 } - case 8639 { rate := 1000000019744770196057500864 } - case 8640 { rate := 1000000019746471410822784262 } - case 8641 { rate := 1000000019748172534323632041 } - case 8642 { rate := 1000000019749873566569835734 } - case 8643 { rate := 1000000019751574507571185299 } - case 8644 { rate := 1000000019753275357337469119 } - case 8645 { rate := 1000000019754976115878473999 } - case 8646 { rate := 1000000019756676783203985175 } - case 8647 { rate := 1000000019758377359323786302 } - case 8648 { rate := 1000000019760077844247659467 } - case 8649 { rate := 1000000019761778237985385179 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8650-8699 - switch gt(bps, 8674) - case 0 { // 8650-8674 - switch bps - case 8650 { rate := 1000000019763478540546742376 } - case 8651 { rate := 1000000019765178751941508423 } - case 8652 { rate := 1000000019766878872179459110 } - case 8653 { rate := 1000000019768578901270368657 } - case 8654 { rate := 1000000019770278839224009713 } - case 8655 { rate := 1000000019771978686050153352 } - case 8656 { rate := 1000000019773678441758569079 } - case 8657 { rate := 1000000019775378106359024828 } - case 8658 { rate := 1000000019777077679861286963 } - case 8659 { rate := 1000000019778777162275120275 } - case 8660 { rate := 1000000019780476553610287987 } - case 8661 { rate := 1000000019782175853876551752 } - case 8662 { rate := 1000000019783875063083671655 } - case 8663 { rate := 1000000019785574181241406209 } - case 8664 { rate := 1000000019787273208359512363 } - case 8665 { rate := 1000000019788972144447745493 } - case 8666 { rate := 1000000019790670989515859410 } - case 8667 { rate := 1000000019792369743573606356 } - case 8668 { rate := 1000000019794068406630737008 } - case 8669 { rate := 1000000019795766978697000471 } - case 8670 { rate := 1000000019797465459782144290 } - case 8671 { rate := 1000000019799163849895914439 } - case 8672 { rate := 1000000019800862149048055328 } - case 8673 { rate := 1000000019802560357248309801 } - case 8674 { rate := 1000000019804258474506419137 } - default { revert(0, 0) } - } - case 1 { // 8675-8699 - switch bps - case 8675 { rate := 1000000019805956500832123050 } - case 8676 { rate := 1000000019807654436235159689 } - case 8677 { rate := 1000000019809352280725265639 } - case 8678 { rate := 1000000019811050034312175922 } - case 8679 { rate := 1000000019812747697005623995 } - case 8680 { rate := 1000000019814445268815341752 } - case 8681 { rate := 1000000019816142749751059525 } - case 8682 { rate := 1000000019817840139822506084 } - case 8683 { rate := 1000000019819537439039408634 } - case 8684 { rate := 1000000019821234647411492821 } - case 8685 { rate := 1000000019822931764948482727 } - case 8686 { rate := 1000000019824628791660100876 } - case 8687 { rate := 1000000019826325727556068227 } - case 8688 { rate := 1000000019828022572646104182 } - case 8689 { rate := 1000000019829719326939926581 } - case 8690 { rate := 1000000019831415990447251705 } - case 8691 { rate := 1000000019833112563177794274 } - case 8692 { rate := 1000000019834809045141267450 } - case 8693 { rate := 1000000019836505436347382837 } - case 8694 { rate := 1000000019838201736805850477 } - case 8695 { rate := 1000000019839897946526378859 } - case 8696 { rate := 1000000019841594065518674908 } - case 8697 { rate := 1000000019843290093792443997 } - case 8698 { rate := 1000000019844986031357389939 } - case 8699 { rate := 1000000019846681878223214989 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8700-8799 - switch gt(bps, 8749) - case 0 { // 8700-8749 - switch gt(bps, 8724) - case 0 { // 8700-8724 - switch bps - case 8700 { rate := 1000000019848377634399619849 } - case 8701 { rate := 1000000019850073299896303661 } - case 8702 { rate := 1000000019851768874722964014 } - case 8703 { rate := 1000000019853464358889296941 } - case 8704 { rate := 1000000019855159752404996917 } - case 8705 { rate := 1000000019856855055279756866 } - case 8706 { rate := 1000000019858550267523268155 } - case 8707 { rate := 1000000019860245389145220596 } - case 8708 { rate := 1000000019861940420155302451 } - case 8709 { rate := 1000000019863635360563200425 } - case 8710 { rate := 1000000019865330210378599670 } - case 8711 { rate := 1000000019867024969611183786 } - case 8712 { rate := 1000000019868719638270634821 } - case 8713 { rate := 1000000019870414216366633269 } - case 8714 { rate := 1000000019872108703908858076 } - case 8715 { rate := 1000000019873803100906986629 } - case 8716 { rate := 1000000019875497407370694772 } - case 8717 { rate := 1000000019877191623309656793 } - case 8718 { rate := 1000000019878885748733545431 } - case 8719 { rate := 1000000019880579783652031874 } - case 8720 { rate := 1000000019882273728074785762 } - case 8721 { rate := 1000000019883967582011475183 } - case 8722 { rate := 1000000019885661345471766678 } - case 8723 { rate := 1000000019887355018465325236 } - case 8724 { rate := 1000000019889048601001814301 } - default { revert(0, 0) } - } - case 1 { // 8725-8749 - switch bps - case 8725 { rate := 1000000019890742093090895767 } - case 8726 { rate := 1000000019892435494742229981 } - case 8727 { rate := 1000000019894128805965475739 } - case 8728 { rate := 1000000019895822026770290295 } - case 8729 { rate := 1000000019897515157166329351 } - case 8730 { rate := 1000000019899208197163247067 } - case 8731 { rate := 1000000019900901146770696053 } - case 8732 { rate := 1000000019902594005998327375 } - case 8733 { rate := 1000000019904286774855790554 } - case 8734 { rate := 1000000019905979453352733562 } - case 8735 { rate := 1000000019907672041498802832 } - case 8736 { rate := 1000000019909364539303643246 } - case 8737 { rate := 1000000019911056946776898148 } - case 8738 { rate := 1000000019912749263928209333 } - case 8739 { rate := 1000000019914441490767217054 } - case 8740 { rate := 1000000019916133627303560021 } - case 8741 { rate := 1000000019917825673546875400 } - case 8742 { rate := 1000000019919517629506798819 } - case 8743 { rate := 1000000019921209495192964356 } - case 8744 { rate := 1000000019922901270615004553 } - case 8745 { rate := 1000000019924592955782550408 } - case 8746 { rate := 1000000019926284550705231377 } - case 8747 { rate := 1000000019927976055392675377 } - case 8748 { rate := 1000000019929667469854508782 } - case 8749 { rate := 1000000019931358794100356430 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8750-8799 - switch gt(bps, 8774) - case 0 { // 8750-8774 - switch bps - case 8750 { rate := 1000000019933050028139841613 } - case 8751 { rate := 1000000019934741171982586087 } - case 8752 { rate := 1000000019936432225638210068 } - case 8753 { rate := 1000000019938123189116332234 } - case 8754 { rate := 1000000019939814062426569721 } - case 8755 { rate := 1000000019941504845578538131 } - case 8756 { rate := 1000000019943195538581851525 } - case 8757 { rate := 1000000019944886141446122425 } - case 8758 { rate := 1000000019946576654180961822 } - case 8759 { rate := 1000000019948267076795979161 } - case 8760 { rate := 1000000019949957409300782358 } - case 8761 { rate := 1000000019951647651704977788 } - case 8762 { rate := 1000000019953337804018170292 } - case 8763 { rate := 1000000019955027866249963174 } - case 8764 { rate := 1000000019956717838409958205 } - case 8765 { rate := 1000000019958407720507755616 } - case 8766 { rate := 1000000019960097512552954109 } - case 8767 { rate := 1000000019961787214555150849 } - case 8768 { rate := 1000000019963476826523941464 } - case 8769 { rate := 1000000019965166348468920054 } - case 8770 { rate := 1000000019966855780399679180 } - case 8771 { rate := 1000000019968545122325809875 } - case 8772 { rate := 1000000019970234374256901634 } - case 8773 { rate := 1000000019971923536202542425 } - case 8774 { rate := 1000000019973612608172318678 } - default { revert(0, 0) } - } - case 1 { // 8775-8799 - switch bps - case 8775 { rate := 1000000019975301590175815296 } - case 8776 { rate := 1000000019976990482222615648 } - case 8777 { rate := 1000000019978679284322301573 } - case 8778 { rate := 1000000019980367996484453378 } - case 8779 { rate := 1000000019982056618718649841 } - case 8780 { rate := 1000000019983745151034468208 } - case 8781 { rate := 1000000019985433593441484196 } - case 8782 { rate := 1000000019987121945949271992 } - case 8783 { rate := 1000000019988810208567404255 } - case 8784 { rate := 1000000019990498381305452115 } - case 8785 { rate := 1000000019992186464172985172 } - case 8786 { rate := 1000000019993874457179571499 } - case 8787 { rate := 1000000019995562360334777640 } - case 8788 { rate := 1000000019997250173648168612 } - case 8789 { rate := 1000000019998937897129307905 } - case 8790 { rate := 1000000020000625530787757482 } - case 8791 { rate := 1000000020002313074633077780 } - case 8792 { rate := 1000000020004000528674827707 } - case 8793 { rate := 1000000020005687892922564648 } - case 8794 { rate := 1000000020007375167385844462 } - case 8795 { rate := 1000000020009062352074221481 } - case 8796 { rate := 1000000020010749446997248514 } - case 8797 { rate := 1000000020012436452164476843 } - case 8798 { rate := 1000000020014123367585456228 } - case 8799 { rate := 1000000020015810193269734903 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates800To1599.sol b/src/repositories/Rates800To1599.sol deleted file mode 100644 index e58c69c..0000000 --- a/src/repositories/Rates800To1599.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates800To1599 { - uint256 constant public MIN = 800; - uint256 constant public MAX = 1599; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 1199) - case 0 { // 800-1199 - switch gt(bps, 999) - case 0 { // 800-999 - switch gt(bps, 899) - case 0 { // 800-899 - switch gt(bps, 849) - case 0 { // 800-849 - switch gt(bps, 824) - case 0 { // 800-824 - switch bps - case 800 { rate := 1000000002440418608258400030 } - case 801 { rate := 1000000002443354564194129787 } - case 802 { rate := 1000000002446290248319847339 } - case 803 { rate := 1000000002449225660685876223 } - case 804 { rate := 1000000002452160801342526004 } - case 805 { rate := 1000000002455095670340092277 } - case 806 { rate := 1000000002458030267728856671 } - case 807 { rate := 1000000002460964593559086859 } - case 808 { rate := 1000000002463898647881036558 } - case 809 { rate := 1000000002466832430744945540 } - case 810 { rate := 1000000002469765942201039630 } - case 811 { rate := 1000000002472699182299530718 } - case 812 { rate := 1000000002475632151090616757 } - case 813 { rate := 1000000002478564848624481779 } - case 814 { rate := 1000000002481497274951295886 } - case 815 { rate := 1000000002484429430121215269 } - case 816 { rate := 1000000002487361314184382201 } - case 817 { rate := 1000000002490292927190925051 } - case 818 { rate := 1000000002493224269190958287 } - case 819 { rate := 1000000002496155340234582476 } - case 820 { rate := 1000000002499086140371884298 } - case 821 { rate := 1000000002502016669652936543 } - case 822 { rate := 1000000002504946928127798122 } - case 823 { rate := 1000000002507876915846514067 } - case 824 { rate := 1000000002510806632859115540 } - default { revert(0, 0) } - } - case 1 { // 825-849 - switch bps - case 825 { rate := 1000000002513736079215619839 } - case 826 { rate := 1000000002516665254966030398 } - case 827 { rate := 1000000002519594160160336795 } - case 828 { rate := 1000000002522522794848514761 } - case 829 { rate := 1000000002525451159080526178 } - case 830 { rate := 1000000002528379252906319086 } - case 831 { rate := 1000000002531307076375827697 } - case 832 { rate := 1000000002534234629538972383 } - case 833 { rate := 1000000002537161912445659699 } - case 834 { rate := 1000000002540088925145782374 } - case 835 { rate := 1000000002543015667689219327 } - case 836 { rate := 1000000002545942140125835662 } - case 837 { rate := 1000000002548868342505482685 } - case 838 { rate := 1000000002551794274877997894 } - case 839 { rate := 1000000002554719937293204998 } - case 840 { rate := 1000000002557645329800913916 } - case 841 { rate := 1000000002560570452450920783 } - case 842 { rate := 1000000002563495305293007952 } - case 843 { rate := 1000000002566419888376944003 } - case 844 { rate := 1000000002569344201752483747 } - case 845 { rate := 1000000002572268245469368232 } - case 846 { rate := 1000000002575192019577324747 } - case 847 { rate := 1000000002578115524126066824 } - case 848 { rate := 1000000002581038759165294249 } - case 849 { rate := 1000000002583961724744693064 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 850-899 - switch gt(bps, 874) - case 0 { // 850-874 - switch bps - case 850 { rate := 1000000002586884420913935572 } - case 851 { rate := 1000000002589806847722680342 } - case 852 { rate := 1000000002592729005220572215 } - case 853 { rate := 1000000002595650893457242308 } - case 854 { rate := 1000000002598572512482308019 } - case 855 { rate := 1000000002601493862345373033 } - case 856 { rate := 1000000002604414943096027328 } - case 857 { rate := 1000000002607335754783847177 } - case 858 { rate := 1000000002610256297458395155 } - case 859 { rate := 1000000002613176571169220145 } - case 860 { rate := 1000000002616096575965857340 } - case 861 { rate := 1000000002619016311897828252 } - case 862 { rate := 1000000002621935779014640712 } - case 863 { rate := 1000000002624854977365788881 } - case 864 { rate := 1000000002627773907000753250 } - case 865 { rate := 1000000002630692567969000648 } - case 866 { rate := 1000000002633610960319984247 } - case 867 { rate := 1000000002636529084103143562 } - case 868 { rate := 1000000002639446939367904465 } - case 869 { rate := 1000000002642364526163679182 } - case 870 { rate := 1000000002645281844539866303 } - case 871 { rate := 1000000002648198894545850784 } - case 872 { rate := 1000000002651115676231003954 } - case 873 { rate := 1000000002654032189644683517 } - case 874 { rate := 1000000002656948434836233563 } - default { revert(0, 0) } - } - case 1 { // 875-899 - switch bps - case 875 { rate := 1000000002659864411854984565 } - case 876 { rate := 1000000002662780120750253393 } - case 877 { rate := 1000000002665695561571343309 } - case 878 { rate := 1000000002668610734367543981 } - case 879 { rate := 1000000002671525639188131484 } - case 880 { rate := 1000000002674440276082368302 } - case 881 { rate := 1000000002677354645099503340 } - case 882 { rate := 1000000002680268746288771923 } - case 883 { rate := 1000000002683182579699395804 } - case 884 { rate := 1000000002686096145380583168 } - case 885 { rate := 1000000002689009443381528638 } - case 886 { rate := 1000000002691922473751413277 } - case 887 { rate := 1000000002694835236539404598 } - case 888 { rate := 1000000002697747731794656564 } - case 889 { rate := 1000000002700659959566309596 } - case 890 { rate := 1000000002703571919903490575 } - case 891 { rate := 1000000002706483612855312853 } - case 892 { rate := 1000000002709395038470876252 } - case 893 { rate := 1000000002712306196799267069 } - case 894 { rate := 1000000002715217087889558088 } - case 895 { rate := 1000000002718127711790808573 } - case 896 { rate := 1000000002721038068552064286 } - case 897 { rate := 1000000002723948158222357482 } - case 898 { rate := 1000000002726857980850706921 } - case 899 { rate := 1000000002729767536486117866 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 900-999 - switch gt(bps, 949) - case 0 { // 900-949 - switch gt(bps, 924) - case 0 { // 900-924 - switch bps - case 900 { rate := 1000000002732676825177582095 } - case 901 { rate := 1000000002735585846974077901 } - case 902 { rate := 1000000002738494601924570098 } - case 903 { rate := 1000000002741403090078010029 } - case 904 { rate := 1000000002744311311483335565 } - case 905 { rate := 1000000002747219266189471117 } - case 906 { rate := 1000000002750126954245327636 } - case 907 { rate := 1000000002753034375699802616 } - case 908 { rate := 1000000002755941530601780109 } - case 909 { rate := 1000000002758848419000130717 } - case 910 { rate := 1000000002761755040943711607 } - case 911 { rate := 1000000002764661396481366508 } - case 912 { rate := 1000000002767567485661925724 } - case 913 { rate := 1000000002770473308534206134 } - case 914 { rate := 1000000002773378865147011196 } - case 915 { rate := 1000000002776284155549130955 } - case 916 { rate := 1000000002779189179789342046 } - case 917 { rate := 1000000002782093937916407701 } - case 918 { rate := 1000000002784998429979077750 } - case 919 { rate := 1000000002787902656026088630 } - case 920 { rate := 1000000002790806616106163389 } - case 921 { rate := 1000000002793710310268011687 } - case 922 { rate := 1000000002796613738560329808 } - case 923 { rate := 1000000002799516901031800659 } - case 924 { rate := 1000000002802419797731093776 } - default { revert(0, 0) } - } - case 1 { // 925-949 - switch bps - case 925 { rate := 1000000002805322428706865331 } - case 926 { rate := 1000000002808224794007758136 } - case 927 { rate := 1000000002811126893682401646 } - case 928 { rate := 1000000002814028727779411968 } - case 929 { rate := 1000000002816930296347391860 } - case 930 { rate := 1000000002819831599434930742 } - case 931 { rate := 1000000002822732637090604696 } - case 932 { rate := 1000000002825633409362976474 } - case 933 { rate := 1000000002828533916300595503 } - case 934 { rate := 1000000002831434157951997885 } - case 935 { rate := 1000000002834334134365706412 } - case 936 { rate := 1000000002837233845590230556 } - case 937 { rate := 1000000002840133291674066490 } - case 938 { rate := 1000000002843032472665697081 } - case 939 { rate := 1000000002845931388613591900 } - case 940 { rate := 1000000002848830039566207226 } - case 941 { rate := 1000000002851728425571986050 } - case 942 { rate := 1000000002854626546679358084 } - case 943 { rate := 1000000002857524402936739757 } - case 944 { rate := 1000000002860421994392534231 } - case 945 { rate := 1000000002863319321095131394 } - case 946 { rate := 1000000002866216383092907878 } - case 947 { rate := 1000000002869113180434227051 } - case 948 { rate := 1000000002872009713167439031 } - case 949 { rate := 1000000002874905981340880687 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 950-999 - switch gt(bps, 974) - case 0 { // 950-974 - switch bps - case 950 { rate := 1000000002877801985002875644 } - case 951 { rate := 1000000002880697724201734289 } - case 952 { rate := 1000000002883593198985753772 } - case 953 { rate := 1000000002886488409403218019 } - case 954 { rate := 1000000002889383355502397729 } - case 955 { rate := 1000000002892278037331550380 } - case 956 { rate := 1000000002895172454938920238 } - case 957 { rate := 1000000002898066608372738360 } - case 958 { rate := 1000000002900960497681222594 } - case 959 { rate := 1000000002903854122912577591 } - case 960 { rate := 1000000002906747484114994807 } - case 961 { rate := 1000000002909640581336652506 } - case 962 { rate := 1000000002912533414625715766 } - case 963 { rate := 1000000002915425984030336485 } - case 964 { rate := 1000000002918318289598653387 } - case 965 { rate := 1000000002921210331378792020 } - case 966 { rate := 1000000002924102109418864770 } - case 967 { rate := 1000000002926993623766970860 } - case 968 { rate := 1000000002929884874471196354 } - case 969 { rate := 1000000002932775861579614167 } - case 970 { rate := 1000000002935666585140284065 } - case 971 { rate := 1000000002938557045201252671 } - case 972 { rate := 1000000002941447241810553473 } - case 973 { rate := 1000000002944337175016206824 } - case 974 { rate := 1000000002947226844866219949 } - default { revert(0, 0) } - } - case 1 { // 975-999 - switch bps - case 975 { rate := 1000000002950116251408586949 } - case 976 { rate := 1000000002953005394691288810 } - case 977 { rate := 1000000002955894274762293401 } - case 978 { rate := 1000000002958782891669555482 } - case 979 { rate := 1000000002961671245461016710 } - case 980 { rate := 1000000002964559336184605642 } - case 981 { rate := 1000000002967447163888237741 } - case 982 { rate := 1000000002970334728619815381 } - case 983 { rate := 1000000002973222030427227847 } - case 984 { rate := 1000000002976109069358351348 } - case 985 { rate := 1000000002978995845461049016 } - case 986 { rate := 1000000002981882358783170911 } - case 987 { rate := 1000000002984768609372554028 } - case 988 { rate := 1000000002987654597277022302 } - case 989 { rate := 1000000002990540322544386608 } - case 990 { rate := 1000000002993425785222444772 } - case 991 { rate := 1000000002996310985358981573 } - case 992 { rate := 1000000002999195923001768747 } - case 993 { rate := 1000000003002080598198564991 } - case 994 { rate := 1000000003004965010997115971 } - case 995 { rate := 1000000003007849161445154325 } - case 996 { rate := 1000000003010733049590399667 } - case 997 { rate := 1000000003013616675480558594 } - case 998 { rate := 1000000003016500039163324684 } - case 999 { rate := 1000000003019383140686378514 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1000-1199 - switch gt(bps, 1099) - case 0 { // 1000-1099 - switch gt(bps, 1049) - case 0 { // 1000-1049 - switch gt(bps, 1024) - case 0 { // 1000-1024 - switch bps - case 1000 { rate := 1000000003022265980097387650 } - case 1001 { rate := 1000000003025148557444006661 } - case 1002 { rate := 1000000003028030872773877120 } - case 1003 { rate := 1000000003030912926134627612 } - case 1004 { rate := 1000000003033794717573873734 } - case 1005 { rate := 1000000003036676247139218104 } - case 1006 { rate := 1000000003039557514878250362 } - case 1007 { rate := 1000000003042438520838547180 } - case 1008 { rate := 1000000003045319265067672258 } - case 1009 { rate := 1000000003048199747613176340 } - case 1010 { rate := 1000000003051079968522597209 } - case 1011 { rate := 1000000003053959927843459697 } - case 1012 { rate := 1000000003056839625623275688 } - case 1013 { rate := 1000000003059719061909544123 } - case 1014 { rate := 1000000003062598236749751004 } - case 1015 { rate := 1000000003065477150191369400 } - case 1016 { rate := 1000000003068355802281859451 } - case 1017 { rate := 1000000003071234193068668372 } - case 1018 { rate := 1000000003074112322599230459 } - case 1019 { rate := 1000000003076990190920967093 } - case 1020 { rate := 1000000003079867798081286746 } - case 1021 { rate := 1000000003082745144127584981 } - case 1022 { rate := 1000000003085622229107244463 } - case 1023 { rate := 1000000003088499053067634962 } - case 1024 { rate := 1000000003091375616056113353 } - default { revert(0, 0) } - } - case 1 { // 1025-1049 - switch bps - case 1025 { rate := 1000000003094251918120023627 } - case 1026 { rate := 1000000003097127959306696891 } - case 1027 { rate := 1000000003100003739663451375 } - case 1028 { rate := 1000000003102879259237592437 } - case 1029 { rate := 1000000003105754518076412567 } - case 1030 { rate := 1000000003108629516227191390 } - case 1031 { rate := 1000000003111504253737195675 } - case 1032 { rate := 1000000003114378730653679332 } - case 1033 { rate := 1000000003117252947023883428 } - case 1034 { rate := 1000000003120126902895036179 } - case 1035 { rate := 1000000003123000598314352966 } - case 1036 { rate := 1000000003125874033329036329 } - case 1037 { rate := 1000000003128747207986275984 } - case 1038 { rate := 1000000003131620122333248815 } - case 1039 { rate := 1000000003134492776417118886 } - case 1040 { rate := 1000000003137365170285037445 } - case 1041 { rate := 1000000003140237303984142929 } - case 1042 { rate := 1000000003143109177561560964 } - case 1043 { rate := 1000000003145980791064404376 } - case 1044 { rate := 1000000003148852144539773190 } - case 1045 { rate := 1000000003151723238034754641 } - case 1046 { rate := 1000000003154594071596423170 } - case 1047 { rate := 1000000003157464645271840438 } - case 1048 { rate := 1000000003160334959108055323 } - case 1049 { rate := 1000000003163205013152103932 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1050-1099 - switch gt(bps, 1074) - case 0 { // 1050-1074 - switch bps - case 1050 { rate := 1000000003166074807451009595 } - case 1051 { rate := 1000000003168944342051782881 } - case 1052 { rate := 1000000003171813617001421599 } - case 1053 { rate := 1000000003174682632346910796 } - case 1054 { rate := 1000000003177551388135222770 } - case 1055 { rate := 1000000003180419884413317071 } - case 1056 { rate := 1000000003183288121228140507 } - case 1057 { rate := 1000000003186156098626627147 } - case 1058 { rate := 1000000003189023816655698326 } - case 1059 { rate := 1000000003191891275362262652 } - case 1060 { rate := 1000000003194758474793216004 } - case 1061 { rate := 1000000003197625414995441546 } - case 1062 { rate := 1000000003200492096015809725 } - case 1063 { rate := 1000000003203358517901178277 } - case 1064 { rate := 1000000003206224680698392232 } - case 1065 { rate := 1000000003209090584454283919 } - case 1066 { rate := 1000000003211956229215672970 } - case 1067 { rate := 1000000003214821615029366324 } - case 1068 { rate := 1000000003217686741942158234 } - case 1069 { rate := 1000000003220551610000830269 } - case 1070 { rate := 1000000003223416219252151318 } - case 1071 { rate := 1000000003226280569742877599 } - case 1072 { rate := 1000000003229144661519752659 } - case 1073 { rate := 1000000003232008494629507379 } - case 1074 { rate := 1000000003234872069118859983 } - default { revert(0, 0) } - } - case 1 { // 1075-1099 - switch bps - case 1075 { rate := 1000000003237735385034516037 } - case 1076 { rate := 1000000003240598442423168457 } - case 1077 { rate := 1000000003243461241331497510 } - case 1078 { rate := 1000000003246323781806170825 } - case 1079 { rate := 1000000003249186063893843391 } - case 1080 { rate := 1000000003252048087641157566 } - case 1081 { rate := 1000000003254909853094743078 } - case 1082 { rate := 1000000003257771360301217032 } - case 1083 { rate := 1000000003260632609307183913 } - case 1084 { rate := 1000000003263493600159235596 } - case 1085 { rate := 1000000003266354332903951338 } - case 1086 { rate := 1000000003269214807587897798 } - case 1087 { rate := 1000000003272075024257629030 } - case 1088 { rate := 1000000003274934982959686493 } - case 1089 { rate := 1000000003277794683740599053 } - case 1090 { rate := 1000000003280654126646882991 } - case 1091 { rate := 1000000003283513311725042002 } - case 1092 { rate := 1000000003286372239021567206 } - case 1093 { rate := 1000000003289230908582937149 } - case 1094 { rate := 1000000003292089320455617805 } - case 1095 { rate := 1000000003294947474686062586 } - case 1096 { rate := 1000000003297805371320712343 } - case 1097 { rate := 1000000003300663010405995372 } - case 1098 { rate := 1000000003303520391988327418 } - case 1099 { rate := 1000000003306377516114111677 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1100-1199 - switch gt(bps, 1149) - case 0 { // 1100-1149 - switch gt(bps, 1124) - case 0 { // 1100-1124 - switch bps - case 1100 { rate := 1000000003309234382829738808 } - case 1101 { rate := 1000000003312090992181586929 } - case 1102 { rate := 1000000003314947344216021625 } - case 1103 { rate := 1000000003317803438979395953 } - case 1104 { rate := 1000000003320659276518050449 } - case 1105 { rate := 1000000003323514856878313124 } - case 1106 { rate := 1000000003326370180106499479 } - case 1107 { rate := 1000000003329225246248912502 } - case 1108 { rate := 1000000003332080055351842678 } - case 1109 { rate := 1000000003334934607461567985 } - case 1110 { rate := 1000000003337788902624353911 } - case 1111 { rate := 1000000003340642940886453447 } - case 1112 { rate := 1000000003343496722294107097 } - case 1113 { rate := 1000000003346350246893542883 } - case 1114 { rate := 1000000003349203514730976348 } - case 1115 { rate := 1000000003352056525852610558 } - case 1116 { rate := 1000000003354909280304636111 } - case 1117 { rate := 1000000003357761778133231141 } - case 1118 { rate := 1000000003360614019384561319 } - case 1119 { rate := 1000000003363466004104779860 } - case 1120 { rate := 1000000003366317732340027527 } - case 1121 { rate := 1000000003369169204136432636 } - case 1122 { rate := 1000000003372020419540111060 } - case 1123 { rate := 1000000003374871378597166232 } - case 1124 { rate := 1000000003377722081353689153 } - default { revert(0, 0) } - } - case 1 { // 1125-1149 - switch bps - case 1125 { rate := 1000000003380572527855758393 } - case 1126 { rate := 1000000003383422718149440098 } - case 1127 { rate := 1000000003386272652280787992 } - case 1128 { rate := 1000000003389122330295843384 } - case 1129 { rate := 1000000003391971752240635171 } - case 1130 { rate := 1000000003394820918161179843 } - case 1131 { rate := 1000000003397669828103481484 } - case 1132 { rate := 1000000003400518482113531785 } - case 1133 { rate := 1000000003403366880237310040 } - case 1134 { rate := 1000000003406215022520783154 } - case 1135 { rate := 1000000003409062909009905646 } - case 1136 { rate := 1000000003411910539750619657 } - case 1137 { rate := 1000000003414757914788854950 } - case 1138 { rate := 1000000003417605034170528915 } - case 1139 { rate := 1000000003420451897941546578 } - case 1140 { rate := 1000000003423298506147800601 } - case 1141 { rate := 1000000003426144858835171287 } - case 1142 { rate := 1000000003428990956049526585 } - case 1143 { rate := 1000000003431836797836722098 } - case 1144 { rate := 1000000003434682384242601076 } - case 1145 { rate := 1000000003437527715312994437 } - case 1146 { rate := 1000000003440372791093720759 } - case 1147 { rate := 1000000003443217611630586286 } - case 1148 { rate := 1000000003446062176969384941 } - case 1149 { rate := 1000000003448906487155898317 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1150-1199 - switch gt(bps, 1174) - case 0 { // 1150-1174 - switch bps - case 1150 { rate := 1000000003451750542235895695 } - case 1151 { rate := 1000000003454594342255134037 } - case 1152 { rate := 1000000003457437887259357996 } - case 1153 { rate := 1000000003460281177294299923 } - case 1154 { rate := 1000000003463124212405679865 } - case 1155 { rate := 1000000003465966992639205574 } - case 1156 { rate := 1000000003468809518040572510 } - case 1157 { rate := 1000000003471651788655463845 } - case 1158 { rate := 1000000003474493804529550469 } - case 1159 { rate := 1000000003477335565708490991 } - case 1160 { rate := 1000000003480177072237931747 } - case 1161 { rate := 1000000003483018324163506803 } - case 1162 { rate := 1000000003485859321530837959 } - case 1163 { rate := 1000000003488700064385534755 } - case 1164 { rate := 1000000003491540552773194473 } - case 1165 { rate := 1000000003494380786739402144 } - case 1166 { rate := 1000000003497220766329730547 } - case 1167 { rate := 1000000003500060491589740224 } - case 1168 { rate := 1000000003502899962564979471 } - case 1169 { rate := 1000000003505739179300984355 } - case 1170 { rate := 1000000003508578141843278707 } - case 1171 { rate := 1000000003511416850237374137 } - case 1172 { rate := 1000000003514255304528770030 } - case 1173 { rate := 1000000003517093504762953555 } - case 1174 { rate := 1000000003519931450985399667 } - default { revert(0, 0) } - } - case 1 { // 1175-1199 - switch bps - case 1175 { rate := 1000000003522769143241571114 } - case 1176 { rate := 1000000003525606581576918439 } - case 1177 { rate := 1000000003528443766036879984 } - case 1178 { rate := 1000000003531280696666881897 } - case 1179 { rate := 1000000003534117373512338136 } - case 1180 { rate := 1000000003536953796618650468 } - case 1181 { rate := 1000000003539789966031208483 } - case 1182 { rate := 1000000003542625881795389588 } - case 1183 { rate := 1000000003545461543956559019 } - case 1184 { rate := 1000000003548296952560069844 } - case 1185 { rate := 1000000003551132107651262963 } - case 1186 { rate := 1000000003553967009275467116 } - case 1187 { rate := 1000000003556801657477998888 } - case 1188 { rate := 1000000003559636052304162712 } - case 1189 { rate := 1000000003562470193799250871 } - case 1190 { rate := 1000000003565304082008543509 } - case 1191 { rate := 1000000003568137716977308627 } - case 1192 { rate := 1000000003570971098750802094 } - case 1193 { rate := 1000000003573804227374267648 } - case 1194 { rate := 1000000003576637102892936900 } - case 1195 { rate := 1000000003579469725352029341 } - case 1196 { rate := 1000000003582302094796752344 } - case 1197 { rate := 1000000003585134211272301170 } - case 1198 { rate := 1000000003587966074823858969 } - case 1199 { rate := 1000000003590797685496596791 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1200-1599 - switch gt(bps, 1399) - case 0 { // 1200-1399 - switch gt(bps, 1299) - case 0 { // 1200-1299 - switch gt(bps, 1249) - case 0 { // 1200-1249 - switch gt(bps, 1224) - case 0 { // 1200-1224 - switch bps - case 1200 { rate := 1000000003593629043335673582 } - case 1201 { rate := 1000000003596460148386236193 } - case 1202 { rate := 1000000003599291000693419387 } - case 1203 { rate := 1000000003602121600302345836 } - case 1204 { rate := 1000000003604951947258126131 } - case 1205 { rate := 1000000003607782041605858785 } - case 1206 { rate := 1000000003610611883390630237 } - case 1207 { rate := 1000000003613441472657514856 } - case 1208 { rate := 1000000003616270809451574945 } - case 1209 { rate := 1000000003619099893817860747 } - case 1210 { rate := 1000000003621928725801410447 } - case 1211 { rate := 1000000003624757305447250178 } - case 1212 { rate := 1000000003627585632800394025 } - case 1213 { rate := 1000000003630413707905844031 } - case 1214 { rate := 1000000003633241530808590194 } - case 1215 { rate := 1000000003636069101553610482 } - case 1216 { rate := 1000000003638896420185870830 } - case 1217 { rate := 1000000003641723486750325145 } - case 1218 { rate := 1000000003644550301291915316 } - case 1219 { rate := 1000000003647376863855571208 } - case 1220 { rate := 1000000003650203174486210676 } - case 1221 { rate := 1000000003653029233228739563 } - case 1222 { rate := 1000000003655855040128051709 } - case 1223 { rate := 1000000003658680595229028953 } - case 1224 { rate := 1000000003661505898576541135 } - default { revert(0, 0) } - } - case 1 { // 1225-1249 - switch bps - case 1225 { rate := 1000000003664330950215446102 } - case 1226 { rate := 1000000003667155750190589718 } - case 1227 { rate := 1000000003669980298546805858 } - case 1228 { rate := 1000000003672804595328916419 } - case 1229 { rate := 1000000003675628640581731322 } - case 1230 { rate := 1000000003678452434350048518 } - case 1231 { rate := 1000000003681275976678653990 } - case 1232 { rate := 1000000003684099267612321761 } - case 1233 { rate := 1000000003686922307195813890 } - case 1234 { rate := 1000000003689745095473880490 } - case 1235 { rate := 1000000003692567632491259715 } - case 1236 { rate := 1000000003695389918292677782 } - case 1237 { rate := 1000000003698211952922848960 } - case 1238 { rate := 1000000003701033736426475586 } - case 1239 { rate := 1000000003703855268848248061 } - case 1240 { rate := 1000000003706676550232844859 } - case 1241 { rate := 1000000003709497580624932527 } - case 1242 { rate := 1000000003712318360069165696 } - case 1243 { rate := 1000000003715138888610187078 } - case 1244 { rate := 1000000003717959166292627475 } - case 1245 { rate := 1000000003720779193161105781 } - case 1246 { rate := 1000000003723598969260228987 } - case 1247 { rate := 1000000003726418494634592186 } - case 1248 { rate := 1000000003729237769328778574 } - case 1249 { rate := 1000000003732056793387359459 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1250-1299 - switch gt(bps, 1274) - case 0 { // 1250-1274 - switch bps - case 1250 { rate := 1000000003734875566854894261 } - case 1251 { rate := 1000000003737694089775930518 } - case 1252 { rate := 1000000003740512362195003894 } - case 1253 { rate := 1000000003743330384156638173 } - case 1254 { rate := 1000000003746148155705345276 } - case 1255 { rate := 1000000003748965676885625255 } - case 1256 { rate := 1000000003751782947741966301 } - case 1257 { rate := 1000000003754599968318844752 } - case 1258 { rate := 1000000003757416738660725089 } - case 1259 { rate := 1000000003760233258812059948 } - case 1260 { rate := 1000000003763049528817290119 } - case 1261 { rate := 1000000003765865548720844553 } - case 1262 { rate := 1000000003768681318567140366 } - case 1263 { rate := 1000000003771496838400582842 } - case 1264 { rate := 1000000003774312108265565437 } - case 1265 { rate := 1000000003777127128206469785 } - case 1266 { rate := 1000000003779941898267665701 } - case 1267 { rate := 1000000003782756418493511185 } - case 1268 { rate := 1000000003785570688928352427 } - case 1269 { rate := 1000000003788384709616523810 } - case 1270 { rate := 1000000003791198480602347918 } - case 1271 { rate := 1000000003794012001930135532 } - case 1272 { rate := 1000000003796825273644185643 } - case 1273 { rate := 1000000003799638295788785451 } - case 1274 { rate := 1000000003802451068408210371 } - default { revert(0, 0) } - } - case 1 { // 1275-1299 - switch bps - case 1275 { rate := 1000000003805263591546724039 } - case 1276 { rate := 1000000003808075865248578310 } - case 1277 { rate := 1000000003810887889558013269 } - case 1278 { rate := 1000000003813699664519257234 } - case 1279 { rate := 1000000003816511190176526753 } - case 1280 { rate := 1000000003819322466574026619 } - case 1281 { rate := 1000000003822133493755949867 } - case 1282 { rate := 1000000003824944271766477781 } - case 1283 { rate := 1000000003827754800649779894 } - case 1284 { rate := 1000000003830565080450014001 } - case 1285 { rate := 1000000003833375111211326151 } - case 1286 { rate := 1000000003836184892977850664 } - case 1287 { rate := 1000000003838994425793710125 } - case 1288 { rate := 1000000003841803709703015394 } - case 1289 { rate := 1000000003844612744749865606 } - case 1290 { rate := 1000000003847421530978348180 } - case 1291 { rate := 1000000003850230068432538818 } - case 1292 { rate := 1000000003853038357156501515 } - case 1293 { rate := 1000000003855846397194288557 } - case 1294 { rate := 1000000003858654188589940528 } - case 1295 { rate := 1000000003861461731387486315 } - case 1296 { rate := 1000000003864269025630943112 } - case 1297 { rate := 1000000003867076071364316422 } - case 1298 { rate := 1000000003869882868631600065 } - case 1299 { rate := 1000000003872689417476776174 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1300-1399 - switch gt(bps, 1349) - case 0 { // 1300-1349 - switch gt(bps, 1324) - case 0 { // 1300-1324 - switch bps - case 1300 { rate := 1000000003875495717943815211 } - case 1301 { rate := 1000000003878301770076675963 } - case 1302 { rate := 1000000003881107573919305546 } - case 1303 { rate := 1000000003883913129515639415 } - case 1304 { rate := 1000000003886718436909601359 } - case 1305 { rate := 1000000003889523496145103516 } - case 1306 { rate := 1000000003892328307266046370 } - case 1307 { rate := 1000000003895132870316318753 } - case 1308 { rate := 1000000003897937185339797857 } - case 1309 { rate := 1000000003900741252380349234 } - case 1310 { rate := 1000000003903545071481826796 } - case 1311 { rate := 1000000003906348642688072829 } - case 1312 { rate := 1000000003909151966042917985 } - case 1313 { rate := 1000000003911955041590181299 } - case 1314 { rate := 1000000003914757869373670180 } - case 1315 { rate := 1000000003917560449437180427 } - case 1316 { rate := 1000000003920362781824496225 } - case 1317 { rate := 1000000003923164866579390151 } - case 1318 { rate := 1000000003925966703745623181 } - case 1319 { rate := 1000000003928768293366944691 } - case 1320 { rate := 1000000003931569635487092463 } - case 1321 { rate := 1000000003934370730149792686 } - case 1322 { rate := 1000000003937171577398759967 } - case 1323 { rate := 1000000003939972177277697324 } - case 1324 { rate := 1000000003942772529830296202 } - default { revert(0, 0) } - } - case 1 { // 1325-1349 - switch bps - case 1325 { rate := 1000000003945572635100236468 } - case 1326 { rate := 1000000003948372493131186422 } - case 1327 { rate := 1000000003951172103966802794 } - case 1328 { rate := 1000000003953971467650730754 } - case 1329 { rate := 1000000003956770584226603915 } - case 1330 { rate := 1000000003959569453738044333 } - case 1331 { rate := 1000000003962368076228662518 } - case 1332 { rate := 1000000003965166451742057429 } - case 1333 { rate := 1000000003967964580321816489 } - case 1334 { rate := 1000000003970762462011515578 } - case 1335 { rate := 1000000003973560096854719047 } - case 1336 { rate := 1000000003976357484894979715 } - case 1337 { rate := 1000000003979154626175838876 } - case 1338 { rate := 1000000003981951520740826302 } - case 1339 { rate := 1000000003984748168633460248 } - case 1340 { rate := 1000000003987544569897247457 } - case 1341 { rate := 1000000003990340724575683160 } - case 1342 { rate := 1000000003993136632712251086 } - case 1343 { rate := 1000000003995932294350423462 } - case 1344 { rate := 1000000003998727709533661015 } - case 1345 { rate := 1000000004001522878305412984 } - case 1346 { rate := 1000000004004317800709117115 } - case 1347 { rate := 1000000004007112476788199671 } - case 1348 { rate := 1000000004009906906586075434 } - case 1349 { rate := 1000000004012701090146147709 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1350-1399 - switch gt(bps, 1374) - case 0 { // 1350-1374 - switch bps - case 1350 { rate := 1000000004015495027511808328 } - case 1351 { rate := 1000000004018288718726437654 } - case 1352 { rate := 1000000004021082163833404588 } - case 1353 { rate := 1000000004023875362876066566 } - case 1354 { rate := 1000000004026668315897769570 } - case 1355 { rate := 1000000004029461022941848130 } - case 1356 { rate := 1000000004032253484051625326 } - case 1357 { rate := 1000000004035045699270412795 } - case 1358 { rate := 1000000004037837668641510732 } - case 1359 { rate := 1000000004040629392208207896 } - case 1360 { rate := 1000000004043420870013781614 } - case 1361 { rate := 1000000004046212102101497785 } - case 1362 { rate := 1000000004049003088514610884 } - case 1363 { rate := 1000000004051793829296363962 } - case 1364 { rate := 1000000004054584324489988659 } - case 1365 { rate := 1000000004057374574138705201 } - case 1366 { rate := 1000000004060164578285722402 } - case 1367 { rate := 1000000004062954336974237676 } - case 1368 { rate := 1000000004065743850247437036 } - case 1369 { rate := 1000000004068533118148495099 } - case 1370 { rate := 1000000004071322140720575088 } - case 1371 { rate := 1000000004074110918006828838 } - case 1372 { rate := 1000000004076899450050396802 } - case 1373 { rate := 1000000004079687736894408050 } - case 1374 { rate := 1000000004082475778581980279 } - default { revert(0, 0) } - } - case 1 { // 1375-1399 - switch bps - case 1375 { rate := 1000000004085263575156219812 } - case 1376 { rate := 1000000004088051126660221602 } - case 1377 { rate := 1000000004090838433137069242 } - case 1378 { rate := 1000000004093625494629834960 } - case 1379 { rate := 1000000004096412311181579631 } - case 1380 { rate := 1000000004099198882835352777 } - case 1381 { rate := 1000000004101985209634192573 } - case 1382 { rate := 1000000004104771291621125847 } - case 1383 { rate := 1000000004107557128839168089 } - case 1384 { rate := 1000000004110342721331323451 } - case 1385 { rate := 1000000004113128069140584754 } - case 1386 { rate := 1000000004115913172309933491 } - case 1387 { rate := 1000000004118698030882339831 } - case 1388 { rate := 1000000004121482644900762619 } - case 1389 { rate := 1000000004124267014408149388 } - case 1390 { rate := 1000000004127051139447436357 } - case 1391 { rate := 1000000004129835020061548436 } - case 1392 { rate := 1000000004132618656293399231 } - case 1393 { rate := 1000000004135402048185891048 } - case 1394 { rate := 1000000004138185195781914895 } - case 1395 { rate := 1000000004140968099124350490 } - case 1396 { rate := 1000000004143750758256066259 } - case 1397 { rate := 1000000004146533173219919347 } - case 1398 { rate := 1000000004149315344058755615 } - case 1399 { rate := 1000000004152097270815409650 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1400-1599 - switch gt(bps, 1499) - case 0 { // 1400-1499 - switch gt(bps, 1449) - case 0 { // 1400-1449 - switch gt(bps, 1424) - case 0 { // 1400-1424 - switch bps - case 1400 { rate := 1000000004154878953532704765 } - case 1401 { rate := 1000000004157660392253453003 } - case 1402 { rate := 1000000004160441587020455146 } - case 1403 { rate := 1000000004163222537876500710 } - case 1404 { rate := 1000000004166003244864367958 } - case 1405 { rate := 1000000004168783708026823899 } - case 1406 { rate := 1000000004171563927406624291 } - case 1407 { rate := 1000000004174343903046513649 } - case 1408 { rate := 1000000004177123634989225246 } - case 1409 { rate := 1000000004179903123277481120 } - case 1410 { rate := 1000000004182682367953992073 } - case 1411 { rate := 1000000004185461369061457677 } - case 1412 { rate := 1000000004188240126642566281 } - case 1413 { rate := 1000000004191018640739995012 } - case 1414 { rate := 1000000004193796911396409779 } - case 1415 { rate := 1000000004196574938654465277 } - case 1416 { rate := 1000000004199352722556804991 } - case 1417 { rate := 1000000004202130263146061203 } - case 1418 { rate := 1000000004204907560464854990 } - case 1419 { rate := 1000000004207684614555796231 } - case 1420 { rate := 1000000004210461425461483615 } - case 1421 { rate := 1000000004213237993224504637 } - case 1422 { rate := 1000000004216014317887435608 } - case 1423 { rate := 1000000004218790399492841653 } - case 1424 { rate := 1000000004221566238083276725 } - default { revert(0, 0) } - } - case 1 { // 1425-1449 - switch bps - case 1425 { rate := 1000000004224341833701283597 } - case 1426 { rate := 1000000004227117186389393875 } - case 1427 { rate := 1000000004229892296190127996 } - case 1428 { rate := 1000000004232667163145995236 } - case 1429 { rate := 1000000004235441787299493712 } - case 1430 { rate := 1000000004238216168693110386 } - case 1431 { rate := 1000000004240990307369321069 } - case 1432 { rate := 1000000004243764203370590423 } - case 1433 { rate := 1000000004246537856739371971 } - case 1434 { rate := 1000000004249311267518108094 } - case 1435 { rate := 1000000004252084435749230038 } - case 1436 { rate := 1000000004254857361475157917 } - case 1437 { rate := 1000000004257630044738300719 } - case 1438 { rate := 1000000004260402485581056307 } - case 1439 { rate := 1000000004263174684045811425 } - case 1440 { rate := 1000000004265946640174941701 } - case 1441 { rate := 1000000004268718354010811651 } - case 1442 { rate := 1000000004271489825595774681 } - case 1443 { rate := 1000000004274261054972173095 } - case 1444 { rate := 1000000004277032042182338097 } - case 1445 { rate := 1000000004279802787268589794 } - case 1446 { rate := 1000000004282573290273237200 } - case 1447 { rate := 1000000004285343551238578238 } - case 1448 { rate := 1000000004288113570206899751 } - case 1449 { rate := 1000000004290883347220477497 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1450-1499 - switch gt(bps, 1474) - case 0 { // 1450-1474 - switch bps - case 1450 { rate := 1000000004293652882321576158 } - case 1451 { rate := 1000000004296422175552449345 } - case 1452 { rate := 1000000004299191226955339597 } - case 1453 { rate := 1000000004301960036572478387 } - case 1454 { rate := 1000000004304728604446086130 } - case 1455 { rate := 1000000004307496930618372179 } - case 1456 { rate := 1000000004310265015131534834 } - case 1457 { rate := 1000000004313032858027761349 } - case 1458 { rate := 1000000004315800459349227927 } - case 1459 { rate := 1000000004318567819138099730 } - case 1460 { rate := 1000000004321334937436530883 } - case 1461 { rate := 1000000004324101814286664475 } - case 1462 { rate := 1000000004326868449730632563 } - case 1463 { rate := 1000000004329634843810556180 } - case 1464 { rate := 1000000004332400996568545334 } - case 1465 { rate := 1000000004335166908046699016 } - case 1466 { rate := 1000000004337932578287105196 } - case 1467 { rate := 1000000004340698007331840840 } - case 1468 { rate := 1000000004343463195222971901 } - case 1469 { rate := 1000000004346228142002553329 } - case 1470 { rate := 1000000004348992847712629077 } - case 1471 { rate := 1000000004351757312395232098 } - case 1472 { rate := 1000000004354521536092384354 } - case 1473 { rate := 1000000004357285518846096818 } - case 1474 { rate := 1000000004360049260698369481 } - default { revert(0, 0) } - } - case 1 { // 1475-1499 - switch bps - case 1475 { rate := 1000000004362812761691191350 } - case 1476 { rate := 1000000004365576021866540454 } - case 1477 { rate := 1000000004368339041266383854 } - case 1478 { rate := 1000000004371101819932677638 } - case 1479 { rate := 1000000004373864357907366926 } - case 1480 { rate := 1000000004376626655232385882 } - case 1481 { rate := 1000000004379388711949657709 } - case 1482 { rate := 1000000004382150528101094654 } - case 1483 { rate := 1000000004384912103728598017 } - case 1484 { rate := 1000000004387673438874058150 } - case 1485 { rate := 1000000004390434533579354464 } - case 1486 { rate := 1000000004393195387886355428 } - case 1487 { rate := 1000000004395956001836918578 } - case 1488 { rate := 1000000004398716375472890520 } - case 1489 { rate := 1000000004401476508836106929 } - case 1490 { rate := 1000000004404236401968392559 } - case 1491 { rate := 1000000004406996054911561245 } - case 1492 { rate := 1000000004409755467707415902 } - case 1493 { rate := 1000000004412514640397748538 } - case 1494 { rate := 1000000004415273573024340248 } - case 1495 { rate := 1000000004418032265628961226 } - case 1496 { rate := 1000000004420790718253370761 } - case 1497 { rate := 1000000004423548930939317250 } - case 1498 { rate := 1000000004426306903728538193 } - case 1499 { rate := 1000000004429064636662760200 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1500-1599 - switch gt(bps, 1549) - case 0 { // 1500-1549 - switch gt(bps, 1524) - case 0 { // 1500-1524 - switch bps - case 1500 { rate := 1000000004431822129783699001 } - case 1501 { rate := 1000000004434579383133059436 } - case 1502 { rate := 1000000004437336396752535473 } - case 1503 { rate := 1000000004440093170683810203 } - case 1504 { rate := 1000000004442849704968555849 } - case 1505 { rate := 1000000004445605999648433763 } - case 1506 { rate := 1000000004448362054765094438 } - case 1507 { rate := 1000000004451117870360177505 } - case 1508 { rate := 1000000004453873446475311742 } - case 1509 { rate := 1000000004456628783152115072 } - case 1510 { rate := 1000000004459383880432194574 } - case 1511 { rate := 1000000004462138738357146482 } - case 1512 { rate := 1000000004464893356968556186 } - case 1513 { rate := 1000000004467647736307998245 } - case 1514 { rate := 1000000004470401876417036380 } - case 1515 { rate := 1000000004473155777337223487 } - case 1516 { rate := 1000000004475909439110101633 } - case 1517 { rate := 1000000004478662861777202067 } - case 1518 { rate := 1000000004481416045380045219 } - case 1519 { rate := 1000000004484168989960140704 } - case 1520 { rate := 1000000004486921695558987326 } - case 1521 { rate := 1000000004489674162218073087 } - case 1522 { rate := 1000000004492426389978875180 } - case 1523 { rate := 1000000004495178378882860004 } - case 1524 { rate := 1000000004497930128971483160 } - default { revert(0, 0) } - } - case 1 { // 1525-1549 - switch bps - case 1525 { rate := 1000000004500681640286189459 } - case 1526 { rate := 1000000004503432912868412922 } - case 1527 { rate := 1000000004506183946759576791 } - case 1528 { rate := 1000000004508934742001093521 } - case 1529 { rate := 1000000004511685298634364794 } - case 1530 { rate := 1000000004514435616700781520 } - case 1531 { rate := 1000000004517185696241723838 } - case 1532 { rate := 1000000004519935537298561123 } - case 1533 { rate := 1000000004522685139912651989 } - case 1534 { rate := 1000000004525434504125344289 } - case 1535 { rate := 1000000004528183629977975125 } - case 1536 { rate := 1000000004530932517511870847 } - case 1537 { rate := 1000000004533681166768347059 } - case 1538 { rate := 1000000004536429577788708623 } - case 1539 { rate := 1000000004539177750614249659 } - case 1540 { rate := 1000000004541925685286253554 } - case 1541 { rate := 1000000004544673381845992962 } - case 1542 { rate := 1000000004547420840334729810 } - case 1543 { rate := 1000000004550168060793715299 } - case 1544 { rate := 1000000004552915043264189911 } - case 1545 { rate := 1000000004555661787787383409 } - case 1546 { rate := 1000000004558408294404514847 } - case 1547 { rate := 1000000004561154563156792564 } - case 1548 { rate := 1000000004563900594085414197 } - case 1549 { rate := 1000000004566646387231566680 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 1550-1599 - switch gt(bps, 1574) - case 0 { // 1550-1574 - switch bps - case 1550 { rate := 1000000004569391942636426248 } - case 1551 { rate := 1000000004572137260341158442 } - case 1552 { rate := 1000000004574882340386918113 } - case 1553 { rate := 1000000004577627182814849422 } - case 1554 { rate := 1000000004580371787666085848 } - case 1555 { rate := 1000000004583116154981750191 } - case 1556 { rate := 1000000004585860284802954574 } - case 1557 { rate := 1000000004588604177170800448 } - case 1558 { rate := 1000000004591347832126378593 } - case 1559 { rate := 1000000004594091249710769128 } - case 1560 { rate := 1000000004596834429965041505 } - case 1561 { rate := 1000000004599577372930254526 } - case 1562 { rate := 1000000004602320078647456331 } - case 1563 { rate := 1000000004605062547157684415 } - case 1564 { rate := 1000000004607804778501965623 } - case 1565 { rate := 1000000004610546772721316162 } - case 1566 { rate := 1000000004613288529856741593 } - case 1567 { rate := 1000000004616030049949236846 } - case 1568 { rate := 1000000004618771333039786217 } - case 1569 { rate := 1000000004621512379169363376 } - case 1570 { rate := 1000000004624253188378931367 } - case 1571 { rate := 1000000004626993760709442611 } - case 1572 { rate := 1000000004629734096201838917 } - case 1573 { rate := 1000000004632474194897051476 } - case 1574 { rate := 1000000004635214056836000869 } - default { revert(0, 0) } - } - case 1 { // 1575-1599 - switch bps - case 1575 { rate := 1000000004637953682059597074 } - case 1576 { rate := 1000000004640693070608739463 } - case 1577 { rate := 1000000004643432222524316813 } - case 1578 { rate := 1000000004646171137847207302 } - case 1579 { rate := 1000000004648909816618278519 } - case 1580 { rate := 1000000004651648258878387462 } - case 1581 { rate := 1000000004654386464668380549 } - case 1582 { rate := 1000000004657124434029093614 } - case 1583 { rate := 1000000004659862167001351915 } - case 1584 { rate := 1000000004662599663625970138 } - case 1585 { rate := 1000000004665336923943752398 } - case 1586 { rate := 1000000004668073947995492244 } - case 1587 { rate := 1000000004670810735821972662 } - case 1588 { rate := 1000000004673547287463966083 } - case 1589 { rate := 1000000004676283602962234377 } - case 1590 { rate := 1000000004679019682357528867 } - case 1591 { rate := 1000000004681755525690590328 } - case 1592 { rate := 1000000004684491133002148989 } - case 1593 { rate := 1000000004687226504332924539 } - case 1594 { rate := 1000000004689961639723626131 } - case 1595 { rate := 1000000004692696539214952384 } - case 1596 { rate := 1000000004695431202847591388 } - case 1597 { rate := 1000000004698165630662220707 } - case 1598 { rate := 1000000004700899822699507381 } - case 1599 { rate := 1000000004703633779000107935 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates8800To9599.sol b/src/repositories/Rates8800To9599.sol deleted file mode 100644 index 87973e3..0000000 --- a/src/repositories/Rates8800To9599.sol +++ /dev/null @@ -1,1065 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates8800To9599 { - uint256 constant public MIN = 8800; - uint256 constant public MAX = 9599; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 9199) - case 0 { // 8800-9199 - switch gt(bps, 8999) - case 0 { // 8800-8999 - switch gt(bps, 8899) - case 0 { // 8800-8899 - switch gt(bps, 8849) - case 0 { // 8800-8849 - switch gt(bps, 8824) - case 0 { // 8800-8824 - switch bps - case 8800 { rate := 1000000020017496929226859581 } - case 8801 { rate := 1000000020019183575466375447 } - case 8802 { rate := 1000000020020870131997826170 } - case 8803 { rate := 1000000020022556598830753888 } - case 8804 { rate := 1000000020024242975974699224 } - case 8805 { rate := 1000000020025929263439201274 } - case 8806 { rate := 1000000020027615461233797613 } - case 8807 { rate := 1000000020029301569368024297 } - case 8808 { rate := 1000000020030987587851415860 } - case 8809 { rate := 1000000020032673516693505313 } - case 8810 { rate := 1000000020034359355903824149 } - case 8811 { rate := 1000000020036045105491902339 } - case 8812 { rate := 1000000020037730765467268337 } - case 8813 { rate := 1000000020039416335839449075 } - case 8814 { rate := 1000000020041101816617969965 } - case 8815 { rate := 1000000020042787207812354904 } - case 8816 { rate := 1000000020044472509432126266 } - case 8817 { rate := 1000000020046157721486804911 } - case 8818 { rate := 1000000020047842843985910178 } - case 8819 { rate := 1000000020049527876938959890 } - case 8820 { rate := 1000000020051212820355470352 } - case 8821 { rate := 1000000020052897674244956352 } - case 8822 { rate := 1000000020054582438616931164 } - case 8823 { rate := 1000000020056267113480906541 } - case 8824 { rate := 1000000020057951698846392724 } - default { revert(0, 0) } - } - case 1 { // 8825-8849 - switch bps - case 8825 { rate := 1000000020059636194722898437 } - case 8826 { rate := 1000000020061320601119930888 } - case 8827 { rate := 1000000020063004918046995771 } - case 8828 { rate := 1000000020064689145513597267 } - case 8829 { rate := 1000000020066373283529238037 } - case 8830 { rate := 1000000020068057332103419236 } - case 8831 { rate := 1000000020069741291245640498 } - case 8832 { rate := 1000000020071425160965399947 } - case 8833 { rate := 1000000020073108941272194197 } - case 8834 { rate := 1000000020074792632175518341 } - case 8835 { rate := 1000000020076476233684865968 } - case 8836 { rate := 1000000020078159745809729151 } - case 8837 { rate := 1000000020079843168559598451 } - case 8838 { rate := 1000000020081526501943962918 } - case 8839 { rate := 1000000020083209745972310093 } - case 8840 { rate := 1000000020084892900654126002 } - case 8841 { rate := 1000000020086575965998895164 } - case 8842 { rate := 1000000020088258942016100588 } - case 8843 { rate := 1000000020089941828715223770 } - case 8844 { rate := 1000000020091624626105744699 } - case 8845 { rate := 1000000020093307334197141855 } - case 8846 { rate := 1000000020094989952998892207 } - case 8847 { rate := 1000000020096672482520471219 } - case 8848 { rate := 1000000020098354922771352842 } - case 8849 { rate := 1000000020100037273761009523 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8850-8899 - switch gt(bps, 8874) - case 0 { // 8850-8874 - switch bps - case 8850 { rate := 1000000020101719535498912200 } - case 8851 { rate := 1000000020103401707994530304 } - case 8852 { rate := 1000000020105083791257331758 } - case 8853 { rate := 1000000020106765785296782980 } - case 8854 { rate := 1000000020108447690122348881 } - case 8855 { rate := 1000000020110129505743492865 } - case 8856 { rate := 1000000020111811232169676833 } - case 8857 { rate := 1000000020113492869410361176 } - case 8858 { rate := 1000000020115174417475004786 } - case 8859 { rate := 1000000020116855876373065045 } - case 8860 { rate := 1000000020118537246113997834 } - case 8861 { rate := 1000000020120218526707257528 } - case 8862 { rate := 1000000020121899718162296998 } - case 8863 { rate := 1000000020123580820488567614 } - case 8864 { rate := 1000000020125261833695519242 } - case 8865 { rate := 1000000020126942757792600241 } - case 8866 { rate := 1000000020128623592789257476 } - case 8867 { rate := 1000000020130304338694936301 } - case 8868 { rate := 1000000020131984995519080574 } - case 8869 { rate := 1000000020133665563271132648 } - case 8870 { rate := 1000000020135346041960533378 } - case 8871 { rate := 1000000020137026431596722116 } - case 8872 { rate := 1000000020138706732189136713 } - case 8873 { rate := 1000000020140386943747213521 } - case 8874 { rate := 1000000020142067066280387392 } - default { revert(0, 0) } - } - case 1 { // 8875-8899 - switch bps - case 8875 { rate := 1000000020143747099798091677 } - case 8876 { rate := 1000000020145427044309758231 } - case 8877 { rate := 1000000020147106899824817406 } - case 8878 { rate := 1000000020148786666352698057 } - case 8879 { rate := 1000000020150466343902827542 } - case 8880 { rate := 1000000020152145932484631718 } - case 8881 { rate := 1000000020153825432107534947 } - case 8882 { rate := 1000000020155504842780960093 } - case 8883 { rate := 1000000020157184164514328522 } - case 8884 { rate := 1000000020158863397317060104 } - case 8885 { rate := 1000000020160542541198573211 } - case 8886 { rate := 1000000020162221596168284722 } - case 8887 { rate := 1000000020163900562235610018 } - case 8888 { rate := 1000000020165579439409962985 } - case 8889 { rate := 1000000020167258227700756012 } - case 8890 { rate := 1000000020168936927117399997 } - case 8891 { rate := 1000000020170615537669304340 } - case 8892 { rate := 1000000020172294059365876949 } - case 8893 { rate := 1000000020173972492216524237 } - case 8894 { rate := 1000000020175650836230651123 } - case 8895 { rate := 1000000020177329091417661033 } - case 8896 { rate := 1000000020179007257786955901 } - case 8897 { rate := 1000000020180685335347936169 } - case 8898 { rate := 1000000020182363324110000782 } - case 8899 { rate := 1000000020184041224082547200 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8900-8999 - switch gt(bps, 8949) - case 0 { // 8900-8949 - switch gt(bps, 8924) - case 0 { // 8900-8924 - switch bps - case 8900 { rate := 1000000020185719035274971385 } - case 8901 { rate := 1000000020187396757696667812 } - case 8902 { rate := 1000000020189074391357029461 } - case 8903 { rate := 1000000020190751936265447827 } - case 8904 { rate := 1000000020192429392431312906 } - case 8905 { rate := 1000000020194106759864013214 } - case 8906 { rate := 1000000020195784038572935769 } - case 8907 { rate := 1000000020197461228567466103 } - case 8908 { rate := 1000000020199138329856988259 } - case 8909 { rate := 1000000020200815342450884791 } - case 8910 { rate := 1000000020202492266358536762 } - case 8911 { rate := 1000000020204169101589323750 } - case 8912 { rate := 1000000020205845848152623845 } - case 8913 { rate := 1000000020207522506057813646 } - case 8914 { rate := 1000000020209199075314268269 } - case 8915 { rate := 1000000020210875555931361340 } - case 8916 { rate := 1000000020212551947918465000 } - case 8917 { rate := 1000000020214228251284949901 } - case 8918 { rate := 1000000020215904466040185214 } - case 8919 { rate := 1000000020217580592193538618 } - case 8920 { rate := 1000000020219256629754376312 } - case 8921 { rate := 1000000020220932578732063007 } - case 8922 { rate := 1000000020222608439135961931 } - case 8923 { rate := 1000000020224284210975434825 } - case 8924 { rate := 1000000020225959894259841949 } - default { revert(0, 0) } - } - case 1 { // 8925-8949 - switch bps - case 8925 { rate := 1000000020227635488998542076 } - case 8926 { rate := 1000000020229310995200892497 } - case 8927 { rate := 1000000020230986412876249021 } - case 8928 { rate := 1000000020232661742033965972 } - case 8929 { rate := 1000000020234336982683396194 } - case 8930 { rate := 1000000020236012134833891045 } - case 8931 { rate := 1000000020237687198494800405 } - case 8932 { rate := 1000000020239362173675472669 } - case 8933 { rate := 1000000020241037060385254751 } - case 8934 { rate := 1000000020242711858633492088 } - case 8935 { rate := 1000000020244386568429528633 } - case 8936 { rate := 1000000020246061189782706857 } - case 8937 { rate := 1000000020247735722702367756 } - case 8938 { rate := 1000000020249410167197850841 } - case 8939 { rate := 1000000020251084523278494145 } - case 8940 { rate := 1000000020252758790953634225 } - case 8941 { rate := 1000000020254432970232606156 } - case 8942 { rate := 1000000020256107061124743535 } - case 8943 { rate := 1000000020257781063639378482 } - case 8944 { rate := 1000000020259454977785841636 } - case 8945 { rate := 1000000020261128803573462164 } - case 8946 { rate := 1000000020262802541011567749 } - case 8947 { rate := 1000000020264476190109484603 } - case 8948 { rate := 1000000020266149750876537457 } - case 8949 { rate := 1000000020267823223322049569 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 8950-8999 - switch gt(bps, 8974) - case 0 { // 8950-8974 - switch bps - case 8950 { rate := 1000000020269496607455342719 } - case 8951 { rate := 1000000020271169903285737212 } - case 8952 { rate := 1000000020272843110822551875 } - case 8953 { rate := 1000000020274516230075104065 } - case 8954 { rate := 1000000020276189261052709662 } - case 8955 { rate := 1000000020277862203764683069 } - case 8956 { rate := 1000000020279535058220337216 } - case 8957 { rate := 1000000020281207824428983564 } - case 8958 { rate := 1000000020282880502399932092 } - case 8959 { rate := 1000000020284553092142491314 } - case 8960 { rate := 1000000020286225593665968266 } - case 8961 { rate := 1000000020287898006979668513 } - case 8962 { rate := 1000000020289570332092896147 } - case 8963 { rate := 1000000020291242569014953788 } - case 8964 { rate := 1000000020292914717755142587 } - case 8965 { rate := 1000000020294586778322762220 } - case 8966 { rate := 1000000020296258750727110894 } - case 8967 { rate := 1000000020297930634977485344 } - case 8968 { rate := 1000000020299602431083180836 } - case 8969 { rate := 1000000020301274139053491166 } - case 8970 { rate := 1000000020302945758897708658 } - case 8971 { rate := 1000000020304617290625124169 } - case 8972 { rate := 1000000020306288734245027087 } - case 8973 { rate := 1000000020307960089766705327 } - case 8974 { rate := 1000000020309631357199445340 } - default { revert(0, 0) } - } - case 1 { // 8975-8999 - switch bps - case 8975 { rate := 1000000020311302536552532106 } - case 8976 { rate := 1000000020312973627835249139 } - case 8977 { rate := 1000000020314644631056878485 } - case 8978 { rate := 1000000020316315546226700722 } - case 8979 { rate := 1000000020317986373353994961 } - case 8980 { rate := 1000000020319657112448038846 } - case 8981 { rate := 1000000020321327763518108555 } - case 8982 { rate := 1000000020322998326573478801 } - case 8983 { rate := 1000000020324668801623422830 } - case 8984 { rate := 1000000020326339188677212422 } - case 8985 { rate := 1000000020328009487744117892 } - case 8986 { rate := 1000000020329679698833408092 } - case 8987 { rate := 1000000020331349821954350409 } - case 8988 { rate := 1000000020333019857116210763 } - case 8989 { rate := 1000000020334689804328253614 } - case 8990 { rate := 1000000020336359663599741954 } - case 8991 { rate := 1000000020338029434939937316 } - case 8992 { rate := 1000000020339699118358099767 } - case 8993 { rate := 1000000020341368713863487913 } - case 8994 { rate := 1000000020343038221465358897 } - case 8995 { rate := 1000000020344707641172968400 } - case 8996 { rate := 1000000020346376972995570640 } - case 8997 { rate := 1000000020348046216942418378 } - case 8998 { rate := 1000000020349715373022762906 } - case 8999 { rate := 1000000020351384441245854063 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9000-9199 - switch gt(bps, 9099) - case 0 { // 9000-9099 - switch gt(bps, 9049) - case 0 { // 9000-9049 - switch gt(bps, 9024) - case 0 { // 9000-9024 - switch bps - case 9000 { rate := 1000000020353053421620940223 } - case 9001 { rate := 1000000020354722314157268302 } - case 9002 { rate := 1000000020356391118864083753 } - case 9003 { rate := 1000000020358059835750630572 } - case 9004 { rate := 1000000020359728464826151296 } - case 9005 { rate := 1000000020361397006099887003 } - case 9006 { rate := 1000000020363065459581077309 } - case 9007 { rate := 1000000020364733825278960375 } - case 9008 { rate := 1000000020366402103202772903 } - case 9009 { rate := 1000000020368070293361750138 } - case 9010 { rate := 1000000020369738395765125865 } - case 9011 { rate := 1000000020371406410422132415 } - case 9012 { rate := 1000000020373074337342000659 } - case 9013 { rate := 1000000020374742176533960015 } - case 9014 { rate := 1000000020376409928007238443 } - case 9015 { rate := 1000000020378077591771062444 } - case 9016 { rate := 1000000020379745167834657070 } - case 9017 { rate := 1000000020381412656207245911 } - case 9018 { rate := 1000000020383080056898051107 } - case 9019 { rate := 1000000020384747369916293340 } - case 9020 { rate := 1000000020386414595271191839 } - case 9021 { rate := 1000000020388081732971964381 } - case 9022 { rate := 1000000020389748783027827283 } - case 9023 { rate := 1000000020391415745447995416 } - case 9024 { rate := 1000000020393082620241682192 } - default { revert(0, 0) } - } - case 1 { // 9025-9049 - switch bps - case 9025 { rate := 1000000020394749407418099573 } - case 9026 { rate := 1000000020396416106986458070 } - case 9027 { rate := 1000000020398082718955966736 } - case 9028 { rate := 1000000020399749243335833178 } - case 9029 { rate := 1000000020401415680135263548 } - case 9030 { rate := 1000000020403082029363462548 } - case 9031 { rate := 1000000020404748291029633429 } - case 9032 { rate := 1000000020406414465142977990 } - case 9033 { rate := 1000000020408080551712696581 } - case 9034 { rate := 1000000020409746550747988100 } - case 9035 { rate := 1000000020411412462258049999 } - case 9036 { rate := 1000000020413078286252078275 } - case 9037 { rate := 1000000020414744022739267481 } - case 9038 { rate := 1000000020416409671728810718 } - case 9039 { rate := 1000000020418075233229899639 } - case 9040 { rate := 1000000020419740707251724448 } - case 9041 { rate := 1000000020421406093803473905 } - case 9042 { rate := 1000000020423071392894335315 } - case 9043 { rate := 1000000020424736604533494543 } - case 9044 { rate := 1000000020426401728730136002 } - case 9045 { rate := 1000000020428066765493442661 } - case 9046 { rate := 1000000020429731714832596040 } - case 9047 { rate := 1000000020431396576756776217 } - case 9048 { rate := 1000000020433061351275161818 } - case 9049 { rate := 1000000020434726038396930030 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9050-9099 - switch gt(bps, 9074) - case 0 { // 9050-9074 - switch bps - case 9050 { rate := 1000000020436390638131256590 } - case 9051 { rate := 1000000020438055150487315791 } - case 9052 { rate := 1000000020439719575474280483 } - case 9053 { rate := 1000000020441383913101322070 } - case 9054 { rate := 1000000020443048163377610514 } - case 9055 { rate := 1000000020444712326312314329 } - case 9056 { rate := 1000000020446376401914600591 } - case 9057 { rate := 1000000020448040390193634929 } - case 9058 { rate := 1000000020449704291158581532 } - case 9059 { rate := 1000000020451368104818603142 } - case 9060 { rate := 1000000020453031831182861063 } - case 9061 { rate := 1000000020454695470260515157 } - case 9062 { rate := 1000000020456359022060723842 } - case 9063 { rate := 1000000020458022486592644094 } - case 9064 { rate := 1000000020459685863865431454 } - case 9065 { rate := 1000000020461349153888240014 } - case 9066 { rate := 1000000020463012356670222430 } - case 9067 { rate := 1000000020464675472220529919 } - case 9068 { rate := 1000000020466338500548312257 } - case 9069 { rate := 1000000020468001441662717778 } - case 9070 { rate := 1000000020469664295572893381 } - case 9071 { rate := 1000000020471327062287984523 } - case 9072 { rate := 1000000020472989741817135223 } - case 9073 { rate := 1000000020474652334169488064 } - case 9074 { rate := 1000000020476314839354184187 } - default { revert(0, 0) } - } - case 1 { // 9075-9099 - switch bps - case 9075 { rate := 1000000020477977257380363298 } - case 9076 { rate := 1000000020479639588257163666 } - case 9077 { rate := 1000000020481301831993722120 } - case 9078 { rate := 1000000020482963988599174056 } - case 9079 { rate := 1000000020484626058082653431 } - case 9080 { rate := 1000000020486288040453292766 } - case 9081 { rate := 1000000020487949935720223147 } - case 9082 { rate := 1000000020489611743892574223 } - case 9083 { rate := 1000000020491273464979474210 } - case 9084 { rate := 1000000020492935098990049887 } - case 9085 { rate := 1000000020494596645933426599 } - case 9086 { rate := 1000000020496258105818728257 } - case 9087 { rate := 1000000020497919478655077336 } - case 9088 { rate := 1000000020499580764451594880 } - case 9089 { rate := 1000000020501241963217400498 } - case 9090 { rate := 1000000020502903074961612367 } - case 9091 { rate := 1000000020504564099693347229 } - case 9092 { rate := 1000000020506225037421720394 } - case 9093 { rate := 1000000020507885888155845741 } - case 9094 { rate := 1000000020509546651904835716 } - case 9095 { rate := 1000000020511207328677801335 } - case 9096 { rate := 1000000020512867918483852179 } - case 9097 { rate := 1000000020514528421332096402 } - case 9098 { rate := 1000000020516188837231640723 } - case 9099 { rate := 1000000020517849166191590436 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9100-9199 - switch gt(bps, 9149) - case 0 { // 9100-9149 - switch gt(bps, 9124) - case 0 { // 9100-9124 - switch bps - case 9100 { rate := 1000000020519509408221049399 } - case 9101 { rate := 1000000020521169563329120043 } - case 9102 { rate := 1000000020522829631524903371 } - case 9103 { rate := 1000000020524489612817498954 } - case 9104 { rate := 1000000020526149507216004934 } - case 9105 { rate := 1000000020527809314729518026 } - case 9106 { rate := 1000000020529469035367133516 } - case 9107 { rate := 1000000020531128669137945262 } - case 9108 { rate := 1000000020532788216051045693 } - case 9109 { rate := 1000000020534447676115525812 } - case 9110 { rate := 1000000020536107049340475193 } - case 9111 { rate := 1000000020537766335734981987 } - case 9112 { rate := 1000000020539425535308132912 } - case 9113 { rate := 1000000020541084648069013267 } - case 9114 { rate := 1000000020542743674026706920 } - case 9115 { rate := 1000000020544402613190296315 } - case 9116 { rate := 1000000020546061465568862469 } - case 9117 { rate := 1000000020547720231171484977 } - case 9118 { rate := 1000000020549378910007242007 } - case 9119 { rate := 1000000020551037502085210301 } - case 9120 { rate := 1000000020552696007414465182 } - case 9121 { rate := 1000000020554354426004080544 } - case 9122 { rate := 1000000020556012757863128859 } - case 9123 { rate := 1000000020557671003000681175 } - case 9124 { rate := 1000000020559329161425807120 } - default { revert(0, 0) } - } - case 1 { // 9125-9149 - switch bps - case 9125 { rate := 1000000020560987233147574896 } - case 9126 { rate := 1000000020562645218175051284 } - case 9127 { rate := 1000000020564303116517301641 } - case 9128 { rate := 1000000020565960928183389906 } - case 9129 { rate := 1000000020567618653182378593 } - case 9130 { rate := 1000000020569276291523328795 } - case 9131 { rate := 1000000020570933843215300187 } - case 9132 { rate := 1000000020572591308267351020 } - case 9133 { rate := 1000000020574248686688538126 } - case 9134 { rate := 1000000020575905978487916919 } - case 9135 { rate := 1000000020577563183674541388 } - case 9136 { rate := 1000000020579220302257464108 } - case 9137 { rate := 1000000020580877334245736232 } - case 9138 { rate := 1000000020582534279648407494 } - case 9139 { rate := 1000000020584191138474526212 } - case 9140 { rate := 1000000020585847910733139281 } - case 9141 { rate := 1000000020587504596433292185 } - case 9142 { rate := 1000000020589161195584028982 } - case 9143 { rate := 1000000020590817708194392321 } - case 9144 { rate := 1000000020592474134273423425 } - case 9145 { rate := 1000000020594130473830162110 } - case 9146 { rate := 1000000020595786726873646766 } - case 9147 { rate := 1000000020597442893412914374 } - case 9148 { rate := 1000000020599098973457000497 } - case 9149 { rate := 1000000020600754967014939281 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9150-9199 - switch gt(bps, 9174) - case 0 { // 9150-9174 - switch bps - case 9150 { rate := 1000000020602410874095763456 } - case 9151 { rate := 1000000020604066694708504340 } - case 9152 { rate := 1000000020605722428862191834 } - case 9153 { rate := 1000000020607378076565854427 } - case 9154 { rate := 1000000020609033637828519190 } - case 9155 { rate := 1000000020610689112659211784 } - case 9156 { rate := 1000000020612344501066956455 } - case 9157 { rate := 1000000020613999803060776034 } - case 9158 { rate := 1000000020615655018649691942 } - case 9159 { rate := 1000000020617310147842724185 } - case 9160 { rate := 1000000020618965190648891360 } - case 9161 { rate := 1000000020620620147077210647 } - case 9162 { rate := 1000000020622275017136697818 } - case 9163 { rate := 1000000020623929800836367232 } - case 9164 { rate := 1000000020625584498185231838 } - case 9165 { rate := 1000000020627239109192303172 } - case 9166 { rate := 1000000020628893633866591362 } - case 9167 { rate := 1000000020630548072217105124 } - case 9168 { rate := 1000000020632202424252851765 } - case 9169 { rate := 1000000020633856689982837180 } - case 9170 { rate := 1000000020635510869416065857 } - case 9171 { rate := 1000000020637164962561540876 } - case 9172 { rate := 1000000020638818969428263904 } - case 9173 { rate := 1000000020640472890025235203 } - case 9174 { rate := 1000000020642126724361453626 } - default { revert(0, 0) } - } - case 1 { // 9175-9199 - switch bps - case 9175 { rate := 1000000020643780472445916617 } - case 9176 { rate := 1000000020645434134287620214 } - case 9177 { rate := 1000000020647087709895559046 } - case 9178 { rate := 1000000020648741199278726334 } - case 9179 { rate := 1000000020650394602446113896 } - case 9180 { rate := 1000000020652047919406712141 } - case 9181 { rate := 1000000020653701150169510072 } - case 9182 { rate := 1000000020655354294743495287 } - case 9183 { rate := 1000000020657007353137653976 } - case 9184 { rate := 1000000020658660325360970928 } - case 9185 { rate := 1000000020660313211422429521 } - case 9186 { rate := 1000000020661966011331011735 } - case 9187 { rate := 1000000020663618725095698141 } - case 9188 { rate := 1000000020665271352725467906 } - case 9189 { rate := 1000000020666923894229298796 } - case 9190 { rate := 1000000020668576349616167171 } - case 9191 { rate := 1000000020670228718895047988 } - case 9192 { rate := 1000000020671881002074914804 } - case 9193 { rate := 1000000020673533199164739768 } - case 9194 { rate := 1000000020675185310173493631 } - case 9195 { rate := 1000000020676837335110145740 } - case 9196 { rate := 1000000020678489273983664040 } - case 9197 { rate := 1000000020680141126803015078 } - case 9198 { rate := 1000000020681792893577163993 } - case 9199 { rate := 1000000020683444574315074529 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9200-9599 - switch gt(bps, 9399) - case 0 { // 9200-9399 - switch gt(bps, 9299) - case 0 { // 9200-9299 - switch gt(bps, 9249) - case 0 { // 9200-9249 - switch gt(bps, 9224) - case 0 { // 9200-9224 - switch bps - case 9200 { rate := 1000000020685096169025709028 } - case 9201 { rate := 1000000020686747677718028431 } - case 9202 { rate := 1000000020688399100400992278 } - case 9203 { rate := 1000000020690050437083558711 } - case 9204 { rate := 1000000020691701687774684471 } - case 9205 { rate := 1000000020693352852483324902 } - case 9206 { rate := 1000000020695003931218433948 } - case 9207 { rate := 1000000020696654923988964153 } - case 9208 { rate := 1000000020698305830803866663 } - case 9209 { rate := 1000000020699956651672091229 } - case 9210 { rate := 1000000020701607386602586203 } - case 9211 { rate := 1000000020703258035604298536 } - case 9212 { rate := 1000000020704908598686173787 } - case 9213 { rate := 1000000020706559075857156114 } - case 9214 { rate := 1000000020708209467126188282 } - case 9215 { rate := 1000000020709859772502211657 } - case 9216 { rate := 1000000020711509991994166211 } - case 9217 { rate := 1000000020713160125610990519 } - case 9218 { rate := 1000000020714810173361621761 } - case 9219 { rate := 1000000020716460135254995722 } - case 9220 { rate := 1000000020718110011300046791 } - case 9221 { rate := 1000000020719759801505707966 } - case 9222 { rate := 1000000020721409505880910848 } - case 9223 { rate := 1000000020723059124434585643 } - case 9224 { rate := 1000000020724708657175661166 } - default { revert(0, 0) } - } - case 1 { // 9225-9249 - switch bps - case 9225 { rate := 1000000020726358104113064837 } - case 9226 { rate := 1000000020728007465255722684 } - case 9227 { rate := 1000000020729656740612559341 } - case 9228 { rate := 1000000020731305930192498050 } - case 9229 { rate := 1000000020732955034004460663 } - case 9230 { rate := 1000000020734604052057367636 } - case 9231 { rate := 1000000020736252984360138036 } - case 9232 { rate := 1000000020737901830921689539 } - case 9233 { rate := 1000000020739550591750938429 } - case 9234 { rate := 1000000020741199266856799598 } - case 9235 { rate := 1000000020742847856248186551 } - case 9236 { rate := 1000000020744496359934011399 } - case 9237 { rate := 1000000020746144777923184866 } - case 9238 { rate := 1000000020747793110224616286 } - case 9239 { rate := 1000000020749441356847213601 } - case 9240 { rate := 1000000020751089517799883368 } - case 9241 { rate := 1000000020752737593091530752 } - case 9242 { rate := 1000000020754385582731059532 } - case 9243 { rate := 1000000020756033486727372097 } - case 9244 { rate := 1000000020757681305089369449 } - case 9245 { rate := 1000000020759329037825951202 } - case 9246 { rate := 1000000020760976684946015583 } - case 9247 { rate := 1000000020762624246458459433 } - case 9248 { rate := 1000000020764271722372178205 } - case 9249 { rate := 1000000020765919112696065965 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9250-9299 - switch gt(bps, 9274) - case 0 { // 9250-9274 - switch bps - case 9250 { rate := 1000000020767566417439015395 } - case 9251 { rate := 1000000020769213636609917790 } - case 9252 { rate := 1000000020770860770217663058 } - case 9253 { rate := 1000000020772507818271139726 } - case 9254 { rate := 1000000020774154780779234930 } - case 9255 { rate := 1000000020775801657750834425 } - case 9256 { rate := 1000000020777448449194822584 } - case 9257 { rate := 1000000020779095155120082390 } - case 9258 { rate := 1000000020780741775535495446 } - case 9259 { rate := 1000000020782388310449941971 } - case 9260 { rate := 1000000020784034759872300801 } - case 9261 { rate := 1000000020785681123811449386 } - case 9262 { rate := 1000000020787327402276263798 } - case 9263 { rate := 1000000020788973595275618725 } - case 9264 { rate := 1000000020790619702818387471 } - case 9265 { rate := 1000000020792265724913441958 } - case 9266 { rate := 1000000020793911661569652730 } - case 9267 { rate := 1000000020795557512795888949 } - case 9268 { rate := 1000000020797203278601018391 } - case 9269 { rate := 1000000020798848958993907458 } - case 9270 { rate := 1000000020800494553983421168 } - case 9271 { rate := 1000000020802140063578423159 } - case 9272 { rate := 1000000020803785487787775690 } - case 9273 { rate := 1000000020805430826620339641 } - case 9274 { rate := 1000000020807076080084974512 } - default { revert(0, 0) } - } - case 1 { // 9275-9299 - switch bps - case 9275 { rate := 1000000020808721248190538424 } - case 9276 { rate := 1000000020810366330945888118 } - case 9277 { rate := 1000000020812011328359878961 } - case 9278 { rate := 1000000020813656240441364936 } - case 9279 { rate := 1000000020815301067199198652 } - case 9280 { rate := 1000000020816945808642231341 } - case 9281 { rate := 1000000020818590464779312857 } - case 9282 { rate := 1000000020820235035619291673 } - case 9283 { rate := 1000000020821879521171014892 } - case 9284 { rate := 1000000020823523921443328236 } - case 9285 { rate := 1000000020825168236445076054 } - case 9286 { rate := 1000000020826812466185101315 } - case 9287 { rate := 1000000020828456610672245618 } - case 9288 { rate := 1000000020830100669915349181 } - case 9289 { rate := 1000000020831744643923250852 } - case 9290 { rate := 1000000020833388532704788101 } - case 9291 { rate := 1000000020835032336268797025 } - case 9292 { rate := 1000000020836676054624112349 } - case 9293 { rate := 1000000020838319687779567417 } - case 9294 { rate := 1000000020839963235743994210 } - case 9295 { rate := 1000000020841606698526223327 } - case 9296 { rate := 1000000020843250076135083997 } - case 9297 { rate := 1000000020844893368579404078 } - case 9298 { rate := 1000000020846536575868010053 } - case 9299 { rate := 1000000020848179698009727036 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9300-9399 - switch gt(bps, 9349) - case 0 { // 9300-9349 - switch gt(bps, 9324) - case 0 { // 9300-9324 - switch bps - case 9300 { rate := 1000000020849822735013378765 } - case 9301 { rate := 1000000020851465686887787610 } - case 9302 { rate := 1000000020853108553641774569 } - case 9303 { rate := 1000000020854751335284159266 } - case 9304 { rate := 1000000020856394031823759960 } - case 9305 { rate := 1000000020858036643269393535 } - case 9306 { rate := 1000000020859679169629875506 } - case 9307 { rate := 1000000020861321610914020019 } - case 9308 { rate := 1000000020862963967130639850 } - case 9309 { rate := 1000000020864606238288546406 } - case 9310 { rate := 1000000020866248424396549724 } - case 9311 { rate := 1000000020867890525463458474 } - case 9312 { rate := 1000000020869532541498079955 } - case 9313 { rate := 1000000020871174472509220102 } - case 9314 { rate := 1000000020872816318505683477 } - case 9315 { rate := 1000000020874458079496273280 } - case 9316 { rate := 1000000020876099755489791338 } - case 9317 { rate := 1000000020877741346495038117 } - case 9318 { rate := 1000000020879382852520812709 } - case 9319 { rate := 1000000020881024273575912848 } - case 9320 { rate := 1000000020882665609669134895 } - case 9321 { rate := 1000000020884306860809273848 } - case 9322 { rate := 1000000020885948027005123340 } - case 9323 { rate := 1000000020887589108265475638 } - case 9324 { rate := 1000000020889230104599121642 } - default { revert(0, 0) } - } - case 1 { // 9325-9349 - switch bps - case 9325 { rate := 1000000020890871016014850891 } - case 9326 { rate := 1000000020892511842521451557 } - case 9327 { rate := 1000000020894152584127710448 } - case 9328 { rate := 1000000020895793240842413010 } - case 9329 { rate := 1000000020897433812674343323 } - case 9330 { rate := 1000000020899074299632284105 } - case 9331 { rate := 1000000020900714701725016711 } - case 9332 { rate := 1000000020902355018961321132 } - case 9333 { rate := 1000000020903995251349975997 } - case 9334 { rate := 1000000020905635398899758575 } - case 9335 { rate := 1000000020907275461619444770 } - case 9336 { rate := 1000000020908915439517809128 } - case 9337 { rate := 1000000020910555332603624828 } - case 9338 { rate := 1000000020912195140885663693 } - case 9339 { rate := 1000000020913834864372696184 } - case 9340 { rate := 1000000020915474503073491401 } - case 9341 { rate := 1000000020917114056996817083 } - case 9342 { rate := 1000000020918753526151439610 } - case 9343 { rate := 1000000020920392910546124003 } - case 9344 { rate := 1000000020922032210189633922 } - case 9345 { rate := 1000000020923671425090731669 } - case 9346 { rate := 1000000020925310555258178187 } - case 9347 { rate := 1000000020926949600700733061 } - case 9348 { rate := 1000000020928588561427154516 } - case 9349 { rate := 1000000020930227437446199421 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9350-9399 - switch gt(bps, 9374) - case 0 { // 9350-9374 - switch bps - case 9350 { rate := 1000000020931866228766623286 } - case 9351 { rate := 1000000020933504935397180265 } - case 9352 { rate := 1000000020935143557346623152 } - case 9353 { rate := 1000000020936782094623703389 } - case 9354 { rate := 1000000020938420547237171057 } - case 9355 { rate := 1000000020940058915195774882 } - case 9356 { rate := 1000000020941697198508262234 } - case 9357 { rate := 1000000020943335397183379129 } - case 9358 { rate := 1000000020944973511229870225 } - case 9359 { rate := 1000000020946611540656478827 } - case 9360 { rate := 1000000020948249485471946881 } - case 9361 { rate := 1000000020949887345685014985 } - case 9362 { rate := 1000000020951525121304422378 } - case 9363 { rate := 1000000020953162812338906945 } - case 9364 { rate := 1000000020954800418797205219 } - case 9365 { rate := 1000000020956437940688052380 } - case 9366 { rate := 1000000020958075378020182251 } - case 9367 { rate := 1000000020959712730802327307 } - case 9368 { rate := 1000000020961349999043218668 } - case 9369 { rate := 1000000020962987182751586100 } - case 9370 { rate := 1000000020964624281936158019 } - case 9371 { rate := 1000000020966261296605661489 } - case 9372 { rate := 1000000020967898226768822224 } - case 9373 { rate := 1000000020969535072434364582 } - case 9374 { rate := 1000000020971171833611011575 } - default { revert(0, 0) } - } - case 1 { // 9375-9399 - switch bps - case 9375 { rate := 1000000020972808510307484860 } - case 9376 { rate := 1000000020974445102532504749 } - case 9377 { rate := 1000000020976081610294790199 } - case 9378 { rate := 1000000020977718033603058819 } - case 9379 { rate := 1000000020979354372466026869 } - case 9380 { rate := 1000000020980990626892409258 } - case 9381 { rate := 1000000020982626796890919548 } - case 9382 { rate := 1000000020984262882470269951 } - case 9383 { rate := 1000000020985898883639171329 } - case 9384 { rate := 1000000020987534800406333200 } - case 9385 { rate := 1000000020989170632780463731 } - case 9386 { rate := 1000000020990806380770269742 } - case 9387 { rate := 1000000020992442044384456705 } - case 9388 { rate := 1000000020994077623631728747 } - case 9389 { rate := 1000000020995713118520788645 } - case 9390 { rate := 1000000020997348529060337833 } - case 9391 { rate := 1000000020998983855259076396 } - case 9392 { rate := 1000000021000619097125703075 } - case 9393 { rate := 1000000021002254254668915262 } - case 9394 { rate := 1000000021003889327897409010 } - case 9395 { rate := 1000000021005524316819879020 } - case 9396 { rate := 1000000021007159221445018652 } - case 9397 { rate := 1000000021008794041781519920 } - case 9398 { rate := 1000000021010428777838073494 } - case 9399 { rate := 1000000021012063429623368701 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9400-9599 - switch gt(bps, 9499) - case 0 { // 9400-9499 - switch gt(bps, 9449) - case 0 { // 9400-9449 - switch gt(bps, 9424) - case 0 { // 9400-9424 - switch bps - case 9400 { rate := 1000000021013697997146093523 } - case 9401 { rate := 1000000021015332480414934599 } - case 9402 { rate := 1000000021016966879438577225 } - case 9403 { rate := 1000000021018601194225705352 } - case 9404 { rate := 1000000021020235424785001592 } - case 9405 { rate := 1000000021021869571125147213 } - case 9406 { rate := 1000000021023503633254822139 } - case 9407 { rate := 1000000021025137611182704955 } - case 9408 { rate := 1000000021026771504917472904 } - case 9409 { rate := 1000000021028405314467801886 } - case 9410 { rate := 1000000021030039039842366461 } - case 9411 { rate := 1000000021031672681049839850 } - case 9412 { rate := 1000000021033306238098893931 } - case 9413 { rate := 1000000021034939710998199243 } - case 9414 { rate := 1000000021036573099756424985 } - case 9415 { rate := 1000000021038206404382239016 } - case 9416 { rate := 1000000021039839624884307857 } - case 9417 { rate := 1000000021041472761271296689 } - case 9418 { rate := 1000000021043105813551869354 } - case 9419 { rate := 1000000021044738781734688354 } - case 9420 { rate := 1000000021046371665828414857 } - case 9421 { rate := 1000000021048004465841708690 } - case 9422 { rate := 1000000021049637181783228343 } - case 9423 { rate := 1000000021051269813661630969 } - case 9424 { rate := 1000000021052902361485572381 } - default { revert(0, 0) } - } - case 1 { // 9425-9449 - switch bps - case 9425 { rate := 1000000021054534825263707061 } - case 9426 { rate := 1000000021056167205004688149 } - case 9427 { rate := 1000000021057799500717167451 } - case 9428 { rate := 1000000021059431712409795437 } - case 9429 { rate := 1000000021061063840091221242 } - case 9430 { rate := 1000000021062695883770092662 } - case 9431 { rate := 1000000021064327843455056162 } - case 9432 { rate := 1000000021065959719154756872 } - case 9433 { rate := 1000000021067591510877838582 } - case 9434 { rate := 1000000021069223218632943755 } - case 9435 { rate := 1000000021070854842428713514 } - case 9436 { rate := 1000000021072486382273787653 } - case 9437 { rate := 1000000021074117838176804627 } - case 9438 { rate := 1000000021075749210146401562 } - case 9439 { rate := 1000000021077380498191214251 } - case 9440 { rate := 1000000021079011702319877152 } - case 9441 { rate := 1000000021080642822541023391 } - case 9442 { rate := 1000000021082273858863284763 } - case 9443 { rate := 1000000021083904811295291730 } - case 9444 { rate := 1000000021085535679845673424 } - case 9445 { rate := 1000000021087166464523057642 } - case 9446 { rate := 1000000021088797165336070856 } - case 9447 { rate := 1000000021090427782293338202 } - case 9448 { rate := 1000000021092058315403483486 } - case 9449 { rate := 1000000021093688764675129185 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9450-9499 - switch gt(bps, 9474) - case 0 { // 9450-9474 - switch bps - case 9450 { rate := 1000000021095319130116896449 } - case 9451 { rate := 1000000021096949411737405092 } - case 9452 { rate := 1000000021098579609545273603 } - case 9453 { rate := 1000000021100209723549119140 } - case 9454 { rate := 1000000021101839753757557533 } - case 9455 { rate := 1000000021103469700179203284 } - case 9456 { rate := 1000000021105099562822669564 } - case 9457 { rate := 1000000021106729341696568219 } - case 9458 { rate := 1000000021108359036809509766 } - case 9459 { rate := 1000000021109988648170103394 } - case 9460 { rate := 1000000021111618175786956964 } - case 9461 { rate := 1000000021113247619668677013 } - case 9462 { rate := 1000000021114876979823868748 } - case 9463 { rate := 1000000021116506256261136053 } - case 9464 { rate := 1000000021118135448989081482 } - case 9465 { rate := 1000000021119764558016306265 } - case 9466 { rate := 1000000021121393583351410308 } - case 9467 { rate := 1000000021123022525002992189 } - case 9468 { rate := 1000000021124651382979649161 } - case 9469 { rate := 1000000021126280157289977155 } - case 9470 { rate := 1000000021127908847942570774 } - case 9471 { rate := 1000000021129537454946023301 } - case 9472 { rate := 1000000021131165978308926689 } - case 9473 { rate := 1000000021132794418039871573 } - case 9474 { rate := 1000000021134422774147447262 } - default { revert(0, 0) } - } - case 1 { // 9475-9499 - switch bps - case 9475 { rate := 1000000021136051046640241741 } - case 9476 { rate := 1000000021137679235526841675 } - case 9477 { rate := 1000000021139307340815832403 } - case 9478 { rate := 1000000021140935362515797945 } - case 9479 { rate := 1000000021142563300635320996 } - case 9480 { rate := 1000000021144191155182982930 } - case 9481 { rate := 1000000021145818926167363800 } - case 9482 { rate := 1000000021147446613597042338 } - case 9483 { rate := 1000000021149074217480595956 } - case 9484 { rate := 1000000021150701737826600742 } - case 9485 { rate := 1000000021152329174643631465 } - case 9486 { rate := 1000000021153956527940261575 } - case 9487 { rate := 1000000021155583797725063203 } - case 9488 { rate := 1000000021157210984006607157 } - case 9489 { rate := 1000000021158838086793462926 } - case 9490 { rate := 1000000021160465106094198684 } - case 9491 { rate := 1000000021162092041917381283 } - case 9492 { rate := 1000000021163718894271576256 } - case 9493 { rate := 1000000021165345663165347819 } - case 9494 { rate := 1000000021166972348607258868 } - case 9495 { rate := 1000000021168598950605870985 } - case 9496 { rate := 1000000021170225469169744432 } - case 9497 { rate := 1000000021171851904307438154 } - case 9498 { rate := 1000000021173478256027509779 } - case 9499 { rate := 1000000021175104524338515618 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9500-9599 - switch gt(bps, 9549) - case 0 { // 9500-9549 - switch gt(bps, 9524) - case 0 { // 9500-9524 - switch bps - case 9500 { rate := 1000000021176730709249010667 } - case 9501 { rate := 1000000021178356810767548605 } - case 9502 { rate := 1000000021179982828902681797 } - case 9503 { rate := 1000000021181608763662961287 } - case 9504 { rate := 1000000021183234615056936809 } - case 9505 { rate := 1000000021184860383093156782 } - case 9506 { rate := 1000000021186486067780168307 } - case 9507 { rate := 1000000021188111669126517170 } - case 9508 { rate := 1000000021189737187140747849 } - case 9509 { rate := 1000000021191362621831403501 } - case 9510 { rate := 1000000021192987973207025974 } - case 9511 { rate := 1000000021194613241276155799 } - case 9512 { rate := 1000000021196238426047332195 } - case 9513 { rate := 1000000021197863527529093071 } - case 9514 { rate := 1000000021199488545729975021 } - case 9515 { rate := 1000000021201113480658513324 } - case 9516 { rate := 1000000021202738332323241953 } - case 9517 { rate := 1000000021204363100732693562 } - case 9518 { rate := 1000000021205987785895399502 } - case 9519 { rate := 1000000021207612387819889804 } - case 9520 { rate := 1000000021209236906514693195 } - case 9521 { rate := 1000000021210861341988337085 } - case 9522 { rate := 1000000021212485694249347580 } - case 9523 { rate := 1000000021214109963306249471 } - case 9524 { rate := 1000000021215734149167566241 } - default { revert(0, 0) } - } - case 1 { // 9525-9549 - switch bps - case 9525 { rate := 1000000021217358251841820063 } - case 9526 { rate := 1000000021218982271337531802 } - case 9527 { rate := 1000000021220606207663221010 } - case 9528 { rate := 1000000021222230060827405935 } - case 9529 { rate := 1000000021223853830838603512 } - case 9530 { rate := 1000000021225477517705329371 } - case 9531 { rate := 1000000021227101121436097833 } - case 9532 { rate := 1000000021228724642039421911 } - case 9533 { rate := 1000000021230348079523813310 } - case 9534 { rate := 1000000021231971433897782427 } - case 9535 { rate := 1000000021233594705169838355 } - case 9536 { rate := 1000000021235217893348488878 } - case 9537 { rate := 1000000021236840998442240473 } - case 9538 { rate := 1000000021238464020459598314 } - case 9539 { rate := 1000000021240086959409066265 } - case 9540 { rate := 1000000021241709815299146887 } - case 9541 { rate := 1000000021243332588138341436 } - case 9542 { rate := 1000000021244955277935149860 } - case 9543 { rate := 1000000021246577884698070805 } - case 9544 { rate := 1000000021248200408435601610 } - case 9545 { rate := 1000000021249822849156238313 } - case 9546 { rate := 1000000021251445206868475647 } - case 9547 { rate := 1000000021253067481580807036 } - case 9548 { rate := 1000000021254689673301724609 } - case 9549 { rate := 1000000021256311782039719186 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9550-9599 - switch gt(bps, 9574) - case 0 { // 9550-9574 - switch bps - case 9550 { rate := 1000000021257933807803280285 } - case 9551 { rate := 1000000021259555750600896123 } - case 9552 { rate := 1000000021261177610441053612 } - case 9553 { rate := 1000000021262799387332238365 } - case 9554 { rate := 1000000021264421081282934690 } - case 9555 { rate := 1000000021266042692301625596 } - case 9556 { rate := 1000000021267664220396792789 } - case 9557 { rate := 1000000021269285665576916672 } - case 9558 { rate := 1000000021270907027850476352 } - case 9559 { rate := 1000000021272528307225949633 } - case 9560 { rate := 1000000021274149503711813016 } - case 9561 { rate := 1000000021275770617316541707 } - case 9562 { rate := 1000000021277391648048609609 } - case 9563 { rate := 1000000021279012595916489324 } - case 9564 { rate := 1000000021280633460928652160 } - case 9565 { rate := 1000000021282254243093568122 } - case 9566 { rate := 1000000021283874942419705916 } - case 9567 { rate := 1000000021285495558915532952 } - case 9568 { rate := 1000000021287116092589515341 } - case 9569 { rate := 1000000021288736543450117894 } - case 9570 { rate := 1000000021290356911505804127 } - case 9571 { rate := 1000000021291977196765036258 } - case 9572 { rate := 1000000021293597399236275207 } - case 9573 { rate := 1000000021295217518927980598 } - case 9574 { rate := 1000000021296837555848610757 } - default { revert(0, 0) } - } - case 1 { // 9575-9599 - switch bps - case 9575 { rate := 1000000021298457510006622716 } - case 9576 { rate := 1000000021300077381410472209 } - case 9577 { rate := 1000000021301697170068613676 } - case 9578 { rate := 1000000021303316875989500258 } - case 9579 { rate := 1000000021304936499181583805 } - case 9580 { rate := 1000000021306556039653314870 } - case 9581 { rate := 1000000021308175497413142711 } - case 9582 { rate := 1000000021309794872469515290 } - case 9583 { rate := 1000000021311414164830879280 } - case 9584 { rate := 1000000021313033374505680055 } - case 9585 { rate := 1000000021314652501502361696 } - case 9586 { rate := 1000000021316271545829366993 } - case 9587 { rate := 1000000021317890507495137440 } - case 9588 { rate := 1000000021319509386508113242 } - case 9589 { rate := 1000000021321128182876733306 } - case 9590 { rate := 1000000021322746896609435252 } - case 9591 { rate := 1000000021324365527714655404 } - case 9592 { rate := 1000000021325984076200828797 } - case 9593 { rate := 1000000021327602542076389171 } - case 9594 { rate := 1000000021329220925349768978 } - case 9595 { rate := 1000000021330839226029399378 } - case 9596 { rate := 1000000021332457444123710238 } - case 9597 { rate := 1000000021334075579641130140 } - case 9598 { rate := 1000000021335693632590086368 } - case 9599 { rate := 1000000021337311602979004923 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/src/repositories/Rates9600To10000.sol b/src/repositories/Rates9600To10000.sol deleted file mode 100644 index a5e24fd..0000000 --- a/src/repositories/Rates9600To10000.sol +++ /dev/null @@ -1,538 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -contract Rates9600To10000 { - uint256 constant public MIN = 9600; - uint256 constant public MAX = 10000; - - function turn(uint256 bps) external pure returns (uint256 rate) { - if (bps > MAX) revert(); - if (bps < MIN) revert(); - - assembly { - switch gt(bps, 9800) - case 0 { // 9600-9800 - switch gt(bps, 9700) - case 0 { // 9600-9700 - switch gt(bps, 9650) - case 0 { // 9600-9650 - switch gt(bps, 9625) - case 0 { // 9600-9625 - switch bps - case 9600 { rate := 1000000021338929490816310513 } - case 9601 { rate := 1000000021340547296110426556 } - case 9602 { rate := 1000000021342165018869775181 } - case 9603 { rate := 1000000021343782659102777232 } - case 9604 { rate := 1000000021345400216817852259 } - case 9605 { rate := 1000000021347017692023418526 } - case 9606 { rate := 1000000021348635084727893008 } - case 9607 { rate := 1000000021350252394939691393 } - case 9608 { rate := 1000000021351869622667228081 } - case 9609 { rate := 1000000021353486767918916187 } - case 9610 { rate := 1000000021355103830703167533 } - case 9611 { rate := 1000000021356720811028392661 } - case 9612 { rate := 1000000021358337708903000822 } - case 9613 { rate := 1000000021359954524335399980 } - case 9614 { rate := 1000000021361571257333996817 } - case 9615 { rate := 1000000021363187907907196727 } - case 9616 { rate := 1000000021364804476063403818 } - case 9617 { rate := 1000000021366420961811020914 } - case 9618 { rate := 1000000021368037365158449552 } - case 9619 { rate := 1000000021369653686114089987 } - case 9620 { rate := 1000000021371269924686341187 } - case 9621 { rate := 1000000021372886080883600836 } - case 9622 { rate := 1000000021374502154714265338 } - case 9623 { rate := 1000000021376118146186729808 } - case 9624 { rate := 1000000021377734055309388080 } - case 9625 { rate := 1000000021379349882090632705 } - default { revert(0, 0) } - } - case 1 { // 9626-9650 - switch bps - case 9626 { rate := 1000000021380965626538854950 } - case 9627 { rate := 1000000021382581288662444801 } - case 9628 { rate := 1000000021384196868469790961 } - case 9629 { rate := 1000000021385812365969280848 } - case 9630 { rate := 1000000021387427781169300605 } - case 9631 { rate := 1000000021389043114078235086 } - case 9632 { rate := 1000000021390658364704467867 } - case 9633 { rate := 1000000021392273533056381244 } - case 9634 { rate := 1000000021393888619142356230 } - case 9635 { rate := 1000000021395503622970772558 } - case 9636 { rate := 1000000021397118544550008682 } - case 9637 { rate := 1000000021398733383888441774 } - case 9638 { rate := 1000000021400348140994447728 } - case 9639 { rate := 1000000021401962815876401158 } - case 9640 { rate := 1000000021403577408542675398 } - case 9641 { rate := 1000000021405191919001642503 } - case 9642 { rate := 1000000021406806347261673250 } - case 9643 { rate := 1000000021408420693331137139 } - case 9644 { rate := 1000000021410034957218402388 } - case 9645 { rate := 1000000021411649138931835939 } - case 9646 { rate := 1000000021413263238479803458 } - case 9647 { rate := 1000000021414877255870669331 } - case 9648 { rate := 1000000021416491191112796669 } - case 9649 { rate := 1000000021418105044214547303 } - case 9650 { rate := 1000000021419718815184281790 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9651-9700 - switch gt(bps, 9675) - case 0 { // 9651-9675 - switch bps - case 9651 { rate := 1000000021421332504030359411 } - case 9652 { rate := 1000000021422946110761138169 } - case 9653 { rate := 1000000021424559635384974793 } - case 9654 { rate := 1000000021426173077910224732 } - case 9655 { rate := 1000000021427786438345242167 } - case 9656 { rate := 1000000021429399716698379997 } - case 9657 { rate := 1000000021431012912977989851 } - case 9658 { rate := 1000000021432626027192422079 } - case 9659 { rate := 1000000021434239059350025762 } - case 9660 { rate := 1000000021435852009459148702 } - case 9661 { rate := 1000000021437464877528137431 } - case 9662 { rate := 1000000021439077663565337204 } - case 9663 { rate := 1000000021440690367579092006 } - case 9664 { rate := 1000000021442302989577744547 } - case 9665 { rate := 1000000021443915529569636263 } - case 9666 { rate := 1000000021445527987563107323 } - case 9667 { rate := 1000000021447140363566496615 } - case 9668 { rate := 1000000021448752657588141766 } - case 9669 { rate := 1000000021450364869636379120 } - case 9670 { rate := 1000000021451976999719543756 } - case 9671 { rate := 1000000021453589047845969483 } - case 9672 { rate := 1000000021455201014023988834 } - case 9673 { rate := 1000000021456812898261933077 } - case 9674 { rate := 1000000021458424700568132203 } - case 9675 { rate := 1000000021460036420950914938 } - default { revert(0, 0) } - } - case 1 { // 9676-9700 - switch bps - case 9676 { rate := 1000000021461648059418608738 } - case 9677 { rate := 1000000021463259615979539784 } - case 9678 { rate := 1000000021464871090642032996 } - case 9679 { rate := 1000000021466482483414412017 } - case 9680 { rate := 1000000021468093794304999225 } - case 9681 { rate := 1000000021469705023322115729 } - case 9682 { rate := 1000000021471316170474081370 } - case 9683 { rate := 1000000021472927235769214720 } - case 9684 { rate := 1000000021474538219215833083 } - case 9685 { rate := 1000000021476149120822252496 } - case 9686 { rate := 1000000021477759940596787728 } - case 9687 { rate := 1000000021479370678547752283 } - case 9688 { rate := 1000000021480981334683458396 } - case 9689 { rate := 1000000021482591909012217035 } - case 9690 { rate := 1000000021484202401542337904 } - case 9691 { rate := 1000000021485812812282129439 } - case 9692 { rate := 1000000021487423141239898812 } - case 9693 { rate := 1000000021489033388423951926 } - case 9694 { rate := 1000000021490643553842593424 } - case 9695 { rate := 1000000021492253637504126680 } - case 9696 { rate := 1000000021493863639416853802 } - case 9697 { rate := 1000000021495473559589075640 } - case 9698 { rate := 1000000021497083398029091773 } - case 9699 { rate := 1000000021498693154745200519 } - case 9700 { rate := 1000000021500302829745698932 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9701-9800 - switch gt(bps, 9750) - case 0 { // 9701-9750 - switch gt(bps, 9725) - case 0 { // 9701-9725 - switch bps - case 9701 { rate := 1000000021501912423038882802 } - case 9702 { rate := 1000000021503521934633046657 } - case 9703 { rate := 1000000021505131364536483760 } - case 9704 { rate := 1000000021506740712757486113 } - case 9705 { rate := 1000000021508349979304344456 } - case 9706 { rate := 1000000021509959164185348265 } - case 9707 { rate := 1000000021511568267408785753 } - case 9708 { rate := 1000000021513177288982943876 } - case 9709 { rate := 1000000021514786228916108326 } - case 9710 { rate := 1000000021516395087216563531 } - case 9711 { rate := 1000000021518003863892592663 } - case 9712 { rate := 1000000021519612558952477629 } - case 9713 { rate := 1000000021521221172404499080 } - case 9714 { rate := 1000000021522829704256936402 } - case 9715 { rate := 1000000021524438154518067725 } - case 9716 { rate := 1000000021526046523196169918 } - case 9717 { rate := 1000000021527654810299518591 } - case 9718 { rate := 1000000021529263015836388092 } - case 9719 { rate := 1000000021530871139815051515 } - case 9720 { rate := 1000000021532479182243780693 } - case 9721 { rate := 1000000021534087143130846199 } - case 9722 { rate := 1000000021535695022484517350 } - case 9723 { rate := 1000000021537302820313062204 } - case 9724 { rate := 1000000021538910536624747565 } - case 9725 { rate := 1000000021540518171427838973 } - default { revert(0, 0) } - } - case 1 { // 9726-9750 - switch bps - case 9726 { rate := 1000000021542125724730600717 } - case 9727 { rate := 1000000021543733196541295825 } - case 9728 { rate := 1000000021545340586868186072 } - case 9729 { rate := 1000000021546947895719531973 } - case 9730 { rate := 1000000021548555123103592792 } - case 9731 { rate := 1000000021550162269028626530 } - case 9732 { rate := 1000000021551769333502889939 } - case 9733 { rate := 1000000021553376316534638512 } - case 9734 { rate := 1000000021554983218132126488 } - case 9735 { rate := 1000000021556590038303606853 } - case 9736 { rate := 1000000021558196777057331335 } - case 9737 { rate := 1000000021559803434401550410 } - case 9738 { rate := 1000000021561410010344513300 } - case 9739 { rate := 1000000021563016504894467972 } - case 9740 { rate := 1000000021564622918059661140 } - case 9741 { rate := 1000000021566229249848338266 } - case 9742 { rate := 1000000021567835500268743557 } - case 9743 { rate := 1000000021569441669329119967 } - case 9744 { rate := 1000000021571047757037709200 } - case 9745 { rate := 1000000021572653763402751707 } - case 9746 { rate := 1000000021574259688432486685 } - case 9747 { rate := 1000000021575865532135152081 } - case 9748 { rate := 1000000021577471294518984591 } - case 9749 { rate := 1000000021579076975592219657 } - case 9750 { rate := 1000000021580682575363091474 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9751-9800 - switch gt(bps, 9775) - case 0 { // 9751-9775 - switch bps - case 9751 { rate := 1000000021582288093839832982 } - case 9752 { rate := 1000000021583893531030675874 } - case 9753 { rate := 1000000021585498886943850592 } - case 9754 { rate := 1000000021587104161587586327 } - case 9755 { rate := 1000000021588709354970111019 } - case 9756 { rate := 1000000021590314467099651363 } - case 9757 { rate := 1000000021591919497984432801 } - case 9758 { rate := 1000000021593524447632679526 } - case 9759 { rate := 1000000021595129316052614485 } - case 9760 { rate := 1000000021596734103252459374 } - case 9761 { rate := 1000000021598338809240434642 } - case 9762 { rate := 1000000021599943434024759490 } - case 9763 { rate := 1000000021601547977613651871 } - case 9764 { rate := 1000000021603152440015328491 } - case 9765 { rate := 1000000021604756821238004808 } - case 9766 { rate := 1000000021606361121289895034 } - case 9767 { rate := 1000000021607965340179212134 } - case 9768 { rate := 1000000021609569477914167825 } - case 9769 { rate := 1000000021611173534502972580 } - case 9770 { rate := 1000000021612777509953835627 } - case 9771 { rate := 1000000021614381404274964943 } - case 9772 { rate := 1000000021615985217474567267 } - case 9773 { rate := 1000000021617588949560848087 } - case 9774 { rate := 1000000021619192600542011648 } - case 9775 { rate := 1000000021620796170426260951 } - default { revert(0, 0) } - } - case 1 { // 9776-9800 - switch bps - case 9776 { rate := 1000000021622399659221797752 } - case 9777 { rate := 1000000021624003066936822564 } - case 9778 { rate := 1000000021625606393579534651 } - case 9779 { rate := 1000000021627209639158132043 } - case 9780 { rate := 1000000021628812803680811515 } - case 9781 { rate := 1000000021630415887155768610 } - case 9782 { rate := 1000000021632018889591197618 } - case 9783 { rate := 1000000021633621810995291595 } - case 9784 { rate := 1000000021635224651376242349 } - case 9785 { rate := 1000000021636827410742240447 } - case 9786 { rate := 1000000021638430089101475216 } - case 9787 { rate := 1000000021640032686462134738 } - case 9788 { rate := 1000000021641635202832405858 } - case 9789 { rate := 1000000021643237638220474177 } - case 9790 { rate := 1000000021644839992634524055 } - case 9791 { rate := 1000000021646442266082738611 } - case 9792 { rate := 1000000021648044458573299725 } - case 9793 { rate := 1000000021649646570114388037 } - case 9794 { rate := 1000000021651248600714182947 } - case 9795 { rate := 1000000021652850550380862614 } - case 9796 { rate := 1000000021654452419122603958 } - case 9797 { rate := 1000000021656054206947582660 } - case 9798 { rate := 1000000021657655913863973164 } - case 9799 { rate := 1000000021659257539879948673 } - case 9800 { rate := 1000000021660859085003681151 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9801-10000 - switch gt(bps, 9900) - case 0 { // 9801-9900 - switch gt(bps, 9850) - case 0 { // 9801-9850 - switch gt(bps, 9825) - case 0 { // 9801-9825 - switch bps - case 9801 { rate := 1000000021662460549243341328 } - case 9802 { rate := 1000000021664061932607098690 } - case 9803 { rate := 1000000021665663235103121490 } - case 9804 { rate := 1000000021667264456739576744 } - case 9805 { rate := 1000000021668865597524630226 } - case 9806 { rate := 1000000021670466657466446478 } - case 9807 { rate := 1000000021672067636573188805 } - case 9808 { rate := 1000000021673668534853019271 } - case 9809 { rate := 1000000021675269352314098709 } - case 9810 { rate := 1000000021676870088964586713 } - case 9811 { rate := 1000000021678470744812641643 } - case 9812 { rate := 1000000021680071319866420625 } - case 9813 { rate := 1000000021681671814134079545 } - case 9814 { rate := 1000000021683272227623773058 } - case 9815 { rate := 1000000021684872560343654583 } - case 9816 { rate := 1000000021686472812301876306 } - case 9817 { rate := 1000000021688072983506589178 } - case 9818 { rate := 1000000021689673073965942915 } - case 9819 { rate := 1000000021691273083688086000 } - case 9820 { rate := 1000000021692873012681165684 } - case 9821 { rate := 1000000021694472860953327982 } - case 9822 { rate := 1000000021696072628512717681 } - case 9823 { rate := 1000000021697672315367478329 } - case 9824 { rate := 1000000021699271921525752246 } - case 9825 { rate := 1000000021700871446995680519 } - default { revert(0, 0) } - } - case 1 { // 9826-9850 - switch bps - case 9826 { rate := 1000000021702470891785403001 } - case 9827 { rate := 1000000021704070255903058316 } - case 9828 { rate := 1000000021705669539356783857 } - case 9829 { rate := 1000000021707268742154715782 } - case 9830 { rate := 1000000021708867864304989022 } - case 9831 { rate := 1000000021710466905815737276 } - case 9832 { rate := 1000000021712065866695093012 } - case 9833 { rate := 1000000021713664746951187467 } - case 9834 { rate := 1000000021715263546592150652 } - case 9835 { rate := 1000000021716862265626111344 } - case 9836 { rate := 1000000021718460904061197091 } - case 9837 { rate := 1000000021720059461905534215 } - case 9838 { rate := 1000000021721657939167247807 } - case 9839 { rate := 1000000021723256335854461729 } - case 9840 { rate := 1000000021724854651975298614 } - case 9841 { rate := 1000000021726452887537879870 } - case 9842 { rate := 1000000021728051042550325673 } - case 9843 { rate := 1000000021729649117020754974 } - case 9844 { rate := 1000000021731247110957285495 } - case 9845 { rate := 1000000021732845024368033733 } - case 9846 { rate := 1000000021734442857261114954 } - case 9847 { rate := 1000000021736040609644643201 } - case 9848 { rate := 1000000021737638281526731291 } - case 9849 { rate := 1000000021739235872915490812 } - case 9850 { rate := 1000000021740833383819032127 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9851-9900 - switch gt(bps, 9875) - case 0 { // 9851-9875 - switch bps - case 9851 { rate := 1000000021742430814245464373 } - case 9852 { rate := 1000000021744028164202895462 } - case 9853 { rate := 1000000021745625433699432083 } - case 9854 { rate := 1000000021747222622743179696 } - case 9855 { rate := 1000000021748819731342242539 } - case 9856 { rate := 1000000021750416759504723623 } - case 9857 { rate := 1000000021752013707238724737 } - case 9858 { rate := 1000000021753610574552346447 } - case 9859 { rate := 1000000021755207361453688091 } - case 9860 { rate := 1000000021756804067950847789 } - case 9861 { rate := 1000000021758400694051922433 } - case 9862 { rate := 1000000021759997239765007694 } - case 9863 { rate := 1000000021761593705098198022 } - case 9864 { rate := 1000000021763190090059586640 } - case 9865 { rate := 1000000021764786394657265553 } - case 9866 { rate := 1000000021766382618899325542 } - case 9867 { rate := 1000000021767978762793856166 } - case 9868 { rate := 1000000021769574826348945765 } - case 9869 { rate := 1000000021771170809572681453 } - case 9870 { rate := 1000000021772766712473149127 } - case 9871 { rate := 1000000021774362535058433462 } - case 9872 { rate := 1000000021775958277336617913 } - case 9873 { rate := 1000000021777553939315784714 } - case 9874 { rate := 1000000021779149521004014877 } - case 9875 { rate := 1000000021780745022409388199 } - default { revert(0, 0) } - } - case 1 { // 9876-9900 - switch bps - case 9876 { rate := 1000000021782340443539983254 } - case 9877 { rate := 1000000021783935784403877396 } - case 9878 { rate := 1000000021785531045009146762 } - case 9879 { rate := 1000000021787126225363866271 } - case 9880 { rate := 1000000021788721325476109620 } - case 9881 { rate := 1000000021790316345353949290 } - case 9882 { rate := 1000000021791911285005456544 } - case 9883 { rate := 1000000021793506144438701426 } - case 9884 { rate := 1000000021795100923661752763 } - case 9885 { rate := 1000000021796695622682678165 } - case 9886 { rate := 1000000021798290241509544024 } - case 9887 { rate := 1000000021799884780150415518 } - case 9888 { rate := 1000000021801479238613356603 } - case 9889 { rate := 1000000021803073616906430024 } - case 9890 { rate := 1000000021804667915037697306 } - case 9891 { rate := 1000000021806262133015218760 } - case 9892 { rate := 1000000021807856270847053482 } - case 9893 { rate := 1000000021809450328541259351 } - case 9894 { rate := 1000000021811044306105893031 } - case 9895 { rate := 1000000021812638203549009974 } - case 9896 { rate := 1000000021814232020878664411 } - case 9897 { rate := 1000000021815825758102909365 } - case 9898 { rate := 1000000021817419415229796642 } - case 9899 { rate := 1000000021819012992267376834 } - case 9900 { rate := 1000000021820606489223699321 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9901-10000 - switch gt(bps, 9950) - case 0 { // 9901-9950 - switch gt(bps, 9925) - case 0 { // 9901-9925 - switch bps - case 9901 { rate := 1000000021822199906106812267 } - case 9902 { rate := 1000000021823793242924762624 } - case 9903 { rate := 1000000021825386499685596130 } - case 9904 { rate := 1000000021826979676397357315 } - case 9905 { rate := 1000000021828572773068089490 } - case 9906 { rate := 1000000021830165789705834758 } - case 9907 { rate := 1000000021831758726318634008 } - case 9908 { rate := 1000000021833351582914526918 } - case 9909 { rate := 1000000021834944359501551955 } - case 9910 { rate := 1000000021836537056087746374 } - case 9911 { rate := 1000000021838129672681146219 } - case 9912 { rate := 1000000021839722209289786324 } - case 9913 { rate := 1000000021841314665921700311 } - case 9914 { rate := 1000000021842907042584920594 } - case 9915 { rate := 1000000021844499339287478375 } - case 9916 { rate := 1000000021846091556037403647 } - case 9917 { rate := 1000000021847683692842725193 } - case 9918 { rate := 1000000021849275749711470586 } - case 9919 { rate := 1000000021850867726651666193 } - case 9920 { rate := 1000000021852459623671337169 } - case 9921 { rate := 1000000021854051440778507461 } - case 9922 { rate := 1000000021855643177981199810 } - case 9923 { rate := 1000000021857234835287435745 } - case 9924 { rate := 1000000021858826412705235591 } - case 9925 { rate := 1000000021860417910242618463 } - default { revert(0, 0) } - } - case 1 { // 9926-9950 - switch bps - case 9926 { rate := 1000000021862009327907602268 } - case 9927 { rate := 1000000021863600665708203710 } - case 9928 { rate := 1000000021865191923652438280 } - case 9929 { rate := 1000000021866783101748320269 } - case 9930 { rate := 1000000021868374200003862755 } - case 9931 { rate := 1000000021869965218427077615 } - case 9932 { rate := 1000000021871556157025975518 } - case 9933 { rate := 1000000021873147015808565927 } - case 9934 { rate := 1000000021874737794782857101 } - case 9935 { rate := 1000000021876328493956856091 } - case 9936 { rate := 1000000021877919113338568748 } - case 9937 { rate := 1000000021879509652935999713 } - case 9938 { rate := 1000000021881100112757152424 } - case 9939 { rate := 1000000021882690492810029118 } - case 9940 { rate := 1000000021884280793102630824 } - case 9941 { rate := 1000000021885871013642957370 } - case 9942 { rate := 1000000021887461154439007378 } - case 9943 { rate := 1000000021889051215498778269 } - case 9944 { rate := 1000000021890641196830266260 } - case 9945 { rate := 1000000021892231098441466365 } - case 9946 { rate := 1000000021893820920340372396 } - case 9947 { rate := 1000000021895410662534976963 } - case 9948 { rate := 1000000021897000325033271473 } - case 9949 { rate := 1000000021898589907843246131 } - case 9950 { rate := 1000000021900179410972889943 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - case 1 { // 9951-10000 - switch gt(bps, 9975) - case 0 { // 9951-9975 - switch bps - case 9951 { rate := 1000000021901768834430190709 } - case 9952 { rate := 1000000021903358178223135034 } - case 9953 { rate := 1000000021904947442359708315 } - case 9954 { rate := 1000000021906536626847894756 } - case 9955 { rate := 1000000021908125731695677355 } - case 9956 { rate := 1000000021909714756911037912 } - case 9957 { rate := 1000000021911303702501957027 } - case 9958 { rate := 1000000021912892568476414100 } - case 9959 { rate := 1000000021914481354842387331 } - case 9960 { rate := 1000000021916070061607853724 } - case 9961 { rate := 1000000021917658688780789081 } - case 9962 { rate := 1000000021919247236369168005 } - case 9963 { rate := 1000000021920835704380963901 } - case 9964 { rate := 1000000021922424092824148978 } - case 9965 { rate := 1000000021924012401706694246 } - case 9966 { rate := 1000000021925600631036569516 } - case 9967 { rate := 1000000021927188780821743402 } - case 9968 { rate := 1000000021928776851070183322 } - case 9969 { rate := 1000000021930364841789855494 } - case 9970 { rate := 1000000021931952752988724944 } - case 9971 { rate := 1000000021933540584674755497 } - case 9972 { rate := 1000000021935128336855909784 } - case 9973 { rate := 1000000021936716009540149239 } - case 9974 { rate := 1000000021938303602735434102 } - case 9975 { rate := 1000000021939891116449723415 } - default { revert(0, 0) } - } - case 1 { // 9976-10000 - switch bps - case 9976 { rate := 1000000021941478550690975027 } - case 9977 { rate := 1000000021943065905467145588 } - case 9978 { rate := 1000000021944653180786190559 } - case 9979 { rate := 1000000021946240376656064202 } - case 9980 { rate := 1000000021947827493084719585 } - case 9981 { rate := 1000000021949414530080108585 } - case 9982 { rate := 1000000021951001487650181881 } - case 9983 { rate := 1000000021952588365802888961 } - case 9984 { rate := 1000000021954175164546178118 } - case 9985 { rate := 1000000021955761883887996454 } - case 9986 { rate := 1000000021957348523836289875 } - case 9987 { rate := 1000000021958935084399003098 } - case 9988 { rate := 1000000021960521565584079645 } - case 9989 { rate := 1000000021962107967399461846 } - case 9990 { rate := 1000000021963694289853090839 } - case 9991 { rate := 1000000021965280532952906572 } - case 9992 { rate := 1000000021966866696706847799 } - case 9993 { rate := 1000000021968452781122852084 } - case 9994 { rate := 1000000021970038786208855800 } - case 9995 { rate := 1000000021971624711972794130 } - case 9996 { rate := 1000000021973210558422601065 } - case 9997 { rate := 1000000021974796325566209405 } - case 9998 { rate := 1000000021976382013411550763 } - case 9999 { rate := 1000000021977967621966555560 } - case 10000 { rate := 1000000021979553151239153027 } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - default { revert(0, 0) } - } - } -} \ No newline at end of file diff --git a/test/Rates.t.sol b/test/Rates.t.sol deleted file mode 100644 index d082110..0000000 --- a/test/Rates.t.sol +++ /dev/null @@ -1,64 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "forge-std/Test.sol"; -import "../src/Rates.sol"; -import "./RatesMapping.sol"; -import "../src/repositories/Rates0To799.sol"; -import "../src/repositories/Rates800To1599.sol"; -import "../src/repositories/Rates1600To2399.sol"; -import "../src/repositories/Rates2400To3199.sol"; -import "../src/repositories/Rates3200To3999.sol"; -import "../src/repositories/Rates4000To4799.sol"; -import "../src/repositories/Rates4800To5599.sol"; -import "../src/repositories/Rates5600To6399.sol"; -import "../src/repositories/Rates6400To7199.sol"; -import "../src/repositories/Rates7200To7999.sol"; -import "../src/repositories/Rates8000To8799.sol"; -import "../src/repositories/Rates8800To9599.sol"; -import "../src/repositories/Rates9600To10000.sol"; - -contract RatesTest is Test { - Rates rates; - RatesMapping referenceRates; - address[] rateAddresses; - - function setUp() public { - referenceRates = new RatesMapping(); - - rateAddresses = new address[](13); - rateAddresses[0] = address(new Rates0To799()); - rateAddresses[1] = address(new Rates800To1599()); - rateAddresses[2] = address(new Rates1600To2399()); - rateAddresses[3] = address(new Rates2400To3199()); - rateAddresses[4] = address(new Rates3200To3999()); - rateAddresses[5] = address(new Rates4000To4799()); - rateAddresses[6] = address(new Rates4800To5599()); - rateAddresses[7] = address(new Rates5600To6399()); - rateAddresses[8] = address(new Rates6400To7199()); - rateAddresses[9] = address(new Rates7200To7999()); - rateAddresses[10] = address(new Rates8000To8799()); - rateAddresses[11] = address(new Rates8800To9599()); - rateAddresses[12] = address(new Rates9600To10000()); - - rates = new Rates(rateAddresses); - } - - function testAllRates() public view { - for (uint256 bps = 0; bps <= 10000; bps++) { - uint256 rate = rates.turn(bps); - uint256 expectedRate = referenceRates.rates(bps); - - assertEq( - rate, - expectedRate, - string(abi.encodePacked("Rate mismatch for bps: ", vm.toString(bps))) - ); - } - } - - function testRevertOnTooHighBps() public { - vm.expectRevert(); - rates.turn(10001); - } -} diff --git a/test/RatesBase.t.sol b/test/RatesBase.t.sol deleted file mode 100644 index 90921be..0000000 --- a/test/RatesBase.t.sol +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "forge-std/Test.sol"; -import "./RatesMapping.sol"; - -interface RatesLike { - function MIN() external view returns (uint256); - function MAX() external view returns (uint256); - function turn(uint256 bps) external view returns (uint256); -} - -abstract contract RatesBase is Test { - RatesLike public calculator; - RatesMapping public ratesMapping; - - uint256 constant RAY = 1e27; - uint256 public immutable MIN; - uint256 public immutable MAX; - - constructor() { - calculator = createCalculator(); - ratesMapping = new RatesMapping(); - MIN = calculator.MIN(); - MAX = calculator.MAX(); - } - - function testAllValues() public view { - for (uint256 bps = MIN; bps <= MAX; bps += 1) { - uint256 mappingRate = ratesMapping.rates(bps); - uint256 calculatedRate = calculator.turn(bps); - assertEq( - calculatedRate, - mappingRate, - string.concat("Rate mismatch for ", vm.toString(bps), " basis points") - ); - } - } - - function testInvalidInputs() public { - if (MIN > 0) { - vm.expectRevert(); - calculator.turn(MIN - 1); - } - - if (MIN > 10) { - vm.expectRevert(); - calculator.turn(MIN - 10); - } - - vm.expectRevert(); - calculator.turn(MAX + 1); - - vm.expectRevert(); - calculator.turn(MAX + 1000); - } - - function testGasCosts() public { - // Measure deployment cost - uint256 gasBefore = gasleft(); - calculator = createCalculator(); - uint256 gasAfter = gasleft(); - uint256 deploymentGas = gasBefore - gasAfter; - console.log("Deployment gas cost:", deploymentGas); - - uint256 max; - uint256 min; - uint256 total; - - for (uint256 i = MIN; i <= MAX; i++) { - gasBefore = gasleft(); - calculator.turn(i); - gasAfter = gasleft(); - - uint256 gasSpent = gasBefore - gasAfter; - total += gasSpent; - if (gasSpent > max) max = gasSpent; - if (gasSpent < min || min == 0) min = gasSpent; - } - - console.log("Max gas spent:", max); - console.log("Min gas spent:", min); - console.log("Average gas spent:", total / (MAX - MIN + 1)); - } - - function createCalculator() internal virtual returns (RatesLike); -} diff --git a/test/repositories/Rates0To799.t.sol b/test/repositories/Rates0To799.t.sol deleted file mode 100644 index 2c59b1b..0000000 --- a/test/repositories/Rates0To799.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates0To799.sol"; - -contract Rates0To799Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates0To799())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates1600To2399.t.sol b/test/repositories/Rates1600To2399.t.sol deleted file mode 100644 index e4760f6..0000000 --- a/test/repositories/Rates1600To2399.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates1600To2399.sol"; - -contract Rates1600To2399Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates1600To2399())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates2400To3199.t.sol b/test/repositories/Rates2400To3199.t.sol deleted file mode 100644 index de46100..0000000 --- a/test/repositories/Rates2400To3199.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates2400To3199.sol"; - -contract Rates2400To3199Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates2400To3199())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates3200To3999.t.sol b/test/repositories/Rates3200To3999.t.sol deleted file mode 100644 index 401fbb0..0000000 --- a/test/repositories/Rates3200To3999.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates3200To3999.sol"; - -contract Rates3200To3999Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates3200To3999())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates4000To4799.t.sol b/test/repositories/Rates4000To4799.t.sol deleted file mode 100644 index 01d1c4a..0000000 --- a/test/repositories/Rates4000To4799.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates4000To4799.sol"; - -contract Rates4000To4799Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates4000To4799())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates4800To5599.t.sol b/test/repositories/Rates4800To5599.t.sol deleted file mode 100644 index 231c7ce..0000000 --- a/test/repositories/Rates4800To5599.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates4800To5599.sol"; - -contract Rates4800To5599Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates4800To5599())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates5600To6399.t.sol b/test/repositories/Rates5600To6399.t.sol deleted file mode 100644 index f3fb2be..0000000 --- a/test/repositories/Rates5600To6399.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates5600To6399.sol"; - -contract Rates5600To6399Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates5600To6399())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates6400To7199.t.sol b/test/repositories/Rates6400To7199.t.sol deleted file mode 100644 index 51772d0..0000000 --- a/test/repositories/Rates6400To7199.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates6400To7199.sol"; - -contract Rates6400To7199Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates6400To7199())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates7200To7999.t.sol b/test/repositories/Rates7200To7999.t.sol deleted file mode 100644 index 7a40272..0000000 --- a/test/repositories/Rates7200To7999.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates7200To7999.sol"; - -contract Rates7200To7999Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates7200To7999())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates8000To8799.t.sol b/test/repositories/Rates8000To8799.t.sol deleted file mode 100644 index c007e73..0000000 --- a/test/repositories/Rates8000To8799.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates8000To8799.sol"; - -contract Rates8000To8799Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates8000To8799())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates800To1599.t.sol b/test/repositories/Rates800To1599.t.sol deleted file mode 100644 index 5c0607f..0000000 --- a/test/repositories/Rates800To1599.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates800To1599.sol"; - -contract Rates800To1599Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates800To1599())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates8800To9599.t.sol b/test/repositories/Rates8800To9599.t.sol deleted file mode 100644 index 5c9296f..0000000 --- a/test/repositories/Rates8800To9599.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates8800To9599.sol"; - -contract Rates8800To9599Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates8800To9599())); - } -} \ No newline at end of file diff --git a/test/repositories/Rates9600To10000.t.sol b/test/repositories/Rates9600To10000.t.sol deleted file mode 100644 index 078850e..0000000 --- a/test/repositories/Rates9600To10000.t.sol +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity 0.8.19; - -import "../RatesBase.t.sol"; -import "../../src/repositories/Rates9600To10000.sol"; - -contract Rates9600To10000Test is RatesBase { - function createCalculator() internal override returns (RatesLike) { - return RatesLike(address(new Rates9600To10000())); - } -} \ No newline at end of file