diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 6537ca4..0000000 --- a/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -root = true - -[*] -charset = utf-8 -end_of_line = lf -insert_final_newline = true -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true - -[*.md] -trim_trailing_whitespace = false - -[*.{yml,yaml}] -indent_size = 2 diff --git a/.env.example b/.env.example deleted file mode 100644 index 39d9958..0000000 --- a/.env.example +++ /dev/null @@ -1,49 +0,0 @@ -APP_NAME="Tadah Eleven" -APP_ENV=local -APP_KEY= -APP_DEBUG=true -APP_URL=http://localhost - -LOG_CHANNEL=stack -LOG_LEVEL=debug - -DB_CONNECTION=mysql -DB_HOST=127.0.0.1 -DB_PORT=3306 -DB_DATABASE=tadah -DB_USERNAME=tadah -DB_PASSWORD= - -BROADCAST_DRIVER=log -CACHE_DRIVER=file -QUEUE_CONNECTION=sync -SESSION_DRIVER=file -SESSION_LIFETIME=120 - -MEMCACHED_HOST=127.0.0.1 - -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER= -MAIL_HOST= -MAIL_PORT= -MAIL_USERNAME= -MAIL_PASSWORD= -MAIL_ENCRYPTION=ssl -MAIL_FROM_ADDRESS= -MAIL_FROM_NAME="${APP_NAME}" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= - -PUSHER_APP_ID= -PUSHER_APP_KEY= -PUSHER_APP_SECRET= -PUSHER_APP_CLUSTER=mt1 - -MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" -MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 967315d..0000000 --- a/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -* text=auto -*.css linguist-vendored -*.scss linguist-vendored -*.js linguist-vendored -CHANGELOG.md export-ignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0ae59f0..0000000 --- a/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -/node_modules -/public/hot -/public/storage -/storage/*.key -/vendor -.env -.env.backup -.phpunit.result.cache -docker-compose.override.yml -Homestead.json -Homestead.yaml -npm-debug.log -yarn-error.log diff --git a/.styleci.yml b/.styleci.yml deleted file mode 100644 index 9231873..0000000 --- a/.styleci.yml +++ /dev/null @@ -1,13 +0,0 @@ -php: - preset: laravel - disabled: - - no_unused_imports - finder: - not-name: - - index.php - - server.php -js: - finder: - not-name: - - webpack.mix.js -css: true diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index f288702..0000000 --- a/LICENSE.md +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/README.md b/README.md deleted file mode 100644 index 7625aba..0000000 --- a/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Tadah Eleven -Atrocious bullshit from August of 2021 that uses bad, ugly, and old August 2021 Tadah code with ***unfinished*** 2011 Roblox views. (Seriously, the register page isn't even functional). - -***I AM NOT PROVIDING SUPPORT FOR THIS CODE!*** Good on you if you manage to repair it to a good-enough state. It's kind of ugly, though. Really ugly. - -# License -GPLv3 diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php deleted file mode 100644 index 69914e9..0000000 --- a/app/Console/Kernel.php +++ /dev/null @@ -1,41 +0,0 @@ -command('inspire')->hourly(); - } - - /** - * Register the commands for the application. - * - * @return void - */ - protected function commands() - { - $this->load(__DIR__.'/Commands'); - - require base_path('routes/console.php'); - } -} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php deleted file mode 100644 index c18c43c..0000000 --- a/app/Exceptions/Handler.php +++ /dev/null @@ -1,41 +0,0 @@ -reportable(function (Throwable $e) { - // - }); - } -} diff --git a/app/External/CloudflareHelper.php b/app/External/CloudflareHelper.php deleted file mode 100644 index 093668e..0000000 --- a/app/External/CloudflareHelper.php +++ /dev/null @@ -1,5 +0,0 @@ -. -// -// Copyright A Beautiful Site, LLC. -// -// Source: https://github.com/claviska/SimpleImage -// -// Licensed under the MIT license -// - -namespace claviska; - -/** - * A PHP class that makes working with images as simple as possible. - */ -class SimpleImage { - - const - ERR_FILE_NOT_FOUND = 1, - ERR_FONT_FILE = 2, - ERR_FREETYPE_NOT_ENABLED = 3, - ERR_GD_NOT_ENABLED = 4, - ERR_INVALID_COLOR = 5, - ERR_INVALID_DATA_URI = 6, - ERR_INVALID_IMAGE = 7, - ERR_LIB_NOT_LOADED = 8, - ERR_UNSUPPORTED_FORMAT = 9, - ERR_WEBP_NOT_ENABLED = 10, - ERR_WRITE = 11; - - - protected $image; - protected $mimeType; - protected $exif; - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Magic methods - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Creates a new SimpleImage object. - * - * @param string $image An image file or a data URI to load. - * @throws \Exception Thrown if the GD library is not found; file|URI or image data is invalid. - */ - public function __construct($image = null) { - // Check for the required GD extension - if(extension_loaded('gd')) { - // Ignore JPEG warnings that cause imagecreatefromjpeg() to fail - ini_set('gd.jpeg_ignore_warning', 1); - } else { - throw new \Exception('Required extension GD is not loaded.', self::ERR_GD_NOT_ENABLED); - } - - // Load an image through the constructor - if(preg_match('/^data:(.*?);/', $image)) { - $this->fromDataUri($image); - } elseif($image) { - $this->fromFile($image); - } - } - - /** - * Destroys the image resource. - */ - public function __destruct() { - //Check for a valid GDimage instance - $type_check = (gettype($this->image) == "object" && get_class($this->image) == "GdImage"); - - if($this->image !== null && is_resource($this->image) && $type_check) { - imagedestroy($this->image); - } - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Loaders - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Loads an image from a data URI. - * - * @param string $uri A data URI. - * @throws \Exception Thrown if URI or image data is invalid. - * @return \claviska\SimpleImage - */ - public function fromDataUri($uri) { - // Basic formatting check - preg_match('/^data:(.*?);/', $uri, $matches); - if(!count($matches)) { - throw new \Exception('Invalid data URI.', self::ERR_INVALID_DATA_URI); - } - - // Determine mime type - $this->mimeType = $matches[1]; - if(!preg_match('/^image\/(gif|jpeg|png)$/', $this->mimeType)) { - throw new \Exception( - 'Unsupported format: ' . $this->mimeType, - self::ERR_UNSUPPORTED_FORMAT - ); - } - - // Get image data - $uri = base64_decode(preg_replace('/^data:(.*?);base64,/', '', $uri)); - $this->image = imagecreatefromstring($uri); - if(!$this->image) { - throw new \Exception("Invalid image data.", self::ERR_INVALID_IMAGE); - } - - return $this; - } - - /** - * Loads an image from a file. - * - * @param string $file The image file to load. - * @throws \Exception Thrown if file or image data is invalid. - * @return \claviska\SimpleImage - */ - public function fromFile($file) { - // Check if the file exists and is readable. We're using fopen() instead of file_exists() - // because not all URL wrappers support the latter. - $handle = @fopen($file, 'r'); - if($handle === false) { - throw new \Exception("File not found: $file", self::ERR_FILE_NOT_FOUND); - } - fclose($handle); - - // Get image info - $info = @getimagesize($file); - if($info === false) { - throw new \Exception("Invalid image file: $file", self::ERR_INVALID_IMAGE); - } - $this->mimeType = $info['mime']; - - // Create image object from file - switch($this->mimeType) { - case 'image/gif': - // Load the gif - $gif = imagecreatefromgif($file); - if($gif) { - // Copy the gif over to a true color image to preserve its transparency. This is a - // workaround to prevent imagepalettetruecolor() from borking transparency. - $width = imagesx($gif); - $height = imagesy($gif); - $this->image = imagecreatetruecolor($width, $height); - $transparentColor = imagecolorallocatealpha($this->image, 0, 0, 0, 127); - imagecolortransparent($this->image, $transparentColor); - imagefill($this->image, 0, 0, $transparentColor); - imagecopy($this->image, $gif, 0, 0, 0, 0, $width, $height); - imagedestroy($gif); - } - break; - case 'image/jpeg': - $this->image = imagecreatefromjpeg($file); - break; - case 'image/png': - $this->image = imagecreatefrompng($file); - break; - case 'image/webp': - $this->image = imagecreatefromwebp($file); - break; - case 'image/bmp': - case 'image/x-ms-bmp': - case 'image/x-windows-bmp': - $this->image = imagecreatefrombmp($file); - break; - } - if(!$this->image) { - throw new \Exception("Unsupported format: " . $this->mimeType, self::ERR_UNSUPPORTED_FORMAT); - } - - // Convert pallete images to true color images - imagepalettetotruecolor($this->image); - - // Load exif data from JPEG images - if($this->mimeType === 'image/jpeg' && function_exists('exif_read_data')) { - $this->exif = @exif_read_data($file); - } - - return $this; - } - - /** - * Creates a new image. - * - * @param integer $width The width of the image. - * @param integer $height The height of the image. - * @param string|array $color Optional fill color for the new image (default 'transparent'). - * @return \claviska\SimpleImage - */ - public function fromNew($width, $height, $color = 'transparent') { - $this->image = imagecreatetruecolor($width, $height); - - // Use PNG for dynamically created images because it's lossless and supports transparency - $this->mimeType = 'image/png'; - - // Fill the image with color - $this->fill($color); - - return $this; - } - - /** - * Creates a new image from a string. - * - * @param string $string The raw image data as a string. - * @example - * $string = file_get_contents('image.jpg'); - * @return \claviska\SimpleImage - */ - public function fromString($string) { - return $this->fromFile('data://;base64,' . base64_encode($string)); - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Savers - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Generates an image. - * - * @param string $mimeType The image format to output as a mime type (defaults to the original mime type). - * @param integer $quality Image quality as a percentage (default 100). - * @throws \Exception Thrown when WEBP support is not enabled or unsupported format. - * @return array Returns an array containing the image data and mime type ['data' => '', 'mimeType' => '']. - */ - protected function generate($mimeType = null, $quality = 100) { - // Format defaults to the original mime type - $mimeType = $mimeType ?: $this->mimeType; - - // Ensure quality is a valid integer - if($quality === null) $quality = 100; - $quality = self::keepWithin((int) $quality, 0, 100); - - // Capture output - ob_start(); - - // Generate the image - switch($mimeType) { - - case 'image/gif': - imagesavealpha($this->image, true); - imagegif($this->image, null); - break; - case 'image/jpeg': - imageinterlace($this->image, true); - imagejpeg($this->image, null, $quality); - break; - case 'image/png': - imagesavealpha($this->image, true); - imagepng($this->image); - break; - case 'image/webp': - // Not all versions of PHP will have webp support enabled - if(!function_exists('imagewebp')) { - throw new \Exception( - 'WEBP support is not enabled in your version of PHP.', - self::ERR_WEBP_NOT_ENABLED - ); - } - imagesavealpha($this->image, true); - imagewebp($this->image, null, $quality); - break; - case 'image/bmp': - case 'image/x-ms-bmp': - case 'image/x-windows-bmp': - // Not all versions of PHP support bmp - if(!function_exists('imagebmp')) { - throw new \Exception( - 'BMP support is not available in your version of PHP.', - self::ERR_UNSUPPORTED_FORMAT - ); - } - imageinterlace($this->image, true); - imagebmp($this->image, null, $quality); - break; - default: - throw new \Exception('Unsupported format: ' . $mimeType, self::ERR_UNSUPPORTED_FORMAT); - } - - // Stop capturing - $data = ob_get_contents(); - ob_end_clean(); - - return [ - 'data' => $data, - 'mimeType' => $mimeType - ]; - } - - /** - * Generates a data URI. - * - * @param string $mimeType The image format to output as a mime type (defaults to the original mime type). - * @param integer $quality Image quality as a percentage (default 100). - * @return string Returns a string containing a data URI. - */ - public function toDataUri($mimeType = null, $quality = 100) { - $image = $this->generate($mimeType, $quality); - - return 'data:' . $image['mimeType'] . ';base64,' . base64_encode($image['data']); - } - - /** - * Forces the image to be downloaded to the clients machine. Must be called before any output is sent to the screen. - * - * @param string $filename The filename (without path) to send to the client (e.g. 'image.jpeg'). - * @param string $mimeType The image format to output as a mime type (defaults to the original mime type). - * @param integer $quality Image quality as a percentage (default 100). - * @return \claviska\SimpleImage - */ - public function toDownload($filename, $mimeType = null, $quality = 100) { - $image = $this->generate($mimeType, $quality); - - // Set download headers - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header('Content-Description: File Transfer'); - header('Content-Length: ' . strlen($image['data'])); - header('Content-Transfer-Encoding: Binary'); - header('Content-Type: application/octet-stream'); - header("Content-Disposition: attachment; filename=\"$filename\""); - - echo $image['data']; - - return $this; - } - - /** - * Writes the image to a file. - * - * @param string $file The image format to output as a mime type (defaults to the original mime type). - * @param string $mimeType Image quality as a percentage (default 100). - * @param integer $quality Image quality as a percentage (default 100). - * @throws \Exception Thrown if failed write to file. - * @return \claviska\SimpleImage - */ - public function toFile($file, $mimeType = null, $quality = 100) { - $image = $this->generate($mimeType, $quality); - - // Save the image to file - if(!file_put_contents($file, $image['data'])) { - throw new \Exception("Failed to write image to file: $file", self::ERR_WRITE); - } - - return $this; - } - - /** - * Outputs the image to the screen. Must be called before any output is sent to the screen. - * - * @param string $mimeType The image format to output as a mime type (defaults to the original mime type). - * @param integer $quality Image quality as a percentage (default 100). - * @return \claviska\SimpleImage - */ - public function toScreen($mimeType = null, $quality = 100) { - $image = $this->generate($mimeType, $quality); - - // Output the image to stdout - header('Content-Type: ' . $image['mimeType']); - echo $image['data']; - - return $this; - } - - /** - * Generates an image string. - * - * @param string $mimeType The image format to output as a mime type (defaults to the original mime type). - * @param integer $quality Image quality as a percentage (default 100). - * @return string - */ - public function toString($mimeType = null, $quality = 100) { - return $this->generate($mimeType, $quality)['data']; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Utilities - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Ensures a numeric value is always within the min and max range. - * - * @param integer|float $value A numeric value to test. - * @param integer|float $min The minimum allowed value. - * @param integer|float $max The maximum allowed value. - * @return integer|float - */ - protected static function keepWithin($value, $min, $max) { - if($value < $min) return $min; - if($value > $max) return $max; - return $value; - } - - /** - * Gets the image's current aspect ratio. - * - * @return float Returns the aspect ratio as a float. - */ - public function getAspectRatio() { - return $this->getWidth() / $this->getHeight(); - } - - /** - * Gets the image's exif data. - * - * @return array|NULL Returns an array of exif data or null if no data is available. - */ - public function getExif() { - return isset($this->exif) ? $this->exif : null; - } - - /** - * Gets the image's current height. - * - * @return integer - */ - public function getHeight() { - return (int) imagesy($this->image); - } - - /** - * Gets the mime type of the loaded image. - * - * @return string - */ - public function getMimeType() { - return $this->mimeType; - } - - /** - * Gets the image's current orientation. - * - * @return string One of the values: 'landscape', 'portrait', or 'square' - */ - public function getOrientation() { - $width = $this->getWidth(); - $height = $this->getHeight(); - - if($width > $height) return 'landscape'; - if($width < $height) return 'portrait'; - return 'square'; - } - - /** - * Gets the resolution of the image - * - * @return mixed The resolution as an array of integers: [96, 96] - */ - public function getResolution() { - return imageresolution($this->image); - } - - /** - * Gets the image's current width. - * - * @return integer - */ - public function getWidth() { - return (int) imagesx($this->image); - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Manipulation - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Same as PHP's imagecopymerge, but works with transparent images. Used internally for overlay. - * - * @param resource $dstIm Destination image link resource. - * @param resource $srcIm Source image link resource. - * @param integer $dstX x-coordinate of destination point. - * @param integer $dstY y-coordinate of destination point. - * @param integer $srcX x-coordinate of source point. - * @param integer $srcY y-coordinate of source point. - * @param integer $srcW Source width. - * @param integer $srcH Source height. - * @param integer $pct - * @return boolean true if success. - */ - protected static function imageCopyMergeAlpha($dstIm, $srcIm, $dstX, $dstY, $srcX, $srcY, $srcW, $srcH, $pct) { - // Are we merging with transparency? - if($pct < 100) { - // Disable alpha blending and "colorize" the image using a transparent color - imagealphablending($srcIm, false); - imagefilter($srcIm, IMG_FILTER_COLORIZE, 0, 0, 0, 127 * ((100 - $pct) / 100)); - } - - imagecopy($dstIm, $srcIm, $dstX, $dstY, $srcX, $srcY, $srcW, $srcH); - - return true; - } - - /** - * Rotates an image so the orientation will be correct based on its exif data. It is safe to call - * this method on images that don't have exif data (no changes will be made). - * - * @return \claviska\SimpleImage - */ - public function autoOrient() { - $exif = $this->getExif(); - - if(!$exif || !isset($exif['Orientation'])){ - return $this; - } - - switch($exif['Orientation']) { - case 1: // Do nothing! - break; - case 2: // Flip horizontally - $this->flip('x'); - break; - case 3: // Rotate 180 degrees - $this->rotate(180); - break; - case 4: // Flip vertically - $this->flip('y'); - break; - case 5: // Rotate 90 degrees clockwise and flip vertically - $this->flip('y')->rotate(90); - break; - case 6: // Rotate 90 clockwise - $this->rotate(90); - break; - case 7: // Rotate 90 clockwise and flip horizontally - $this->flip('x')->rotate(90); - break; - case 8: // Rotate 90 counterclockwise - $this->rotate(-90); - break; - } - - return $this; - } - - /** - * Proportionally resize the image to fit inside a specific width and height. - * - * @param integer $maxWidth The maximum width the image can be. - * @param integer $maxHeight The maximum height the image can be. - * @return \claviska\SimpleImage - */ - public function bestFit($maxWidth, $maxHeight) { - // If the image already fits, there's nothing to do - if($this->getWidth() <= $maxWidth && $this->getHeight() <= $maxHeight) { - return $this; - } - - // Calculate max width or height based on orientation - if($this->getOrientation() === 'portrait') { - $height = $maxHeight; - $width = $maxHeight * $this->getAspectRatio(); - } else { - $width = $maxWidth; - $height = $maxWidth / $this->getAspectRatio(); - } - - // Reduce to max width - if($width > $maxWidth) { - $width = $maxWidth; - $height = $width / $this->getAspectRatio(); - } - - // Reduce to max height - if($height > $maxHeight) { - $height = $maxHeight; - $width = $height * $this->getAspectRatio(); - } - - return $this->resize($width, $height); - } - - /** - * Crop the image. - * - * @param integer|float $x1 Top left x coordinate. - * @param integer|float $y1 Top left y coordinate. - * @param integer|float $x2 Bottom right x coordinate. - * @param integer|float $y2 Bottom right x coordinate. - * @return \claviska\SimpleImage - */ - public function crop($x1, $y1, $x2, $y2) { - // Keep crop within image dimensions - $x1 = self::keepWithin($x1, 0, $this->getWidth()); - $x2 = self::keepWithin($x2, 0, $this->getWidth()); - $y1 = self::keepWithin($y1, 0, $this->getHeight()); - $y2 = self::keepWithin($y2, 0, $this->getHeight()); - - // Avoid using native imagecrop() because of a bug with PNG transparency - $dstW = abs($x2 - $x1); - $dstH = abs($y2 - $y1); - $newImage = imagecreatetruecolor($dstW, $dstH); - $transparentColor = imagecolorallocatealpha($newImage, 0, 0, 0, 127); - imagecolortransparent($newImage, $transparentColor); - imagefill($newImage, 0, 0, $transparentColor); - - // Crop it - imagecopyresampled( - $newImage, - $this->image, - 0, 0, min($x1, $x2), min($y1, $y2), - $dstW, - $dstH, - $dstW, - $dstH - ); - - // Swap out the new image - $this->image = $newImage; - - return $this; - } - - /** - * Applies a duotone filter to the image. - * - * @param string|array $lightColor The lightest color in the duotone. - * @param string|array $darkColor The darkest color in the duotone. - * @return \claviska\SimpleImage - */ - function duotone($lightColor, $darkColor) { - $lightColor = self::normalizeColor($lightColor); - $darkColor = self::normalizeColor($darkColor); - - // Calculate averages between light and dark colors - $redAvg = $lightColor['red'] - $darkColor['red']; - $greenAvg = $lightColor['green'] - $darkColor['green']; - $blueAvg = $lightColor['blue'] - $darkColor['blue']; - - // Create a matrix of all possible duotone colors based on gray values - $pixels = []; - for($i = 0; $i <= 255; $i++) { - $grayAvg = $i / 255; - $pixels['red'][$i] = $darkColor['red'] + $grayAvg * $redAvg; - $pixels['green'][$i] = $darkColor['green'] + $grayAvg * $greenAvg; - $pixels['blue'][$i] = $darkColor['blue'] + $grayAvg * $blueAvg; - } - - // Apply the filter pixel by pixel - for($x = 0; $x < $this->getWidth(); $x++) { - for($y = 0; $y < $this->getHeight(); $y++) { - $rgb = $this->getColorAt($x, $y); - $gray = min(255, round(0.299 * $rgb['red'] + 0.114 * $rgb['blue'] + 0.587 * $rgb['green'])); - $this->dot($x, $y, [ - 'red' => $pixels['red'][$gray], - 'green' => $pixels['green'][$gray], - 'blue' => $pixels['blue'][$gray] - ]); - } - } - - return $this; - } - - /** - * Proportionally resize the image to a specific height. - * - * @deprecated - * This method was deprecated in version 3.2.2 and will be removed in version 4.0. - * Please use `resize(null, $height)` instead. - * @param integer $height - * @return \claviska\SimpleImage - */ - public function fitToHeight($height) { - return $this->resize(null, $height); - } - - /** - * Proportionally resize the image to a specific width. - * - * @deprecated - * This method was deprecated in version 3.2.2 and will be removed in version 4.0. - * Please use `resize(null, $height)` instead. - * @param integer $width The width to resize the image to. - * @return \claviska\SimpleImage - */ - public function fitToWidth($width) { - return $this->resize($width, null); - } - - /** - * Flip the image horizontally or vertically. - * - * @param string $direction The direction to flip: x|y|both. - * @return \claviska\SimpleImage - */ - public function flip($direction) { - switch($direction) { - case 'x': - imageflip($this->image, IMG_FLIP_HORIZONTAL); - break; - case 'y': - imageflip($this->image, IMG_FLIP_VERTICAL); - break; - case 'both': - imageflip($this->image, IMG_FLIP_BOTH); - break; - } - - return $this; - } - - /** - * Reduces the image to a maximum number of colors. - * - * @param integer $max The maximum number of colors to use. - * @param boolean $dither Whether or not to use a dithering effect (default true). - * @return \claviska\SimpleImage - */ - public function maxColors($max, $dither = true) { - imagetruecolortopalette($this->image, $dither, max(1, $max)); - - return $this; - } - - /** - * Place an image on top of the current image. - * - * @param string|SimpleImage $overlay The image to overlay. This can be a filename, a data URI, or a SimpleImage object. - * @param string $anchor The anchor point: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (default 'center'). - * @param float $opacity The opacity level of the overlay 0-1 (default 1). - * @param integer $xOffset Horizontal offset in pixels (default 0). - * @param integer $yOffset Vertical offset in pixels (default 0). - * @param bool $calculateOffsetFromEdge Calculate Offset referring to the edges of the image (default false). - * @return \claviska\SimpleImage - */ - public function overlay($overlay, $anchor = 'center', $opacity = 1, $xOffset = 0, $yOffset = 0, $calculateOffsetFromEdge = false) { - // Load overlay image - if(!($overlay instanceof SimpleImage)) $overlay = new SimpleImage($overlay); - - // Convert opacity - $opacity = self::keepWithin($opacity, 0, 1) * 100; - - // Get available space - $spaceX = $this->getWidth() - $overlay->getWidth(); - $spaceY = $this->getHeight() - $overlay->getHeight(); - - // Set default center - $x = ($spaceX / 2) + ($calculateOffsetFromEdge ? 0 : $xOffset); - $y = ($spaceY / 2) + ($calculateOffsetFromEdge ? 0 : $yOffset); - - // Determine if top|bottom - if (strpos($anchor, 'top') !== false) { - $y = $yOffset; - } elseif (strpos($anchor, 'bottom') !== false) { - $y = $spaceY + ($calculateOffsetFromEdge ? -$yOffset : $yOffset); - } - - // Determine if left|right - if (strpos($anchor, 'left') !== false) { - $x = $xOffset; - } elseif (strpos($anchor, 'right') !== false) { - $x = $spaceX + ($calculateOffsetFromEdge ? -$xOffset : $xOffset); - } - - // Perform the overlay - self::imageCopyMergeAlpha( - $this->image, - $overlay->image, - $x, $y, - 0, 0, - $overlay->getWidth(), - $overlay->getHeight(), - $opacity - ); - - return $this; - } - - /** - * Resize an image to the specified dimensions. If only one dimension is specified, the image will be resized proportionally. - * - * @param integer $width The new image width. - * @param integer $height The new image height. - * @return \claviska\SimpleImage - */ - public function resize($width = null, $height = null) { - // No dimentions specified - if(!$width && !$height) { - return $this; - } - - // Resize to width - if($width && !$height) { - $height = $width / $this->getAspectRatio(); - } - - // Resize to height - if(!$width && $height) { - $width = $height * $this->getAspectRatio(); - } - - // If the dimensions are the same, there's no need to resize - if($this->getWidth() === $width && $this->getHeight() === $height) { - return $this; - } - - // We can't use imagescale because it doesn't seem to preserve transparency properly. The - // workaround is to create a new truecolor image, allocate a transparent color, and copy the - // image over to it using imagecopyresampled. - $newImage = imagecreatetruecolor($width, $height); - $transparentColor = imagecolorallocatealpha($newImage, 0, 0, 0, 127); - imagecolortransparent($newImage, $transparentColor); - imagefill($newImage, 0, 0, $transparentColor); - imagecopyresampled( - $newImage, - $this->image, - 0, 0, 0, 0, - $width, - $height, - $this->getWidth(), - $this->getHeight() - ); - - // Swap out the new image - $this->image = $newImage; - - return $this; - } - - /** - * Sets an image's resolution, as per https://www.php.net/manual/en/function.imageresolution.php - * - * @param integer $res_x The horizontal resolution in DPI. - * @param integer $res_y The vertical resolution in DPI - * @return \claviska\SimpleImage - */ - public function resolution($res_x, $res_y = null) { - if(is_null($res_y)) { - imageresolution($this->image, $res_x); - } else { - imageresolution($this->image, $res_x, $res_y); - } - - return $this; - } - - /** - * Rotates the image. - * - * @param integer $angle The angle of rotation (-360 - 360). - * @param string|array $backgroundColor The background color to use for the uncovered zone area after rotation (default 'transparent'). - * @return \claviska\SimpleImage - */ - public function rotate($angle, $backgroundColor = 'transparent') { - // Rotate the image on a canvas with the desired background color - $backgroundColor = $this->allocateColor($backgroundColor); - - $this->image = imagerotate( - $this->image, - -(self::keepWithin($angle, -360, 360)), - $backgroundColor - ); - imagecolortransparent($this->image, imagecolorallocatealpha($this->image, 0, 0, 0, 127)); - - return $this; - } - - /** - * Adds text to the image. - * - * @param string $text The desired text. - * @param array $options - * An array of options. - * - fontFile* (string) - The TrueType (or compatible) font file to use. - * - size (integer) - The size of the font in pixels (default 12). - * - color (string|array) - The text color (default black). - * - anchor (string) - The anchor point: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (default 'center'). - * - xOffset (integer) - The horizontal offset in pixels (default 0). - * - yOffset (integer) - The vertical offset in pixels (default 0). - * - shadow (array) - Text shadow params. - * - x* (integer) - Horizontal offset in pixels. - * - y* (integer) - Vertical offset in pixels. - * - color* (string|array) - The text shadow color. - * - $calculateOffsetFromEdge (bool) - Calculate offsets from the edge of the image (default false). - * - $baselineAlign (bool) - Align the text font with the baseline. (default true). - * @param array $boundary - * If passed, this variable will contain an array with coordinates that surround the text: [x1, y1, x2, y2, width, height]. - * This can be used for calculating the text's position after it gets added to the image. - * @throws \Exception - * @return \claviska\SimpleImage - */ - public function text($text, $options, &$boundary = null) { - // Check for freetype support - if(!function_exists('imagettftext')) { - throw new \Exception( - 'Freetype support is not enabled in your version of PHP.', - self::ERR_FREETYPE_NOT_ENABLED - ); - } - - // Default options - $options = array_merge([ - 'fontFile' => null, - 'size' => 12, - 'color' => 'black', - 'anchor' => 'center', - 'xOffset' => 0, - 'yOffset' => 0, - 'shadow' => null, - 'calculateOffsetFromEdge' => false, - 'baselineAlign' => true - ], $options); - - // Extract and normalize options - $fontFile = $options['fontFile']; - $size = ($options['size'] / 96) * 72; // Convert px to pt (72pt per inch, 96px per inch) - $color = $this->allocateColor($options['color']); - $anchor = $options['anchor']; - $xOffset = $options['xOffset']; - $yOffset = $options['yOffset']; - $calculateOffsetFromEdge = $options['calculateOffsetFromEdge']; - $baselineAlign = $options['baselineAlign']; - $angle = 0; - - // Calculate the bounding box dimensions - // - // Since imagettfbox() returns a bounding box from the text's baseline, we can end up with - // different heights for different strings of the same font size. For example, 'type' will often - // be taller than 'text' because the former has a descending letter. - // - // To compensate for this, we created a temporary bounding box to measure the maximum height - // that the font used can occupy. Based on this, we can adjust the text vertically so that it - // appears inside the box with a good consistency. - // - // See: https://github.com/claviska/SimpleImage/issues/165 - // - - $boxText = imagettfbbox($size, $angle, $fontFile, $text); - if(!$boxText) throw new \Exception("Unable to load font file: $fontFile", self::ERR_FONT_FILE); - - $boxWidth = abs($boxText[4] - $boxText[0]); - $boxHeight = abs($boxText[5] - $boxText[1]); - - // Calculate Offset referring to the edges of the image. - // Just invert the value for bottom|right; - if ($calculateOffsetFromEdge == true) { - if (strpos($anchor, 'bottom') !== false) $yOffset *= -1; - if (strpos($anchor, 'right') !== false) $xOffset *= -1; - } - - // Align the text font with the baseline. - // I use $yOffset to inject the vertical alignment correction value. - if ($baselineAlign == true) { - // Create a temporary box to obtain the maximum height that this font can use. - $boxFull = imagettfbbox($size, $angle, $fontFile, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'); - // Based on the maximum height, the text is aligned. - if (strpos($anchor, 'bottom') !== false) { - $yOffset -= $boxFull[1]; - } elseif (strpos($anchor, 'top') !== false) { - $yOffset += abs($boxFull[5]) - $boxHeight; - } else { // center - $boxFullHeight = abs($boxFull[1]) + abs($boxFull[5]); - $yOffset += ($boxFullHeight/2) - ($boxHeight/2) - abs($boxFull[1]); - } - - } else { - // Prevents fonts rendered outside the box boundary from being cut. - // Example: 'Scriptina' font, some letters invade the space of the previous or subsequent letter. - $yOffset -= $boxText[1]; - } - - // Prevents fonts rendered outside the box boundary from being cut. - // Example: 'Scriptina' font, some letters invade the space of the previous or subsequent letter. - $xOffset -= $boxText[0]; - - // Determine position - switch($anchor) { - case 'top left': - $x = $xOffset; - $y = $yOffset + $boxHeight; - break; - case 'top right': - $x = $this->getWidth() - $boxWidth + $xOffset; - $y = $yOffset + $boxHeight; - break; - case 'top': - $x = ($this->getWidth() / 2) - ($boxWidth / 2) + $xOffset; - $y = $yOffset + $boxHeight; - break; - case 'bottom left': - $x = $xOffset; - $y = $this->getHeight() + $yOffset ; - break; - case 'bottom right': - $x = $this->getWidth() - $boxWidth + $xOffset; - $y = $this->getHeight() + $yOffset; - break; - case 'bottom': - $x = ($this->getWidth() / 2) - ($boxWidth / 2) + $xOffset; - $y = $this->getHeight() + $yOffset; - break; - case 'left': - $x = $xOffset; - $y = ($this->getHeight() / 2) - (($boxHeight / 2) - $boxHeight) + $yOffset; - break; - case 'right'; - $x = $this->getWidth() - $boxWidth + $xOffset; - $y = ($this->getHeight() / 2) - (($boxHeight / 2) - $boxHeight) + $yOffset; - break; - default: // center - $x = ($this->getWidth() / 2) - ($boxWidth / 2) + $xOffset; - $y = ($this->getHeight() / 2) - (($boxHeight / 2) - $boxHeight) + $yOffset; - break; - } - $x = (int) round($x); - $y = (int) round($y); - - // Pass the boundary back by reference - $boundary = [ - 'x1' => $x + $boxText[0], - 'y1' => $y + $boxText[1] - $boxHeight, // $y is the baseline, not the top! - 'x2' => $x + $boxWidth + $boxText[0], - 'y2' => $y + $boxText[1], - 'width' => $boxWidth, - 'height' => $boxHeight - ]; - - // Text shadow - if(is_array($options['shadow'])) { - imagettftext( - $this->image, - $size, - $angle, - $x + $options['shadow']['x'], - $y + $options['shadow']['y'], - $this->allocateColor($options['shadow']['color']), - $fontFile, - $text - ); - } - - // Draw the text - imagettftext($this->image, $size, $angle, $x, $y, $color, $fontFile, $text); - - return $this; - } - - /** - * Adds text with a line break to the image. - * - * @param string $text The desired text. - * @param array $options - * An array of options. - * - fontFile* (string) - The TrueType (or compatible) font file to use. - * - size (integer) - The size of the font in pixels (default 12). - * - color (string|array) - The text color (default black). - * - anchor (string) - The anchor point: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (default 'center'). - * - xOffset (integer) - The horizontal offset in pixels (default 0). Has no effect when anchor is 'center'. - * - yOffset (integer) - The vertical offset in pixels (default 0). Has no effect when anchor is 'center'. - * - shadow (array) - Text shadow params. - * - x* (integer) - Horizontal offset in pixels. - * - y* (integer) - Vertical offset in pixels. - * - color* (string|array) - The text shadow color. - * - $calculateOffsetFromEdge (bool) - Calculate offsets from the edge of the image (default false). - * - width (int) - Width of text box (default image width). - * - align (string) - How to align text: 'left', 'right', 'center', 'justify' (default 'left'). - * - leading (float) - Increase/decrease spacing between lines of text (default 0). - * - opacity (float) - The opacity level of the text 0-1 (default 1). - * @throws \Exception - * @return \claviska\SimpleImage - */ - public function textBox($text, $options) { - // default width of image - $maxWidth = $this->getWidth(); - // Default options - $options = array_merge([ - 'fontFile' => null, - 'size' => 12, - 'color' => 'black', - 'anchor' => 'center', - 'xOffset' => 0, - 'yOffset' => 0, - 'shadow' => null, - 'calculateOffsetFromEdge' => false, - 'width' => $maxWidth, - 'align' => 'left', - 'leading' => 0, - 'opacity' => 1 - ], $options); - - // Extract and normalize options - $fontFile = $options['fontFile']; - $fontSize = $fontSizePx = $options['size']; - $fontSize = ($fontSize / 96) * 72; // Convert px to pt (72pt per inch, 96px per inch) - $color = $options['color']; - $anchor = $options['anchor']; - $xOffset = $options['xOffset']; - $yOffset = $options['yOffset']; - $shadow = $options['shadow']; - $calculateOffsetFromEdge = $options['calculateOffsetFromEdge']; - $angle = 0; - $maxWidth = $options['width']; - $leading = $options['leading']; - $leading = self::keepWithin($leading, ($fontSizePx * -1), $leading); - $opacity = $options['opacity']; - - $align = $options['align']; - if ($align == 'right') { - $align = 'top right'; - } elseif ($align == 'center') { - $align = 'top'; - } elseif ($align == 'justify') { - $align = 'justify'; - } else { - $align = 'top left'; - } - - list($lines, $isLastLine, $lastLineHeight) = self::textSeparateLines($text, $fontFile, $fontSize, $maxWidth); - - $maxHeight = (count($lines) - 1) * ($fontSizePx * 1.2 + $leading) + $lastLineHeight; - - $imageText = new SimpleImage(); - $imageText->fromNew($maxWidth, $maxHeight); - - // Align left/center/right - if ($align <> 'justify') { - foreach ($lines as $key => $line) { - if( $align == 'top' ) $line = trim($line); // If is justify = 'center' - $imageText->text($line, array( - 'fontFile' => $fontFile, - 'size' => $fontSizePx, - 'color' => $color, - 'anchor' => $align, - 'xOffset' => 0, - 'yOffset' => $key * ($fontSizePx * 1.2 + $leading), - 'shadow' => $shadow, - 'calculateOffsetFromEdge' => true - )); - } - - // Justify - } else { - foreach ($lines as $keyLine => $line) { - // Check if there are spaces at the beginning of the sentence - $spaces = 0; - if (preg_match("/^\s+/", $line, $match)) { - // Count spaces - $spaces = strlen($match[0]); - $line = ltrim($line); - } - - // Separate words - $words = preg_split("/\s+/", $line); - // Include spaces with the first word - $words[0] = str_repeat(' ', $spaces) . $words[0]; - - // Calculates the space occupied by all words - $wordsSize = array(); - foreach ($words as $key => $word) { - $wordBox = imagettfbbox($fontSize, 0, $fontFile, $word); - $wordWidth = abs($wordBox[4] - $wordBox[0]); - $wordsSize[$key] = $wordWidth; - } - $wordsSizeTotal = array_sum($wordsSize); - - // Calculates the required space between words - $countWords = count($words); - $wordSpacing = 0; - if ($countWords > 1) { - $wordSpacing = ($maxWidth - $wordsSizeTotal) / ($countWords - 1); - $wordSpacing = round($wordSpacing, 3); - } - - $xOffsetJustify = 0; - foreach ($words as $key => $word) { - if ($isLastLine[$keyLine] == true) { - if ($key < (count($words) - 1)) continue; - $word = $line; - } - $imageText->text($word, array( - 'fontFile' => $fontFile, - 'size' => $fontSizePx, - 'color' => $color, - 'anchor' => 'top left', - 'xOffset' => $xOffsetJustify, - 'yOffset' => $keyLine * ($fontSizePx * 1.2 + $leading), - 'shadow' => $shadow, - 'calculateOffsetFromEdge' => true, - ) - ); - // Calculate offset for next word - $xOffsetJustify += $wordsSize[$key] + $wordSpacing; - } - } - } - - $this->overlay($imageText, $anchor, $opacity, $xOffset, $yOffset, $calculateOffsetFromEdge); - - return $this; - } - - /** - * Receives a text and breaks into LINES. - * - * @param integer $text - * @param string $fontFile - * @param int $fontSize - * @param int $maxWidth - * @return array - */ - private function textSeparateLines($text, $fontFile, $fontSize, $maxWidth) { - $words = self::textSeparateWords($text); - $countWords = count($words) - 1; - $lines[0] = ''; - $lineKey = 0; - $isLastLine = []; - for ($i = 0; $i < $countWords; $i++) { - $word = $words[$i]; - $isLastLine[$lineKey] = false; - if ($word === PHP_EOL) { - $isLastLine[$lineKey] = true; - $lineKey++; - $lines[$lineKey] = ''; - continue; - } - $lineBox = imagettfbbox($fontSize, 0, $fontFile, $lines[$lineKey] . $word); - if (abs($lineBox[4] - $lineBox[0]) < $maxWidth) { - $lines[$lineKey] .= $word . ' '; - } else { - $lineKey++; - $lines[$lineKey] = $word . ' '; - } - } - $isLastLine[$lineKey] = true; - // Exclude space of right - $lines = array_map('rtrim', $lines); - // Calculate height of last line - $boxFull = imagettfbbox($fontSize, 0, $fontFile, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'); - $lineBox = imagettfbbox($fontSize, 0, $fontFile, $lines[$lineKey]); - // Height of last line = ascender of $boxFull + descender of $lineBox - $lastLineHeight = abs($lineBox[1]) + abs($boxFull[5]); - - return array($lines, $isLastLine, $lastLineHeight); - } - - /** - * Receives a text and breaks into WORD / SPACE / NEW LINE. - * - * @param integer $text - * @return array - */ - private function textSeparateWords($text) { - // Normalizes line break - $text = preg_replace('/(\r\n|\n|\r)/', PHP_EOL, $text); - $text = explode(PHP_EOL, $text); - $newText = array(); - foreach ($text as $key => $line) { - $newText = array_merge($newText, explode(' ', $line), [PHP_EOL]); - } - - return $newText; - } - - /** - * Creates a thumbnail image. This function attempts to get the image as close to the provided - * dimensions as possible, then crops the remaining overflow to force the desired size. Useful - * for generating thumbnail images. - * - * @param integer $width The thumbnail width. - * @param integer $height The thumbnail height. - * @param string $anchor The anchor point: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (default 'center'). - * @return \claviska\SimpleImage - */ - public function thumbnail($width, $height, $anchor = 'center') { - // Determine aspect ratios - $currentRatio = $this->getHeight() / $this->getWidth(); - $targetRatio = $height / $width; - - // Fit to height/width - if($targetRatio > $currentRatio) { - $this->resize(null, $height); - } else { - $this->resize($width, null); - } - - switch($anchor) { - case 'top': - $x1 = floor(($this->getWidth() / 2) - ($width / 2)); - $x2 = $width + $x1; - $y1 = 0; - $y2 = $height; - break; - case 'bottom': - $x1 = floor(($this->getWidth() / 2) - ($width / 2)); - $x2 = $width + $x1; - $y1 = $this->getHeight() - $height; - $y2 = $this->getHeight(); - break; - case 'left': - $x1 = 0; - $x2 = $width; - $y1 = floor(($this->getHeight() / 2) - ($height / 2)); - $y2 = $height + $y1; - break; - case 'right': - $x1 = $this->getWidth() - $width; - $x2 = $this->getWidth(); - $y1 = floor(($this->getHeight() / 2) - ($height / 2)); - $y2 = $height + $y1; - break; - case 'top left': - $x1 = 0; - $x2 = $width; - $y1 = 0; - $y2 = $height; - break; - case 'top right': - $x1 = $this->getWidth() - $width; - $x2 = $this->getWidth(); - $y1 = 0; - $y2 = $height; - break; - case 'bottom left': - $x1 = 0; - $x2 = $width; - $y1 = $this->getHeight() - $height; - $y2 = $this->getHeight(); - break; - case 'bottom right': - $x1 = $this->getWidth() - $width; - $x2 = $this->getWidth(); - $y1 = $this->getHeight() - $height; - $y2 = $this->getHeight(); - break; - default: - $x1 = floor(($this->getWidth() / 2) - ($width / 2)); - $x2 = $width + $x1; - $y1 = floor(($this->getHeight() / 2) - ($height / 2)); - $y2 = $height + $y1; - break; - } - - // Return the cropped thumbnail image - return $this->crop($x1, $y1, $x2, $y2); - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Drawing - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Draws an arc. - * - * @param integer $x The x coordinate of the arc's center. - * @param integer $y The y coordinate of the arc's center. - * @param integer $width The width of the arc. - * @param integer $height The height of the arc. - * @param integer $start The start of the arc in degrees. - * @param integer $end The end of the arc in degrees. - * @param string|array $color The arc color. - * @param integer|string $thickness Line thickness in pixels or 'filled' (default 1). - * @return \claviska\SimpleImage - */ - public function arc($x, $y, $width, $height, $start, $end, $color, $thickness = 1) { - // Allocate the color - $tempColor = $this->allocateColor($color); - imagesetthickness($this->image, 1); - - // Draw an arc - if($thickness === 'filled') { - imagefilledarc($this->image, $x, $y, $width, $height, $start, $end, $tempColor, IMG_ARC_PIE); - - } else if ($thickness === 1) { - imagearc($this->image, $x, $y, $width, $height, $start, $end, $tempColor); - - } else { - // New temp image - $tempImage = new SimpleImage(); - $tempImage->fromNew($this->getWidth(), $this->getHeight(), 'transparent'); - - // Draw a large ellipse filled with $color (+$thickness pixels) - $tempColor = $tempImage->allocateColor($color); - imagefilledarc($tempImage->image, $x, $y, $width+$thickness, $height+$thickness, $start, $end, $tempColor, IMG_ARC_PIE); - - // Draw a smaller ellipse filled with red|blue (-$thickness pixels) - $tempColor = (self::normalizeColor($color)['red'] == 255) ? 'blue' : 'red'; - $tempColor = $tempImage->allocateColor($tempColor); - imagefilledarc($tempImage->image, $x, $y, $width-$thickness, $height-$thickness, $start, $end, $tempColor, IMG_ARC_PIE); - - // Replace the color of the smaller ellipse with 'transparent' - $tempImage->excludeInsideColor($x, $y, $color); - - // Apply the temp image - $this->overlay($tempImage); - } - - return $this; - } - - /** - * Draws a border around the image. - * - * @param string|array $color The border color. - * @param integer $thickness The thickness of the border (default 1). - * @return \claviska\SimpleImage - */ - public function border($color, $thickness = 1) { - $x1 = -1; - $y1 = 0; - $x2 = $this->getWidth(); - $y2 = $this->getHeight()-1; - - $color = $this->allocateColor($color); - imagesetthickness($this->image, $thickness*2); - imagerectangle($this->image, $x1, $y1, $x2, $y2, $color); - - return $this; - } - - /** - * Draws a single pixel dot. - * - * @param integer $x The x coordinate of the dot. - * @param integer $y The y coordinate of the dot. - * @param string|array $color The dot color. - * @return \claviska\SimpleImage - */ - public function dot($x, $y, $color) { - $color = $this->allocateColor($color); - imagesetpixel($this->image, $x, $y, $color); - - return $this; - } - - /** - * Draws an ellipse. - * - * @param integer $x The x coordinate of the center. - * @param integer $y The y coordinate of the center. - * @param integer $width The ellipse width. - * @param integer $height The ellipse height. - * @param string|array $color The ellipse color. - * @param integer|array $thickness Line thickness in pixels or 'filled' (default 1). - * @return \claviska\SimpleImage - */ - public function ellipse($x, $y, $width, $height, $color, $thickness = 1) { - // Allocate the color - $tempColor = $this->allocateColor($color); - imagesetthickness($this->image, 1); - - // Draw an ellipse - if($thickness === 'filled') { - imagefilledellipse($this->image, $x, $y, $width, $height, $tempColor); - - } else if ($thickness === 1) { - imageellipse($this->image, $x, $y, $width, $height, $tempColor); - - } else { - // New temp image - $tempImage = new SimpleImage(); - $tempImage->fromNew($this->getWidth(), $this->getHeight(), 'transparent'); - - // Draw a large ellipse filled with $color (+$thickness pixels) - $tempColor = $tempImage->allocateColor($color); - imagefilledellipse($tempImage->image, $x, $y, $width+$thickness, $height+$thickness, $tempColor); - - // Draw a smaller ellipse filled with red|blue (-$thickness pixels) - $tempColor = (self::normalizeColor($color)['red'] == 255) ? 'blue' : 'red'; - $tempColor = $tempImage->allocateColor($tempColor); - imagefilledellipse($tempImage->image, $x, $y, $width-$thickness, $height-$thickness, $tempColor); - - // Replace the color of the smaller ellipse with 'transparent' - $tempImage->excludeInsideColor($x, $y, $color); - - // Apply the temp image - $this->overlay($tempImage); - } - - return $this; - } - - /** - * Fills the image with a solid color. - * - * @param string|array $color The fill color. - * @return \claviska\SimpleImage - */ - public function fill($color) { - // Draw a filled rectangle over the entire image - $this->rectangle(0, 0, $this->getWidth(), $this->getHeight(), 'white', 'filled'); - - // Now flood it with the appropriate color - $color = $this->allocateColor($color); - imagefill($this->image, 0, 0, $color); - - return $this; - } - - /** - * Draws a line. - * - * @param integer $x1 The x coordinate for the first point. - * @param integer $y1 The y coordinate for the first point. - * @param integer $x2 The x coordinate for the second point. - * @param integer $y2 The y coordinate for the second point. - * @param string|array $color The line color. - * @param integer $thickness The line thickness (default 1). - * @return \claviska\SimpleImage - */ - public function line($x1, $y1, $x2, $y2, $color, $thickness = 1) { - // Allocate the color - $color = $this->allocateColor($color); - - // Draw a line - imagesetthickness($this->image, $thickness); - imageline($this->image, $x1, $y1, $x2, $y2, $color); - - return $this; - } - - /** - * Draws a polygon. - * - * @param array $vertices - * The polygon's vertices in an array of x/y arrays. - * Example: - * [ - * ['x' => x1, 'y' => y1], - * ['x' => x2, 'y' => y2], - * ['x' => xN, 'y' => yN] - * ] - * @param string|array $color The polygon color. - * @param integer|array $thickness Line thickness in pixels or 'filled' (default 1). - * @return \claviska\SimpleImage - */ - public function polygon($vertices, $color, $thickness = 1) { - // Allocate the color - $color = $this->allocateColor($color); - - // Convert [['x' => x1, 'y' => x1], ['x' => x1, 'y' => y2], ...] to [x1, y1, x2, y2, ...] - $points = []; - foreach($vertices as $vals) { - $points[] = $vals['x']; - $points[] = $vals['y']; - } - - // Draw a polygon - if($thickness === 'filled') { - imagesetthickness($this->image, 1); - imagefilledpolygon($this->image, $points, count($vertices), $color); - } else { - imagesetthickness($this->image, $thickness); - imagepolygon($this->image, $points, count($vertices), $color); - } - - return $this; - } - - /** - * Draws a rectangle. - * - * @param integer $x1 The upper left x coordinate. - * @param integer $y1 The upper left y coordinate. - * @param integer $x2 The bottom right x coordinate. - * @param integer $y2 The bottom right y coordinate. - * @param string|array $color The rectangle color. - * @param integer|array $thickness Line thickness in pixels or 'filled' (default 1). - * @return \claviska\SimpleImage - */ - public function rectangle($x1, $y1, $x2, $y2, $color, $thickness = 1) { - // Allocate the color - $color = $this->allocateColor($color); - - // Draw a rectangle - if($thickness === 'filled') { - imagesetthickness($this->image, 1); - imagefilledrectangle($this->image, $x1, $y1, $x2, $y2, $color); - } else { - imagesetthickness($this->image, $thickness); - imagerectangle($this->image, $x1, $y1, $x2, $y2, $color); - } - - return $this; - } - - /** - * Draws a rounded rectangle. - * - * @param integer $x1 The upper left x coordinate. - * @param integer $y1 The upper left y coordinate. - * @param integer $x2 The bottom right x coordinate. - * @param integer $y2 The bottom right y coordinate. - * @param integer $radius The border radius in pixels. - * @param string|array $color The rectangle color. - * @param integer|array $thickness Line thickness in pixels or 'filled' (default 1). - * @return \claviska\SimpleImage - */ - public function roundedRectangle($x1, $y1, $x2, $y2, $radius, $color, $thickness = 1) { - if($thickness === 'filled') { - // Draw the filled rectangle without edges - $this->rectangle($x1 + $radius + 1, $y1, $x2 - $radius - 1, $y2, $color, 'filled'); - $this->rectangle($x1, $y1 + $radius + 1, $x1 + $radius, $y2 - $radius - 1, $color, 'filled'); - $this->rectangle($x2 - $radius, $y1 + $radius + 1, $x2, $y2 - $radius - 1, $color, 'filled'); - - // Fill in the edges with arcs - $this->arc($x1 + $radius, $y1 + $radius, $radius * 2, $radius * 2, 180, 270, $color, 'filled'); - $this->arc($x2 - $radius, $y1 + $radius, $radius * 2, $radius * 2, 270, 360, $color, 'filled'); - $this->arc($x1 + $radius, $y2 - $radius, $radius * 2, $radius * 2, 90, 180, $color, 'filled'); - $this->arc($x2 - $radius, $y2 - $radius, $radius * 2, $radius * 2, 360, 90, $color, 'filled'); - } else { - $offset = $thickness / 2; - $x1 -= $offset; - $x2 += $offset; - $y1 -= $offset; - $y2 += $offset; - $radius = self::keepWithin($radius, 0, min(($x2 - $x1) / 2, ($y2 - $y1) / 2 ) - 1); - $radius = floor($radius); - $thickness = self::keepWithin($thickness, 1, min(($x2 - $x1) / 2, ($y2 - $y1) / 2)); - - // New temp image - $tempImage = new SimpleImage(); - $tempImage->fromNew($this->getWidth(), $this->getHeight(), 'transparent'); - - // Draw a large rectangle filled with $color - $tempImage->roundedRectangle($x1, $y1, $x2, $y2, $radius, $color,'filled'); - - // Draw a smaller rectangle filled with red|blue (-$thickness pixels on each side) - $tempColor = (self::normalizeColor($color)['red'] == 255) ? 'blue' : 'red'; - $radius = $radius - $thickness; - $radius = self::keepWithin($radius, 0, $radius); - $tempImage->roundedRectangle( - $x1 + $thickness, - $y1 + $thickness, - $x2 - $thickness, - $y2 - $thickness, - $radius, - $tempColor, - 'filled' - ); - - // Replace the color of the smaller rectangle with 'transparent' - $tempImage->excludeInsideColor(($x2 + $x1) / 2, ($y2 + $y1) / 2, $color); - - // Apply the temp image - $this->overlay($tempImage); - } - - return $this; - } - - /** - * Exclude inside color. - * Used for roundedRectangle(), ellipse() and arc() - * - * @param number $x certer x of rectangle. - * @param number $y certer y of rectangle. - * @param string|array $borderColor The color of border. - */ - private function excludeInsideColor($x, $y, $borderColor) { - $borderColor = $this->allocateColor($borderColor); - $transparent = $this->allocateColor('transparent'); - imagefilltoborder($this->image, $x, $y, $borderColor, $transparent); - return $this; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Filters - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Applies the blur filter. - * - * @param string $type The blur algorithm to use: 'selective', 'gaussian' (default 'gaussian'). - * @param number $passes The number of time to apply the filter, enhancing the effect (default 1). - * @return \claviska\SimpleImage - */ - public function blur($type = 'selective', $passes = 1) { - $filter = $type === 'gaussian' ? IMG_FILTER_GAUSSIAN_BLUR : IMG_FILTER_SELECTIVE_BLUR; - - for($i = 0; $i < $passes; $i++) { - imagefilter($this->image, $filter); - } - - return $this; - } - - /** - * Applies the brightness filter to brighten the image. - * - * @param integer $percentage Percentage to brighten the image (0 - 100). - * @return \claviska\SimpleImage - */ - public function brighten($percentage) { - $percentage = self::keepWithin(255 * $percentage / 100, 0, 255); - - imagefilter($this->image, IMG_FILTER_BRIGHTNESS, $percentage); - - return $this; - } - - /** - * Applies the colorize filter. - * - * @param string|array $color The filter color. - * @return \claviska\SimpleImage - */ - public function colorize($color) { - $color = self::normalizeColor($color); - - imagefilter( - $this->image, - IMG_FILTER_COLORIZE, - $color['red'], - $color['green'], - $color['blue'], - 127 - ($color['alpha'] * 127) - ); - - return $this; - } - - /** - * Applies the contrast filter. - * - * @param integer $percentage Percentage to adjust (-100 - 100). - * @return \claviska\SimpleImage - */ - public function contrast($percentage) { - imagefilter($this->image, IMG_FILTER_CONTRAST, self::keepWithin($percentage, -100, 100)); - - return $this; - } - - /** - * Applies the brightness filter to darken the image. - * - * @param integer $percentage Percentage to darken the image (0 - 100). - * @return \claviska\SimpleImage - */ - public function darken($percentage) { - $percentage = self::keepWithin(255 * $percentage / 100, 0, 255); - - imagefilter($this->image, IMG_FILTER_BRIGHTNESS, -$percentage); - - return $this; - } - - /** - * Applies the desaturate (grayscale) filter. - * - * @return \claviska\SimpleImage - */ - public function desaturate() { - imagefilter($this->image, IMG_FILTER_GRAYSCALE); - - return $this; - } - - /** - * Applies the edge detect filter. - * - * @return \claviska\SimpleImage - */ - public function edgeDetect() { - imagefilter($this->image, IMG_FILTER_EDGEDETECT); - - return $this; - } - - /** - * Applies the emboss filter. - * - * @return \claviska\SimpleImage - */ - public function emboss() { - imagefilter($this->image, IMG_FILTER_EMBOSS); - - return $this; - } - - /** - * Inverts the image's colors. - * - * @return \claviska\SimpleImage - */ - public function invert() { - imagefilter($this->image, IMG_FILTER_NEGATE); - - return $this; - } - - /** - * Changes the image's opacity level. - * - * @param float $opacity The desired opacity level (0 - 1). - * @return \claviska\SimpleImage - */ - public function opacity($opacity) { - // Create a transparent image - $newImage = new SimpleImage(); - $newImage->fromNew($this->getWidth(), $this->getHeight()); - - // Copy the current image (with opacity) onto the transparent image - self::imageCopyMergeAlpha( - $newImage->image, - $this->image, - 0, 0, - 0, 0, - $this->getWidth(), - $this->getHeight(), - self::keepWithin($opacity, 0, 1) * 100 - ); - - return $this; - } - - /** - * Applies the pixelate filter. - * - * @param integer $size The size of the blocks in pixels (default 10). - * @return \claviska\SimpleImage - */ - public function pixelate($size = 10) { - imagefilter($this->image, IMG_FILTER_PIXELATE, $size, true); - - return $this; - } - - /** - * Simulates a sepia effect by desaturating the image and applying a sepia tone. - * - * @return \claviska\SimpleImage - */ - public function sepia() { - imagefilter($this->image, IMG_FILTER_GRAYSCALE); - imagefilter($this->image, IMG_FILTER_COLORIZE, 70, 35, 0); - - return $this; - } - - /** - * Sharpens the image. - * - * @param integer $amount Sharpening amount (default 50). - * @return \claviska\SimpleImage - */ - public function sharpen($amount = 50) { - // Normalize amount - $amount = max(1, min(100, $amount)) / 100; - - $sharpen = [ - [-1, -1, -1], - [-1, 8 / $amount, -1], - [-1, -1, -1], - ]; - $divisor = array_sum(array_map('array_sum', $sharpen)); - - imageconvolution($this->image, $sharpen, $divisor, 0); - - return $this; - } - - /** - * Applies the mean remove filter to produce a sketch effect. - * - * @return \claviska\SimpleImage - */ - public function sketch() { - imagefilter($this->image, IMG_FILTER_MEAN_REMOVAL); - - return $this; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////// - // Color utilities - ////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Converts a "friendly color" into a color identifier for use with GD's image functions. - * - * @param string|array $color The color to allocate. - * @return integer - */ - protected function allocateColor($color) { - $color = self::normalizeColor($color); - - // Was this color already allocated? - $index = imagecolorexactalpha( - $this->image, - $color['red'], - $color['green'], - $color['blue'], - 127 - ($color['alpha'] * 127) - ); - if($index > -1) { - // Yes, return this color index - return $index; - } - - // Allocate a new color index - return imagecolorallocatealpha( - $this->image, - $color['red'], - $color['green'], - $color['blue'], - 127 - ($color['alpha'] * 127) - ); - } - - /** - * Adjusts a color by increasing/decreasing red/green/blue/alpha values independently. - * - * @param string|array $color The color to adjust. - * @param integer $red Red adjustment (-255 - 255). - * @param integer $green Green adjustment (-255 - 255). - * @param integer $blue Blue adjustment (-255 - 255). - * @param integer $alpha Alpha adjustment (-1 - 1). - * @return integer[] An RGBA color array. - */ - public static function adjustColor($color, $red, $green, $blue, $alpha) { - // Normalize to RGBA - $color = self::normalizeColor($color); - - // Adjust each channel - return self::normalizeColor([ - 'red' => $color['red'] + $red, - 'green' => $color['green'] + $green, - 'blue' => $color['blue'] + $blue, - 'alpha' => $color['alpha'] + $alpha - ]); - } - - /** - * Darkens a color. - * - * @param string|array $color The color to darken. - * @param integer $amount Amount to darken (0 - 255). - * @return integer[] An RGBA color array. - */ - public static function darkenColor($color, $amount) { - return self::adjustColor($color, -$amount, -$amount, -$amount, 0); - } - - /** - * Extracts colors from an image like a human would do.™ This method requires the third-party - * library \League\ColorExtractor. If you're using Composer, it will be installed for you - * automatically. - * - * @param integer $count The max number of colors to extract (default 5). - * @param string|array $backgroundColor - * By default any pixel with alpha value greater than zero will - * be discarded. This is because transparent colors are not perceived as is. For example, fully - * transparent black would be seen white on a white background. So if you want to take - * transparency into account, you have to specify a default background color. - * @throws \Exception Thrown if library \League\ColorExtractor is missing. - * @return integer[] An array of RGBA colors arrays. - */ - public function extractColors($count = 5, $backgroundColor = null) { - // Check for required library - if(!class_exists('\League\ColorExtractor\ColorExtractor')) { - throw new \Exception( - 'Required library \League\ColorExtractor is missing.', - self::ERR_LIB_NOT_LOADED - ); - } - - // Convert background color to an integer value - if($backgroundColor) { - $backgroundColor = self::normalizeColor($backgroundColor); - $backgroundColor = \League\ColorExtractor\Color::fromRgbToInt([ - 'r' => $backgroundColor['red'], - 'g' => $backgroundColor['green'], - 'b' => $backgroundColor['blue'] - ]); - } - - // Extract colors from the image - $palette = \League\ColorExtractor\Palette::fromGD($this->image, $backgroundColor); - $extractor = new \League\ColorExtractor\ColorExtractor($palette); - $colors = $extractor->extract($count); - - // Convert colors to an RGBA color array - foreach($colors as $key => $value) { - $colors[$key] = self::normalizeColor(\League\ColorExtractor\Color::fromIntToHex($value)); - } - - return $colors; - } - - /** - * Gets the RGBA value of a single pixel. - * - * @param integer $x The horizontal position of the pixel. - * @param integer $y The vertical position of the pixel. - * @return integer[] An RGBA color array or false if the x/y position is off the canvas. - */ - public function getColorAt($x, $y) { - // Coordinates must be on the canvas - if($x < 0 || $x > $this->getWidth() || $y < 0 || $y > $this->getHeight()) { - return false; - } - - // Get the color of this pixel and convert it to RGBA - $color = imagecolorat($this->image, $x, $y); - $rgba = imagecolorsforindex($this->image, $color); - $rgba['alpha'] = 127 - ($color >> 24) & 0xFF; - - return $rgba; - } - - /** - * Lightens a color. - * - * @param string|array $color The color to lighten. - * @param integer $amount Amount to lighten (0 - 255). - * @return integer[] An RGBA color array. - */ - public static function lightenColor($color, $amount) { - return self::adjustColor($color, $amount, $amount, $amount, 0); - } - - /** - * Normalizes a hex or array color value to a well-formatted RGBA array. - * - * @param string|array $color - * A CSS color name, hex string, or an array [red, green, blue, alpha]. - * You can pipe alpha transparency through hex strings and color names. For example: - * #fff|0.50 <-- 50% white - * red|0.25 <-- 25% red - * @throws \Exception Thrown if color value is invalid. - * @return array [red, green, blue, alpha]. - */ - public static function normalizeColor($color) { - // 140 CSS color names and hex values - $cssColors = [ - 'aliceblue' => '#f0f8ff', 'antiquewhite' => '#faebd7', 'aqua' => '#00ffff', - 'aquamarine' => '#7fffd4', 'azure' => '#f0ffff', 'beige' => '#f5f5dc', 'bisque' => '#ffe4c4', - 'black' => '#000000', 'blanchedalmond' => '#ffebcd', 'blue' => '#0000ff', - 'blueviolet' => '#8a2be2', 'brown' => '#a52a2a', 'burlywood' => '#deb887', - 'cadetblue' => '#5f9ea0', 'chartreuse' => '#7fff00', 'chocolate' => '#d2691e', - 'coral' => '#ff7f50', 'cornflowerblue' => '#6495ed', 'cornsilk' => '#fff8dc', - 'crimson' => '#dc143c', 'cyan' => '#00ffff', 'darkblue' => '#00008b', 'darkcyan' => '#008b8b', - 'darkgoldenrod' => '#b8860b', 'darkgray' => '#a9a9a9', 'darkgrey' => '#a9a9a9', - 'darkgreen' => '#006400', 'darkkhaki' => '#bdb76b', 'darkmagenta' => '#8b008b', - 'darkolivegreen' => '#556b2f', 'darkorange' => '#ff8c00', 'darkorchid' => '#9932cc', - 'darkred' => '#8b0000', 'darksalmon' => '#e9967a', 'darkseagreen' => '#8fbc8f', - 'darkslateblue' => '#483d8b', 'darkslategray' => '#2f4f4f', 'darkslategrey' => '#2f4f4f', - 'darkturquoise' => '#00ced1', 'darkviolet' => '#9400d3', 'deeppink' => '#ff1493', - 'deepskyblue' => '#00bfff', 'dimgray' => '#696969', 'dimgrey' => '#696969', - 'dodgerblue' => '#1e90ff', 'firebrick' => '#b22222', 'floralwhite' => '#fffaf0', - 'forestgreen' => '#228b22', 'fuchsia' => '#ff00ff', 'gainsboro' => '#dcdcdc', - 'ghostwhite' => '#f8f8ff', 'gold' => '#ffd700', 'goldenrod' => '#daa520', 'gray' => '#808080', - 'grey' => '#808080', 'green' => '#008000', 'greenyellow' => '#adff2f', - 'honeydew' => '#f0fff0', 'hotpink' => '#ff69b4', 'indianred ' => '#cd5c5c', - 'indigo ' => '#4b0082', 'ivory' => '#fffff0', 'khaki' => '#f0e68c', 'lavender' => '#e6e6fa', - 'lavenderblush' => '#fff0f5', 'lawngreen' => '#7cfc00', 'lemonchiffon' => '#fffacd', - 'lightblue' => '#add8e6', 'lightcoral' => '#f08080', 'lightcyan' => '#e0ffff', - 'lightgoldenrodyellow' => '#fafad2', 'lightgray' => '#d3d3d3', 'lightgrey' => '#d3d3d3', - 'lightgreen' => '#90ee90', 'lightpink' => '#ffb6c1', 'lightsalmon' => '#ffa07a', - 'lightseagreen' => '#20b2aa', 'lightskyblue' => '#87cefa', 'lightslategray' => '#778899', - 'lightslategrey' => '#778899', 'lightsteelblue' => '#b0c4de', 'lightyellow' => '#ffffe0', - 'lime' => '#00ff00', 'limegreen' => '#32cd32', 'linen' => '#faf0e6', 'magenta' => '#ff00ff', - 'maroon' => '#800000', 'mediumaquamarine' => '#66cdaa', 'mediumblue' => '#0000cd', - 'mediumorchid' => '#ba55d3', 'mediumpurple' => '#9370db', 'mediumseagreen' => '#3cb371', - 'mediumslateblue' => '#7b68ee', 'mediumspringgreen' => '#00fa9a', - 'mediumturquoise' => '#48d1cc', 'mediumvioletred' => '#c71585', 'midnightblue' => '#191970', - 'mintcream' => '#f5fffa', 'mistyrose' => '#ffe4e1', 'moccasin' => '#ffe4b5', - 'navajowhite' => '#ffdead', 'navy' => '#000080', 'oldlace' => '#fdf5e6', 'olive' => '#808000', - 'olivedrab' => '#6b8e23', 'orange' => '#ffa500', 'orangered' => '#ff4500', - 'orchid' => '#da70d6', 'palegoldenrod' => '#eee8aa', 'palegreen' => '#98fb98', - 'paleturquoise' => '#afeeee', 'palevioletred' => '#db7093', 'papayawhip' => '#ffefd5', - 'peachpuff' => '#ffdab9', 'peru' => '#cd853f', 'pink' => '#ffc0cb', 'plum' => '#dda0dd', - 'powderblue' => '#b0e0e6', 'purple' => '#800080', 'rebeccapurple' => '#663399', - 'red' => '#ff0000', 'rosybrown' => '#bc8f8f', 'royalblue' => '#4169e1', - 'saddlebrown' => '#8b4513', 'salmon' => '#fa8072', 'sandybrown' => '#f4a460', - 'seagreen' => '#2e8b57', 'seashell' => '#fff5ee', 'sienna' => '#a0522d', - 'silver' => '#c0c0c0', 'skyblue' => '#87ceeb', 'slateblue' => '#6a5acd', - 'slategray' => '#708090', 'slategrey' => '#708090', 'snow' => '#fffafa', - 'springgreen' => '#00ff7f', 'steelblue' => '#4682b4', 'tan' => '#d2b48c', 'teal' => '#008080', - 'thistle' => '#d8bfd8', 'tomato' => '#ff6347', 'turquoise' => '#40e0d0', - 'violet' => '#ee82ee', 'wheat' => '#f5deb3', 'white' => '#ffffff', 'whitesmoke' => '#f5f5f5', - 'yellow' => '#ffff00', 'yellowgreen' => '#9acd32' - ]; - - // Parse alpha from '#fff|.5' and 'white|.5' - if(is_string($color) && strstr($color, '|')) { - $color = explode('|', $color); - $alpha = (float) $color[1]; - $color = trim($color[0]); - } else { - $alpha = 1; - } - - // Translate CSS color names to hex values - if(is_string($color) && array_key_exists(strtolower($color), $cssColors)) { - $color = $cssColors[strtolower($color)]; - } - - // Translate transparent keyword to a transparent color - if($color === 'transparent') { - $color = ['red' => 0, 'green' => 0, 'blue' => 0, 'alpha' => 0]; - } - - // Convert hex values to RGBA - if(is_string($color)) { - // Remove # - $hex = preg_replace('/^#/', '', $color); - - // Support short and standard hex codes - if(strlen($hex) === 3) { - list($red, $green, $blue) = [ - $hex[0] . $hex[0], - $hex[1] . $hex[1], - $hex[2] . $hex[2] - ]; - } elseif(strlen($hex) === 6) { - list($red, $green, $blue) = [ - $hex[0] . $hex[1], - $hex[2] . $hex[3], - $hex[4] . $hex[5] - ]; - } else { - throw new \Exception("Invalid color value: $color", self::ERR_INVALID_COLOR); - } - - // Turn color into an array - $color = [ - 'red' => hexdec($red), - 'green' => hexdec($green), - 'blue' => hexdec($blue), - 'alpha' => $alpha - ]; - } - - // Enforce color value ranges - if(is_array($color)) { - // RGB default to 0 - $color['red'] = isset($color['red']) ? $color['red'] : 0; - $color['green'] = isset($color['green']) ? $color['green'] : 0; - $color['blue'] = isset($color['blue']) ? $color['blue'] : 0; - - // Alpha defaults to 1 - $color['alpha'] = isset($color['alpha']) ? $color['alpha'] : 1; - - return [ - 'red' => (int) self::keepWithin((int) $color['red'], 0, 255), - 'green' => (int) self::keepWithin((int) $color['green'], 0, 255), - 'blue' => (int) self::keepWithin((int) $color['blue'], 0, 255), - 'alpha' => self::keepWithin($color['alpha'], 0, 1) - ]; - } - - throw new \Exception("Invalid color value: $color", self::ERR_INVALID_COLOR); - } - -} diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php deleted file mode 100644 index 1e2b7c7..0000000 --- a/app/Http/Controllers/AdminController.php +++ /dev/null @@ -1,227 +0,0 @@ -middleware('auth'); - $this->middleware('admin'); - } - - public function index(Request $request) { - return view('admin.index'); - } - - public function truncategametokens(Request $request) { - GameToken::Truncate(); - - return redirect('/admin')->with('message', 'Cleared all Game Tokens from the database.'); - } - - public function truncateservers(Request $request) { - Server::Truncate(); - - return redirect('/admin')->with('message', 'Cleared all Servers from the database.'); - } - - public function invitekeys(Request $request) { - $invitekeys = InviteKey::query(); - - return view('admin.invitekeys')->with('invitekeys', $invitekeys->orderBy('updated_at', 'DESC')->paginate(10)->appends($request->all())); - } - - public function createinvitekey(Request $request) { - return view('admin.createinvitekey'); - } - - public function generateinvitekey(Request $request) { - $request->validate([ - 'uses' => ['required', 'min:1', 'max:20', 'integer'] - ]); - - $inviteKey = InviteKey::create([ - 'creator' => $request->user()->id, - 'token' => 'TadahKey-' . Str::random(25), - 'uses' => $request['uses'] - ]); - - return redirect('/admin/createinvitekey')->with('success', 'Created invite key. Key: "' . $inviteKey->token . '"'); - } - - public function disableinvitekey(Request $request, $id) { - $invitekey = InviteKey::find($id); - - if (!$invitekey) { - return abort(404); - } - - $invitekey->uses = 0; - $invitekey->save(); - - return redirect('/admin/invitekeys')->with('message', 'Invite key ID: ' . $invitekey->id . ', Token: ' . $invitekey->token . ' disabled.'); - } - - public function ban(Request $request) { - return view('admin.ban'); - } - - public function banuser(Request $request) { - $request->validate([ - 'username' => ['required', 'min:3', 'max:50'], - 'banreason' => ['required', 'max:2000'], - 'unbandate' => ['required', 'date'] - ]); - - $user = User::where('username', $request['username'])->first(); - - if (!$user) { - return redirect('/admin/ban')->with('error', 'That user does not exist. Name: ' . $request['username']); - } - - if ($user->banned) { - return redirect('/admin/ban')->with('error', 'That user is already banned. Reason: ' . $user->ban_reason); - } - - if ($request->user()->id == $user->id) { - return redirect('/admin/ban')->with('error', 'You\'re trying to ban yourself?'); - } - - $user->banned = true; - $user->ban_reason = $request['banreason']; - $user->banned_until = Carbon::parse($request['unbandate']); - $user->save(); - - return redirect('/admin/ban')->with('success', $user->username . ' has been banned until ' . $user->banned_until); - } - - public function unban(Request $request) { - return view('admin.unban'); - } - - public function unbanuser(Request $request) { - $request->validate([ - 'username' => ['required', 'min:3', 'max:20'] - ]); - - $user = User::where('username', $request['username'])->first(); - - if (!$user) { - return redirect('/admin/unban')->with('error', 'That user does not exist. Name: ' . $request['username']); - } - - if (!$user->banned) { - return redirect('/admin/unban')->with('error', 'That user is not banned.'); - } - - if ($request->user()->id == $user->id) { - return redirect('/admin/unban')->with('error', 'but... but... but... you are not banned......'); - } - - $user->banned = false; - $user->ban_reason = null; - $user->banned_until = null; - $user->save(); - - return redirect('/admin/unban')->with('success', $user->username . ' has been unbanned.'); - } - - public function xmlitem(Request $request) - { - return view('admin.newxmlitem'); - } - - public function createxmlitem(Request $request) - { - $request->validate([ - 'name' => ['required', 'string', 'max:100'], - 'description' => ['string', 'max:2000'], - 'price' => ['required', 'integer', 'min:0', 'max:999999'], - 'xml' => ['required', 'string'], - 'type' => ['required', 'string'] - ]); - - $item = Item::create([ - 'name' => $request['name'], - 'description' => $request['description'], - 'creator' => $request->user()->id, - 'thumbnail_url' => $request['thumbnailurl'], - 'price' => $request['price'], - 'type' => $request['type'], - 'sales' => 0, - 'onsale' => true, - 'approved' => config('app.assets_approved_by_default') - ]); - - Storage::disk('public')->put('items/' . $item->id, $request['xml']); - - if ($item->type == "Hat" || $item->type == "Model" || $item->type == "Gear") { - RenderQueue::create([ - 'type' => 'xml', - 'target_id' => $item->id - ]); - } - - if ($item->type == "Package") { - RenderQueue::create([ - 'type' => 'clothing', - 'target_id' => $item->id - ]); - } - - OwnedItems::create([ - 'user_id' => $request->user()->id, - 'item_id' => $item->id, - 'wearing' => false - ]); - - return redirect(route('catalog.item', $item->id))->with('message', 'XML asset successfully created.'); - } - - public function robloxitemdata(Request $request, $id) - { - $response = Http::asForm()->get('https://api.roblox.com/marketplace/productinfo', [ - "assetId" => $id - ]); - - return $response; - } - - public function robloxxmldata(Request $request, $id, $version) - { - $response = Http::get('https://assetdelivery.roblox.com/v1/asset?id=' . intval($id) . "&version=" . intval($version)); - - return $response; - } - - public function regenalluserthumbs(Request $request) - { - if (!$request->user()->id == 1) { - abort(404); - } - - $users = User::all(); - foreach ($users as $user) { - RenderQueue::create([ - "type" => "user", - "target_id" => $user->id - ]); - } - - return "OK"; - } -} diff --git a/app/Http/Controllers/AssetController.php b/app/Http/Controllers/AssetController.php deleted file mode 100644 index 9b2d11a..0000000 --- a/app/Http/Controllers/AssetController.php +++ /dev/null @@ -1,62 +0,0 @@ -id) { - abort(404); - } - - $item = Item::findOrFail($request->id); - - if (Storage::disk('public')->exists('items/' . $item->id)) { - $response = Response::make(Storage::disk('public')->get('items/' . $item->id, 200)); - $response->header('Content-Type', 'application/octet-stream'); - return $response; - } else { - abort(404); - } - } - - public function getxmlasset(Request $request) - { - if (!$request->id) { - abort(404); - } - - $item = Item::findOrFail($request->id); - - if ($item->isXmlAsset()) { - if (Storage::disk('public')->exists('items/' . $request->id)) { - $response = Response::make(Storage::disk('public')->get('items/' . $request->id, 200)); - $response->header('Content-Type', 'application/octet-stream'); - return $response; - } else { - return abort(404); - } - } - - return view('client.xmlasset')->with('item', $item); - } - - public function robloxredirect(Request $request) - { - if (!$request->id) { - abort(404); - } - - if ($request->id == "humHealth") { - return view('client.humanoidHealth'); - } - - return redirect('https://assetdelivery.roblox.com/v1/asset/?id=' . $request->id); - } -} diff --git a/app/Http/Controllers/Auth/ConfirmPasswordController.php b/app/Http/Controllers/Auth/ConfirmPasswordController.php deleted file mode 100644 index 138c1f0..0000000 --- a/app/Http/Controllers/Auth/ConfirmPasswordController.php +++ /dev/null @@ -1,40 +0,0 @@ -middleware('auth'); - } -} diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php deleted file mode 100644 index 465c39c..0000000 --- a/app/Http/Controllers/Auth/ForgotPasswordController.php +++ /dev/null @@ -1,22 +0,0 @@ -middleware('guest')->except('logout'); - } -} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php deleted file mode 100644 index 3bcd2c4..0000000 --- a/app/Http/Controllers/Auth/RegisterController.php +++ /dev/null @@ -1,111 +0,0 @@ -middleware('guest'); - } - - /** - * Get a validator for an incoming registration request. - * - * @param array $data - * @return \Illuminate\Contracts\Validation\Validator - */ - protected function validator(array $data) - { - return Validator::make($data, [ - 'username' => ['required', 'string', 'min:3', 'max:20', 'unique:users', 'alpha_num'], - 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], - 'password' => ['required', 'string', 'min:4', 'confirmed'], - 'invite_key' => ['string', new InviteKeyRule()] - ]); - } - - /** - * Create a new user instance after a valid registration. - * - * @param array $data - * @return \App\Models\User - */ - protected function create(array $data) - { - if (!config('app.registration_enabled')) { - return abort(403); - } - - $user = User::create([ - 'username' => $data['username'], - 'email' => $data['email'], - 'password' => Hash::make($data['password']), - 'register_ip' => '0.0.0.0', - 'last_ip' => '0.0.0.0' - ]); - - BodyColors::create([ - 'user_id' => $user->id, - 'head_color' => 1, - 'torso_color' => 1010, - 'left_arm_color' => 1, - 'right_arm_color' => 1, - 'left_leg_color' => 26, - 'right_leg_color' => 26 - ]); - - RenderQueue::create([ - 'type' => 'user', - 'target_id' => $user->id - ]); - - - if (isset($data['invite_key'])) { - $invitekey = InviteKey::where('token', $data['invite_key'])->first(); - $user->invite_key = $data['invite_key']; - $user->save(); - - $invitekey->uses = $invitekey->uses - 1; - $invitekey->save(); - } - - return $user; - } -} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php deleted file mode 100644 index b1726a3..0000000 --- a/app/Http/Controllers/Auth/ResetPasswordController.php +++ /dev/null @@ -1,30 +0,0 @@ -middleware('auth'); - $this->middleware('signed')->only('verify'); - $this->middleware('throttle:6,1')->only('verify', 'resend'); - } -} diff --git a/app/Http/Controllers/BodyColorsController.php b/app/Http/Controllers/BodyColorsController.php deleted file mode 100644 index 355a78a..0000000 --- a/app/Http/Controllers/BodyColorsController.php +++ /dev/null @@ -1,135 +0,0 @@ - "Light blue", "id" => "45", "rgb" => "180,210,228"], - ["name" => "Pastel light blue", "id" => "1024", "rgb" => "175,221,255"], - ["name" => "Pastel Blue", "id" => "11", "rgb" => "128,187,219"], - ["name" => "Medium blue", "id" => "102", "rgb" => "110,153,202"], - ["name" => "Bright blue", "id" => "23", "rgb" => "13,105,172"], - ["name" => "Really blue", "id" => "1010", "rgb" => "0,0,255"], - ["name" => "Deep blue", "id" => "1012", "rgb" => "33,84,185"], - ["name" => "Navy blue", "id" => "1011", "rgb" => "0,32,96"], - ["name" => "Pastel blue-green", "id" => "1027", "rgb" => "159,243,233"], - ["name" => "Teal", "id" => "1018", "rgb" => "18,238,212"], - ["name" => "Sand green", "id" => "151", "rgb" => "120,144,130"], - ["name" => "Grime", "id" => "1022", "rgb" => "127,142,100"], - ["name" => "Sand blue", "id" => "135", "rgb" => "116,134,157"], - ["name" => "Toothpaste", "id" => "1019", "rgb" => "0,255,255"], - ["name" => "Cyan", "id" => "1013", "rgb" => "4,175,236"], - ["name" => "Bright bluish green", "id" => "107", "rgb" => "0,143,156"], - ["name" => "Pastel green", "id" => "1028", "rgb" => "204,255,204"], - ["name" => "Medium green", "id" => "29", "rgb" => "161,196,140"], - ["name" => "Br. yellowish green", "id" => "119", "rgb" => "164,189,71"], - ["name" => "Bright green", "id" => "37", "rgb" => "75,151,75"], - ["name" => "Camo", "id" => "1021", "rgb" => "58,125,21"], - ["name" => "Lime green", "id" => "1020", "rgb" => "58,125,21"], - ["name" => "Dark green", "id" => "28", "rgb" => "40,127,71"], - ["name" => "Earth green", "id" => "141", "rgb" => "39,70,45"], - ["name" => "Pastel yellow", "id" => "1029", "rgb" => "255,255,204"], - ["name" => "Cool yellow", "id" => "226", "rgb" => "253,234,141"], - ["name" => "Olive", "id" => "1008", "rgb" => "193,190,66"], - ["name" => "Bright yellow", "id" => "24", "rgb" => "245,205,48"], - ["name" => "Deep orange", "id" => "1017", "rgb" => "255,175,0"], - ["name" => "New Yeller", "id" => "1009", "rgb" => "255,255,0"], - ["name" => "Deep orange", "id" => "1005", "rgb" => "255,176,0"], - ["name" => "Br. yellowish orange", "id" => "105", "rgb" => "226,155,64"], - ["name" => "Pastel orange", "id" => "1025", "rgb" => "255,201,201"], - ["name" => "Light orange", "id" => "125", "rgb" => "234,184,146"], - ["name" => "Medium red", "id" => "101", "rgb" => "218,134,122"], - ["name" => "Dusty Rose", "id" => "1007", "rgb" => "163,75,75"], - ["name" => "Olive", "id" => "1016", "rgb" => "193,190,66"], - ["name" => "Hot pink", "id" => "1032", "rgb" => "255,0,191"], - ["name" => "Really red", "id" => "1004", "rgb" => "255,0,0"], - ["name" => "Bright red", "id" => "21", "rgb" => "196,40,28"], - ["name" => "Light reddish violet", "id" => "9", "rgb" => "232,186,200"], - ["name" => "Pastel violet", "id" => "1026", "rgb" => "177,167,255"], - ["name" => "Alder", "id" => "1006", "rgb" => "180,128,255"], - ["name" => "Sand red", "id" => "153", "rgb" => "149,121,119"], - ["name" => "Lavender", "id" => "1023", "rgb" => "140,91,159"], - ["name" => "Magenta", "id" => "1015", "rgb" => "170,0,170"], - ["name" => "Royal purple", "id" => "1031", "rgb" => "98,37,209"], - ["name" => "Bright violet", "id" => "104", "rgb" => "107,50,124"], - ["name" => "Brick yellow", "id" => "5", "rgb" => "215,197,154"], - ["name" => "Pastel brown", "id" => "1030", "rgb" => "255,204,153"], - ["name" => "Nougat", "id" => "18", "rgb" => "204,142,105"], - ["name" => "Bright orange", "id" => "106", "rgb" => "218,133,65"], - ["name" => "Dark orange", "id" => "38", "rgb" => "160,95,53"], - ["name" => "CGA brown", "id" => "1014", "rgb" => "170,85,0"], - ["name" => "Brown", "id" => "217", "rgb" => "124,92,70"], - ["name" => "Reddish brown", "id" => "192", "rgb" => "105,64,40"], - ["name" => "Institutional white", "id" => "1001", "rgb" => "248,248,248"], - ["name" => "White", "id" => "1", "rgb" => "242,243,243"], - ["name" => "Light stone grey", "id" => "208", "rgb" => "229,228,223"], - ["name" => "Mid gray", "id" => "1002", "rgb" => "205,205,205"], - ["name" => "Medium stone grey", "id" => "194", "rgb" => "163,162,165"], - ["name" => "Dark stone grey", "id" => "199", "rgb" => "99,95,98"], - ["name" => "Black", "id" => "26", "rgb" => "27,42,53"], - ["name" => "Really black", "id" => "1003", "rgb" => "17,17,17"] - ]; - - public function __construct() - { - $this->middleware('auth'); - } - - public function characterBodyColors(Request $request) - { - $bodyColors = BodyColors::where('user_id', $request->user()->id)->firstOrFail(); - - return view('users.charactercolors')->with(['colors' => $bodyColors, 'codes' => $this->colors, 'type' => null]); - } - - public function changeBodyColor(Request $request) { - $colors = BodyColors::where('user_id', $request->user()->id)->firstOrFail(); - - if (!$request->color) { - abort(500); - } - - if (!$request->part) { - abort(500); - } - - if (!$this->colors[array_search($request->color, array_column($this->colors, 'id'))]) { - abort(403); - } - - switch ($request->part) { - default: - abort(500); - case "head": - $colors->head_color = $request->color; - break; - case "torso": - $colors->torso_color = $request->color; - break; - case "leftarm": - $colors->left_arm_color = $request->color; - break; - case "leftleg": - $colors->left_leg_color = $request->color; - break; - case "rightarm": - $colors->right_arm_color = $request->color; - break; - case "rightleg": - $colors->right_leg_color = $request->color; - break; - } - - $colors->save(); - - if ($colors) { - return $this->colors[array_search($request->color, array_column($this->colors, 'id'))]['rgb']; - } - - return abort(500); - } -} diff --git a/app/Http/Controllers/CatalogController.php b/app/Http/Controllers/CatalogController.php deleted file mode 100644 index d5e2427..0000000 --- a/app/Http/Controllers/CatalogController.php +++ /dev/null @@ -1,272 +0,0 @@ -middleware('auth'); - } - - public function index(Request $request, $requestType) - { - $type = "Hat"; - switch ($requestType) { - case "hats": - default: - $type = "Hat"; - break; - case "shirts": - $type = "Shirt"; - break; - case "pants": - $type = "Pants"; - break; - case "tshirts": - $type = "T-Shirt"; - break; - case "images": - $type = "Image"; - break; - case "faces": - $type = "Face"; - break; - case "gears": - $type = "Gear"; - break; - case "heads": - $type = "Head"; - break; - case "packages": - $type = "Package"; - break; - case "models": - $type = "Model"; - break; - } - - $items = Item::where(['type' => $type, 'approved' => true, 'onsale' => true])->orderBy('created_at', 'desc'); - - if (request('search')) { - $items->where('name', 'LIKE', '%' . request('search') . '%'); - } - - return view('catalog.index')->with(['items' => $items->paginate(20)->appends($request->all()), 'type' => $type, 'search' => request('search')]); - } - - public function item(Request $request, $id) - { - $item = Item::findOrFail($id); - $ownedItem = OwnedItems::where(['user_id' => $request->user()->id, 'item_id' => $item->id])->first(); - - return view('catalog.item')->with(['item' => $item, 'ownedItem' => $ownedItem]); - } - - public function upload(Request $request) - { - return view('catalog.upload'); - } - - public function processupload(Request $request) - { - // TODO: #1 Modify thumbnail code below for new asset types in the future (audio, mesh, etc.) - - if (! config('app.item_creation_enabled')) { - abort(403); - } - - $request->validate([ - 'name' => ['required', 'string', 'max:100'], - 'description' => ['string', 'max:2000'], - 'price' => ['required', 'integer', 'min:0', 'max:999999'], - 'type' => ['required', new AssetTypesRule()], - 'asset' => ['required', 'max:51200', 'image'] - ]); - - $user = $request->user(); - - if ($request['type'] == "Face" && !$user->admin || $request['type'] == "Hat") { - return abort(403); - } - - if ($user->money < config('app.asset_upload_cost')) { - return redirect('/catalog/upload')->with('error', 'You do not have enough money to upload an asset.'); - } - - $user->money = $user->money - config('app.asset_upload_cost'); - $user->save(); - - $item = Item::create([ - 'name' => $request['name'], - 'description' => $request['description'], - 'creator' => $user->id, - 'price' => $request['price'], - 'type' => $request['type'], - 'sales' => 0, - 'onsale' => true, - 'approved' => config('app.assets_approved_by_default') - ]); - - try { - $img = new SimpleImage($request->file('asset')); - - switch ($request->type) { - case "Face": - case "T-Shirt": - default: - $img->bestFit(250, 250); - break; - case "Shirt": - $img->crop(165, 201, 424, 74); - break; - case "Pants": - $img->crop(217, 482, 371, 355); - break; - } - - $savePath = storage_path() . "/app/public/items/" . $item->id . '_thumbnail.png'; - $img->toFile($savePath, 'image/png', 75); - } catch (\Exception $exception) { - Storage::disk('public')->copy('items/asset-error.png', 'items/' . $item->id . '_thumbnail.png'); - } - - $request->file('asset')->move(storage_path() . "/app/public/items/", $item->id); - - OwnedItems::create([ - 'user_id' => $user->id, - 'item_id' => $item->id, - 'wearing' => false - ]); - - if ($item->type == "Shirt" || $item->type == "Pants") { - RenderQueue::create([ - 'type' => 'clothing', - 'target_id' => $item->id - ]); - } - - return redirect('/item/' . $item->id)->with('message', 'Item successfully uploaded.'); - } - - public function configure(Request $request, $id) - { - $item = Item::findOrFail($id); - $user = $request->user(); - - if (!$item) { - abort(404); - } - - if (!$user == $item->user && !$user->admin) { - abort(403); - } - - return view('catalog.configure')->with('item', $item); - } - - public function processconfigure(Request $request, $id) - { - $item = Item::findOrFail($id); - $user = $request->user(); - - if (!$item) { - abort(404); - } - - if (!$user == $item->user && !$user->admin) { - abort(403); - } - - $request->validate([ - 'name' => ['required', 'string', 'max:100'], - 'description' => ['string', 'max:2000'], - 'price' => ['required', 'integer', 'min:0', 'max:999999'], - 'xml' => ['string'] - ]); - - $item->name = $request['name']; - $item->description = $request['description']; - $item->price = $request['price']; - $item->onsale = $request->has('onsale'); // check boxes are weird - - if ($item->isXmlAsset()) { - $item->thumbnail_url = $request['thumbnailurl']; - - Storage::disk('public')->put('items/' . $item->id, $request['xml']); - } - - $item->save(); - - return redirect(route('catalog.item', $item->id))->with('message', 'Changes saved successfully.'); - } - - public function buyitem(Request $request, $id) - { - $item = Item::findOrFail($id); - $ownedItem = OwnedItems::where(['user_id' => $request->user()->id, 'item_id' => $item->id])->first(); - - if (!$item->onsale) { - abort(403); - } - - if (!$item->approved) { - abort(403); - } - - if ($ownedItem) { - abort(403); - } - - if ($request->user()->money < $item->price) { - abort(403); - } - - OwnedItems::create([ - 'user_id' => $request->user()->id, - 'item_id' => $item->id, - 'wearing' => false - ]); - - $request->user()->money = $request->user()->money - $item->price; - $request->user()->save(); - - $item->user->money = $item->user->money + $item->price; - $item->user->save(); - - $item->sales = $item->sales + 1; - $item->save(); - - return redirect(route('catalog.item', $item->id))->with('message', 'Item purchased successfully.'); - } - - public function getthumbnail(Request $request, $id) - { - $item = Item::findOrFail($id); - - if ($item->thumbnail_url) { - return redirect($item->thumbnail_url); - } - - $path = 'items/asset-error.png'; // default image (not found) - if (Storage::disk('public')->exists('items/' . $item->id . '_thumbnail.png')) { - $path = $item->approved ? - ('items/' . $id . '_thumbnail.png') : // item thumbnail if it's approved - 'items/asset-notapproved.png'; // not approved image otherwise - } - - $response = Response::make(Storage::disk('public') - ->get($path, 200)) - ->header('Content-Type', 'image/png'); - return $response; - } -} diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php deleted file mode 100644 index ce7d76c..0000000 --- a/app/Http/Controllers/ClientController.php +++ /dev/null @@ -1,158 +0,0 @@ -user_id = $request->user()->id; - $token->server_id = $serverId; - $token->token = $tokenString; - $token->save(); - - return $tokenString; - } else { - return abort(404); - } - } - - public function join(Request $request, $requestToken) - { - $token = GameToken::where('token', $requestToken)->first(); - - if (!$token) { - return 'game:SetMessage("Invalid join token. If this error persists, contact us.")'; - } - - return view('client.join')->with('token', $token); - } - - public function host(Request $request, $secret) - { - $server = Server::where('secret', $secret)->first(); - - if (!$server) { - return 'print("Invalid server.")'; - } - - return view('client.host')->with('server', $server); - } - - public function admin(Request $request, $secret) - { - $server = Server::where('secret', $secret)->first(); - - if (!$server) { - return 'print("Invalid server.")'; - } - - $admins = User::where('admin', true)->get(); - - return view('client.admin')->with(['server' => $server, 'admins' => $admins]); - } - - public function bodycolors(Request $request, $id) - { - $user = User::findOrFail($id); - $bodycolors = BodyColors::where('user_id', $user->id)->firstOrFail(); - - return view('users.bodycolors')->with('bodycolors', $bodycolors); - } - - public function charapp(Request $request, $id) - { - $user = User::findOrFail($id); - - $appearance = array(); - $appearance[] = url('/users/' . $user->id . '/bodycolors'); - - $wearingItems = OwnedItems::where(['user_id' => $user->id, 'wearing' => true])->get(); - - foreach ($wearingItems as $wearingItem) { - $item = Item::find($wearingItem->item_id); - - if ($item->approved) { - if ($item->isXmlAsset()) { - $appearance[] = url('/asset?id=' . $item->id); - } else { - $appearance[] = url('/xmlasset?id=' . $item->id); - } - } - } - - return join(';', $appearance); - } - - public function ping(Request $request, $secret) - { - $server = Server::where('secret', $secret)->first(); - - if (!$server) { - return abort(404); - } - - Cache::put('server_online' . $server->id, true, Carbon::now()->addMinutes(1)); - - return 'OK'; - } - - public function getuserthumbnail(Request $request) - { - $user = User::findOrFail($request->userId); - - $path = 'items/asset-error.png'; // default image (not found) - if (Storage::disk('public')->exists('users/user_' . $user->id . '.png')) { - $path = $user->banned ? - 'items/asset-notapproved.png' : // user thumbnail if they're not banned - ('users/user_' . $user->id . '.png'); // otherwise not approved if they're banned - } - - $response = Response::make(Storage::disk('public') - ->get($path, 200)) - ->header('Content-Type', 'image/png'); - return $response; - } - - public function signscript(Request $request) - { - if (!$request->script) { - abort(400); - } - - if (!$request->version) { - abort(400); - } - - $signature = ""; - openssl_sign("\r\n" . $request->script, $signature, "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQCz+CJqGw2KhlX4fodgGk93S3jekukBqjXoUARhD5UEFZnjWQxLe/oRNQacHNnsvRlfI0r2Z8IrFiHUA+L7jdVZJG4vdk620OCGUy1xVbdDpV/Ja/4mF7HUC+2n+OMhVunAVX4/1rBWSRyCAl2PJ6ysgkY9DHWtZpXpBLrsdMgsrQIDAQABAoGAYIenbeI00Shc1HyJgDKcjRAeNMP31rzFTWYd8zG4bAhqElehEJve9XvLn9CZ0zFaen0jqCbfLt0gJ+gtx1+8Hr1T9WIfFvvv2MoUN+p5s0r/8DRUpzi2Yv6SfTeJNubO0XctJ4hoIOsLGt4Hik6pmrRhn61bCdav6vNbdVot9MECQQDnUNAx6w7hPRInJh7960yNWiR0HjIFgGtB25RYq4vflshxcVEjPtfkXDNDGzw3xGTGZFXTGQynmUtYR3vik/WPAkEAxyyd6XgY/8kOYCLOcu9JrJCS/iG0WjiqPSep+8HKe9OqXBQqjZNzTQJzCR3ogcPbYfQq7lwcA6n9UJWiSQD0AwJAX2dPVydRrchYclkgsy2XFz20h0fk7av3kOQVnTSzrfYsmc1Y36aNuJvmcKkM/xs7TTAYzcYpF/77ul9RUzQfNQJACUBFRWbSom7QQB7dv/DlVyKP8UXXfqlLHvQMrSjfIsk+DHDTWSgUHuuSNEYzWnOiaPZSWCfnFTR8E5Yfp4xnyQJBAIr5UxtuUY3LaztdQb4m9xwl9dX6E+tUXUu+xmwWbu99VSWfWJ7ppja6gracYqwwf3vlnpS5591Wi6jhrCiwtoo=\n-----END RSA PRIVATE KEY-----", OPENSSL_ALGO_SHA1); - - $base64signature = base64_encode($signature); - - $signedscript = ""; - if ($request->version == "new") { - $signedscript = "--rbxsig%" . $base64signature . "%\r\n" . $request->script; - } else { - $signedscript = "%" . $base64signature . "%\r\n" . $request->script; - } - - return $signedscript; - } -} diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php deleted file mode 100644 index a0a2a8a..0000000 --- a/app/Http/Controllers/Controller.php +++ /dev/null @@ -1,13 +0,0 @@ -middleware('auth'); - } - - public function index(Request $request) - { - $categories = ForumCategory::orderBy('priority', 'desc')->take(50)->get(); - - return view('forum.index')->with('categories', $categories); - } - - public function getcategory(Request $request, $id) - { - $category = ForumCategory::findOrFail($id); - $posts = ForumThread::where('category_id', $id)->orderBy('stickied', 'desc')->orderBy('updated_at', 'desc'); - - return view('forum.category')->with(['posts' => $posts->paginate(15), 'category' => $category]); - } - - public function createthread(Request $request, $id) - { - $category = ForumCategory::findOrFail($id); - - if ($category->admin_only) { - if (!$request->user()->admin) { - abort(404); - } - } - - return view('forum.newpost')->with('category', $category); - } - - public function docreatethread(Request $request, $id) - { - $category = ForumCategory::findOrFail($id); - - if ($category->admin_only) { - if (!$request->user()->admin) { - abort(404); - } - } - - if (Cache::has('user-posted' . $request->user()->id)) { - return redirect(route('forum.createthread', $category->id))->with('error', 'Posts can only be made every ' . config('app.posting_cooldown') . ' seconds.'); - } - - $request->validate([ - 'title' => ['required', 'string', 'max:100'], - 'body' => ['required', 'string', 'min:3', 'max:2000'] - ]); - - Cache::put('user-posted' . $request->user()->id, true, Carbon::now()->addSeconds(config('app.posting_cooldown'))); - - $thread = ForumThread::create([ - 'category_id' => $category->id, - 'user_id' => $request->user()->id, - 'title' => $request->title, - 'body' => $request->body, - 'stickied' => false, - 'locked' => false - ]); - - $category->touch(); - - return redirect(route('forum.getthread', $thread->id))->with('message', 'Successfully posted thread.'); - } - - public function getthread(Request $request, $id) - { - $thread = ForumThread::findOrFail($id); - $replies = ForumPost::where('thread_id', $thread->id)->orderBy('created_at', 'asc'); - $category = $thread->category; - - return view('forum.post', ['post' => $thread, 'replies' => $replies->paginate(14), 'category' => $category]); - } - - public function editthread(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $thread = ForumThread::findOrFail($id); - - return view('forum.editpost')->with('post', $thread); - } - - public function doeditthread(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $thread = ForumThread::findOrFail($id); - - $request->validate([ - 'title' => ['required', 'string', 'max:100'], - 'body' => ['required', 'string', 'min:3', 'max:2000'] - ]); - - $thread->title = $request->title; - $thread->body = $request->body; - $thread->save(); - - $thread->category->touch(); - - return redirect(route('forum.getthread', $thread->id))->with('message', 'Successfully edited thread.'); - } - - public function deletethread(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $thread = ForumThread::findOrFail($id); - $category = $thread->category; - - foreach ($thread->replies as $reply) { - $reply->delete(); - } - - $thread->delete(); - - return redirect(route('forum.category', $category->id))->with('message', 'Successfully deleted thread.'); - } - - public function togglestickythread(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $thread = ForumThread::findOrFail($id); - - $thread->stickied = !$thread->stickied; - $thread->save(); - - return redirect(route('forum.getthread', $thread->id))->with('message', 'Successfully toggled thread sticky.'); - } - - public function togglelock(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $thread = ForumThread::findOrFail($id); - - $thread->locked = !$thread->locked; - $thread->save(); - - return redirect(route('forum.getthread', $thread->id))->with('message', 'Successfully toggled thread lock.'); - } - - public function createreply(Request $request, $id) - { - $thread = ForumThread::findOrFail($id); - - if ($thread->locked) { - abort(403); - } - - return view('forum.newreply')->with('post', $thread); - } - - public function docreatereply(Request $request, $id) - { - $thread = ForumThread::findOrFail($id); - - if ($thread->locked) { - abort(403); - } - - if (Cache::has('user-posted' . $request->user()->id)) { - return redirect(route('forum.createreply', $thread->id))->with('error', 'Posts can only be made every ' . config('app.posting_cooldown') . ' seconds.'); - } - - $request->validate([ - 'body' => ['required', 'string', 'min:3', 'max:2000'] - ]); - - Cache::put('user-posted' . $request->user()->id, true, Carbon::now()->addSeconds(config('app.posting_cooldown'))); - - $reply = ForumPost::create([ - 'thread_id' => $thread->id, - 'category_id' => $thread->category->id, - 'user_id' => $request->user()->id, - 'body' => $request->body, - 'stickied' => false - ]); - - $thread->touch(); - $thread->category->touch(); - - return redirect(route('forum.getthread', $thread->id))->with('message', 'Successfully posted reply.'); - } - - public function editreply(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $reply = ForumPost::findOrFail($id); - - return view('forum.editreply')->with('reply', $reply); - } - - public function doeditreply(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $reply = ForumPost::findOrFail($id); - - $request->validate([ - 'body' => ['required', 'string', 'min:3', 'max:2000'] - ]); - - $reply->body = $request->body; - $reply->save(); - - $reply->category->touch(); - - return redirect(route('forum.getthread', $reply->thread->id))->with('message', 'Successfully edited reply.'); - } - - public function deletereply(Request $request, $id) - { - if (!$request->user()->admin) { - abort(404); - } - - $reply = ForumPost::findOrFail($id); - $thread = $reply->thread; - - $reply->delete(); - - return redirect(route('forum.getthread', $thread->id))->with('message', 'Successfully deleted reply.'); - } -} diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php deleted file mode 100644 index aba092d..0000000 --- a/app/Http/Controllers/HomeController.php +++ /dev/null @@ -1,31 +0,0 @@ -middleware('auth'); - } - - /** - * Show the application dashboard. - * - * @return \Illuminate\Contracts\Support\Renderable - */ - public function index(Request $request) - { - $servers = Server::where('creator', $request->user()->id)->get(); - - return view('home')->with('servers', $servers); - } -} diff --git a/app/Http/Controllers/RenderController.php b/app/Http/Controllers/RenderController.php deleted file mode 100644 index d1256ca..0000000 --- a/app/Http/Controllers/RenderController.php +++ /dev/null @@ -1,54 +0,0 @@ -type . ':' . $queueitem->target_id . ':' . $queueitem->id . ';'; - } - - return substr_replace($string, "", -1); - } - - public function upload(Request $request) { - $thumbnailKey = $request->thumbnailkey; - $thumbQueueId = $request->thumbqueueid; - - if (!$thumbnailKey == config('app.thumbnail_key')) { - abort(403); - } - - if (!$thumbQueueId) { - abort(400); - } - - if (!$request->hasFile('file')) { - abort(400); - } - - $queue = RenderQueue::where(['id' => $thumbQueueId])->firstOrFail(); - - if ($queue->type == "user") { - $request->file('file')->move(storage_path() . '/app/public/users/', 'user_' . $queue->target_id . '.png'); - } else { - $request->file('file')->move(storage_path() . '/app/public/items/', $queue->target_id . '_thumbnail.png'); - } - - $queue->delete(); - - return 'OK'; - } - - public function getClothingCharApp(Request $request, $id) - { - return url('/xmlasset?id=' . $id); - } -} diff --git a/app/Http/Controllers/ServersController.php b/app/Http/Controllers/ServersController.php deleted file mode 100644 index 7142095..0000000 --- a/app/Http/Controllers/ServersController.php +++ /dev/null @@ -1,112 +0,0 @@ -middleware('auth'); - } - - public function index(Request $request) - { - $servers = Server::orderBy('updated_at', 'DESC') - ->paginate(10) - ->appends($request->all()); - - return view('servers.index')->with('servers', $servers); - } - - public function server(Request $request, $id) - { - $server = Server::findOrFail($id); - - return view('servers.server')->with('server', $server); - } - - public function create(Request $request) - { - $request->validate([ - 'name' => ['required', 'string', 'max:40'], - 'description' => ['string', 'max:250'], - 'ipaddress' => ['required', 'string', 'ipv4'], - 'port' => ['integer'] - ]); - - $server = Server::create([ - 'name' => $request['name'], - 'description' => $request['description'], - 'creator' => $request->user()->id, - 'ip' => $request['ipaddress'], - 'port' => $request['port'], - 'secret' => Str::random(20) - ]); - - return redirect(route('servers.index', $server->id)); - } - - public function delete(Request $request, $id) - { - $user = $request->user(); - $server = Server::findOrFail($id); - - if (!$user == $server->user && !$user->admin) { - abort(403); - } - - $server->delete(); - - return redirect(route('servers.index'))->with('message', 'Server successfully deleted.'); - } - - public function configure(Request $request, $id) - { - $server = Server::findOrFail($id); - $user = $request->user(); - - if (!$server) { - abort(404); - } - - if (!$user == $server->user && !$user->admin) { - abort(403); - } - - return view('servers.configure')->with('server', $server); - } - - public function processconfigure(Request $request, $id) - { - $server = Server::findOrFail($id); - $user = $request->user(); - - if (!$server) { - abort(404); - } - - if (!$user == $server->user && !$user->admin) { - abort(403); - } - - $request->validate([ - 'name' => ['required', 'string', 'max:40'], - 'description' => ['string', 'max:250'], - 'ipaddress' => ['required', 'string', 'ipv4'], - 'port' => ['integer'] - ]); - - $server->name = $request['name']; - $server->description = $request['description']; - $server->ip = $request['ipaddress']; - $server->port = $request['port']; - - $server->save(); - - return redirect(route('servers.server', $server->id))->with('success', 'Changes saved successfully.'); - } -} diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php deleted file mode 100644 index 18d189f..0000000 --- a/app/Http/Controllers/UsersController.php +++ /dev/null @@ -1,210 +0,0 @@ -middleware('auth'); - } - - public function index(Request $request) - { - $users = User::query(); - - if (request('search')) { - $users->where('username', 'LIKE', '%' . request('search') . '%')->orderBy('last_online', 'desc'); - } else { - $users->orderBy('last_online', 'desc'); - } - - return view('users.index')->with('users', $users->paginate(10)->appends($request->all())); - } - - public function me(Request $request) - { - $servers = Server::where('creator', $request->user()->id)->get(); - - return view('users.user')->with('servers', $servers); - } - - public function profile(Request $request, $id) - { - $user = User::findOrFail($id); - $servers = Server::where('creator', $user->id)->get(); - - return view('users.profile')->with(['user' => $user, 'servers' => $servers]); - } - - public function banned(Request $request) - { - if (!$request->user()->banned) { - return redirect(route('home')); - } - - return view('users.banned'); - } - - public function settings(Request $request) - { - return view('users.settings'); - } - - public function getthumbnail(Request $request, $id) - { - $user = User::findOrFail($id); - $userInQueue = RenderQueue::where(['type' => 'user', 'target_id' => $user->id])->first(); - - $path = 'items/asset-error.png'; // default image (not found) - if (Storage::disk('public')->exists('users/user_' . $user->id . '.png')) { - $path = $user->banned ? - 'items/asset-notapproved.png' : // user thumbnail if they're not banned - ('users/user_' . $user->id . '.png'); // otherwise not approved if they're banned - } - - if ($userInQueue) { // if user is in render queue, return loading spinner gif - return redirect(asset('images/asset-loading.gif')); - } - - $response = Response::make(Storage::disk('public') - ->get($path, 200)) - ->header('Content-Type', 'image/png'); - return $response; - } - - public function characterItems(Request $request, $requestType) - { - $type = "Hat"; - switch ($requestType) { - case "hats": - default: - $type = "Hat"; - break; - case "shirts": - $type = "Shirt"; - break; - case "pants": - $type = "Pants"; - break; - case "tshirts": - $type = "T-Shirt"; - break; - case "images": - $type = "Image"; - break; - case "faces": - $type = "Face"; - break; - case "gears": - $type = "Gear"; - break; - case "heads": - $type = "Head"; - break; - case "packages": - $type = "Package"; - break; - } - - $items = DB::table('owned_items') - ->join('items', 'owned_items.item_id', '=', 'items.id') - ->where('owned_items.user_id', $request->user()->id) - ->where('items.type', $type) - ->where('items.approved', 1) - ->select('items.id', 'items.thumbnail_url', 'items.name', 'items.type', 'owned_items.wearing') - ->orderBy('owned_items.created_at', 'desc') - ->get(); - - return view('users.characteritems', ['items' => $items, 'type' => $type]); - } - - public function toggleWearing(Request $request, $id) - { - $item = Item::findOrFail($id); - $ownedItem = OwnedItems::where(['item_id' => $id, 'user_id' => $request->user()->id])->firstOrFail(); - - $wearingItems = DB::table('owned_items') - ->join('items', 'owned_items.item_id', '=', 'items.id') - ->where('owned_items.user_id', $request->user()->id) - ->where('owned_items.wearing', true) - ->where('items.type', $item->type) - ->select('owned_items.id', 'owned_items.item_id', 'owned_items.wearing') - ->get(); - - if (!$ownedItem->wearing) { - if ($item->type == "Hat") { - if (count($wearingItems) >= 5) { - $wearingItem = OwnedItems::where(['id' => $wearingItems[0]->id, 'wearing' => true])->first(); - - if ($wearingItem) { - $wearingItem->wearing = false; - $wearingItem->save(); - } - } - } else { - foreach ($wearingItems as $wearingItem) { - $wearingItem = OwnedItems::where(['id' => $wearingItem->id, 'user_id' => $request->user()->id])->first(); - $wearingItem->wearing = false; - $wearingItem->save(); - } - } - - $ownedItem->wearing = true; - $ownedItem->save(); - } else { - $ownedItem->wearing = false; - $ownedItem->save(); - } - - return back(); - } - - public function regenThumbnail(Request $request) - { - $user = $request->user(); - $userInQueue = RenderQueue::where(['type' => 'user', 'target_id' => $user->id])->first(); - - if ($userInQueue) { - return 'INQUEUE'; - } else { - RenderQueue::create([ - 'type' => 'user', - 'target_id' => $user->id - ]); - - return 'OK'; - } - } - - public function download(Request $request) - { - return view('client.download'); - } - - public function savesettings(Request $request) - { - $user = $request->user(); - - $request->validate([ - 'blurb' => ['max:700'] - ]); - - $user->blurb = $request->blurb; - $user->save(); - - return redirect(route('users.settings'))->with('message', 'Settings saved successfully.'); - } -} diff --git a/app/Http/Controllers/WelcomeController.php b/app/Http/Controllers/WelcomeController.php deleted file mode 100644 index 9338f61..0000000 --- a/app/Http/Controllers/WelcomeController.php +++ /dev/null @@ -1,39 +0,0 @@ - 1])->latest()->take(4)->get(); - $userCount = User::count(); - $renderQueueCount = RenderQueue::count(); - $threadCount = ForumThread::count(); - $postCount = ForumPost::count(); - $totalPosts = $threadCount + $postCount; - $itemCount = Item::count(); - $newestUser = User::orderBy('joined', 'DESC')->first(); - - return view('welcome')->with( - [ - 'announcements' => $announcements, - 'userCount' => $userCount, - 'renderQueueCount' => $renderQueueCount, - 'threadCount' => $threadCount, - 'postCount' => $postCount, - 'totalPosts' => $totalPosts, - 'itemCount' => $itemCount, - 'newestUser' => $newestUser - ] - ); - } -} diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php deleted file mode 100644 index dd23df9..0000000 --- a/app/Http/Kernel.php +++ /dev/null @@ -1,70 +0,0 @@ - [ - \App\Http\Middleware\EncryptCookies::class, - \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, - \Illuminate\Session\Middleware\StartSession::class, - // \Illuminate\Session\Middleware\AuthenticateSession::class, - \Illuminate\View\Middleware\ShareErrorsFromSession::class, - \App\Http\Middleware\VerifyCsrfToken::class, - \Illuminate\Routing\Middleware\SubstituteBindings::class, - \App\Http\Middleware\UserOnlineMiddleware::class, - \App\Http\Middleware\IsBanned::class, - \App\Http\Middleware\DailyMoneyMiddleware::class, - ], - - 'api' => [ - 'throttle:api', - \Illuminate\Routing\Middleware\SubstituteBindings::class, - ], - ]; - - /** - * The application's route middleware. - * - * These middleware may be assigned to groups or used individually. - * - * @var array - */ - protected $routeMiddleware = [ - 'auth' => \App\Http\Middleware\Authenticate::class, - 'admin' => \App\Http\Middleware\IsAdmin::class, - 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, - 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, - 'can' => \Illuminate\Auth\Middleware\Authorize::class, - 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, - 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, - 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, - 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, - 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, - ]; -} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php deleted file mode 100644 index 704089a..0000000 --- a/app/Http/Middleware/Authenticate.php +++ /dev/null @@ -1,21 +0,0 @@ -expectsJson()) { - return route('login'); - } - } -} diff --git a/app/Http/Middleware/DailyMoneyMiddleware.php b/app/Http/Middleware/DailyMoneyMiddleware.php deleted file mode 100644 index 6bf7a8a..0000000 --- a/app/Http/Middleware/DailyMoneyMiddleware.php +++ /dev/null @@ -1,31 +0,0 @@ -last_online = Carbon::now(); - if(strtotime(Auth::user()->last_daily_reward) < Carbon::now()->timestamp - (86400)) { - Auth::user()->money = Auth::user()->money + config('app.daily_reward'); - Auth::user()->last_daily_reward = Carbon::now(); - } - Auth::user()->save(); - } - return $next($request); - } -} diff --git a/app/Http/Middleware/EncryptCookies.php b/app/Http/Middleware/EncryptCookies.php deleted file mode 100644 index 033136a..0000000 --- a/app/Http/Middleware/EncryptCookies.php +++ /dev/null @@ -1,17 +0,0 @@ -user()->admin) { - return redirect('/home'); - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/IsBanned.php b/app/Http/Middleware/IsBanned.php deleted file mode 100644 index 899e59b..0000000 --- a/app/Http/Middleware/IsBanned.php +++ /dev/null @@ -1,31 +0,0 @@ -banned) { - if (Route::currentRouteName() != "users.banned" and Route::currentRouteName() != "users.unban") { - return redirect('/banned'); - } - } - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/PreventRequestsDuringMaintenance.php b/app/Http/Middleware/PreventRequestsDuringMaintenance.php deleted file mode 100644 index e4956d0..0000000 --- a/app/Http/Middleware/PreventRequestsDuringMaintenance.php +++ /dev/null @@ -1,17 +0,0 @@ -check()) { - return redirect(RouteServiceProvider::HOME); - } - } - - return $next($request); - } -} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php deleted file mode 100644 index a8a252d..0000000 --- a/app/Http/Middleware/TrimStrings.php +++ /dev/null @@ -1,19 +0,0 @@ -allSubdomainsOfApplicationUrl(), - ]; - } -} diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php deleted file mode 100644 index a3b6aef..0000000 --- a/app/Http/Middleware/TrustProxies.php +++ /dev/null @@ -1,23 +0,0 @@ -id, true, Carbon::now()->addMinutes(1)); - - if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { - $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"]; - } - - $ip = $_SERVER['REMOTE_ADDR']; - - $user = User::find(Auth::user()->id); - $user->update(['last_online' => (new \DateTime())->format("Y-m-d H:i:s"), 'last_ip' => $ip]); - if ($user->register_ip == "0.0.0.0") { - $user->update(['register_ip' => $ip]); - } - } - return $next($request); - } -} diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php deleted file mode 100644 index 4fcf2d6..0000000 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ /dev/null @@ -1,17 +0,0 @@ -belongsTo('App\Models\User', 'user_id'); - } -} diff --git a/app/Models/ForumCategory.php b/app/Models/ForumCategory.php deleted file mode 100644 index 57915e1..0000000 --- a/app/Models/ForumCategory.php +++ /dev/null @@ -1,28 +0,0 @@ -hasMany('App\Models\ForumThread', 'category_id'); - } - - public function posts() - { - return $this->hasMany('App\Models\ForumPost', 'category_id'); - } -} diff --git a/app/Models/ForumPost.php b/app/Models/ForumPost.php deleted file mode 100644 index 2544892..0000000 --- a/app/Models/ForumPost.php +++ /dev/null @@ -1,34 +0,0 @@ -belongsTo('App\Models\ForumCategory', 'category_id'); - } - - public function thread() - { - return $this->belongsTo('App\Models\ForumThread', 'thread_id'); - } - - public function user() - { - return $this->belongsTo('App\Models\User', 'user_id'); - } -} diff --git a/app/Models/ForumThread.php b/app/Models/ForumThread.php deleted file mode 100644 index 0237299..0000000 --- a/app/Models/ForumThread.php +++ /dev/null @@ -1,35 +0,0 @@ -belongsTo('App\Models\ForumCategory', 'category_id'); - } - - public function replies() - { - return $this->hasMany('App\Models\ForumPost', 'thread_id'); - } - - public function user() - { - return $this->belongsTo('App\Models\User', 'user_id'); - } -} diff --git a/app/Models/GameToken.php b/app/Models/GameToken.php deleted file mode 100644 index 776aff1..0000000 --- a/app/Models/GameToken.php +++ /dev/null @@ -1,21 +0,0 @@ -belongsTo('App\Models\User', 'user_id'); - } - - public function server() { - return $this->belongsTo('App\Models\Server', 'server_id'); - } -} diff --git a/app/Models/InviteKey.php b/app/Models/InviteKey.php deleted file mode 100644 index 8ddfc63..0000000 --- a/app/Models/InviteKey.php +++ /dev/null @@ -1,22 +0,0 @@ -belongsTo('App\Models\User', 'creator'); - } -} diff --git a/app/Models/Item.php b/app/Models/Item.php deleted file mode 100644 index d9cbb9a..0000000 --- a/app/Models/Item.php +++ /dev/null @@ -1,43 +0,0 @@ -belongsTo('App\Models\User', 'creator'); - } - - public function isXmlAsset() - { - return $this->type == "Hat" || $this->type == "Model" || $this->type == "Gear" || $this->type == "Package" || $this->type == "Head"; - } - - public function getXmlContents() - { - if (Storage::disk('public')->exists('items/' . $this->id)) { - return Storage::disk('public')->get('items/' . $this->id); - } else { - return false; - } - } -} diff --git a/app/Models/OwnedItems.php b/app/Models/OwnedItems.php deleted file mode 100644 index 01e8b37..0000000 --- a/app/Models/OwnedItems.php +++ /dev/null @@ -1,25 +0,0 @@ -belongsTo('App\Models\User', 'user_id'); - } - - public function item() { - return $this->belongsTo('App\Models\Item', 'item_id'); - } -} diff --git a/app/Models/RenderQueue.php b/app/Models/RenderQueue.php deleted file mode 100644 index 221b0ba..0000000 --- a/app/Models/RenderQueue.php +++ /dev/null @@ -1,28 +0,0 @@ -belongsTo('App\Models\User', 'target_id'); - } - - public function item() - { - return $this->belongsTo('App\Models\Item', 'target_id'); - } -} diff --git a/app/Models/Server.php b/app/Models/Server.php deleted file mode 100644 index 1d430e8..0000000 --- a/app/Models/Server.php +++ /dev/null @@ -1,25 +0,0 @@ -belongsTo('App\Models\User', 'creator'); - } -} diff --git a/app/Models/User.php b/app/Models/User.php deleted file mode 100644 index 6a19b67..0000000 --- a/app/Models/User.php +++ /dev/null @@ -1,89 +0,0 @@ - 'datetime', - ]; - - protected $dates = [ - 'banned_until', - 'joined', - 'last_online' - ]; - - public function threads() - { - return $this->hasMany('App\Models\ForumThread', 'user_id'); - } - - public function posts() - { - return $this->hasMany('App\Models\ForumPost', 'user_id'); - } - - public function getReadableMoney() - { - $money = $this->money; - - if ($money < 100000) { - // Anything less than one hundred thousand - $money_format = number_format($money); - } else if ($money < 1000000) { - // Anything less than a million - $money_format = number_format($money / 1000, 0) . 'K+'; - } else if ($money < 1000000000) { - // Anything less than a billion - $money_format = number_format($money / 1000000, 0) . 'M+'; - } else { - // At least a billion - $money_format = number_format($money / 1000000000, 1) . 'B+'; - } - - return $money_format; - } -} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php deleted file mode 100644 index 43cc470..0000000 --- a/app/Providers/AppServiceProvider.php +++ /dev/null @@ -1,31 +0,0 @@ -user()->admin; - }); - } -} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index ce74491..0000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,30 +0,0 @@ - 'App\Policies\ModelPolicy', - ]; - - /** - * Register any authentication / authorization services. - * - * @return void - */ - public function boot() - { - $this->registerPolicies(); - - // - } -} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php deleted file mode 100644 index 395c518..0000000 --- a/app/Providers/BroadcastServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ - [ - SendEmailVerificationNotification::class, - ], - ]; - - /** - * Register any events for your application. - * - * @return void - */ - public function boot() - { - // - } -} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php deleted file mode 100644 index 3bd3c81..0000000 --- a/app/Providers/RouteServiceProvider.php +++ /dev/null @@ -1,63 +0,0 @@ -configureRateLimiting(); - - $this->routes(function () { - Route::prefix('api') - ->middleware('api') - ->namespace($this->namespace) - ->group(base_path('routes/api.php')); - - Route::middleware('web') - ->namespace($this->namespace) - ->group(base_path('routes/web.php')); - }); - } - - /** - * Configure the rate limiters for the application. - * - * @return void - */ - protected function configureRateLimiting() - { - RateLimiter::for('api', function (Request $request) { - return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); - }); - } -} diff --git a/app/Rules/AssetTypesRule.php b/app/Rules/AssetTypesRule.php deleted file mode 100644 index 35a7300..0000000 --- a/app/Rules/AssetTypesRule.php +++ /dev/null @@ -1,44 +0,0 @@ -first(); - - if (!$invitekey) { - return false; - } - - if ($invitekey->uses < 1) { - return false; - } - - return true; - } - - /** - * Get the validation error message. - * - * @return string - */ - public function message() - { - return 'This invite key is invalid.'; - } -} diff --git a/artisan b/artisan deleted file mode 100644 index 5c23e2e..0000000 --- a/artisan +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env php -make(Illuminate\Contracts\Console\Kernel::class); - -$status = $kernel->handle( - $input = new Symfony\Component\Console\Input\ArgvInput, - new Symfony\Component\Console\Output\ConsoleOutput -); - -/* -|-------------------------------------------------------------------------- -| Shutdown The Application -|-------------------------------------------------------------------------- -| -| Once Artisan has finished running, we will fire off the shutdown events -| so that any final work may be done by the application before we shut -| down the process. This is the last thing to happen to the request. -| -*/ - -$kernel->terminate($input, $status); - -exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php deleted file mode 100644 index 037e17d..0000000 --- a/bootstrap/app.php +++ /dev/null @@ -1,55 +0,0 @@ -singleton( - Illuminate\Contracts\Http\Kernel::class, - App\Http\Kernel::class -); - -$app->singleton( - Illuminate\Contracts\Console\Kernel::class, - App\Console\Kernel::class -); - -$app->singleton( - Illuminate\Contracts\Debug\ExceptionHandler::class, - App\Exceptions\Handler::class -); - -/* -|-------------------------------------------------------------------------- -| Return The Application -|-------------------------------------------------------------------------- -| -| This script returns the application instance. The instance is given to -| the calling script so we can separate the building of the instances -| from the actual running of the application and sending responses. -| -*/ - -return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/bootstrap/cache/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/composer.json b/composer.json deleted file mode 100644 index 9f48924..0000000 --- a/composer.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "laravel/laravel", - "type": "project", - "description": "The Laravel Framework.", - "keywords": ["framework", "laravel"], - "license": "MIT", - "require": { - "php": "^7.3|^8.0", - "abeautifulsite/simpleimage": "^3.6", - "fideloper/proxy": "^4.4", - "fruitcake/laravel-cors": "^2.0", - "guzzlehttp/guzzle": "^7.0.1", - "laravel/framework": "^8.12", - "laravel/tinker": "^2.5", - "laravel/ui": "^3.2", - "parsedown/laravel": "^1.2", - "pharaonic/laravel-readable": "^1.0" - }, - "require-dev": { - "facade/ignition": "^2.5", - "fakerphp/faker": "^1.9.1", - "laravel/sail": "^1.0.1", - "mockery/mockery": "^1.4.2", - "nunomaduro/collision": "^5.0", - "phpunit/phpunit": "^9.3.3" - }, - "autoload": { - "psr-4": { - "App\\": "app/", - "Database\\Factories\\": "database/factories/", - "Database\\Seeders\\": "database/seeders/" - }, - "files": [ - "app/External/CloudflareHelper.php", - "app/External/SimpleImage.class.php" - ] - }, - "autoload-dev": { - "psr-4": { - "Tests\\": "tests/" - } - }, - "scripts": { - "post-autoload-dump": [ - "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi" - ], - "post-root-package-install": [ - "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" - ], - "post-create-project-cmd": [ - "@php artisan key:generate --ansi" - ] - }, - "extra": { - "laravel": { - "dont-discover": [] - } - }, - "config": { - "optimize-autoloader": true, - "preferred-install": "dist", - "sort-packages": true - }, - "minimum-stability": "dev", - "prefer-stable": true -} diff --git a/composer.lock b/composer.lock deleted file mode 100644 index ef25b5f..0000000 --- a/composer.lock +++ /dev/null @@ -1,8059 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "f33b548dfdd8babed34a7560dbebdb9f", - "packages": [ - { - "name": "abeautifulsite/simpleimage", - "version": "3.6.3", - "source": { - "type": "git", - "url": "https://github.com/claviska/SimpleImage.git", - "reference": "21b6f4bf4ef1927158b3e29bd0c2d99c6681c750" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/21b6f4bf4ef1927158b3e29bd0c2d99c6681c750", - "reference": "21b6f4bf4ef1927158b3e29bd0c2d99c6681c750", - "shasum": "" - }, - "require": { - "ext-gd": "*", - "league/color-extractor": "0.3.*", - "php": ">=5.6.0" - }, - "type": "library", - "autoload": { - "psr-0": { - "claviska": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Cory LaViska", - "homepage": "http://www.abeautifulsite.net/", - "role": "Developer" - } - ], - "description": "A PHP class that makes working with images as simple as possible.", - "support": { - "issues": "https://github.com/claviska/SimpleImage/issues", - "source": "https://github.com/claviska/SimpleImage/tree/3.6.3" - }, - "funding": [ - { - "url": "https://github.com/claviska", - "type": "github" - } - ], - "time": "2021-04-20T12:18:18+00:00" - }, - { - "name": "asm89/stack-cors", - "version": "v2.0.3", - "source": { - "type": "git", - "url": "https://github.com/asm89/stack-cors.git", - "reference": "9cb795bf30988e8c96dd3c40623c48a877bc6714" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/asm89/stack-cors/zipball/9cb795bf30988e8c96dd3c40623c48a877bc6714", - "reference": "9cb795bf30988e8c96dd3c40623c48a877bc6714", - "shasum": "" - }, - "require": { - "php": "^7.0|^8.0", - "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", - "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" - }, - "require-dev": { - "phpunit/phpunit": "^6|^7|^8|^9", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "Asm89\\Stack\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alexander", - "email": "iam.asm89@gmail.com" - } - ], - "description": "Cross-origin resource sharing library and stack middleware", - "homepage": "https://github.com/asm89/stack-cors", - "keywords": [ - "cors", - "stack" - ], - "support": { - "issues": "https://github.com/asm89/stack-cors/issues", - "source": "https://github.com/asm89/stack-cors/tree/v2.0.3" - }, - "time": "2021-03-11T06:42:03+00:00" - }, - { - "name": "brick/math", - "version": "0.9.2", - "source": { - "type": "git", - "url": "https://github.com/brick/math.git", - "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", - "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.3.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Brick\\Math\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Arbitrary-precision arithmetic library", - "keywords": [ - "Arbitrary-precision", - "BigInteger", - "BigRational", - "arithmetic", - "bigdecimal", - "bignum", - "brick", - "math" - ], - "support": { - "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.2" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/brick/math", - "type": "tidelift" - } - ], - "time": "2021-01-20T22:51:39+00:00" - }, - { - "name": "dflydev/dot-access-data", - "version": "v3.0.0", - "source": { - "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/e04ff030d24a33edc2421bef305e32919dd78fc3", - "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", - "scrutinizer/ocular": "1.6.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^3.14" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Dflydev\\DotAccessData\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Carlos Frutos", - "email": "carlos@kiwing.it", - "homepage": "https://github.com/cfrutos" - }, - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com" - } - ], - "description": "Given a deep data structure, access data by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": [ - "access", - "data", - "dot", - "notation" - ], - "support": { - "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.0" - }, - "time": "2021-01-01T22:08:42+00:00" - }, - { - "name": "doctrine/inflector", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^7.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", - "homepage": "https://www.doctrine-project.org/projects/inflector.html", - "keywords": [ - "inflection", - "inflector", - "lowercase", - "manipulation", - "php", - "plural", - "singular", - "strings", - "uppercase", - "words" - ], - "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "time": "2020-05-29T15:13:26+00:00" - }, - { - "name": "doctrine/lexer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", - "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" - ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2020-05-25T17:44:05+00:00" - }, - { - "name": "dragonmantank/cron-expression", - "version": "v3.1.0", - "source": { - "type": "git", - "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", - "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", - "shasum": "" - }, - "require": { - "php": "^7.2|^8.0", - "webmozart/assert": "^1.7.0" - }, - "replace": { - "mtdowling/cron-expression": "^1.0" - }, - "require-dev": { - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-webmozart-assert": "^0.12.7", - "phpunit/phpunit": "^7.0|^8.0|^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Cron\\": "src/Cron/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Tankersley", - "email": "chris@ctankersley.com", - "homepage": "https://github.com/dragonmantank" - } - ], - "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", - "keywords": [ - "cron", - "schedule" - ], - "support": { - "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" - }, - "funding": [ - { - "url": "https://github.com/dragonmantank", - "type": "github" - } - ], - "time": "2020-11-24T19:55:57+00:00" - }, - { - "name": "egulias/email-validator", - "version": "2.1.25", - "source": { - "type": "git", - "url": "https://github.com/egulias/EmailValidator.git", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", - "shasum": "" - }, - "require": { - "doctrine/lexer": "^1.0.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.10" - }, - "require-dev": { - "dominicsayers/isemail": "^3.0.7", - "phpunit/phpunit": "^4.8.36|^7.5.15", - "satooshi/php-coveralls": "^1.0.1" - }, - "suggest": { - "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Egulias\\EmailValidator\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Gulias Davis" - } - ], - "description": "A library for validating emails against several RFCs", - "homepage": "https://github.com/egulias/EmailValidator", - "keywords": [ - "email", - "emailvalidation", - "emailvalidator", - "validation", - "validator" - ], - "support": { - "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" - }, - "funding": [ - { - "url": "https://github.com/egulias", - "type": "github" - } - ], - "time": "2020-12-29T14:50:06+00:00" - }, - { - "name": "erusev/parsedown", - "version": "1.7.4", - "source": { - "type": "git", - "url": "https://github.com/erusev/parsedown.git", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "php": ">=5.3.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35" - }, - "type": "library", - "autoload": { - "psr-0": { - "Parsedown": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Emanuil Rusev", - "email": "hello@erusev.com", - "homepage": "http://erusev.com" - } - ], - "description": "Parser for Markdown.", - "homepage": "http://parsedown.org", - "keywords": [ - "markdown", - "parser" - ], - "support": { - "issues": "https://github.com/erusev/parsedown/issues", - "source": "https://github.com/erusev/parsedown/tree/1.7.x" - }, - "time": "2019-12-30T22:54:17+00:00" - }, - { - "name": "fideloper/proxy", - "version": "4.4.1", - "source": { - "type": "git", - "url": "https://github.com/fideloper/TrustedProxy.git", - "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0", - "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0", - "shasum": "" - }, - "require": { - "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0", - "php": ">=5.4.0" - }, - "require-dev": { - "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Fideloper\\Proxy\\TrustedProxyServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Fideloper\\Proxy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Fidao", - "email": "fideloper@gmail.com" - } - ], - "description": "Set trusted proxies for Laravel", - "keywords": [ - "load balancing", - "proxy", - "trusted proxy" - ], - "support": { - "issues": "https://github.com/fideloper/TrustedProxy/issues", - "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.1" - }, - "time": "2020-10-22T13:48:01+00:00" - }, - { - "name": "fruitcake/laravel-cors", - "version": "v2.0.4", - "source": { - "type": "git", - "url": "https://github.com/fruitcake/laravel-cors.git", - "reference": "a8ccedc7ca95189ead0e407c43b530dc17791d6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/a8ccedc7ca95189ead0e407c43b530dc17791d6a", - "reference": "a8ccedc7ca95189ead0e407c43b530dc17791d6a", - "shasum": "" - }, - "require": { - "asm89/stack-cors": "^2.0.1", - "illuminate/contracts": "^6|^7|^8|^9", - "illuminate/support": "^6|^7|^8|^9", - "php": ">=7.2", - "symfony/http-foundation": "^4|^5", - "symfony/http-kernel": "^4.3.4|^5" - }, - "require-dev": { - "laravel/framework": "^6|^7|^8", - "orchestra/testbench-dusk": "^4|^5|^6|^7", - "phpunit/phpunit": "^6|^7|^8|^9", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - }, - "laravel": { - "providers": [ - "Fruitcake\\Cors\\CorsServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Fruitcake\\Cors\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fruitcake", - "homepage": "https://fruitcake.nl" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", - "keywords": [ - "api", - "cors", - "crossdomain", - "laravel" - ], - "support": { - "issues": "https://github.com/fruitcake/laravel-cors/issues", - "source": "https://github.com/fruitcake/laravel-cors/tree/v2.0.4" - }, - "funding": [ - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2021-04-26T11:24:25+00:00" - }, - { - "name": "graham-campbell/result-type", - "version": "v1.0.1", - "source": { - "type": "git", - "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", - "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", - "shasum": "" - }, - "require": { - "php": "^7.0|^8.0", - "phpoption/phpoption": "^1.7.3" - }, - "require-dev": { - "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "GrahamCampbell\\ResultType\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - } - ], - "description": "An Implementation Of The Result Type", - "keywords": [ - "Graham Campbell", - "GrahamCampbell", - "Result Type", - "Result-Type", - "result" - ], - "support": { - "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", - "type": "tidelift" - } - ], - "time": "2020-04-13T13:17:36+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.3.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "7008573787b430c1c1f650e3722d9bba59967628" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", - "reference": "7008573787b430c1c1f650e3722d9bba59967628", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7 || ^2.0", - "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" - }, - "provide": { - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-curl": "*", - "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" - }, - "suggest": { - "ext-curl": "Required for CURL handler support", - "ext-intl": "Required for Internationalized Domain Name (IDN) support", - "psr/log": "Required for using the Log middleware" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "7.3-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", - "keywords": [ - "client", - "curl", - "framework", - "http", - "http client", - "psr-18", - "psr-7", - "rest", - "web service" - ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.3.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://github.com/alexeyshockov", - "type": "github" - }, - { - "url": "https://github.com/gmponos", - "type": "github" - } - ], - "time": "2021-03-23T11:33:13+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "1.4.1", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - } - ], - "description": "Guzzle promises library", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" - }, - "time": "2021-03-07T09:25:29+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "1dc8d9cba3897165e16d12bb13d813afb1eb3fe7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/1dc8d9cba3897165e16d12bb13d813afb1eb3fe7", - "reference": "1dc8d9cba3897165e16d12bb13d813afb1eb3fe7", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "ralouphie/getallheaders": "^3.0" - }, - "provide": { - "psr/http-factory-implementation": "1.0", - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.8 || ^9.3.10" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "psr-4": { - "GuzzleHttp\\Psr7\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Schultze", - "homepage": "https://github.com/Tobion" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "PSR-7 message implementation that also provides common utility methods", - "keywords": [ - "http", - "message", - "psr-7", - "request", - "response", - "stream", - "uri", - "url" - ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.0.0" - }, - "time": "2021-06-30T20:03:07+00:00" - }, - { - "name": "laravel/framework", - "version": "v8.52.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/framework.git", - "reference": "8fe9877d52e25f8aed36c51734e5a8510be967e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/8fe9877d52e25f8aed36c51734e5a8510be967e6", - "reference": "8fe9877d52e25f8aed36c51734e5a8510be967e6", - "shasum": "" - }, - "require": { - "doctrine/inflector": "^1.4|^2.0", - "dragonmantank/cron-expression": "^3.0.2", - "egulias/email-validator": "^2.1.10", - "ext-json": "*", - "ext-mbstring": "*", - "ext-openssl": "*", - "league/commonmark": "^1.3|^2.0", - "league/flysystem": "^1.1", - "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.31", - "opis/closure": "^3.6", - "php": "^7.3|^8.0", - "psr/container": "^1.0", - "psr/simple-cache": "^1.0", - "ramsey/uuid": "^4.0", - "swiftmailer/swiftmailer": "^6.0", - "symfony/console": "^5.1.4", - "symfony/error-handler": "^5.1.4", - "symfony/finder": "^5.1.4", - "symfony/http-foundation": "^5.1.4", - "symfony/http-kernel": "^5.1.4", - "symfony/mime": "^5.1.4", - "symfony/process": "^5.1.4", - "symfony/routing": "^5.1.4", - "symfony/var-dumper": "^5.1.4", - "tijsverkoyen/css-to-inline-styles": "^2.2.2", - "vlucas/phpdotenv": "^5.2", - "voku/portable-ascii": "^1.4.8" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "provide": { - "psr/container-implementation": "1.0" - }, - "replace": { - "illuminate/auth": "self.version", - "illuminate/broadcasting": "self.version", - "illuminate/bus": "self.version", - "illuminate/cache": "self.version", - "illuminate/collections": "self.version", - "illuminate/config": "self.version", - "illuminate/console": "self.version", - "illuminate/container": "self.version", - "illuminate/contracts": "self.version", - "illuminate/cookie": "self.version", - "illuminate/database": "self.version", - "illuminate/encryption": "self.version", - "illuminate/events": "self.version", - "illuminate/filesystem": "self.version", - "illuminate/hashing": "self.version", - "illuminate/http": "self.version", - "illuminate/log": "self.version", - "illuminate/macroable": "self.version", - "illuminate/mail": "self.version", - "illuminate/notifications": "self.version", - "illuminate/pagination": "self.version", - "illuminate/pipeline": "self.version", - "illuminate/queue": "self.version", - "illuminate/redis": "self.version", - "illuminate/routing": "self.version", - "illuminate/session": "self.version", - "illuminate/support": "self.version", - "illuminate/testing": "self.version", - "illuminate/translation": "self.version", - "illuminate/validation": "self.version", - "illuminate/view": "self.version" - }, - "require-dev": { - "aws/aws-sdk-php": "^3.155", - "doctrine/dbal": "^2.6|^3.0", - "filp/whoops": "^2.8", - "guzzlehttp/guzzle": "^6.5.5|^7.0.1", - "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.4.2", - "orchestra/testbench-core": "^6.23", - "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.8|^9.3.3", - "predis/predis": "^1.1.2", - "symfony/cache": "^5.1.4" - }, - "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).", - "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", - "ext-ftp": "Required to use the Flysystem FTP driver.", - "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", - "ext-memcached": "Required to use the memcache cache driver.", - "ext-pcntl": "Required to use all features of the queue worker.", - "ext-posix": "Required to use all features of the queue worker.", - "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", - "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", - "filp/whoops": "Required for friendly error pages in development (^2.8).", - "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", - "laravel/tinker": "Required to use the tinker console command (^2.0).", - "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", - "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", - "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (^1.4.2).", - "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", - "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3).", - "predis/predis": "Required to use the predis connector (^1.1.2).", - "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", - "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", - "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "8.x-dev" - } - }, - "autoload": { - "files": [ - "src/Illuminate/Collections/helpers.php", - "src/Illuminate/Events/functions.php", - "src/Illuminate/Foundation/helpers.php", - "src/Illuminate/Support/helpers.php" - ], - "psr-4": { - "Illuminate\\": "src/Illuminate/", - "Illuminate\\Support\\": [ - "src/Illuminate/Macroable/", - "src/Illuminate/Collections/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "The Laravel Framework.", - "homepage": "https://laravel.com", - "keywords": [ - "framework", - "laravel" - ], - "support": { - "issues": "https://github.com/laravel/framework/issues", - "source": "https://github.com/laravel/framework" - }, - "time": "2021-07-27T13:03:29+00:00" - }, - { - "name": "laravel/tinker", - "version": "v2.6.1", - "source": { - "type": "git", - "url": "https://github.com/laravel/tinker.git", - "reference": "04ad32c1a3328081097a181875733fa51f402083" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/04ad32c1a3328081097a181875733fa51f402083", - "reference": "04ad32c1a3328081097a181875733fa51f402083", - "shasum": "" - }, - "require": { - "illuminate/console": "^6.0|^7.0|^8.0", - "illuminate/contracts": "^6.0|^7.0|^8.0", - "illuminate/support": "^6.0|^7.0|^8.0", - "php": "^7.2.5|^8.0", - "psy/psysh": "^0.10.4", - "symfony/var-dumper": "^4.3.4|^5.0" - }, - "require-dev": { - "mockery/mockery": "~1.3.3|^1.4.2", - "phpunit/phpunit": "^8.5.8|^9.3.3" - }, - "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Tinker\\TinkerServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Laravel\\Tinker\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Powerful REPL for the Laravel framework.", - "keywords": [ - "REPL", - "Tinker", - "laravel", - "psysh" - ], - "support": { - "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.6.1" - }, - "time": "2021-03-02T16:53:12+00:00" - }, - { - "name": "laravel/ui", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/laravel/ui.git", - "reference": "07d725813350c695c779382cbd6dac0ab8665537" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/ui/zipball/07d725813350c695c779382cbd6dac0ab8665537", - "reference": "07d725813350c695c779382cbd6dac0ab8665537", - "shasum": "" - }, - "require": { - "illuminate/console": "^8.42", - "illuminate/filesystem": "^8.42", - "illuminate/support": "^8.42", - "illuminate/validation": "^8.42", - "php": "^7.3|^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Ui\\UiServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Laravel\\Ui\\": "src/", - "Illuminate\\Foundation\\Auth\\": "auth-backend/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Laravel UI utilities and presets.", - "keywords": [ - "laravel", - "ui" - ], - "support": { - "source": "https://github.com/laravel/ui/tree/v3.3.0" - }, - "time": "2021-05-25T16:45:33+00:00" - }, - { - "name": "league/color-extractor", - "version": "0.3.2", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/color-extractor.git", - "reference": "837086ec60f50c84c611c613963e4ad2e2aec806" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/837086ec60f50c84c611c613963e4ad2e2aec806", - "reference": "837086ec60f50c84c611c613963e4ad2e2aec806", - "shasum": "" - }, - "require": { - "ext-gd": "*", - "php": ">=5.4.0" - }, - "replace": { - "matthecat/colorextractor": "*" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "~2", - "phpunit/phpunit": "~5" - }, - "type": "library", - "autoload": { - "psr-4": { - "": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathieu Lechat", - "email": "math.lechat@gmail.com", - "homepage": "http://matthecat.com", - "role": "Developer" - } - ], - "description": "Extract colors from an image as a human would do.", - "homepage": "https://github.com/thephpleague/color-extractor", - "keywords": [ - "color", - "extract", - "human", - "image", - "palette" - ], - "support": { - "issues": "https://github.com/thephpleague/color-extractor/issues", - "source": "https://github.com/thephpleague/color-extractor/tree/master" - }, - "time": "2016-12-15T09:30:02+00:00" - }, - { - "name": "league/commonmark", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/commonmark.git", - "reference": "167142baf9a6b946f99ad9325b06028606f8238e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/167142baf9a6b946f99ad9325b06028606f8238e", - "reference": "167142baf9a6b946f99ad9325b06028606f8238e", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "league/config": "^1.1", - "php": "^7.4 || ^8.0", - "psr/event-dispatcher": "^1.0", - "symfony/polyfill-php80": "^1.15" - }, - "require-dev": { - "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", - "commonmark/commonmark.js": "0.30.0", - "composer/package-versions-deprecated": "^1.8", - "erusev/parsedown": "^1.0", - "ext-json": "*", - "github/gfm": "0.29.0", - "michelf/php-markdown": "^1.4", - "phpstan/phpstan": "^0.12.88", - "phpunit/phpunit": "^9.5.5", - "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0", - "unleashedtech/php-coding-standard": "^3.1", - "vimeo/psalm": "^4.7.3" - }, - "suggest": { - "symfony/yaml": "v2.3+ required if using the Front Matter extension" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.1-dev" - } - }, - "autoload": { - "psr-4": { - "League\\CommonMark\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com", - "role": "Lead Developer" - } - ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", - "homepage": "https://commonmark.thephpleague.com", - "keywords": [ - "commonmark", - "flavored", - "gfm", - "github", - "github-flavored", - "markdown", - "md", - "parser" - ], - "support": { - "docs": "https://commonmark.thephpleague.com/", - "forum": "https://github.com/thephpleague/commonmark/discussions", - "issues": "https://github.com/thephpleague/commonmark/issues", - "rss": "https://github.com/thephpleague/commonmark/releases.atom", - "source": "https://github.com/thephpleague/commonmark" - }, - "funding": [ - { - "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark", - "type": "custom" - }, - { - "url": "https://www.colinodell.com/sponsor", - "type": "custom" - }, - { - "url": "https://www.paypal.me/colinpodell/10.00", - "type": "custom" - }, - { - "url": "https://github.com/colinodell", - "type": "github" - }, - { - "url": "https://www.patreon.com/colinodell", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/league/commonmark", - "type": "tidelift" - } - ], - "time": "2021-07-24T20:12:58+00:00" - }, - { - "name": "league/config", - "version": "v1.1.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/config.git", - "reference": "20d42d88f12a76ff862e17af4f14a5a4bbfd0925" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/config/zipball/20d42d88f12a76ff862e17af4f14a5a4bbfd0925", - "reference": "20d42d88f12a76ff862e17af4f14a5a4bbfd0925", - "shasum": "" - }, - "require": { - "dflydev/dot-access-data": "^3.0", - "nette/schema": "^1.2", - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^0.12.90", - "phpunit/phpunit": "^9.5.5", - "scrutinizer/ocular": "^1.8.1", - "unleashedtech/php-coding-standard": "^3.1", - "vimeo/psalm": "^4.7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.2-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Config\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com", - "role": "Lead Developer" - } - ], - "description": "Define configuration arrays with strict schemas and access values with dot notation", - "homepage": "https://config.thephpleague.com", - "keywords": [ - "array", - "config", - "configuration", - "dot", - "dot-access", - "nested", - "schema" - ], - "support": { - "docs": "https://config.thephpleague.com/", - "issues": "https://github.com/thephpleague/config/issues", - "rss": "https://github.com/thephpleague/config/releases.atom", - "source": "https://github.com/thephpleague/config" - }, - "funding": [ - { - "url": "https://www.colinodell.com/sponsor", - "type": "custom" - }, - { - "url": "https://www.paypal.me/colinpodell/10.00", - "type": "custom" - }, - { - "url": "https://github.com/colinodell", - "type": "github" - } - ], - "time": "2021-06-19T15:52:37+00:00" - }, - { - "name": "league/flysystem", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "f3ad69181b8afed2c9edf7be5a2918144ff4ea32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f3ad69181b8afed2c9edf7be5a2918144ff4ea32", - "reference": "f3ad69181b8afed2c9edf7be5a2918144ff4ea32", - "shasum": "" - }, - "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], - "description": "Filesystem abstraction: Many filesystems, one API.", - "keywords": [ - "Cloud Files", - "WebDAV", - "abstraction", - "aws", - "cloud", - "copy.com", - "dropbox", - "file systems", - "files", - "filesystem", - "filesystems", - "ftp", - "rackspace", - "remote", - "s3", - "sftp", - "storage" - ], - "support": { - "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.4" - }, - "funding": [ - { - "url": "https://offset.earth/frankdejonge", - "type": "other" - } - ], - "time": "2021-06-23T21:56:05+00:00" - }, - { - "name": "league/mime-type-detection", - "version": "1.7.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", - "shasum": "" - }, - "require": { - "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.18", - "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "League\\MimeTypeDetection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Frank de Jonge", - "email": "info@frankdejonge.nl" - } - ], - "description": "Mime-type detection for Flysystem", - "support": { - "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" - }, - "funding": [ - { - "url": "https://github.com/frankdejonge", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/league/flysystem", - "type": "tidelift" - } - ], - "time": "2021-01-18T20:58:21+00:00" - }, - { - "name": "monolog/monolog", - "version": "2.3.2", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "71312564759a7db5b789296369c1a264efc43aad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/71312564759a7db5b789296369c1a264efc43aad", - "reference": "71312564759a7db5b789296369c1a264efc43aad", - "shasum": "" - }, - "require": { - "php": ">=7.2", - "psr/log": "^1.0.1" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9 || ^3.0", - "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", - "graylog2/gelf-php": "^1.4.2", - "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpspec/prophecy": "^1.6.1", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5", - "predis/predis": "^1.1", - "rollbar/rollbar": "^1.3", - "ruflin/elastica": ">=0.90 <7.0.1", - "swiftmailer/swiftmailer": "^5.3|^6.0" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mbstring": "Allow to work properly with unicode symbols", - "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "https://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "https://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "support": { - "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.2" - }, - "funding": [ - { - "url": "https://github.com/Seldaek", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", - "type": "tidelift" - } - ], - "time": "2021-07-23T07:42:52+00:00" - }, - { - "name": "nesbot/carbon", - "version": "2.51.1", - "source": { - "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922", - "reference": "8619c299d1e0d4b344e1f98ca07a1ce2cfbf1922", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.1.8 || ^8.0", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0" - }, - "require-dev": { - "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", - "kylekatarnls/multi-tester": "^2.0", - "phpmd/phpmd": "^2.9", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54", - "phpunit/phpunit": "^7.5.20 || ^8.5.14", - "squizlabs/php_codesniffer": "^3.4" - }, - "bin": [ - "bin/carbon" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-3.x": "3.x-dev", - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] - } - }, - "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "https://markido.com" - }, - { - "name": "kylekatarnls", - "homepage": "https://github.com/kylekatarnls" - } - ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", - "keywords": [ - "date", - "datetime", - "time" - ], - "support": { - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" - }, - "funding": [ - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" - } - ], - "time": "2021-07-28T13:16:28+00:00" - }, - { - "name": "nette/schema", - "version": "v1.2.1", - "source": { - "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", - "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", - "shasum": "" - }, - "require": { - "nette/utils": "^3.1.4 || ^4.0", - "php": ">=7.1 <8.1" - }, - "require-dev": { - "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^0.12", - "tracy/tracy": "^2.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", - "keywords": [ - "config", - "nette" - ], - "support": { - "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.1" - }, - "time": "2021-03-04T17:51:11+00:00" - }, - { - "name": "nette/utils", - "version": "v3.2.2", - "source": { - "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", - "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", - "shasum": "" - }, - "require": { - "php": ">=7.2 <8.1" - }, - "conflict": { - "nette/di": "<3.0.6" - }, - "require-dev": { - "nette/tester": "~2.0", - "phpstan/phpstan": "^0.12", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", - "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" - ], - "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.2" - }, - "time": "2021-03-03T22:53:25+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.12.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "6608f01670c3cc5079e18c1dab1104e002579143" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6608f01670c3cc5079e18c1dab1104e002579143", - "reference": "6608f01670c3cc5079e18c1dab1104e002579143", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.9-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.12.0" - }, - "time": "2021-07-21T10:44:31+00:00" - }, - { - "name": "opis/closure", - "version": "3.6.2", - "source": { - "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6", - "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6", - "shasum": "" - }, - "require": { - "php": "^5.4 || ^7.0 || ^8.0" - }, - "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\Closure\\": "src/" - }, - "files": [ - "functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", - "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "support": { - "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.2" - }, - "time": "2021-04-09T13:42:10+00:00" - }, - { - "name": "parsedown/laravel", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/parsedown/laravel.git", - "reference": "c713ffe28c76730754389180e86e93e8e84087e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/parsedown/laravel/zipball/c713ffe28c76730754389180e86e93e8e84087e7", - "reference": "c713ffe28c76730754389180e86e93e8e84087e7", - "shasum": "" - }, - "require": { - "erusev/parsedown": "^1.7", - "php": ">=7.1.3" - }, - "require-dev": { - "orchestra/testbench": "^3.8", - "php": ">=7.2", - "phpunit/phpunit": "^8.3" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Parsedown\\Providers\\ParsedownServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/Support/helpers.php" - ], - "psr-4": { - "Parsedown\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eduardo Agostini", - "email": "edu.agostini@gmail.com" - } - ], - "description": "Official Parsedown's Laravel Wrapper.", - "homepage": "http://parsedown.org", - "keywords": [ - "laravel", - "parsedown" - ], - "support": { - "issues": "https://github.com/parsedown/laravel/issues", - "source": "https://github.com/parsedown/laravel" - }, - "time": "2020-01-07T02:12:55+00:00" - }, - { - "name": "pharaonic/laravel-readable", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/Pharaonic/laravel-readable.git", - "reference": "42bc9ece47c98ae07397bb8ac77333b71fb32097" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Pharaonic/laravel-readable/zipball/42bc9ece47c98ae07397bb8ac77333b71fb32097", - "reference": "42bc9ece47c98ae07397bb8ac77333b71fb32097", - "shasum": "" - }, - "require": { - "laravel/framework": ">=6.0", - "php": ">=7.2" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "Pharaonic\\Laravel\\Readable\\ReadableServiceProvider" - ], - "aliases": { - "Readable": "Pharaonic\\Laravel\\Readable\\Readable" - } - } - }, - "autoload": { - "psr-4": { - "Pharaonic\\Laravel\\Readable\\": "src" - }, - "files": [ - "src/Helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Raggi", - "email": "support@pharaonic.io", - "homepage": "https://pharaonic.io" - } - ], - "description": "Laravel - Readable Number (Integer|decimal) & DateTime & Time Length & File Size.", - "keywords": [ - "human readable", - "laravel", - "pharaonic", - "php", - "readable" - ], - "support": { - "issues": "https://github.com/Pharaonic/laravel-readable/issues", - "source": "https://github.com/Pharaonic/laravel-readable/tree/1.0.4" - }, - "time": "2021-05-09T13:30:55+00:00" - }, - { - "name": "phpoption/phpoption", - "version": "1.7.5", - "source": { - "type": "git", - "url": "https://github.com/schmittjoh/php-option.git", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", - "shasum": "" - }, - "require": { - "php": "^5.5.9 || ^7.0 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7-dev" - } - }, - "autoload": { - "psr-4": { - "PhpOption\\": "src/PhpOption/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Graham Campbell", - "email": "graham@alt-three.com" - } - ], - "description": "Option Type for PHP", - "keywords": [ - "language", - "option", - "php", - "type" - ], - "support": { - "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", - "type": "tidelift" - } - ], - "time": "2020-07-20T17:29:33+00:00" - }, - { - "name": "psr/container", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Psr\\Container\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", - "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" - ], - "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" - }, - "time": "2021-03-05T17:36:06+00:00" - }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" - }, - "time": "2019-01-08T18:20:26+00:00" - }, - { - "name": "psr/http-client", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client/tree/master" - }, - "time": "2020-06-29T06:28:15+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "shasum": "" - }, - "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" - }, - "time": "2019-04-30T12:38:16+00:00" - }, - { - "name": "psr/http-message", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", - "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, - "time": "2016-08-06T14:39:51+00:00" - }, - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" - }, - "time": "2021-05-03T11:20:27+00:00" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" - }, - "time": "2017-10-23T01:57:42+00:00" - }, - { - "name": "psy/psysh", - "version": "v0.10.8", - "source": { - "type": "git", - "url": "https://github.com/bobthecow/psysh.git", - "reference": "e4573f47750dd6c92dca5aee543fa77513cbd8d3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/e4573f47750dd6c92dca5aee543fa77513cbd8d3", - "reference": "e4573f47750dd6c92dca5aee543fa77513cbd8d3", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-tokenizer": "*", - "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3", - "php": "^8.0 || ^7.0 || ^5.5.9", - "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10", - "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.2", - "hoa/console": "3.17.*" - }, - "suggest": { - "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", - "ext-pdo-sqlite": "The doc command requires SQLite to work.", - "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", - "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", - "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." - }, - "bin": [ - "bin/psysh" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "0.10.x-dev" - } - }, - "autoload": { - "files": [ - "src/functions.php" - ], - "psr-4": { - "Psy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Justin Hileman", - "email": "justin@justinhileman.info", - "homepage": "http://justinhileman.com" - } - ], - "description": "An interactive shell for modern PHP.", - "homepage": "http://psysh.org", - "keywords": [ - "REPL", - "console", - "interactive", - "shell" - ], - "support": { - "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.10.8" - }, - "time": "2021-04-10T16:23:39+00:00" - }, - { - "name": "ralouphie/getallheaders", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/ralouphie/getallheaders.git", - "reference": "120b605dfeb996808c31b6477290a714d356e822" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", - "reference": "120b605dfeb996808c31b6477290a714d356e822", - "shasum": "" - }, - "require": { - "php": ">=5.6" - }, - "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^5 || ^6.5" - }, - "type": "library", - "autoload": { - "files": [ - "src/getallheaders.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ralph Khattar", - "email": "ralph.khattar@gmail.com" - } - ], - "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, - "time": "2019-03-08T08:55:37+00:00" - }, - { - "name": "ramsey/collection", - "version": "1.1.3", - "source": { - "type": "git", - "url": "https://github.com/ramsey/collection.git", - "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", - "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8" - }, - "require-dev": { - "captainhook/captainhook": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", - "ergebnis/composer-normalize": "^2.6", - "fakerphp/faker": "^1.5", - "hamcrest/hamcrest-php": "^2", - "jangregor/phpstan-prophecy": "^0.8", - "mockery/mockery": "^1.3", - "phpstan/extension-installer": "^1", - "phpstan/phpstan": "^0.12.32", - "phpstan/phpstan-mockery": "^0.12.5", - "phpstan/phpstan-phpunit": "^0.12.11", - "phpunit/phpunit": "^8.5 || ^9", - "psy/psysh": "^0.10.4", - "slevomat/coding-standard": "^6.3", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ramsey\\Collection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ben Ramsey", - "email": "ben@benramsey.com", - "homepage": "https://benramsey.com" - } - ], - "description": "A PHP 7.2+ library for representing and manipulating collections.", - "keywords": [ - "array", - "collection", - "hash", - "map", - "queue", - "set" - ], - "support": { - "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.1.3" - }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", - "type": "tidelift" - } - ], - "time": "2021-01-21T17:40:04+00:00" - }, - { - "name": "ramsey/uuid", - "version": "4.1.1", - "source": { - "type": "git", - "url": "https://github.com/ramsey/uuid.git", - "reference": "cd4032040a750077205918c86049aa0f43d22947" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", - "reference": "cd4032040a750077205918c86049aa0f43d22947", - "shasum": "" - }, - "require": { - "brick/math": "^0.8 || ^0.9", - "ext-json": "*", - "php": "^7.2 || ^8", - "ramsey/collection": "^1.0", - "symfony/polyfill-ctype": "^1.8" - }, - "replace": { - "rhumsaa/uuid": "self.version" - }, - "require-dev": { - "codeception/aspect-mock": "^3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", - "doctrine/annotations": "^1.8", - "goaop/framework": "^2", - "mockery/mockery": "^1.3", - "moontoast/math": "^1.1", - "paragonie/random-lib": "^2", - "php-mock/php-mock-mockery": "^1.3", - "php-mock/php-mock-phpunit": "^2.5", - "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^0.17.1", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-mockery": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^8.5", - "psy/psysh": "^0.10.0", - "slevomat/coding-standard": "^6.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "3.9.4" - }, - "suggest": { - "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", - "ext-ctype": "Enables faster processing of character classification using ctype functions.", - "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", - "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", - "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } - }, - "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - }, - "files": [ - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", - "homepage": "https://github.com/ramsey/uuid", - "keywords": [ - "guid", - "identifier", - "uuid" - ], - "support": { - "issues": "https://github.com/ramsey/uuid/issues", - "rss": "https://github.com/ramsey/uuid/releases.atom", - "source": "https://github.com/ramsey/uuid" - }, - "funding": [ - { - "url": "https://github.com/ramsey", - "type": "github" - } - ], - "time": "2020-08-18T17:17:46+00:00" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v6.2.7", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "15f7faf8508e04471f666633addacf54c0ab5933" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933", - "reference": "15f7faf8508e04471f666633addacf54c0ab5933", - "shasum": "" - }, - "require": { - "egulias/email-validator": "^2.0|^3.1", - "php": ">=7.0.0", - "symfony/polyfill-iconv": "^1.0", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0" - }, - "require-dev": { - "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.0" - }, - "suggest": { - "ext-intl": "Needed to support internationalized email addresses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "6.2-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], - "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7" - }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", - "type": "tidelift" - } - ], - "time": "2021-03-09T12:30:35+00:00" - }, - { - "name": "symfony/console", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "ebd610dacd40d75b6a12bf64b5ccd494fc7d6ab1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/ebd610dacd40d75b6a12bf64b5ccd494fc7d6ab1", - "reference": "ebd610dacd40d75b6a12bf64b5ccd494fc7d6ab1", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" - }, - "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Eases the creation of beautiful and testable command line interfaces", - "homepage": "https://symfony.com", - "keywords": [ - "cli", - "command line", - "console", - "terminal" - ], - "support": { - "source": "https://github.com/symfony/console/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-26T16:33:26+00:00" - }, - { - "name": "symfony/css-selector", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/css-selector.git", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", - "reference": "7fb120adc7f600a59027775b224c13a33530dd90", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\CssSelector\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Converts CSS selectors to XPath expressions", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-21T12:38:00+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, - { - "name": "symfony/error-handler", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/error-handler.git", - "reference": "281f6c4660bcf5844bb0346fe3a4664722fe4c73" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/281f6c4660bcf5844bb0346fe3a4664722fe4c73", - "reference": "281f6c4660bcf5844bb0346fe3a4664722fe4c73", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0" - }, - "require-dev": { - "symfony/deprecation-contracts": "^2.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\ErrorHandler\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to manage errors and ease debugging PHP code", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:55:36+00:00" - }, - { - "name": "symfony/event-dispatcher", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "f2fd2208157553874560f3645d4594303058c4bd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f2fd2208157553874560f3645d4594303058c4bd", - "reference": "f2fd2208157553874560f3645d4594303058c4bd", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/dependency-injection": "<4.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:55:36+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, - { - "name": "symfony/finder", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "17f50e06018baec41551a71a15731287dbaab186" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/17f50e06018baec41551a71a15731287dbaab186", - "reference": "17f50e06018baec41551a71a15731287dbaab186", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:54:19+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4", - "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-04-11T23:07:08+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "d6602aca7d3e11f401a0b24f43b611c530abfad3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d6602aca7d3e11f401a0b24f43b611c530abfad3", - "reference": "d6602aca7d3e11f401a0b24f43b611c530abfad3", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0" - }, - "suggest": { - "symfony/mime": "To use the file extension guesser" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:55:36+00:00" - }, - { - "name": "symfony/http-kernel", - "version": "v5.3.5", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-kernel.git", - "reference": "9eb3ee3cb6c69e12ba5770665b89fe82f0b99033" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9eb3ee3cb6c69e12ba5770665b89fe82f0b99033", - "reference": "9eb3ee3cb6c69e12ba5770665b89fe82f0b99033", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4|^5.0", - "symfony/event-dispatcher": "^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^5.3", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "symfony/browser-kit": "<4.4", - "symfony/cache": "<5.0", - "symfony/config": "<5.0", - "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", - "symfony/doctrine-bridge": "<5.0", - "symfony/form": "<5.0", - "symfony/http-client": "<5.0", - "symfony/mailer": "<5.0", - "symfony/messenger": "<5.0", - "symfony/translation": "<5.0", - "symfony/twig-bridge": "<5.0", - "symfony/validator": "<5.0", - "twig/twig": "<2.13" - }, - "provide": { - "psr/log-implementation": "1.0|2.0" - }, - "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.3", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^2.13|^3.0.4" - }, - "suggest": { - "symfony/browser-kit": "", - "symfony/config": "", - "symfony/console": "", - "symfony/dependency-injection": "" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpKernel\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides a structured process for converting a Request into a Response", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.3.5" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-27T04:39:22+00:00" - }, - { - "name": "symfony/mime", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/mime.git", - "reference": "633e4e8afe9e529e5599d71238849a4218dd497b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/633e4e8afe9e529e5599d71238849a4218dd497b", - "reference": "633e4e8afe9e529e5599d71238849a4218dd497b", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-intl-idn": "^1.10", - "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "egulias/email-validator": "~3.0.0", - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" - }, - "require-dev": { - "egulias/email-validator": "^2.1.10|^3.1", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.1", - "symfony/property-info": "^4.4|^5.1", - "symfony/serializer": "^5.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Mime\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Allows manipulating MIME messages", - "homepage": "https://symfony.com", - "keywords": [ - "mime", - "mime-type" - ], - "support": { - "source": "https://github.com/symfony/mime/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-21T12:40:44+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-iconv", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933", - "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-iconv": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Iconv extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "iconv", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T09:27:20+00:00" - }, - { - "name": "symfony/polyfill-intl-grapheme", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/24b72c6baa32c746a4d0840147c9715e42bb68ab", - "reference": "24b72c6baa32c746a4d0840147c9715e42bb68ab", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's grapheme_* functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "grapheme", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T09:17:38+00:00" - }, - { - "name": "symfony/polyfill-intl-idn", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/65bd267525e82759e7d8c4e8ceea44f398838e65", - "reference": "65bd267525e82759e7d8c4e8ceea44f398838e65", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T09:27:20+00:00" - }, - { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1", - "reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T09:27:20+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976", - "reference": "9a142215a36a3888e30d0a9eeea9766764e96976", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-05-27T09:17:38+00:00" - }, - { - "name": "symfony/polyfill-php73", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fba8933c384d6476ab14fb7b8526e5287ca7e010", - "reference": "fba8933c384d6476ab14fb7b8526e5287ca7e010", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.23.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0", - "reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-02-19T12:13:01+00:00" - }, - { - "name": "symfony/process", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "d16634ee55b895bd85ec714dadc58e4428ecf030" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d16634ee55b895bd85ec714dadc58e4428ecf030", - "reference": "d16634ee55b895bd85ec714dadc58e4428ecf030", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:54:19+00:00" - }, - { - "name": "symfony/routing", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/routing.git", - "reference": "0a35d2f57d73c46ab6d042ced783b81d09a624c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0a35d2f57d73c46ab6d042ced783b81d09a624c4", - "reference": "0a35d2f57d73c46ab6d042ced783b81d09a624c4", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", - "symfony/dependency-injection": "<4.4", - "symfony/yaml": "<4.4" - }, - "require-dev": { - "doctrine/annotations": "^1.12", - "psr/log": "^1|^2|^3", - "symfony/config": "^5.3", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "symfony/config": "For using the all-in-one router or any loader", - "symfony/expression-language": "For using expression matching", - "symfony/http-foundation": "For using a Symfony Request object", - "symfony/yaml": "For using the YAML loader" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Routing\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Maps an HTTP request to a set of configuration variables", - "homepage": "https://symfony.com", - "keywords": [ - "router", - "routing", - "uri", - "url" - ], - "support": { - "source": "https://github.com/symfony/routing/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:55:36+00:00" - }, - { - "name": "symfony/service-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.1" - }, - "suggest": { - "symfony/service-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to writing services", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-04-01T10:43:52+00:00" - }, - { - "name": "symfony/string", - "version": "v5.3.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", - "reference": "bd53358e3eccec6a670b5f33ab680d8dbe1d4ae1", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.0", - "symfony/polyfill-intl-normalizer": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "~1.15" - }, - "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, - "files": [ - "Resources/functions.php" - ], - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", - "homepage": "https://symfony.com", - "keywords": [ - "grapheme", - "i18n", - "string", - "unicode", - "utf-8", - "utf8" - ], - "support": { - "source": "https://github.com/symfony/string/tree/v5.3.3" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-06-27T11:44:38+00:00" - }, - { - "name": "symfony/translation", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation.git", - "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/d89ad7292932c2699cbe4af98d72c5c6bbc504c1", - "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation-contracts": "^2.3" - }, - "conflict": { - "symfony/config": "<4.4", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" - }, - "provide": { - "symfony/translation-implementation": "2.3" - }, - "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/intl": "^4.4|^5.0", - "symfony/polyfill-intl-icu": "^1.21", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^4.4|^5.0" - }, - "suggest": { - "psr/log-implementation": "To use logging capability in translator", - "symfony/config": "", - "symfony/yaml": "" - }, - "type": "library", - "autoload": { - "files": [ - "Resources/functions.php" - ], - "psr-4": { - "Symfony\\Component\\Translation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides tools to internationalize your application", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-25T09:39:16+00:00" - }, - { - "name": "symfony/translation-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/translation-contracts.git", - "reference": "95c812666f3e91db75385749fe219c5e494c7f95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", - "reference": "95c812666f3e91db75385749fe219c5e494c7f95", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/translation-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\Translation\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to translation", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, - { - "name": "symfony/var-dumper", - "version": "v5.3.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/var-dumper.git", - "reference": "a895407f7cf55da42aa1480935d707684b690bfc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a895407f7cf55da42aa1480935d707684b690bfc", - "reference": "a895407f7cf55da42aa1480935d707684b690bfc", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" - }, - "conflict": { - "phpunit/phpunit": "<5.4.3", - "symfony/console": "<4.4" - }, - "require-dev": { - "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.13|^3.0.4" - }, - "suggest": { - "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", - "ext-intl": "To show region name in time zone dump", - "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" - }, - "bin": [ - "Resources/bin/var-dump-server" - ], - "type": "library", - "autoload": { - "files": [ - "Resources/functions/dump.php" - ], - "psr-4": { - "Symfony\\Component\\VarDumper\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", - "homepage": "https://symfony.com", - "keywords": [ - "debug", - "dump" - ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.4" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-07-23T15:55:36+00:00" - }, - { - "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.3", - "source": { - "type": "git", - "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2.x-dev" - } - }, - "autoload": { - "psr-4": { - "TijsVerkoyen\\CssToInlineStyles\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Tijs Verkoyen", - "email": "css_to_inline_styles@verkoyen.eu", - "role": "Developer" - } - ], - "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", - "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", - "support": { - "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3" - }, - "time": "2020-07-13T06:12:54+00:00" - }, - { - "name": "vlucas/phpdotenv", - "version": "v5.3.0", - "source": { - "type": "git", - "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", - "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", - "shasum": "" - }, - "require": { - "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.1", - "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.7.4", - "symfony/polyfill-ctype": "^1.17", - "symfony/polyfill-mbstring": "^1.17", - "symfony/polyfill-php80": "^1.17" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" - }, - "suggest": { - "ext-filter": "Required to use the boolean validator." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.3-dev" - } - }, - "autoload": { - "psr-4": { - "Dotenv\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Graham Campbell", - "email": "graham@alt-three.com", - "homepage": "https://gjcampbell.co.uk/" - }, - { - "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://vancelucas.com/" - } - ], - "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", - "keywords": [ - "dotenv", - "env", - "environment" - ], - "support": { - "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0" - }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", - "type": "tidelift" - } - ], - "time": "2021-01-20T15:23:13+00:00" - }, - { - "name": "voku/portable-ascii", - "version": "1.5.6", - "source": { - "type": "git", - "url": "https://github.com/voku/portable-ascii.git", - "reference": "80953678b19901e5165c56752d087fc11526017c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", - "reference": "80953678b19901e5165c56752d087fc11526017c", - "shasum": "" - }, - "require": { - "php": ">=7.0.0" - }, - "require-dev": { - "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" - }, - "suggest": { - "ext-intl": "Use Intl for transliterator_transliterate() support" - }, - "type": "library", - "autoload": { - "psr-4": { - "voku\\": "src/voku/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Lars Moelleken", - "homepage": "http://www.moelleken.org/" - } - ], - "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", - "homepage": "https://github.com/voku/portable-ascii", - "keywords": [ - "ascii", - "clean", - "php" - ], - "support": { - "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.5.6" - }, - "funding": [ - { - "url": "https://www.paypal.me/moelleken", - "type": "custom" - }, - { - "url": "https://github.com/voku", - "type": "github" - }, - { - "url": "https://opencollective.com/portable-ascii", - "type": "open_collective" - }, - { - "url": "https://www.patreon.com/voku", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", - "type": "tidelift" - } - ], - "time": "2020-11-12T00:07:28+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" - }, - "time": "2021-03-09T10:59:23+00:00" - } - ], - "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^8.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2020-11-10T18:47:58+00:00" - }, - { - "name": "facade/flare-client-php", - "version": "1.8.1", - "source": { - "type": "git", - "url": "https://github.com/facade/flare-client-php.git", - "reference": "47b639dc02bcfdfc4ebb83de703856fa01e35f5f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/flare-client-php/zipball/47b639dc02bcfdfc4ebb83de703856fa01e35f5f", - "reference": "47b639dc02bcfdfc4ebb83de703856fa01e35f5f", - "shasum": "" - }, - "require": { - "facade/ignition-contracts": "~1.0", - "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0", - "php": "^7.1|^8.0", - "symfony/http-foundation": "^3.3|^4.1|^5.0", - "symfony/mime": "^3.4|^4.0|^5.1", - "symfony/var-dumper": "^3.4|^4.0|^5.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "phpunit/phpunit": "^7.5.16", - "spatie/phpunit-snapshot-assertions": "^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "psr-4": { - "Facade\\FlareClient\\": "src" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Send PHP errors to Flare", - "homepage": "https://github.com/facade/flare-client-php", - "keywords": [ - "exception", - "facade", - "flare", - "reporting" - ], - "support": { - "issues": "https://github.com/facade/flare-client-php/issues", - "source": "https://github.com/facade/flare-client-php/tree/1.8.1" - }, - "funding": [ - { - "url": "https://github.com/spatie", - "type": "github" - } - ], - "time": "2021-05-31T19:23:29+00:00" - }, - { - "name": "facade/ignition", - "version": "2.11.2", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition.git", - "reference": "7c4e7a7da184cd00c7ce6eacc590200bb9672de7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition/zipball/7c4e7a7da184cd00c7ce6eacc590200bb9672de7", - "reference": "7c4e7a7da184cd00c7ce6eacc590200bb9672de7", - "shasum": "" - }, - "require": { - "ext-json": "*", - "ext-mbstring": "*", - "facade/flare-client-php": "^1.6", - "facade/ignition-contracts": "^1.0.2", - "illuminate/support": "^7.0|^8.0", - "monolog/monolog": "^2.0", - "php": "^7.2.5|^8.0", - "symfony/console": "^5.0", - "symfony/var-dumper": "^5.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.14", - "mockery/mockery": "^1.3", - "orchestra/testbench": "^5.0|^6.0", - "psalm/plugin-laravel": "^1.2" - }, - "suggest": { - "laravel/telescope": "^3.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - }, - "laravel": { - "providers": [ - "Facade\\Ignition\\IgnitionServiceProvider" - ], - "aliases": { - "Flare": "Facade\\Ignition\\Facades\\Flare" - } - } - }, - "autoload": { - "psr-4": { - "Facade\\Ignition\\": "src" - }, - "files": [ - "src/helpers.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A beautiful error page for Laravel applications.", - "homepage": "https://github.com/facade/ignition", - "keywords": [ - "error", - "flare", - "laravel", - "page" - ], - "support": { - "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", - "forum": "https://twitter.com/flareappio", - "issues": "https://github.com/facade/ignition/issues", - "source": "https://github.com/facade/ignition" - }, - "time": "2021-07-20T14:01:22+00:00" - }, - { - "name": "facade/ignition-contracts", - "version": "1.0.2", - "source": { - "type": "git", - "url": "https://github.com/facade/ignition-contracts.git", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^v2.15.8", - "phpunit/phpunit": "^9.3.11", - "vimeo/psalm": "^3.17.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "Facade\\IgnitionContracts\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Freek Van der Herten", - "email": "freek@spatie.be", - "homepage": "https://flareapp.io", - "role": "Developer" - } - ], - "description": "Solution contracts for Ignition", - "homepage": "https://github.com/facade/ignition-contracts", - "keywords": [ - "contracts", - "flare", - "ignition" - ], - "support": { - "issues": "https://github.com/facade/ignition-contracts/issues", - "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" - }, - "time": "2020-10-16T08:27:54+00:00" - }, - { - "name": "fakerphp/faker", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/FakerPHP/Faker.git", - "reference": "89c6201c74db25fa759ff16e78a4d8f32547770e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/89c6201c74db25fa759ff16e78a4d8f32547770e", - "reference": "89c6201c74db25fa759ff16e78a4d8f32547770e", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.2" - }, - "conflict": { - "fzaninotto/faker": "*" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" - }, - "suggest": { - "ext-curl": "Required by Faker\\Provider\\Image to download images.", - "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", - "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", - "ext-mbstring": "Required for multibyte Unicode string functionality." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "v1.15-dev" - } - }, - "autoload": { - "psr-4": { - "Faker\\": "src/Faker/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "François Zaninotto" - } - ], - "description": "Faker is a PHP library that generates fake data for you.", - "keywords": [ - "data", - "faker", - "fixtures" - ], - "support": { - "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.15.0" - }, - "time": "2021-07-06T20:39:40+00:00" - }, - { - "name": "filp/whoops", - "version": "2.14.0", - "source": { - "type": "git", - "url": "https://github.com/filp/whoops.git", - "reference": "fdf92f03e150ed84d5967a833ae93abffac0315b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/fdf92f03e150ed84d5967a833ae93abffac0315b", - "reference": "fdf92f03e150ed84d5967a833ae93abffac0315b", - "shasum": "" - }, - "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", - "psr/log": "^1.0.1" - }, - "require-dev": { - "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", - "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" - }, - "suggest": { - "symfony/var-dumper": "Pretty print complex values better with var-dumper available", - "whoops/soap": "Formats errors as SOAP responses" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7-dev" - } - }, - "autoload": { - "psr-4": { - "Whoops\\": "src/Whoops/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Filipe Dobreira", - "homepage": "https://github.com/filp", - "role": "Developer" - } - ], - "description": "php error handling for cool kids", - "homepage": "https://filp.github.io/whoops/", - "keywords": [ - "error", - "exception", - "handling", - "library", - "throwable", - "whoops" - ], - "support": { - "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.14.0" - }, - "funding": [ - { - "url": "https://github.com/denis-sokolov", - "type": "github" - } - ], - "time": "2021-07-13T12:00:00+00:00" - }, - { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "shasum": "" - }, - "require": { - "php": "^5.3|^7.0|^8.0" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "hamcrest" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ], - "support": { - "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" - }, - "time": "2020-07-09T08:09:16+00:00" - }, - { - "name": "laravel/sail", - "version": "v1.8.6", - "source": { - "type": "git", - "url": "https://github.com/laravel/sail.git", - "reference": "51ecfe0f048f8f8e6c5617e02a1f67ca22817c98" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/51ecfe0f048f8f8e6c5617e02a1f67ca22817c98", - "reference": "51ecfe0f048f8f8e6c5617e02a1f67ca22817c98", - "shasum": "" - }, - "require": { - "illuminate/console": "^8.0|^9.0", - "illuminate/contracts": "^8.0|^9.0", - "illuminate/support": "^8.0|^9.0", - "php": "^7.3|^8.0" - }, - "bin": [ - "bin/sail" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - }, - "laravel": { - "providers": [ - "Laravel\\Sail\\SailServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Laravel\\Sail\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - } - ], - "description": "Docker files for running a basic Laravel application.", - "keywords": [ - "docker", - "laravel" - ], - "support": { - "issues": "https://github.com/laravel/sail/issues", - "source": "https://github.com/laravel/sail" - }, - "time": "2021-07-15T07:35:41+00:00" - }, - { - "name": "mockery/mockery", - "version": "1.4.3", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "^2.0.1", - "lib-pcre": ">=7.0", - "php": "^7.3 || ^8.0" - }, - "conflict": { - "phpunit/phpunit": "<8.0" - }, - "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" - }, - { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" - } - ], - "description": "Mockery is a simple yet flexible PHP mock object framework", - "homepage": "https://github.com/mockery/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ], - "support": { - "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.4.3" - }, - "time": "2021-02-24T09:51:49+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.10.2", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "replace": { - "myclabs/deep-copy": "self.version" - }, - "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2020-11-13T09:40:50+00:00" - }, - { - "name": "nunomaduro/collision", - "version": "v5.6.0", - "source": { - "type": "git", - "url": "https://github.com/nunomaduro/collision.git", - "reference": "0122ac6b03c75279ef78d1c0ad49725dfc52a8d2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/0122ac6b03c75279ef78d1c0ad49725dfc52a8d2", - "reference": "0122ac6b03c75279ef78d1c0ad49725dfc52a8d2", - "shasum": "" - }, - "require": { - "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.7.2", - "php": "^7.3 || ^8.0", - "symfony/console": "^5.0" - }, - "require-dev": { - "brianium/paratest": "^6.1", - "fideloper/proxy": "^4.4.1", - "friendsofphp/php-cs-fixer": "^2.17.3", - "fruitcake/laravel-cors": "^2.0.3", - "laravel/framework": "^8.0 || ^9.0", - "nunomaduro/larastan": "^0.6.2", - "nunomaduro/mock-final-classes": "^1.0", - "orchestra/testbench": "^6.0 || ^7.0", - "phpstan/phpstan": "^0.12.64", - "phpunit/phpunit": "^9.5.0" - }, - "type": "library", - "extra": { - "laravel": { - "providers": [ - "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "NunoMaduro\\Collision\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nuno Maduro", - "email": "enunomaduro@gmail.com" - } - ], - "description": "Cli error handling for console/command-line PHP applications.", - "keywords": [ - "artisan", - "cli", - "command-line", - "console", - "error", - "handling", - "laravel", - "laravel-zero", - "php", - "symfony" - ], - "support": { - "issues": "https://github.com/nunomaduro/collision/issues", - "source": "https://github.com/nunomaduro/collision" - }, - "funding": [ - { - "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", - "type": "custom" - }, - { - "url": "https://github.com/nunomaduro", - "type": "github" - }, - { - "url": "https://www.patreon.com/nunomaduro", - "type": "patreon" - } - ], - "time": "2021-07-26T20:39:06+00:00" - }, - { - "name": "phar-io/manifest", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" - }, - "time": "2021-07-20T11:28:43+00:00" - }, - { - "name": "phar-io/version", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" - }, - "time": "2021-02-23T14:00:09+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" - }, - "time": "2020-09-03T19:13:55+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.4.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" - }, - "time": "2020-09-17T18:55:26+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.13.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" - }, - "time": "2021-03-17T13:42:18+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f6293e1b30a2354e8428e004689671b83871edde" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", - "reference": "f6293e1b30a2354e8428e004689671b83871edde", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-03-28T07:26:59+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.5", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:57:25+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.5.7", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d0dc8b6999c937616df4fb046792004b33fd31c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0dc8b6999c937616df4fb046792004b33fd31c5", - "reference": "d0dc8b6999c937616df4fb046792004b33fd31c5", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3.4", - "sebastian/version": "^3.0.2" - }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, - "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.5-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ], - "files": [ - "src/Framework/Assert/Functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.7" - }, - "funding": [ - { - "url": "https://phpunit.de/donate.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-07-19T06:14:47+00:00" - }, - { - "name": "sebastian/cli-parser", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:08:49+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.6", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T15:49:45+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T15:52:27+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:10:38+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:52:38+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:24:23+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", - "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-06-11T13:31:12+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-11-28T06:42:11+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:17:30+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "abandoned": true, - "time": "2020-09-28T06:45:17+00:00" - }, - { - "name": "sebastian/type", - "version": "2.3.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2021-06-15T12:49:02+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.1", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2021-07-28T10:34:58+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": [], - "prefer-stable": true, - "prefer-lowest": false, - "platform": { - "php": "^7.3|^8.0" - }, - "platform-dev": [], - "plugin-api-version": "2.0.0" -} diff --git a/config/app.php b/config/app.php deleted file mode 100644 index 2370500..0000000 --- a/config/app.php +++ /dev/null @@ -1,311 +0,0 @@ - env('APP_NAME', 'Tadah'), - - /* - |-------------------------------------------------------------------------- - | Custom Configuration - |-------------------------------------------------------------------------- - | - | Configuration options for the website. - | - */ - - // Site settings - 'server_creation_enabled' => true, - 'item_creation_enabled' => true, - 'asset_upload_cost' => 0, - 'assets_approved_by_default' => true, - 'thumbnail_key' => 'vubPQLBiNPfW38KLWd5d', - 'dedicated_key' => 'wBY1uid5uJY2fXA0Hypr', - - // Forum settings - 'posting_enabled' => true, - 'posting_cooldown' => 15, - - // Main page quotes - 'quotes' => [ - 'Come on in tadah.rocks tadah.rocks', - 'SOTP', - 'SYOP', - 'Made you look', - 'The game', - 'Can you stop', - 'looking for a femboy, hit me up', - 'donate pl0x', - 'Roblox.com', - 'Putos pendejos tontaa', - 'Wanna be friends?', - '“Stop trying to kill the part of u that is cringe. Kill the part of u that cringes.” -Jesus', - 'yall are the appetomy of mental illness', - 'dudes having a whole ass annuerism', - 'its treadmill time [ Content Deleted ]', - 'Anonfiles.com/', - 'Ignorance is bliss, when tis folly to be wise.', - 'Null may have deleted general but at least he\'s not a pedo.', - 'today i put a chicken tikka slice in the oven when i came back from school BUT I ACCIDENTALLY SET THE OVEN TO GRILL AND NOW THE FUCKING THING LOOKS LIKE THIS', - 'ay bro just warning you, you probably shouldn\'t involve yourself with taskmanager\'s mercury shit he\'s a malicious individual who was behind the leaking of my IP address, and also blatantly stole the name from brent\'s mercury thing', - 'Nancy Pelosi farting while twerking....Blowing straight dust...', - 'Hello lets talk', - 'Yeah', - 'i dont think it is but that doesnt mean i am into it', - 'This day just keeps getting better n better! Free food!', - 'https://twitter.com/i/status/550345227790061570', - 'need to fart on someone\'s face who wants a pink eye from me', - 'https://twitter.com/i/status/386917584580665344', - 'Always love looking back on these dms just to see how carrot turned you into a complete degenerate. Turned from you trying you get client patching help from me to some dumbass bottling thing, then finally they switched to full [ Content Deleted ] mode', - 'https://twitter.com/i/status/1437064280382205958', - 'ur such a noob i mean how could you delete the whole winners??? that just wasted my time of even TRYING to get to winners ur just the noobiest thing ive like EVER seen im gonna keep sending you hate messages until ur sorry for deleting the winners. you hear me? GOOD well you better regret doing that cus im gonna spam yo inbox teehehhehehehheeh!!!! when i make a group ill put u in the biggest noob ever rank XD XD XD PWNAGE!!!!!! lolololol ima spam you ur a nooby fail.you are stupid. and you are stupid. and dont forget that you are stupid. your mom is a fail even more of a fail then you. yo mamma so fat when she went outside in a red dress kids yelled HEY KOOLAID!', - 'got you', - 'get on fortnite', - 'Like and RT for your chance to win 100,000 wasps delivered right to your home!!!', - 'Wanna rp', - 'this image reminds me of the song Archimedes from TF2', - 'https://www.youtube.com/watch?v=CMJizXYSiKk', - 'can you stop writing in shift lock for once', - 'wouldn\'t want to join shitvival #484637595737595 to begin with lmfao', - '"remember when ray leaked like 3 ips on the rblxdev forums" -XlXi, owner of Graphictoria', - 'footlong meatball on italian herb and cheese with provolone, toasted' - ], - - // Registration settings - 'invite_keys_required' => true, - 'registration_enabled' => true, - - // Currency settings - 'currency_name' => 'Dahllor', - 'currency_name_multiple' => 'Dahllors', - 'daily_reward' => 25, - - // Launcher/client settings - 'version_string' => '1.0.FUCKCORPORATIONS', - - /* - |-------------------------------------------------------------------------- - | Application Environment - |-------------------------------------------------------------------------- - | - | This value determines the "environment" your application is currently - | running in. This may determine how you prefer to configure various - | services the application utilizes. Set this in your ".env" file. - | - */ - - 'env' => env('APP_ENV', 'production'), - - /* - |-------------------------------------------------------------------------- - | Application Debug Mode - |-------------------------------------------------------------------------- - | - | When your application is in debug mode, detailed error messages with - | stack traces will be shown on every error that occurs within your - | application. If disabled, a simple generic error page is shown. - | - */ - - 'debug' => (bool) env('APP_DEBUG', false), - - /* - |-------------------------------------------------------------------------- - | Application URL - |-------------------------------------------------------------------------- - | - | This URL is used by the console to properly generate URLs when using - | the Artisan command line tool. You should set this to the root of - | your application so that it is used when running Artisan tasks. - | - */ - - 'url' => env('APP_URL', 'http://localhost'), - - 'asset_url' => env('ASSET_URL', null), - - /* - |-------------------------------------------------------------------------- - | Application Timezone - |-------------------------------------------------------------------------- - | - | Here you may specify the default timezone for your application, which - | will be used by the PHP date and date-time functions. We have gone - | ahead and set this to a sensible default for you out of the box. - | - */ - - 'timezone' => 'EST', - - /* - |-------------------------------------------------------------------------- - | Application Locale Configuration - |-------------------------------------------------------------------------- - | - | The application locale determines the default locale that will be used - | by the translation service provider. You are free to set this value - | to any of the locales which will be supported by the application. - | - */ - - 'locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Application Fallback Locale - |-------------------------------------------------------------------------- - | - | The fallback locale determines the locale to use when the current one - | is not available. You may change the value to correspond to any of - | the language folders that are provided through your application. - | - */ - - 'fallback_locale' => 'en', - - /* - |-------------------------------------------------------------------------- - | Faker Locale - |-------------------------------------------------------------------------- - | - | This locale will be used by the Faker PHP library when generating fake - | data for your database seeds. For example, this will be used to get - | localized telephone numbers, street address information and more. - | - */ - - 'faker_locale' => 'en_US', - - /* - |-------------------------------------------------------------------------- - | Encryption Key - |-------------------------------------------------------------------------- - | - | This key is used by the Illuminate encrypter service and should be set - | to a random, 32 character string, otherwise these encrypted strings - | will not be safe. Please do this before deploying an application! - | - */ - - 'key' => env('APP_KEY'), - - 'cipher' => 'AES-256-CBC', - - /* - |-------------------------------------------------------------------------- - | Autoloaded Service Providers - |-------------------------------------------------------------------------- - | - | The service providers listed here will be automatically loaded on the - | request to your application. Feel free to add your own services to - | this array to grant expanded functionality to your applications. - | - */ - - 'providers' => [ - - /* - * Laravel Framework Service Providers... - */ - Illuminate\Auth\AuthServiceProvider::class, - Illuminate\Broadcasting\BroadcastServiceProvider::class, - Illuminate\Bus\BusServiceProvider::class, - Illuminate\Cache\CacheServiceProvider::class, - Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, - Illuminate\Cookie\CookieServiceProvider::class, - Illuminate\Database\DatabaseServiceProvider::class, - Illuminate\Encryption\EncryptionServiceProvider::class, - Illuminate\Filesystem\FilesystemServiceProvider::class, - Illuminate\Foundation\Providers\FoundationServiceProvider::class, - Illuminate\Hashing\HashServiceProvider::class, - Illuminate\Mail\MailServiceProvider::class, - Illuminate\Notifications\NotificationServiceProvider::class, - Illuminate\Pagination\PaginationServiceProvider::class, - Illuminate\Pipeline\PipelineServiceProvider::class, - Illuminate\Queue\QueueServiceProvider::class, - Illuminate\Redis\RedisServiceProvider::class, - Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, - Illuminate\Session\SessionServiceProvider::class, - Illuminate\Translation\TranslationServiceProvider::class, - Illuminate\Validation\ValidationServiceProvider::class, - Illuminate\View\ViewServiceProvider::class, - - /* - * Package Service Providers... - */ - - /* - * Application Service Providers... - */ - App\Providers\AppServiceProvider::class, - App\Providers\AuthServiceProvider::class, - // App\Providers\BroadcastServiceProvider::class, - App\Providers\EventServiceProvider::class, - App\Providers\RouteServiceProvider::class, - - ], - - /* - |-------------------------------------------------------------------------- - | Class Aliases - |-------------------------------------------------------------------------- - | - | This array of class aliases will be registered when this application - | is started. However, feel free to register as many as you wish as - | the aliases are "lazy" loaded so they don't hinder performance. - | - */ - - 'aliases' => [ - - 'App' => Illuminate\Support\Facades\App::class, - 'Arr' => Illuminate\Support\Arr::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Auth' => Illuminate\Support\Facades\Auth::class, - 'Blade' => Illuminate\Support\Facades\Blade::class, - 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Config' => Illuminate\Support\Facades\Config::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'Date' => Illuminate\Support\Facades\Date::class, - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'File' => Illuminate\Support\Facades\File::class, - 'Gate' => Illuminate\Support\Facades\Gate::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Http' => Illuminate\Support\Facades\Http::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Mail' => Illuminate\Support\Facades\Mail::class, - 'Notification' => Illuminate\Support\Facades\Notification::class, - 'Password' => Illuminate\Support\Facades\Password::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - // 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Schema' => Illuminate\Support\Facades\Schema::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'Str' => Illuminate\Support\Str::class, - 'URL' => Illuminate\Support\Facades\URL::class, - 'Validator' => Illuminate\Support\Facades\Validator::class, - 'View' => Illuminate\Support\Facades\View::class, - - ], - -]; diff --git a/config/auth.php b/config/auth.php deleted file mode 100644 index ba1a4d8..0000000 --- a/config/auth.php +++ /dev/null @@ -1,117 +0,0 @@ - [ - 'guard' => 'web', - 'passwords' => 'users', - ], - - /* - |-------------------------------------------------------------------------- - | Authentication Guards - |-------------------------------------------------------------------------- - | - | Next, you may define every authentication guard for your application. - | Of course, a great default configuration has been defined for you - | here which uses session storage and the Eloquent user provider. - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | Supported: "session", "token" - | - */ - - 'guards' => [ - 'web' => [ - 'driver' => 'session', - 'provider' => 'users', - ], - - 'api' => [ - 'driver' => 'token', - 'provider' => 'users', - 'hash' => false, - ], - ], - - /* - |-------------------------------------------------------------------------- - | User Providers - |-------------------------------------------------------------------------- - | - | All authentication drivers have a user provider. This defines how the - | users are actually retrieved out of your database or other storage - | mechanisms used by this application to persist your user's data. - | - | If you have multiple user tables or models you may configure multiple - | sources which represent each model / table. These sources may then - | be assigned to any extra authentication guards you have defined. - | - | Supported: "database", "eloquent" - | - */ - - 'providers' => [ - 'users' => [ - 'driver' => 'eloquent', - 'model' => App\Models\User::class, - ], - - // 'users' => [ - // 'driver' => 'database', - // 'table' => 'users', - // ], - ], - - /* - |-------------------------------------------------------------------------- - | Resetting Passwords - |-------------------------------------------------------------------------- - | - | You may specify multiple password reset configurations if you have more - | than one user table or model in the application and you want to have - | separate password reset settings based on the specific user types. - | - | The expire time is the number of minutes that the reset token should be - | considered valid. This security feature keeps tokens short-lived so - | they have less time to be guessed. You may change this as needed. - | - */ - - 'passwords' => [ - 'users' => [ - 'provider' => 'users', - 'table' => 'password_resets', - 'expire' => 60, - 'throttle' => 60, - ], - ], - - /* - |-------------------------------------------------------------------------- - | Password Confirmation Timeout - |-------------------------------------------------------------------------- - | - | Here you may define the amount of seconds before a password confirmation - | times out and the user is prompted to re-enter their password via the - | confirmation screen. By default, the timeout lasts for three hours. - | - */ - - 'password_timeout' => 10800, - -]; diff --git a/config/broadcasting.php b/config/broadcasting.php deleted file mode 100644 index 2d52982..0000000 --- a/config/broadcasting.php +++ /dev/null @@ -1,64 +0,0 @@ - env('BROADCAST_DRIVER', 'null'), - - /* - |-------------------------------------------------------------------------- - | Broadcast Connections - |-------------------------------------------------------------------------- - | - | Here you may define all of the broadcast connections that will be used - | to broadcast events to other systems or over websockets. Samples of - | each available type of connection are provided inside this array. - | - */ - - 'connections' => [ - - 'pusher' => [ - 'driver' => 'pusher', - 'key' => env('PUSHER_APP_KEY'), - 'secret' => env('PUSHER_APP_SECRET'), - 'app_id' => env('PUSHER_APP_ID'), - 'options' => [ - 'cluster' => env('PUSHER_APP_CLUSTER'), - 'useTLS' => true, - ], - ], - - 'ably' => [ - 'driver' => 'ably', - 'key' => env('ABLY_KEY'), - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - ], - - 'log' => [ - 'driver' => 'log', - ], - - 'null' => [ - 'driver' => 'null', - ], - - ], - -]; diff --git a/config/cache.php b/config/cache.php deleted file mode 100644 index e32a2fd..0000000 --- a/config/cache.php +++ /dev/null @@ -1,106 +0,0 @@ - env('CACHE_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Cache Stores - |-------------------------------------------------------------------------- - | - | Here you may define all of the cache "stores" for your application as - | well as their drivers. You may even define multiple stores for the - | same cache driver to group types of items stored in your caches. - | - | Supported drivers: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb", "null" - | - */ - - 'stores' => [ - - 'apc' => [ - 'driver' => 'apc', - ], - - 'array' => [ - 'driver' => 'array', - 'serialize' => false, - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', - 'connection' => null, - 'lock_connection' => null, - ], - - 'file' => [ - 'driver' => 'file', - 'path' => storage_path('framework/cache/data'), - ], - - 'memcached' => [ - 'driver' => 'memcached', - 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), - 'sasl' => [ - env('MEMCACHED_USERNAME'), - env('MEMCACHED_PASSWORD'), - ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], - 'servers' => [ - [ - 'host' => env('MEMCACHED_HOST', '127.0.0.1'), - 'port' => env('MEMCACHED_PORT', 11211), - 'weight' => 100, - ], - ], - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'cache', - 'lock_connection' => 'default', - ], - - 'dynamodb' => [ - 'driver' => 'dynamodb', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), - 'endpoint' => env('DYNAMODB_ENDPOINT'), - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Cache Key Prefix - |-------------------------------------------------------------------------- - | - | When utilizing a RAM based store such as APC or Memcached, there might - | be other applications utilizing the same cache. So, we'll specify a - | value to get prefixed to all our keys so we can avoid collisions. - | - */ - - 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), - -]; diff --git a/config/cors.php b/config/cors.php deleted file mode 100644 index 8a39e6d..0000000 --- a/config/cors.php +++ /dev/null @@ -1,34 +0,0 @@ - ['api/*', 'sanctum/csrf-cookie'], - - 'allowed_methods' => ['*'], - - 'allowed_origins' => ['*'], - - 'allowed_origins_patterns' => [], - - 'allowed_headers' => ['*'], - - 'exposed_headers' => [], - - 'max_age' => 0, - - 'supports_credentials' => false, - -]; diff --git a/config/database.php b/config/database.php deleted file mode 100644 index b42d9b3..0000000 --- a/config/database.php +++ /dev/null @@ -1,147 +0,0 @@ - env('DB_CONNECTION', 'mysql'), - - /* - |-------------------------------------------------------------------------- - | Database Connections - |-------------------------------------------------------------------------- - | - | Here are each of the database connections setup for your application. - | Of course, examples of configuring each database platform that is - | supported by Laravel is shown below to make development simple. - | - | - | All database work in Laravel is done through the PHP PDO facilities - | so make sure you have the driver for your particular database of - | choice installed on your machine before you begin development. - | - */ - - 'connections' => [ - - 'sqlite' => [ - 'driver' => 'sqlite', - 'url' => env('DATABASE_URL'), - 'database' => env('DB_DATABASE', database_path('database.sqlite')), - 'prefix' => '', - 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), - ], - - 'mysql' => [ - 'driver' => 'mysql', - 'url' => env('DATABASE_URL'), - 'host' => env('DB_HOST', '127.0.0.1'), - 'port' => env('DB_PORT', '3306'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'unix_socket' => env('DB_SOCKET', ''), - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => '', - 'prefix_indexes' => true, - 'strict' => true, - 'engine' => null, - 'options' => extension_loaded('pdo_mysql') ? array_filter([ - PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), - ]) : [], - ], - - 'pgsql' => [ - 'driver' => 'pgsql', - 'url' => env('DATABASE_URL'), - 'host' => env('DB_HOST', '127.0.0.1'), - 'port' => env('DB_PORT', '5432'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'prefix_indexes' => true, - 'schema' => 'public', - 'sslmode' => 'prefer', - ], - - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - 'url' => env('DATABASE_URL'), - 'host' => env('DB_HOST', 'localhost'), - 'port' => env('DB_PORT', '1433'), - 'database' => env('DB_DATABASE', 'forge'), - 'username' => env('DB_USERNAME', 'forge'), - 'password' => env('DB_PASSWORD', ''), - 'charset' => 'utf8', - 'prefix' => '', - 'prefix_indexes' => true, - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Migration Repository Table - |-------------------------------------------------------------------------- - | - | This table keeps track of all the migrations that have already run for - | your application. Using this information, we can determine which of - | the migrations on disk haven't actually been run in the database. - | - */ - - 'migrations' => 'migrations', - - /* - |-------------------------------------------------------------------------- - | Redis Databases - |-------------------------------------------------------------------------- - | - | Redis is an open source, fast, and advanced key-value store that also - | provides a richer body of commands than a typical key-value system - | such as APC or Memcached. Laravel makes it easy to dig right in. - | - */ - - 'redis' => [ - - 'client' => env('REDIS_CLIENT', 'phpredis'), - - 'options' => [ - 'cluster' => env('REDIS_CLUSTER', 'redis'), - 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), - ], - - 'default' => [ - 'url' => env('REDIS_URL'), - 'host' => env('REDIS_HOST', '127.0.0.1'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', '6379'), - 'database' => env('REDIS_DB', '0'), - ], - - 'cache' => [ - 'url' => env('REDIS_URL'), - 'host' => env('REDIS_HOST', '127.0.0.1'), - 'password' => env('REDIS_PASSWORD', null), - 'port' => env('REDIS_PORT', '6379'), - 'database' => env('REDIS_CACHE_DB', '1'), - ], - - ], - -]; diff --git a/config/filesystems.php b/config/filesystems.php deleted file mode 100644 index 10c9d9b..0000000 --- a/config/filesystems.php +++ /dev/null @@ -1,72 +0,0 @@ - env('FILESYSTEM_DRIVER', 'local'), - - /* - |-------------------------------------------------------------------------- - | Filesystem Disks - |-------------------------------------------------------------------------- - | - | Here you may configure as many filesystem "disks" as you wish, and you - | may even configure multiple disks of the same driver. Defaults have - | been setup for each driver as an example of the required options. - | - | Supported Drivers: "local", "ftp", "sftp", "s3" - | - */ - - 'disks' => [ - - 'local' => [ - 'driver' => 'local', - 'root' => storage_path('app'), - ], - - 'public' => [ - 'driver' => 'local', - 'root' => storage_path('app/public'), - 'url' => env('APP_URL').'/storage', - 'visibility' => 'public', - ], - - 's3' => [ - 'driver' => 's3', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION'), - 'bucket' => env('AWS_BUCKET'), - 'url' => env('AWS_URL'), - 'endpoint' => env('AWS_ENDPOINT'), - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Symbolic Links - |-------------------------------------------------------------------------- - | - | Here you may configure the symbolic links that will be created when the - | `storage:link` Artisan command is executed. The array keys should be - | the locations of the links and the values should be their targets. - | - */ - - 'links' => [ - public_path('storage') => storage_path('app/public'), - ], - -]; diff --git a/config/hashing.php b/config/hashing.php deleted file mode 100644 index 8425770..0000000 --- a/config/hashing.php +++ /dev/null @@ -1,52 +0,0 @@ - 'bcrypt', - - /* - |-------------------------------------------------------------------------- - | Bcrypt Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Bcrypt algorithm. This will allow you - | to control the amount of time it takes to hash the given password. - | - */ - - 'bcrypt' => [ - 'rounds' => env('BCRYPT_ROUNDS', 10), - ], - - /* - |-------------------------------------------------------------------------- - | Argon Options - |-------------------------------------------------------------------------- - | - | Here you may specify the configuration options that should be used when - | passwords are hashed using the Argon algorithm. These will allow you - | to control the amount of time it takes to hash the given password. - | - */ - - 'argon' => [ - 'memory' => 1024, - 'threads' => 2, - 'time' => 2, - ], - -]; diff --git a/config/logging.php b/config/logging.php deleted file mode 100644 index 1aa06aa..0000000 --- a/config/logging.php +++ /dev/null @@ -1,105 +0,0 @@ - env('LOG_CHANNEL', 'stack'), - - /* - |-------------------------------------------------------------------------- - | Log Channels - |-------------------------------------------------------------------------- - | - | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives - | you a variety of powerful log handlers / formatters to utilize. - | - | Available Drivers: "single", "daily", "slack", "syslog", - | "errorlog", "monolog", - | "custom", "stack" - | - */ - - 'channels' => [ - 'stack' => [ - 'driver' => 'stack', - 'channels' => ['single'], - 'ignore_exceptions' => false, - ], - - 'single' => [ - 'driver' => 'single', - 'path' => storage_path('logs/laravel.log'), - 'level' => env('LOG_LEVEL', 'debug'), - ], - - 'daily' => [ - 'driver' => 'daily', - 'path' => storage_path('logs/laravel.log'), - 'level' => env('LOG_LEVEL', 'debug'), - 'days' => 14, - ], - - 'slack' => [ - 'driver' => 'slack', - 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'Laravel Log', - 'emoji' => ':boom:', - 'level' => env('LOG_LEVEL', 'critical'), - ], - - 'papertrail' => [ - 'driver' => 'monolog', - 'level' => env('LOG_LEVEL', 'debug'), - 'handler' => SyslogUdpHandler::class, - 'handler_with' => [ - 'host' => env('PAPERTRAIL_URL'), - 'port' => env('PAPERTRAIL_PORT'), - ], - ], - - 'stderr' => [ - 'driver' => 'monolog', - 'level' => env('LOG_LEVEL', 'debug'), - 'handler' => StreamHandler::class, - 'formatter' => env('LOG_STDERR_FORMATTER'), - 'with' => [ - 'stream' => 'php://stderr', - ], - ], - - 'syslog' => [ - 'driver' => 'syslog', - 'level' => env('LOG_LEVEL', 'debug'), - ], - - 'errorlog' => [ - 'driver' => 'errorlog', - 'level' => env('LOG_LEVEL', 'debug'), - ], - - 'null' => [ - 'driver' => 'monolog', - 'handler' => NullHandler::class, - ], - - 'emergency' => [ - 'path' => storage_path('logs/laravel.log'), - ], - ], - -]; diff --git a/config/mail.php b/config/mail.php deleted file mode 100644 index 54299aa..0000000 --- a/config/mail.php +++ /dev/null @@ -1,110 +0,0 @@ - env('MAIL_MAILER', 'smtp'), - - /* - |-------------------------------------------------------------------------- - | Mailer Configurations - |-------------------------------------------------------------------------- - | - | Here you may configure all of the mailers used by your application plus - | their respective settings. Several examples have been configured for - | you and you are free to add your own as your application requires. - | - | Laravel supports a variety of mail "transport" drivers to be used while - | sending an e-mail. You will specify which one you are using for your - | mailers below. You are free to add additional mailers as required. - | - | Supported: "smtp", "sendmail", "mailgun", "ses", - | "postmark", "log", "array" - | - */ - - 'mailers' => [ - 'smtp' => [ - 'transport' => 'smtp', - 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), - 'port' => env('MAIL_PORT', 587), - 'encryption' => env('MAIL_ENCRYPTION', 'tls'), - 'username' => env('MAIL_USERNAME'), - 'password' => env('MAIL_PASSWORD'), - 'timeout' => null, - 'auth_mode' => null, - ], - - 'ses' => [ - 'transport' => 'ses', - ], - - 'mailgun' => [ - 'transport' => 'mailgun', - ], - - 'postmark' => [ - 'transport' => 'postmark', - ], - - 'sendmail' => [ - 'transport' => 'sendmail', - 'path' => '/usr/sbin/sendmail -bs', - ], - - 'log' => [ - 'transport' => 'log', - 'channel' => env('MAIL_LOG_CHANNEL'), - ], - - 'array' => [ - 'transport' => 'array', - ], - ], - - /* - |-------------------------------------------------------------------------- - | Global "From" Address - |-------------------------------------------------------------------------- - | - | You may wish for all e-mails sent by your application to be sent from - | the same address. Here, you may specify a name and address that is - | used globally for all e-mails that are sent by your application. - | - */ - - 'from' => [ - 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), - 'name' => env('MAIL_FROM_NAME', 'Example'), - ], - - /* - |-------------------------------------------------------------------------- - | Markdown Mail Settings - |-------------------------------------------------------------------------- - | - | If you are using Markdown based email rendering, you may configure your - | theme and component paths here, allowing you to customize the design - | of the emails. Or, you may simply stick with the Laravel defaults! - | - */ - - 'markdown' => [ - 'theme' => 'default', - - 'paths' => [ - resource_path('views/vendor/mail'), - ], - ], - -]; diff --git a/config/queue.php b/config/queue.php deleted file mode 100644 index 25ea5a8..0000000 --- a/config/queue.php +++ /dev/null @@ -1,93 +0,0 @@ - env('QUEUE_CONNECTION', 'sync'), - - /* - |-------------------------------------------------------------------------- - | Queue Connections - |-------------------------------------------------------------------------- - | - | Here you may configure the connection information for each server that - | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. - | - | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" - | - */ - - 'connections' => [ - - 'sync' => [ - 'driver' => 'sync', - ], - - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', - 'retry_after' => 90, - 'after_commit' => false, - ], - - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', - 'retry_after' => 90, - 'block_for' => 0, - 'after_commit' => false, - ], - - 'sqs' => [ - 'driver' => 'sqs', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), - 'queue' => env('SQS_QUEUE', 'default'), - 'suffix' => env('SQS_SUFFIX'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - 'after_commit' => false, - ], - - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - 'queue' => env('REDIS_QUEUE', 'default'), - 'retry_after' => 90, - 'block_for' => null, - 'after_commit' => false, - ], - - ], - - /* - |-------------------------------------------------------------------------- - | Failed Queue Jobs - |-------------------------------------------------------------------------- - | - | These options configure the behavior of failed queue job logging so you - | can control which database and table are used to store the jobs that - | have failed. You may change them to any database / table you wish. - | - */ - - 'failed' => [ - 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), - 'database' => env('DB_CONNECTION', 'mysql'), - 'table' => 'failed_jobs', - ], - -]; diff --git a/config/services.php b/config/services.php deleted file mode 100644 index 2a1d616..0000000 --- a/config/services.php +++ /dev/null @@ -1,33 +0,0 @@ - [ - 'domain' => env('MAILGUN_DOMAIN'), - 'secret' => env('MAILGUN_SECRET'), - 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), - ], - - 'postmark' => [ - 'token' => env('POSTMARK_TOKEN'), - ], - - 'ses' => [ - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - ], - -]; diff --git a/config/session.php b/config/session.php deleted file mode 100644 index 4e0f66c..0000000 --- a/config/session.php +++ /dev/null @@ -1,201 +0,0 @@ - env('SESSION_DRIVER', 'file'), - - /* - |-------------------------------------------------------------------------- - | Session Lifetime - |-------------------------------------------------------------------------- - | - | Here you may specify the number of minutes that you wish the session - | to be allowed to remain idle before it expires. If you want them - | to immediately expire on the browser closing, set that option. - | - */ - - 'lifetime' => env('SESSION_LIFETIME', 120), - - 'expire_on_close' => false, - - /* - |-------------------------------------------------------------------------- - | Session Encryption - |-------------------------------------------------------------------------- - | - | This option allows you to easily specify that all of your session data - | should be encrypted before it is stored. All encryption will be run - | automatically by Laravel and you can use the Session like normal. - | - */ - - 'encrypt' => false, - - /* - |-------------------------------------------------------------------------- - | Session File Location - |-------------------------------------------------------------------------- - | - | When using the native session driver, we need a location where session - | files may be stored. A default has been set for you but a different - | location may be specified. This is only needed for file sessions. - | - */ - - 'files' => storage_path('framework/sessions'), - - /* - |-------------------------------------------------------------------------- - | Session Database Connection - |-------------------------------------------------------------------------- - | - | When using the "database" or "redis" session drivers, you may specify a - | connection that should be used to manage these sessions. This should - | correspond to a connection in your database configuration options. - | - */ - - 'connection' => env('SESSION_CONNECTION', null), - - /* - |-------------------------------------------------------------------------- - | Session Database Table - |-------------------------------------------------------------------------- - | - | When using the "database" session driver, you may specify the table we - | should use to manage the sessions. Of course, a sensible default is - | provided for you; however, you are free to change this as needed. - | - */ - - 'table' => 'sessions', - - /* - |-------------------------------------------------------------------------- - | Session Cache Store - |-------------------------------------------------------------------------- - | - | While using one of the framework's cache driven session backends you may - | list a cache store that should be used for these sessions. This value - | must match with one of the application's configured cache "stores". - | - | Affects: "apc", "dynamodb", "memcached", "redis" - | - */ - - 'store' => env('SESSION_STORE', null), - - /* - |-------------------------------------------------------------------------- - | Session Sweeping Lottery - |-------------------------------------------------------------------------- - | - | Some session drivers must manually sweep their storage location to get - | rid of old sessions from storage. Here are the chances that it will - | happen on a given request. By default, the odds are 2 out of 100. - | - */ - - 'lottery' => [2, 100], - - /* - |-------------------------------------------------------------------------- - | Session Cookie Name - |-------------------------------------------------------------------------- - | - | Here you may change the name of the cookie used to identify a session - | instance by ID. The name specified here will get used every time a - | new session cookie is created by the framework for every driver. - | - */ - - 'cookie' => env( - 'SESSION_COOKIE', - Str::slug(env('APP_NAME', 'laravel'), '_').'_session' - ), - - /* - |-------------------------------------------------------------------------- - | Session Cookie Path - |-------------------------------------------------------------------------- - | - | The session cookie path determines the path for which the cookie will - | be regarded as available. Typically, this will be the root path of - | your application but you are free to change this when necessary. - | - */ - - 'path' => '/', - - /* - |-------------------------------------------------------------------------- - | Session Cookie Domain - |-------------------------------------------------------------------------- - | - | Here you may change the domain of the cookie used to identify a session - | in your application. This will determine which domains the cookie is - | available to in your application. A sensible default has been set. - | - */ - - 'domain' => env('SESSION_DOMAIN', null), - - /* - |-------------------------------------------------------------------------- - | HTTPS Only Cookies - |-------------------------------------------------------------------------- - | - | By setting this option to true, session cookies will only be sent back - | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. - | - */ - - 'secure' => env('SESSION_SECURE_COOKIE'), - - /* - |-------------------------------------------------------------------------- - | HTTP Access Only - |-------------------------------------------------------------------------- - | - | Setting this value to true will prevent JavaScript from accessing the - | value of the cookie and the cookie will only be accessible through - | the HTTP protocol. You are free to modify this option if needed. - | - */ - - 'http_only' => true, - - /* - |-------------------------------------------------------------------------- - | Same-Site Cookies - |-------------------------------------------------------------------------- - | - | This option determines how your cookies behave when cross-site requests - | take place, and can be used to mitigate CSRF attacks. By default, we - | will set this value to "lax" since this is a secure default value. - | - | Supported: "lax", "strict", "none", null - | - */ - - 'same_site' => 'lax', - -]; diff --git a/config/view.php b/config/view.php deleted file mode 100644 index 22b8a18..0000000 --- a/config/view.php +++ /dev/null @@ -1,36 +0,0 @@ - [ - resource_path('views'), - ], - - /* - |-------------------------------------------------------------------------- - | Compiled View Path - |-------------------------------------------------------------------------- - | - | This option determines where all the compiled Blade templates will be - | stored for your application. Typically, this is within the storage - | directory. However, as usual, you are free to change this value. - | - */ - - 'compiled' => env( - 'VIEW_COMPILED_PATH', - realpath(storage_path('framework/views')) - ), - -]; diff --git a/database/.gitignore b/database/.gitignore deleted file mode 100644 index 9b19b93..0000000 --- a/database/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.sqlite* diff --git a/database/factories/ServerFactory.php b/database/factories/ServerFactory.php deleted file mode 100644 index 7313b8b..0000000 --- a/database/factories/ServerFactory.php +++ /dev/null @@ -1,34 +0,0 @@ - $this->faker->sentence($nbWords = 2, $variableNbWords = true), - 'description' => $this->faker->text(), - 'creator' => 1, - 'ip' => '127.0.0.1', - 'port' => '53640', - 'secret' => Str::random(10) - ]; - } -} diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php deleted file mode 100644 index f73c279..0000000 --- a/database/factories/UserFactory.php +++ /dev/null @@ -1,49 +0,0 @@ - $this->faker->firstName() . $this->faker->lastName(), - 'email' => $this->faker->unique()->safeEmail(), - 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password - 'remember_token' => Str::random(10), - 'register_ip' => '127.0.0.1', - 'last_ip' => '127.0.0.1', - 'admin' => false - ]; - } - - /** - * Indicate that the model's email address should be unverified. - * - * @return \Illuminate\Database\Eloquent\Factories\Factory - */ - public function unverified() - { - return $this->state(function (array $attributes) { - return [ - 'email_verified_at' => null, - ]; - }); - } -} diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php deleted file mode 100644 index 9dbe6ff..0000000 --- a/database/migrations/2014_10_12_000000_create_users_table.php +++ /dev/null @@ -1,46 +0,0 @@ -id(); - $table->string('username')->unique(); - $table->string('email')->unique(); - $table->string('password'); - $table->string('register_ip'); - $table->string('last_ip'); - $table->string('blurb', 2000)->nullable(); - $table->boolean('admin')->default(false); - $table->boolean('banned')->default(false); - $table->string('ban_reason')->nullable(); - $table->datetime('banned_until')->nullable(); - $table->bigInteger('money')->default(0); - $table->string('invite_key')->nullable(); - $table->rememberToken(); - $table->datetime('joined')->useCurrent(); - $table->datetime('last_online')->useCurrent(); - $table->datetime('last_daily_reward')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('users'); - } -} diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php deleted file mode 100644 index db9df67..0000000 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ /dev/null @@ -1,32 +0,0 @@ -string('email')->index(); - $table->string('token'); - $table->datetime('created_at')->nullable(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('password_resets'); - } -} diff --git a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php b/database/migrations/2019_08_19_000000_create_failed_jobs_table.php deleted file mode 100644 index ef551bd..0000000 --- a/database/migrations/2019_08_19_000000_create_failed_jobs_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->string('uuid')->unique(); - $table->text('connection'); - $table->text('queue'); - $table->longText('payload'); - $table->longText('exception'); - $table->datetime('failed_at')->useCurrent(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('failed_jobs'); - } -} diff --git a/database/migrations/2021_05_22_073628_create_servers_table.php b/database/migrations/2021_05_22_073628_create_servers_table.php deleted file mode 100644 index d37af7a..0000000 --- a/database/migrations/2021_05_22_073628_create_servers_table.php +++ /dev/null @@ -1,39 +0,0 @@ -id(); - $table->string('name', 40)->default('My Server'); - $table->string('description', 250)->default("No description."); - $table->bigInteger('creator'); - $table->string('ip'); - $table->string('port'); - $table->string('secret'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('servers'); - } -} diff --git a/database/migrations/2021_05_22_084455_create_invite_keys_table.php b/database/migrations/2021_05_22_084455_create_invite_keys_table.php deleted file mode 100644 index 5ee7d1c..0000000 --- a/database/migrations/2021_05_22_084455_create_invite_keys_table.php +++ /dev/null @@ -1,45 +0,0 @@ -id(); - $table->bigInteger('creator')->default(1); - $table->string('token'); - $table->integer('uses')->default(1); - $table->timestamps(); - }); - - DB::table('invite_keys')->insert( - array( - 'creator' => 1, - 'token' => 'TadahKey-1704developertesting', - 'uses' => 1 - ) - ); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('invite_keys'); - } -} diff --git a/database/migrations/2021_06_18_193936_create_game_tokens_table.php b/database/migrations/2021_06_18_193936_create_game_tokens_table.php deleted file mode 100644 index 13ad0af..0000000 --- a/database/migrations/2021_06_18_193936_create_game_tokens_table.php +++ /dev/null @@ -1,32 +0,0 @@ -string('user_id'); - $table->string('server_id'); - $table->string('token'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('game_tokens'); - } -} diff --git a/database/migrations/2021_06_23_011325_create_bodycolors_table.php b/database/migrations/2021_06_23_011325_create_bodycolors_table.php deleted file mode 100644 index 1e59216..0000000 --- a/database/migrations/2021_06_23_011325_create_bodycolors_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->bigInteger('user_id'); - $table->integer('head_color')->default(1); - $table->integer('torso_color')->default(1010); - $table->integer('left_arm_color')->default(1); - $table->integer('right_arm_color')->default(1); - $table->integer('left_leg_color')->default(26); - $table->integer('right_leg_color')->default(26); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('body_colors'); - } -} diff --git a/database/migrations/2021_06_25_021614_create_items_table.php b/database/migrations/2021_06_25_021614_create_items_table.php deleted file mode 100644 index d374321..0000000 --- a/database/migrations/2021_06_25_021614_create_items_table.php +++ /dev/null @@ -1,40 +0,0 @@ -id(); - $table->string('name', 100)->default('New Asset'); - $table->string('description', 2000)->default('No description.'); - $table->string('thumbnail_url')->nullable(); - $table->bigInteger('creator')->default(1); - $table->bigInteger('price')->default(0); - $table->boolean('onsale')->default(true); - $table->boolean('approved')->default(false); - $table->string('type'); - $table->bigInteger('sales')->default(0); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('items'); - } -} diff --git a/database/migrations/2021_06_25_022844_create_owned_items_table.php b/database/migrations/2021_06_25_022844_create_owned_items_table.php deleted file mode 100644 index eb1a88d..0000000 --- a/database/migrations/2021_06_25_022844_create_owned_items_table.php +++ /dev/null @@ -1,34 +0,0 @@ -id(); - $table->bigInteger('user_id'); - $table->bigInteger('item_id'); - $table->boolean('wearing')->default(false); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('owned_items'); - } -} diff --git a/database/migrations/2021_06_25_022855_create_equipped_items_table.php b/database/migrations/2021_06_25_022855_create_equipped_items_table.php deleted file mode 100644 index eaa2ffa..0000000 --- a/database/migrations/2021_06_25_022855_create_equipped_items_table.php +++ /dev/null @@ -1,32 +0,0 @@ -id(); - $table->bigInteger('user_id'); - $table->bigInteger('item_id'); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('equipped_items'); - } -} diff --git a/database/migrations/2021_09_16_173004_create_render_queue_table.php b/database/migrations/2021_09_16_173004_create_render_queue_table.php deleted file mode 100644 index 8480601..0000000 --- a/database/migrations/2021_09_16_173004_create_render_queue_table.php +++ /dev/null @@ -1,33 +0,0 @@ -id(); - $table->string('type'); - $table->bigInteger('target_id'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('render_queue'); - } -} diff --git a/database/migrations/2021_09_18_203618_create_forum_categories_table.php b/database/migrations/2021_09_18_203618_create_forum_categories_table.php deleted file mode 100644 index 2d86003..0000000 --- a/database/migrations/2021_09_18_203618_create_forum_categories_table.php +++ /dev/null @@ -1,35 +0,0 @@ -id(); - $table->string('name', 100); - $table->string('description', 250); - $table->boolean('admin_only')->default(false); - $table->bigInteger('priority'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('forum_categories'); - } -} diff --git a/database/migrations/2021_09_18_203629_create_forum_posts_table.php b/database/migrations/2021_09_18_203629_create_forum_posts_table.php deleted file mode 100644 index 069d1f3..0000000 --- a/database/migrations/2021_09_18_203629_create_forum_posts_table.php +++ /dev/null @@ -1,36 +0,0 @@ -id(); - $table->bigInteger('category_id'); - $table->bigInteger('thread_id'); - $table->bigInteger('user_id'); - $table->string('body', 2000); - $table->boolean('stickied')->default(false); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('forum_posts'); - } -} diff --git a/database/migrations/2021_09_18_205159_create_forum_threads_table.php b/database/migrations/2021_09_18_205159_create_forum_threads_table.php deleted file mode 100644 index 8baf7e8..0000000 --- a/database/migrations/2021_09_18_205159_create_forum_threads_table.php +++ /dev/null @@ -1,37 +0,0 @@ -id(); - $table->bigInteger('category_id'); - $table->bigInteger('user_id'); - $table->string('title', 100); - $table->string('body', 2000); - $table->boolean('stickied')->default(false); - $table->boolean('locked')->default(false); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::dropIfExists('forum_threads'); - } -} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php deleted file mode 100644 index 57b73b5..0000000 --- a/database/seeders/DatabaseSeeder.php +++ /dev/null @@ -1,18 +0,0 @@ -create(); - } -} diff --git a/docker/7.4/Dockerfile b/docker/7.4/Dockerfile deleted file mode 100644 index dbbab30..0000000 --- a/docker/7.4/Dockerfile +++ /dev/null @@ -1,56 +0,0 @@ -FROM ubuntu:20.04 - -LABEL maintainer="Taylor Otwell" - -ARG WWWGROUP - -WORKDIR /var/www/html - -ENV DEBIAN_FRONTEND noninteractive -ENV TZ=UTC - -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -RUN apt-get update \ - && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \ - && mkdir -p ~/.gnupg \ - && chmod 600 ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ - && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && apt-get update \ - && apt-get install -y php7.4-cli php7.4-dev \ - php7.4-pgsql php7.4-sqlite3 php7.4-gd \ - php7.4-curl php7.4-memcached \ - php7.4-imap php7.4-mysql php7.4-mbstring \ - php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \ - php7.4-intl php7.4-readline php7.4-pcov \ - php7.4-msgpack php7.4-igbinary php7.4-ldap \ - php7.4-redis \ - && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \ - && curl -sL https://deb.nodesource.com/setup_15.x | bash - \ - && apt-get install -y nodejs \ - && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ - && echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ - && apt-get update \ - && apt-get install -y yarn \ - && apt-get install -y mysql-client \ - && apt-get install -y postgresql-client \ - && apt-get -y autoremove \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -RUN setcap "cap_net_bind_service=+ep" /usr/bin/php7.4 - -RUN groupadd --force -g $WWWGROUP sail -RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail - -COPY start-container /usr/local/bin/start-container -COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf -COPY php.ini /etc/php/7.4/cli/conf.d/99-sail.ini -RUN chmod +x /usr/local/bin/start-container - -EXPOSE 8000 - -ENTRYPOINT ["start-container"] diff --git a/docker/7.4/php.ini b/docker/7.4/php.ini deleted file mode 100644 index 66d04d5..0000000 --- a/docker/7.4/php.ini +++ /dev/null @@ -1,4 +0,0 @@ -[PHP] -post_max_size = 100M -upload_max_filesize = 100M -variables_order = EGPCS diff --git a/docker/7.4/start-container b/docker/7.4/start-container deleted file mode 100644 index 39e5270..0000000 --- a/docker/7.4/start-container +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -if [ ! -z "$WWWUSER" ]; then - usermod -u $WWWUSER sail -fi - -if [ ! -d /.composer ]; then - mkdir /.composer -fi - -chmod -R ugo+rw /.composer - -if [ $# -gt 0 ];then - exec gosu $WWWUSER "$@" -else - /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf -fi diff --git a/docker/7.4/supervisord.conf b/docker/7.4/supervisord.conf deleted file mode 100644 index 9d28479..0000000 --- a/docker/7.4/supervisord.conf +++ /dev/null @@ -1,14 +0,0 @@ -[supervisord] -nodaemon=true -user=root -logfile=/var/log/supervisor/supervisord.log -pidfile=/var/run/supervisord.pid - -[program:php] -command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80 -user=sail -environment=LARAVEL_SAIL="1" -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 diff --git a/docker/8.0/Dockerfile b/docker/8.0/Dockerfile deleted file mode 100644 index 52a8e31..0000000 --- a/docker/8.0/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -FROM ubuntu:20.04 - -LABEL maintainer="Taylor Otwell" - -ARG WWWGROUP - -WORKDIR /var/www/html - -ENV DEBIAN_FRONTEND noninteractive -ENV TZ=UTC - -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -RUN apt-get update \ - && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \ - && mkdir -p ~/.gnupg \ - && chmod 600 ~/.gnupg \ - && echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \ - && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E5267A6C \ - && apt-key adv --homedir ~/.gnupg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C300EE8C \ - && echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \ - && apt-get update \ - && apt-get install -y php8.0-cli php8.0-dev \ - php8.0-pgsql php8.0-sqlite3 php8.0-gd \ - php8.0-curl php8.0-memcached \ - php8.0-imap php8.0-mysql php8.0-mbstring \ - php8.0-xml php8.0-zip php8.0-bcmath php8.0-soap \ - php8.0-intl php8.0-readline \ - php8.0-msgpack php8.0-igbinary php8.0-ldap \ - php8.0-redis \ - && php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \ - && curl -sL https://deb.nodesource.com/setup_15.x | bash - \ - && apt-get install -y nodejs \ - && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ - && echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ - && apt-get update \ - && apt-get install -y yarn \ - && apt-get install -y mysql-client \ - && apt-get install -y postgresql-client \ - && apt-get -y autoremove \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -RUN pecl channel-update https://pecl.php.net/channel.xml \ - && pecl install swoole - -RUN setcap "cap_net_bind_service=+ep" /usr/bin/php8.0 - -RUN groupadd --force -g $WWWGROUP sail -RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail - -COPY start-container /usr/local/bin/start-container -COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf -COPY php.ini /etc/php/8.0/cli/conf.d/99-sail.ini -RUN chmod +x /usr/local/bin/start-container - -EXPOSE 8000 - -ENTRYPOINT ["start-container"] diff --git a/docker/8.0/php.ini b/docker/8.0/php.ini deleted file mode 100644 index 9167521..0000000 --- a/docker/8.0/php.ini +++ /dev/null @@ -1,7 +0,0 @@ -[PHP] -post_max_size = 100M -upload_max_filesize = 100M -variables_order = EGPCS - -# Extensions... -extension=swoole.so diff --git a/docker/8.0/start-container b/docker/8.0/start-container deleted file mode 100644 index 39e5270..0000000 --- a/docker/8.0/start-container +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -if [ ! -z "$WWWUSER" ]; then - usermod -u $WWWUSER sail -fi - -if [ ! -d /.composer ]; then - mkdir /.composer -fi - -chmod -R ugo+rw /.composer - -if [ $# -gt 0 ];then - exec gosu $WWWUSER "$@" -else - /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf -fi diff --git a/docker/8.0/supervisord.conf b/docker/8.0/supervisord.conf deleted file mode 100644 index 9d28479..0000000 --- a/docker/8.0/supervisord.conf +++ /dev/null @@ -1,14 +0,0 @@ -[supervisord] -nodaemon=true -user=root -logfile=/var/log/supervisor/supervisord.log -pidfile=/var/run/supervisord.pid - -[program:php] -command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80 -user=sail -environment=LARAVEL_SAIL="1" -stdout_logfile=/dev/stdout -stdout_logfile_maxbytes=0 -stderr_logfile=/dev/stderr -stderr_logfile_maxbytes=0 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index b1a4ab9..0000000 --- a/package-lock.json +++ /dev/null @@ -1,10929 +0,0 @@ -{ - "requires": true, - "lockfileVersion": 1, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", - "dev": true, - "requires": { - "@babel/highlight": "^7.12.13" - } - }, - "@babel/compat-data": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.0.tgz", - "integrity": "sha512-vu9V3uMM/1o5Hl5OekMUowo3FqXLJSw+s+66nt0fSWVWTtmosdzn45JHOB3cPtZoe6CTBDzvSw0RdOY85Q37+Q==", - "dev": true - }, - "@babel/core": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.0.tgz", - "integrity": "sha512-8YqpRig5NmIHlMLw09zMlPTvUVMILjqCOtVgu+TVNWEBvy9b5I3RRyhqnrV4hjgEK7n8P9OqvkWJAFmEL6Wwfw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.0", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.1.tgz", - "integrity": "sha512-TMGhsXMXCP/O1WtQmZjpEYDhCYC9vFhayWZPJSZCGkPJgUqX0rF0wwtrYvnzVxIjcF80tkUertXVk5cwqi5cAQ==", - "dev": true, - "requires": { - "@babel/types": "^7.14.1", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.1.tgz", - "integrity": "sha512-r8rsUahG4ywm0QpGcCrLaUSOuNAISR3IZCg4Fx05Ozq31aCUrQsTLH6KPxy0N5ULoQ4Sn9qjNdGNtbPWAC6hYg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", - "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", - "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", - "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", - "dev": true, - "requires": { - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", - "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-module-transforms": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.0.tgz", - "integrity": "sha512-L40t9bxIuGOfpIGA3HNkJhU9qYrf4y5A5LUSw7rGMSn+pcG8dfJ0g6Zval6YJGd2nEjI7oP00fRdnhLKndx6bw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", - "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", - "dev": true, - "requires": { - "@babel/types": "^7.13.12" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", - "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" - } - }, - "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", - "dev": true, - "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" - } - }, - "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "@babel/parser": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.1.tgz", - "integrity": "sha512-muUGEKu8E/ftMTPlNp+mc6zL3E9zKWmF5sDHZ5MSsoTP9Wyz64AhEf9kD08xYJ7w6Hdcu8H550ircnPyWSIF0Q==", - "dev": true - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", - "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.13.12" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", - "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", - "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.13.11.tgz", - "integrity": "sha512-fJTdFI4bfnMjvxJyNuaf8i9mVcZ0UhetaGEUHaHV9KEnibLugJkZAtXikR8KcYj+NYmI4DZMS8yQAyg+hvfSqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-class-static-block": "^7.12.13" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", - "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", - "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", - "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", - "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", - "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", - "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", - "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", - "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", - "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", - "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", - "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-create-class-features-plugin": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", - "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", - "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", - "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", - "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", - "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.1.tgz", - "integrity": "sha512-2mQXd0zBrwfp0O1moWIhPpEeTKDvxyHcnma3JATVP1l+CctWBuot6OJG8LQ4DnBj4ZZPSmlb/fm4mu47EOAnVA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", - "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-split-export-declaration": "^7.12.13", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", - "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", - "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", - "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", - "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", - "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", - "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", - "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", - "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.0.tgz", - "integrity": "sha512-CF4c5LX4LQ03LebQxJ5JZes2OYjzBuk1TdiF7cG7d5dK4lAdw9NZmaxq5K/mouUdNeqwz3TNjnW6v01UqUNgpQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", - "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.13.12", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", - "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", - "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", - "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", - "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", - "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", - "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", - "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", - "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.13.15.tgz", - "integrity": "sha512-d+ezl76gx6Jal08XngJUkXM4lFXK/5Ikl9Mh4HKDxSfGJXmZ9xG64XT2oivBzfxb/eQ62VfvoMkaCZUKJMVrBA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-plugin-utils": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", - "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", - "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", - "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", - "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.13.0" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", - "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", - "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", - "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/preset-env": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.1.tgz", - "integrity": "sha512-0M4yL1l7V4l+j/UHvxcdvNfLB9pPtIooHTbEhgD/6UGyh8Hy3Bm1Mj0buzjDXATCSz3JFibVdnoJZCrlUCanrQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.0", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-async-generator-functions": "^7.13.15", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-class-static-block": "^7.13.11", - "@babel/plugin-proposal-dynamic-import": "^7.13.8", - "@babel/plugin-proposal-export-namespace-from": "^7.12.13", - "@babel/plugin-proposal-json-strings": "^7.13.8", - "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-numeric-separator": "^7.12.13", - "@babel/plugin-proposal-object-rest-spread": "^7.13.8", - "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-private-methods": "^7.13.0", - "@babel/plugin-proposal-private-property-in-object": "^7.14.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.12.13", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0", - "@babel/plugin-syntax-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.13.0", - "@babel/plugin-transform-async-to-generator": "^7.13.0", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.14.1", - "@babel/plugin-transform-classes": "^7.13.0", - "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.17", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.13.0", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.14.0", - "@babel/plugin-transform-modules-commonjs": "^7.14.0", - "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.14.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.13.0", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.13.15", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.13.0", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.13.0", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.1", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", - "core-js-compat": "^3.9.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", - "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/runtime": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.0.tgz", - "integrity": "sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "@babel/traverse": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.0.tgz", - "integrity": "sha512-dZ/a371EE5XNhTHomvtuLTUyx6UEoJmYX+DT5zBCQN3McHemsuIaKKYqsc/fs26BEkHs/lBZy0J571LP5z9kQA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.0", - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.0", - "@babel/types": "^7.14.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.1.tgz", - "integrity": "sha512-S13Qe85fzLs3gYRUnrpyeIrBJIMYv33qSTg1qoBwiG6nPKwUWAD9odSzWhEedpwOIzSEI6gbdQIWEMiCI42iBA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.0", - "to-fast-properties": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", - "dev": true - }, - "@fortawesome/fontawesome-free": { - "version": "5.15.3", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz", - "integrity": "sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@popperjs/core": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz", - "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==" - }, - "@types/babel__core": { - "version": "7.1.14", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", - "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/browser-sync": { - "version": "2.26.1", - "resolved": "https://registry.npmjs.org/@types/browser-sync/-/browser-sync-2.26.1.tgz", - "integrity": "sha512-zuz0uF2QccSVbG4ubkjVDlQYpeBX/JXvmlqFFmp04FYOXunXZtx0y+UdWJxu7uryMMGkQykujUMm/ju85kqI7Q==", - "dev": true, - "requires": { - "@types/micromatch": "^2", - "@types/node": "*", - "@types/serve-static": "*", - "chokidar": "^2.1.2" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - } - } - }, - "@types/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@types/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-x8xEbfTtcv5uyQDrBXKg9Beo5QhTPqO4vM0uq4iU27/nhyRRWNEMKHjxvAb0WDvp2Mnt4Sw0jKmIi5yQF/k2Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "@types/cssnano": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/cssnano/-/cssnano-4.0.0.tgz", - "integrity": "sha512-BC/2ibKZfPIaBLBNzkitdW1IvvX/LKW6/QXGc4Su/tAJ7mQ3f2CKBuGCCKaqGAnoKwzfuC7G/recpkARwdOwuA==", - "dev": true, - "requires": { - "postcss": "5 - 7" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@types/eslint": { - "version": "7.2.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz", - "integrity": "sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", - "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.47", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", - "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", - "dev": true - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/http-proxy": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.5.tgz", - "integrity": "sha512-GNkDE7bTv6Sf8JbV2GksknKOsk7OznNYHSdrtvPJXO0qJ9odZig6IZKUi5RFGi6d1bf6dgIAe4uXi3DBc7069Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/imagemin": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/imagemin/-/imagemin-7.0.0.tgz", - "integrity": "sha512-BiNd5FazD5ZmJUYD9txsbrttL0P0welrb9yAPn6ykKK3kWufwFsxYqw5KdggfZQDjiNYwsBrX+Fwei0Xsw4oAw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/imagemin-gifsicle": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@types/imagemin-gifsicle/-/imagemin-gifsicle-7.0.0.tgz", - "integrity": "sha512-RVFQZhPm/6vLC8wDvzHa34ZDrJECqmDV4XBS99AEk2ObyV4pcLQwObGYlmBv6fi9AtRLHf8mnKGczIHtF77u7w==", - "dev": true, - "requires": { - "@types/imagemin": "*" - } - }, - "@types/imagemin-mozjpeg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@types/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz", - "integrity": "sha512-sR2nEZOrlbgnmVgG+lXetZOvhgtctLe1hBfvySnPnxDd2pOon9mMPq7SHFI89VZT1AXvFgRs8w6X8ik8potpgA==", - "dev": true, - "requires": { - "@types/imagemin": "*" - } - }, - "@types/imagemin-optipng": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/imagemin-optipng/-/imagemin-optipng-5.2.0.tgz", - "integrity": "sha512-Qn4gTV1fpPG2WIsUIl10yi2prudOuDIx+D+O0H3aKZRcTCwpMjszBVeRWUqkhG5wADhWO4giLut1sFNr3H2XIQ==", - "dev": true, - "requires": { - "@types/imagemin": "*" - } - }, - "@types/imagemin-svgo": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@types/imagemin-svgo/-/imagemin-svgo-8.0.1.tgz", - "integrity": "sha512-YafkdrVAcr38U0Ln1C+L1n4SIZqC47VBHTyxCq7gTUSd1R9MdIvMcrljWlgU1M9O68WZDeQWUrKipKYfEOCOvQ==", - "dev": true, - "requires": { - "@types/imagemin": "*", - "@types/svgo": "^1" - } - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "@types/micromatch": { - "version": "2.3.30", - "resolved": "https://registry.npmjs.org/@types/micromatch/-/micromatch-2.3.30.tgz", - "integrity": "sha512-6rW4NsUHaDudxJSuRlm1PdNu61CDXkgix7LBOBg7b3yWQ43XANYSPwkvX1cGiZvBVZW8c5rsCEfrfzbPkch8ag==", - "dev": true, - "requires": { - "@types/parse-glob": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", - "dev": true - }, - "@types/node": { - "version": "15.0.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.2.tgz", - "integrity": "sha512-p68+a+KoxpoB47015IeYZYRrdqMUcpbK8re/zpFB8Ld46LHC1lPEbp3EXgkEhAYEcPvjJF6ZO+869SQ0aH1dcA==", - "dev": true - }, - "@types/parse-glob": { - "version": "3.0.29", - "resolved": "https://registry.npmjs.org/@types/parse-glob/-/parse-glob-3.0.29.tgz", - "integrity": "sha1-akDsfr0kGO5p7jl+SOQhaSaKEL8=", - "dev": true - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", - "dev": true - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.9", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", - "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/svgo": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.5.tgz", - "integrity": "sha512-y9Pw8IK50OqFRDpdI9Is29KlWiENVW9FDvlTmGHelvTfR2brYFJbsClvulZfeq6YKacFrDsG9a39w0kJZdHLaw==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", - "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", - "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", - "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", - "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", - "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", - "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", - "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", - "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", - "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", - "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", - "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/helper-wasm-section": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-opt": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "@webassemblyjs/wast-printer": "1.11.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", - "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", - "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", - "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", - "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", - "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", - "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", - "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.4.tgz", - "integrity": "sha512-Ibt84YwBDDA890eDiDCEqcbwvHlBvzzDkU2cGBBDDI1QWT12jTiXIOn2CIw5KK4i6N5Z2HUxwYjzriDyqaqqZg==", - "dev": true - }, - "adjust-sourcemap-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", - "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "arity-n": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", - "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", - "dev": true - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.5.tgz", - "integrity": "sha512-7H4AJZXvSsn62SqZyJCP+1AWwOuoYpUfK6ot9vm0e87XD6mT8lDywc9D9OTJPMULyGcvmIxzTAMeG2Cc+YX+fA==", - "dev": true, - "requires": { - "browserslist": "^4.16.3", - "caniuse-lite": "^1.0.30001196", - "colorette": "^1.2.2", - "fraction.js": "^4.0.13", - "normalize-range": "^0.1.2", - "postcss-value-parser": "^4.1.0" - } - }, - "axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dev": true, - "requires": { - "follow-redirects": "^1.10.0" - } - }, - "babel-loader": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", - "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", - "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.0", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", - "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.0", - "core-js-compat": "^3.9.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", - "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.6", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", - "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001219", - "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.723", - "escalade": "^3.1.1", - "node-releases": "^1.1.71" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001228", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz", - "integrity": "sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A==", - "dev": true - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", - "dev": true - }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.1.1.tgz", - "integrity": "sha512-kdRWLBIJwdsYJWYJFtAFFYxybguqeF91qpZaggjG5Nf8QKdizFG2hjqvaTXbxFIcYbSaD74KpAXv6BSm17DHEQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "clean-css": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz", - "integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-table3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", - "integrity": "sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==", - "dev": true, - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^4.2.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "collect.js": { - "version": "4.28.6", - "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.28.6.tgz", - "integrity": "sha512-NAyuk1DnCotRaDZIS5kJ4sptgkwOeYqElird10yziN5JBuwYOGkOTguhNcPn5g344IfylZecxNYZAVXgv19p5Q==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", - "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "optional": true - }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "compose-function": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", - "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", - "dev": true, - "requires": { - "arity-n": "^1.0.4" - } - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "concat": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz", - "integrity": "sha1-QPM1MInWVGdpXLGIa0Xt1jfYzKg=", - "dev": true, - "requires": { - "commander": "^2.9.0" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "core-js-compat": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.12.1.tgz", - "integrity": "sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", - "dev": true - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "css-loader": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", - "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", - "dev": true, - "requires": { - "camelcase": "^6.2.0", - "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.10", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.5" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", - "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.8", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-preset-default": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", - "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.3", - "postcss-unique-selectors": "^4.0.1" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "requires": { - "execa": "^5.0.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "dependencies": { - "globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - } - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-node": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", - "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz", - "integrity": "sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1" - }, - "dependencies": { - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - } - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "dev": true - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.727", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.727.tgz", - "integrity": "sha512-Mfz4FIB4FSvEwBpDfdipRIrwd6uo8gUDoRDF4QEYb4h4tSuI3ov594OrjU6on042UlFHouIJpClDODGkPcBSbg==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - } - }, - "es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", - "dev": true - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "file-type": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", - "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==", - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true - }, - "fraction.js": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", - "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", - "dev": true - }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", - "dev": true - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", - "dev": true - }, - "html-loader": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-1.3.2.tgz", - "integrity": "sha512-DEkUwSd0sijK5PF3kRWspYi56XP7bTNkyg5YWSzBdjaSDmvCufep5c4Vpb3PBf6lUL0YPtLwBfy9fL0t5hBAGA==", - "dev": true, - "requires": { - "html-minifier-terser": "^5.1.1", - "htmlparser2": "^4.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "dependencies": { - "clean-css": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", - "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "terser": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", - "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - } - } - }, - "htmlparser2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz", - "integrity": "sha512-4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^3.0.0", - "domutils": "^2.0.0", - "entities": "^2.0.0" - }, - "dependencies": { - "dom-serializer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.1.tgz", - "integrity": "sha512-Pv2ZluG5ife96udGgEDovOOOA5UELkltfJpnIExPrAk1LTvecolUGn6lIaoLh86d83GiB86CjzciMd9BuRB71Q==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "entities": "^2.0.0" - }, - "dependencies": { - "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - } - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true - }, - "domutils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz", - "integrity": "sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "dependencies": { - "domhandler": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", - "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - } - } - } - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz", - "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.5", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "dependencies": { - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "imagemin": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-7.0.1.tgz", - "integrity": "sha512-33AmZ+xjZhg2JMCe+vDf6a9mzWukE7l+wAtesjE7KyteqqKjzxv7aVQeWnul1Ve26mWvEQqyPwl0OctNBfSR9w==", - "dev": true, - "requires": { - "file-type": "^12.0.0", - "globby": "^10.0.0", - "graceful-fs": "^4.2.2", - "junk": "^3.1.0", - "make-dir": "^3.0.0", - "p-pipe": "^3.0.0", - "replace-ext": "^1.0.0" - } - }, - "img-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-3.0.2.tgz", - "integrity": "sha512-rSriLKgvi85Km7ppSF+AEAM3nU4fxpvCkaXtC/IoCEU7jfks55bEANFs0bB9YXYkxY9JurZQIZFtXh5Gue3upw==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - } - }, - "import-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-3.0.0.tgz", - "integrity": "sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==", - "dev": true, - "requires": { - "import-from": "^3.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "import-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", - "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-ip": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz", - "integrity": "sha512-D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==", - "dev": true, - "requires": { - "default-gateway": "^6.0.0", - "ipaddr.js": "^1.9.1", - "is-ip": "^3.1.0", - "p-event": "^4.2.0" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - } - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true - }, - "ipaddr.js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.0.tgz", - "integrity": "sha512-S54H9mIj0rbxRIyrDMEuuER86LdlgUg9FSeZ8duQb6CUG2iRrA36MYVQBSprTF/ZeAwvyQ5mDGuNvIPM0BIl3w==", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", - "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dev": true, - "requires": { - "ip-regex": "^4.0.0" - } - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "junk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", - "integrity": "sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ==", - "dev": true - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "klona": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", - "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", - "dev": true - }, - "laravel-mix": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-6.0.19.tgz", - "integrity": "sha512-SH//4h/bi2ff5hyBfwQ0DE0VfTkskGLU+a/l7HdmTz1F+cJdvakajziyBVRwa9U3+DyvZo9eo9Jgq1jdZWW3XQ==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/runtime": "^7.12.1", - "@types/babel__core": "^7.1.12", - "@types/browser-sync": "^2.26.1", - "@types/clean-css": "^4.2.2", - "@types/cssnano": "^4.0.0", - "@types/imagemin-gifsicle": "^7.0.0", - "@types/imagemin-mozjpeg": "^8.0.0", - "@types/imagemin-optipng": "^5.2.0", - "@types/imagemin-svgo": "^8.0.0", - "autoprefixer": "^10.0.1", - "babel-loader": "^8.1.0", - "chalk": "^4.1.0", - "chokidar": "^3.4.3", - "clean-css": "^4.2.3 || ^5.1.1", - "cli-table3": "^0.6.0", - "collect.js": "^4.28.4", - "commander": "^7.1.0", - "concat": "^1.0.3", - "css-loader": "^5.0.0", - "cssnano": "^4.1.11", - "dotenv": "^8.2.0", - "dotenv-expand": "^5.1.0", - "file-loader": "^6.1.1", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "html-loader": "^1.3.2", - "imagemin": "^7.0.1", - "img-loader": "^3.0.2", - "lodash": "^4.17.20", - "md5": "^2.3.0", - "mini-css-extract-plugin": "^1.1.0", - "node-libs-browser": "^2.2.1", - "postcss-load-config": "^3.0.0", - "postcss-loader": "^5.2.0", - "semver": "^7.3.4", - "strip-ansi": "^6.0.0", - "style-loader": "^2.0.0", - "terser": "^5.3.7", - "terser-webpack-plugin": "^5.0.0", - "vue-style-loader": "^4.1.3", - "webpack": "^5.25.1", - "webpack-cli": "^4.1.0", - "webpack-dev-server": "4.0.0-beta.2", - "webpack-merge": "^5.2.0", - "webpack-notifier": "^1.8.0", - "webpackbar": "^5.0.0-3", - "yargs": "^16.1.0" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "requires": { - "p-defer": "^1.0.0" - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "requires": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", - "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.3", - "mimic-fn": "^3.1.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", - "dev": true - } - } - }, - "memfs": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz", - "integrity": "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==", - "dev": true, - "requires": { - "fs-monkey": "1.0.3" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", - "dev": true - }, - "mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", - "dev": true, - "requires": { - "mime-db": "1.47.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz", - "integrity": "sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, - "nanoid": { - "version": "3.1.23", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", - "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "node-notifier": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.1.tgz", - "integrity": "sha512-fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==", - "dev": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } - } - }, - "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", - "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", - "dev": true - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", - "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "dev": true, - "requires": { - "p-timeout": "^3.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true - }, - "p-retry": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.5.0.tgz", - "integrity": "sha512-5Hwh4aVQSu6BEP+w2zKlVXtFAaYQe1qWuVADSgoeVlLjwe/Q/AMSoRR4MDeaAfu8llT+YNbEijWu/YF3m6avkg==", - "dev": true, - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.12.0" - } - }, - "p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, - "requires": { - "p-finally": "^1.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "popper.js": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "dev": true - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "8.2.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.15.tgz", - "integrity": "sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q==", - "dev": true, - "requires": { - "colorette": "^1.2.2", - "nanoid": "^3.1.23", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dev": true, - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-load-config": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.0.1.tgz", - "integrity": "sha512-/pDHe30UYZUD11IeG8GWx9lNtu1ToyTsZHnyy45B4Mrwr/Kb6NgYl7k753+05CJNKnjbwh4975amoPJ+TEjHNQ==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "import-cwd": "^3.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "postcss-loader": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-5.2.0.tgz", - "integrity": "sha512-uSuCkENFeUaOYsKrXm0eNNgVIxc71z8RcckLMbVw473rGojFnrUeqEz6zBgXsH2q1EIzXnO/4pEz9RhALjlITA==", - "dev": true, - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.4", - "semver": "^7.3.4" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-selector-parser": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", - "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", - "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - } - } - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", - "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "resolve-url-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", - "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", - "dev": true, - "requires": { - "adjust-sourcemap-loader": "3.0.0", - "camelcase": "5.3.1", - "compose-function": "3.0.3", - "convert-source-map": "1.7.0", - "es6-iterator": "2.0.3", - "loader-utils": "1.2.3", - "postcss": "7.0.21", - "rework": "1.0.1", - "rework-visit": "1.0.0", - "source-map": "0.6.1" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - } - }, - "postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rework": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", - "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", - "dev": true, - "requires": { - "convert-source-map": "^0.3.3", - "css": "^2.0.0" - }, - "dependencies": { - "convert-source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", - "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", - "dev": true - } - } - }, - "rework-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", - "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass": { - "version": "1.32.12", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.12.tgz", - "integrity": "sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" - } - }, - "sass-loader": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-11.1.0.tgz", - "integrity": "sha512-TS8KtLtMAqK68lBs0PRzoGf7ndz9m7pKo4BXvUzjGDDgWEY0qcoMMRVpaHfYM0i3/E6UsererqIpjs7dVA/p7A==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selfsigned": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", - "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", - "dev": true, - "requires": { - "node-forge": "^0.10.0" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", - "websocket-driver": "^0.7.4" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "std-env": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-2.3.0.tgz", - "integrity": "sha512-4qT5B45+Kjef2Z6pE0BkskzsH0GO7GrND0wGlTM1ioUe3v0dGYx9ZJH0Aro/YyA8fqQ5EyIKDRjZojJYMFTflw==", - "dev": true, - "requires": { - "ci-info": "^3.0.0" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "style-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", - "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - } - }, - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true - }, - "terser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", - "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", - "dev": true, - "requires": { - "jest-worker": "^26.6.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.5.1" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "vue-style-loader": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", - "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", - "dev": true, - "requires": { - "hash-sum": "^1.0.2", - "loader-utils": "^1.0.2" - } - }, - "watchpack": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", - "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webpack": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.37.0.tgz", - "integrity": "sha512-yvdhgcI6QkQkDe1hINBAJ1UNevqNGTVaCkD2SSJcB8rcrNNl922RI8i2DXUAuNfANoxwsiXXEA4ZPZI9q2oGLA==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/wasm-edit": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.2.1", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", - "eslint-scope": "^5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.0.0", - "webpack-sources": "^2.1.1" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "webpack-sources": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", - "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-cli": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", - "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.3", - "@webpack-cli/info": "^1.2.4", - "@webpack-cli/serve": "^1.4.0", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - } - }, - "webpack-dev-middleware": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-4.2.0.tgz", - "integrity": "sha512-HVVpHw+5H4lfGasUKjpIkOy9TB27OyKiL13c+dhzVG1w77OQ87b408fp0qKDKQQkNGgShbStDzVJ8sK46JajXg==", - "dev": true, - "requires": { - "colorette": "^1.2.2", - "mem": "^8.1.1", - "memfs": "^3.2.2", - "mime-types": "^2.1.30", - "range-parser": "^1.2.1", - "schema-utils": "^3.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-dev-server": { - "version": "4.0.0-beta.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.2.tgz", - "integrity": "sha512-kbUAjQg1FLtCoIZ0NdcTZWRBVT1EDajBSvGAiAqQPJxBjsr0N3FQ57kJ/4SrIZPyAajn8kcHctwFsTKPwme1tQ==", - "dev": true, - "requires": { - "ansi-html": "^0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^3.5.1", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "del": "^6.0.0", - "express": "^4.17.1", - "find-cache-dir": "^3.3.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^1.1.0", - "internal-ip": "^6.2.0", - "ipaddr.js": "^2.0.0", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "open": "^7.4.2", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^3.0.0", - "selfsigned": "^1.10.8", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^6.0.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^4.1.0", - "ws": "^7.4.4" - }, - "dependencies": { - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true - }, - "schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-notifier": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.13.0.tgz", - "integrity": "sha512-QLk6l/TZKGhyN6Hd1zobaiYno7S9YPX3wH86+YOSufHes77SegGhnGdj+4vrLDFK5A4ZKoQD5GRXXFnM0h0N8A==", - "dev": true, - "requires": { - "node-notifier": "^9.0.0", - "strip-ansi": "^6.0.0" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "webpackbar": { - "version": "5.0.0-3", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.0-3.tgz", - "integrity": "sha512-viW6KCYjMb0NPoDrw2jAmLXU2dEOhRrtku28KmOfeE1vxbfwCYuTbTaMhnkrCZLFAFyY9Q49Z/jzYO80Dw5b8g==", - "dev": true, - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.1.0", - "consola": "^2.15.0", - "figures": "^3.2.0", - "pretty-time": "^1.1.0", - "std-env": "^2.2.1", - "text-table": "^0.2.0", - "wrap-ansi": "^7.0.0" - } - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index ab92329..0000000 --- a/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "private": true, - "scripts": { - "dev": "npm run development", - "development": "mix", - "watch": "mix watch", - "watch-poll": "mix watch -- --watch-options-poll=1000", - "hot": "mix watch --hot", - "prod": "npm run production", - "production": "mix --production" - }, - "devDependencies": { - "axios": "^0.21", - "bootstrap": "^4.6.0", - "jquery": "^3.6", - "laravel-mix": "^6.0.6", - "lodash": "^4.17.19", - "popper.js": "^1.16.1", - "postcss": "^8.1.14", - "resolve-url-loader": "^3.1.2", - "sass": "^1.32.11", - "sass-loader": "^11.0.1" - }, - "dependencies": { - "@fortawesome/fontawesome-free": "^5.15.3", - "@popperjs/core": "^2.10.2" - } -} diff --git a/phpunit.xml b/phpunit.xml deleted file mode 100644 index 4ae4d97..0000000 --- a/phpunit.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - ./tests/Unit - - - ./tests/Feature - - - - - ./app - - - - - - - - - - - - - - diff --git a/public/.htaccess b/public/.htaccess deleted file mode 100644 index 3aec5e2..0000000 --- a/public/.htaccess +++ /dev/null @@ -1,21 +0,0 @@ - - - Options -MultiViews -Indexes - - - RewriteEngine On - - # Handle Authorization Header - RewriteCond %{HTTP:Authorization} . - RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] - - # Redirect Trailing Slashes If Not A Folder... - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_URI} (.+)/$ - RewriteRule ^ %1 [L,R=301] - - # Send Requests To Front Controller... - RewriteCond %{REQUEST_FILENAME} !-d - RewriteCond %{REQUEST_FILENAME} !-f - RewriteRule ^ index.php [L] - diff --git a/public/ForumC/skins/default/images/forum_status.gif b/public/ForumC/skins/default/images/forum_status.gif deleted file mode 100644 index 6b15ad0..0000000 Binary files a/public/ForumC/skins/default/images/forum_status.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/icon_mini_home.gif b/public/ForumC/skins/default/images/icon_mini_home.gif deleted file mode 100644 index 46a605e..0000000 Binary files a/public/ForumC/skins/default/images/icon_mini_home.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/icon_mini_register.gif b/public/ForumC/skins/default/images/icon_mini_register.gif deleted file mode 100644 index 49502b8..0000000 Binary files a/public/ForumC/skins/default/images/icon_mini_register.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/icon_mini_search.gif b/public/ForumC/skins/default/images/icon_mini_search.gif deleted file mode 100644 index 704c41a..0000000 Binary files a/public/ForumC/skins/default/images/icon_mini_search.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/icon_mini_topic.gif b/public/ForumC/skins/default/images/icon_mini_topic.gif deleted file mode 100644 index 89fd9be..0000000 Binary files a/public/ForumC/skins/default/images/icon_mini_topic.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/newpost.gif b/public/ForumC/skins/default/images/newpost.gif deleted file mode 100644 index b9d35ec..0000000 Binary files a/public/ForumC/skins/default/images/newpost.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/newtopic.gif b/public/ForumC/skins/default/images/newtopic.gif deleted file mode 100644 index af9bfd7..0000000 Binary files a/public/ForumC/skins/default/images/newtopic.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/topic-popular.gif b/public/ForumC/skins/default/images/topic-popular.gif deleted file mode 100644 index 9e58a2e..0000000 Binary files a/public/ForumC/skins/default/images/topic-popular.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/topic_notread.gif b/public/ForumC/skins/default/images/topic_notread.gif deleted file mode 100644 index 31ecdcc..0000000 Binary files a/public/ForumC/skins/default/images/topic_notread.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/user_IsOffline.gif b/public/ForumC/skins/default/images/user_IsOffline.gif deleted file mode 100644 index e5d210a..0000000 Binary files a/public/ForumC/skins/default/images/user_IsOffline.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/user_IsOnline.gif b/public/ForumC/skins/default/images/user_IsOnline.gif deleted file mode 100644 index bb737b7..0000000 Binary files a/public/ForumC/skins/default/images/user_IsOnline.gif and /dev/null differ diff --git a/public/ForumC/skins/default/images/users_moderator.gif b/public/ForumC/skins/default/images/users_moderator.gif deleted file mode 100644 index 86d782c..0000000 Binary files a/public/ForumC/skins/default/images/users_moderator.gif and /dev/null differ diff --git a/public/audio/cans.mp3 b/public/audio/cans.mp3 deleted file mode 100644 index a4a4e34..0000000 Binary files a/public/audio/cans.mp3 and /dev/null differ diff --git a/public/clientdl/tadah.zip b/public/clientdl/tadah.zip deleted file mode 100644 index aa9f78b..0000000 Binary files a/public/clientdl/tadah.zip and /dev/null differ diff --git a/public/css/app.css b/public/css/app.css deleted file mode 100644 index b7bf255..0000000 --- a/public/css/app.css +++ /dev/null @@ -1,17142 +0,0 @@ -@charset "UTF-8"; -/*! - * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -.fa, -.fas, -.far, -.fal, -.fad, -.fab { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - line-height: 1; -} - -.fa-lg { - font-size: 1.3333333333em; - line-height: 0.75em; - vertical-align: -0.0667em; -} - -.fa-xs { - font-size: 0.75em; -} - -.fa-sm { - font-size: 0.875em; -} - -.fa-1x { - font-size: 1em; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-6x { - font-size: 6em; -} - -.fa-7x { - font-size: 7em; -} - -.fa-8x { - font-size: 8em; -} - -.fa-9x { - font-size: 9em; -} - -.fa-10x { - font-size: 10em; -} - -.fa-fw { - text-align: center; - width: 1.25em; -} - -.fa-ul { - list-style-type: none; - margin-left: 2.5em; - padding-left: 0; -} -.fa-ul > li { - position: relative; -} - -.fa-li { - left: -2em; - position: absolute; - text-align: center; - width: 2em; - line-height: inherit; -} - -.fa-border { - border: solid 0.08em #eee; - border-radius: 0.1em; - padding: 0.2em 0.25em 0.15em; -} - -.fa-pull-left { - float: left; -} - -.fa-pull-right { - float: right; -} - -.fa.fa-pull-left, -.fas.fa-pull-left, -.far.fa-pull-left, -.fal.fa-pull-left, -.fab.fa-pull-left { - margin-right: 0.3em; -} -.fa.fa-pull-right, -.fas.fa-pull-right, -.far.fa-pull-right, -.fal.fa-pull-right, -.fab.fa-pull-right { - margin-left: 0.3em; -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - transform: rotate(90deg); -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - transform: rotate(180deg); -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - transform: rotate(270deg); -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - transform: scale(-1, 1); -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - transform: scale(1, -1); -} - -.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - transform: scale(-1, -1); -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical, -:root .fa-flip-both { - filter: none; -} - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; -} - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #fff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen -readers do not read off random characters that represent icons */ -.fa-500px:before { - content: ""; -} - -.fa-accessible-icon:before { - content: ""; -} - -.fa-accusoft:before { - content: ""; -} - -.fa-acquisitions-incorporated:before { - content: ""; -} - -.fa-ad:before { - content: ""; -} - -.fa-address-book:before { - content: ""; -} - -.fa-address-card:before { - content: ""; -} - -.fa-adjust:before { - content: ""; -} - -.fa-adn:before { - content: ""; -} - -.fa-adversal:before { - content: ""; -} - -.fa-affiliatetheme:before { - content: ""; -} - -.fa-air-freshener:before { - content: ""; -} - -.fa-airbnb:before { - content: ""; -} - -.fa-algolia:before { - content: ""; -} - -.fa-align-center:before { - content: ""; -} - -.fa-align-justify:before { - content: ""; -} - -.fa-align-left:before { - content: ""; -} - -.fa-align-right:before { - content: ""; -} - -.fa-alipay:before { - content: ""; -} - -.fa-allergies:before { - content: ""; -} - -.fa-amazon:before { - content: ""; -} - -.fa-amazon-pay:before { - content: ""; -} - -.fa-ambulance:before { - content: ""; -} - -.fa-american-sign-language-interpreting:before { - content: ""; -} - -.fa-amilia:before { - content: ""; -} - -.fa-anchor:before { - content: ""; -} - -.fa-android:before { - content: ""; -} - -.fa-angellist:before { - content: ""; -} - -.fa-angle-double-down:before { - content: ""; -} - -.fa-angle-double-left:before { - content: ""; -} - -.fa-angle-double-right:before { - content: ""; -} - -.fa-angle-double-up:before { - content: ""; -} - -.fa-angle-down:before { - content: ""; -} - -.fa-angle-left:before { - content: ""; -} - -.fa-angle-right:before { - content: ""; -} - -.fa-angle-up:before { - content: ""; -} - -.fa-angry:before { - content: ""; -} - -.fa-angrycreative:before { - content: ""; -} - -.fa-angular:before { - content: ""; -} - -.fa-ankh:before { - content: ""; -} - -.fa-app-store:before { - content: ""; -} - -.fa-app-store-ios:before { - content: ""; -} - -.fa-apper:before { - content: ""; -} - -.fa-apple:before { - content: ""; -} - -.fa-apple-alt:before { - content: ""; -} - -.fa-apple-pay:before { - content: ""; -} - -.fa-archive:before { - content: ""; -} - -.fa-archway:before { - content: ""; -} - -.fa-arrow-alt-circle-down:before { - content: ""; -} - -.fa-arrow-alt-circle-left:before { - content: ""; -} - -.fa-arrow-alt-circle-right:before { - content: ""; -} - -.fa-arrow-alt-circle-up:before { - content: ""; -} - -.fa-arrow-circle-down:before { - content: ""; -} - -.fa-arrow-circle-left:before { - content: ""; -} - -.fa-arrow-circle-right:before { - content: ""; -} - -.fa-arrow-circle-up:before { - content: ""; -} - -.fa-arrow-down:before { - content: ""; -} - -.fa-arrow-left:before { - content: ""; -} - -.fa-arrow-right:before { - content: ""; -} - -.fa-arrow-up:before { - content: ""; -} - -.fa-arrows-alt:before { - content: ""; -} - -.fa-arrows-alt-h:before { - content: ""; -} - -.fa-arrows-alt-v:before { - content: ""; -} - -.fa-artstation:before { - content: ""; -} - -.fa-assistive-listening-systems:before { - content: ""; -} - -.fa-asterisk:before { - content: ""; -} - -.fa-asymmetrik:before { - content: ""; -} - -.fa-at:before { - content: ""; -} - -.fa-atlas:before { - content: ""; -} - -.fa-atlassian:before { - content: ""; -} - -.fa-atom:before { - content: ""; -} - -.fa-audible:before { - content: ""; -} - -.fa-audio-description:before { - content: ""; -} - -.fa-autoprefixer:before { - content: ""; -} - -.fa-avianex:before { - content: ""; -} - -.fa-aviato:before { - content: ""; -} - -.fa-award:before { - content: ""; -} - -.fa-aws:before { - content: ""; -} - -.fa-baby:before { - content: ""; -} - -.fa-baby-carriage:before { - content: ""; -} - -.fa-backspace:before { - content: ""; -} - -.fa-backward:before { - content: ""; -} - -.fa-bacon:before { - content: ""; -} - -.fa-bacteria:before { - content: ""; -} - -.fa-bacterium:before { - content: ""; -} - -.fa-bahai:before { - content: ""; -} - -.fa-balance-scale:before { - content: ""; -} - -.fa-balance-scale-left:before { - content: ""; -} - -.fa-balance-scale-right:before { - content: ""; -} - -.fa-ban:before { - content: ""; -} - -.fa-band-aid:before { - content: ""; -} - -.fa-bandcamp:before { - content: ""; -} - -.fa-barcode:before { - content: ""; -} - -.fa-bars:before { - content: ""; -} - -.fa-baseball-ball:before { - content: ""; -} - -.fa-basketball-ball:before { - content: ""; -} - -.fa-bath:before { - content: ""; -} - -.fa-battery-empty:before { - content: ""; -} - -.fa-battery-full:before { - content: ""; -} - -.fa-battery-half:before { - content: ""; -} - -.fa-battery-quarter:before { - content: ""; -} - -.fa-battery-three-quarters:before { - content: ""; -} - -.fa-battle-net:before { - content: ""; -} - -.fa-bed:before { - content: ""; -} - -.fa-beer:before { - content: ""; -} - -.fa-behance:before { - content: ""; -} - -.fa-behance-square:before { - content: ""; -} - -.fa-bell:before { - content: ""; -} - -.fa-bell-slash:before { - content: ""; -} - -.fa-bezier-curve:before { - content: ""; -} - -.fa-bible:before { - content: ""; -} - -.fa-bicycle:before { - content: ""; -} - -.fa-biking:before { - content: ""; -} - -.fa-bimobject:before { - content: ""; -} - -.fa-binoculars:before { - content: ""; -} - -.fa-biohazard:before { - content: ""; -} - -.fa-birthday-cake:before { - content: ""; -} - -.fa-bitbucket:before { - content: ""; -} - -.fa-bitcoin:before { - content: ""; -} - -.fa-bity:before { - content: ""; -} - -.fa-black-tie:before { - content: ""; -} - -.fa-blackberry:before { - content: ""; -} - -.fa-blender:before { - content: ""; -} - -.fa-blender-phone:before { - content: ""; -} - -.fa-blind:before { - content: ""; -} - -.fa-blog:before { - content: ""; -} - -.fa-blogger:before { - content: ""; -} - -.fa-blogger-b:before { - content: ""; -} - -.fa-bluetooth:before { - content: ""; -} - -.fa-bluetooth-b:before { - content: ""; -} - -.fa-bold:before { - content: ""; -} - -.fa-bolt:before { - content: ""; -} - -.fa-bomb:before { - content: ""; -} - -.fa-bone:before { - content: ""; -} - -.fa-bong:before { - content: ""; -} - -.fa-book:before { - content: ""; -} - -.fa-book-dead:before { - content: ""; -} - -.fa-book-medical:before { - content: ""; -} - -.fa-book-open:before { - content: ""; -} - -.fa-book-reader:before { - content: ""; -} - -.fa-bookmark:before { - content: ""; -} - -.fa-bootstrap:before { - content: ""; -} - -.fa-border-all:before { - content: ""; -} - -.fa-border-none:before { - content: ""; -} - -.fa-border-style:before { - content: ""; -} - -.fa-bowling-ball:before { - content: ""; -} - -.fa-box:before { - content: ""; -} - -.fa-box-open:before { - content: ""; -} - -.fa-box-tissue:before { - content: ""; -} - -.fa-boxes:before { - content: ""; -} - -.fa-braille:before { - content: ""; -} - -.fa-brain:before { - content: ""; -} - -.fa-bread-slice:before { - content: ""; -} - -.fa-briefcase:before { - content: ""; -} - -.fa-briefcase-medical:before { - content: ""; -} - -.fa-broadcast-tower:before { - content: ""; -} - -.fa-broom:before { - content: ""; -} - -.fa-brush:before { - content: ""; -} - -.fa-btc:before { - content: ""; -} - -.fa-buffer:before { - content: ""; -} - -.fa-bug:before { - content: ""; -} - -.fa-building:before { - content: ""; -} - -.fa-bullhorn:before { - content: ""; -} - -.fa-bullseye:before { - content: ""; -} - -.fa-burn:before { - content: ""; -} - -.fa-buromobelexperte:before { - content: ""; -} - -.fa-bus:before { - content: ""; -} - -.fa-bus-alt:before { - content: ""; -} - -.fa-business-time:before { - content: ""; -} - -.fa-buy-n-large:before { - content: ""; -} - -.fa-buysellads:before { - content: ""; -} - -.fa-calculator:before { - content: ""; -} - -.fa-calendar:before { - content: ""; -} - -.fa-calendar-alt:before { - content: ""; -} - -.fa-calendar-check:before { - content: ""; -} - -.fa-calendar-day:before { - content: ""; -} - -.fa-calendar-minus:before { - content: ""; -} - -.fa-calendar-plus:before { - content: ""; -} - -.fa-calendar-times:before { - content: ""; -} - -.fa-calendar-week:before { - content: ""; -} - -.fa-camera:before { - content: ""; -} - -.fa-camera-retro:before { - content: ""; -} - -.fa-campground:before { - content: ""; -} - -.fa-canadian-maple-leaf:before { - content: ""; -} - -.fa-candy-cane:before { - content: ""; -} - -.fa-cannabis:before { - content: ""; -} - -.fa-capsules:before { - content: ""; -} - -.fa-car:before { - content: ""; -} - -.fa-car-alt:before { - content: ""; -} - -.fa-car-battery:before { - content: ""; -} - -.fa-car-crash:before { - content: ""; -} - -.fa-car-side:before { - content: ""; -} - -.fa-caravan:before { - content: ""; -} - -.fa-caret-down:before { - content: ""; -} - -.fa-caret-left:before { - content: ""; -} - -.fa-caret-right:before { - content: ""; -} - -.fa-caret-square-down:before { - content: ""; -} - -.fa-caret-square-left:before { - content: ""; -} - -.fa-caret-square-right:before { - content: ""; -} - -.fa-caret-square-up:before { - content: ""; -} - -.fa-caret-up:before { - content: ""; -} - -.fa-carrot:before { - content: ""; -} - -.fa-cart-arrow-down:before { - content: ""; -} - -.fa-cart-plus:before { - content: ""; -} - -.fa-cash-register:before { - content: ""; -} - -.fa-cat:before { - content: ""; -} - -.fa-cc-amazon-pay:before { - content: ""; -} - -.fa-cc-amex:before { - content: ""; -} - -.fa-cc-apple-pay:before { - content: ""; -} - -.fa-cc-diners-club:before { - content: ""; -} - -.fa-cc-discover:before { - content: ""; -} - -.fa-cc-jcb:before { - content: ""; -} - -.fa-cc-mastercard:before { - content: ""; -} - -.fa-cc-paypal:before { - content: ""; -} - -.fa-cc-stripe:before { - content: ""; -} - -.fa-cc-visa:before { - content: ""; -} - -.fa-centercode:before { - content: ""; -} - -.fa-centos:before { - content: ""; -} - -.fa-certificate:before { - content: ""; -} - -.fa-chair:before { - content: ""; -} - -.fa-chalkboard:before { - content: ""; -} - -.fa-chalkboard-teacher:before { - content: ""; -} - -.fa-charging-station:before { - content: ""; -} - -.fa-chart-area:before { - content: ""; -} - -.fa-chart-bar:before { - content: ""; -} - -.fa-chart-line:before { - content: ""; -} - -.fa-chart-pie:before { - content: ""; -} - -.fa-check:before { - content: ""; -} - -.fa-check-circle:before { - content: ""; -} - -.fa-check-double:before { - content: ""; -} - -.fa-check-square:before { - content: ""; -} - -.fa-cheese:before { - content: ""; -} - -.fa-chess:before { - content: ""; -} - -.fa-chess-bishop:before { - content: ""; -} - -.fa-chess-board:before { - content: ""; -} - -.fa-chess-king:before { - content: ""; -} - -.fa-chess-knight:before { - content: ""; -} - -.fa-chess-pawn:before { - content: ""; -} - -.fa-chess-queen:before { - content: ""; -} - -.fa-chess-rook:before { - content: ""; -} - -.fa-chevron-circle-down:before { - content: ""; -} - -.fa-chevron-circle-left:before { - content: ""; -} - -.fa-chevron-circle-right:before { - content: ""; -} - -.fa-chevron-circle-up:before { - content: ""; -} - -.fa-chevron-down:before { - content: ""; -} - -.fa-chevron-left:before { - content: ""; -} - -.fa-chevron-right:before { - content: ""; -} - -.fa-chevron-up:before { - content: ""; -} - -.fa-child:before { - content: ""; -} - -.fa-chrome:before { - content: ""; -} - -.fa-chromecast:before { - content: ""; -} - -.fa-church:before { - content: ""; -} - -.fa-circle:before { - content: ""; -} - -.fa-circle-notch:before { - content: ""; -} - -.fa-city:before { - content: ""; -} - -.fa-clinic-medical:before { - content: ""; -} - -.fa-clipboard:before { - content: ""; -} - -.fa-clipboard-check:before { - content: ""; -} - -.fa-clipboard-list:before { - content: ""; -} - -.fa-clock:before { - content: ""; -} - -.fa-clone:before { - content: ""; -} - -.fa-closed-captioning:before { - content: ""; -} - -.fa-cloud:before { - content: ""; -} - -.fa-cloud-download-alt:before { - content: ""; -} - -.fa-cloud-meatball:before { - content: ""; -} - -.fa-cloud-moon:before { - content: ""; -} - -.fa-cloud-moon-rain:before { - content: ""; -} - -.fa-cloud-rain:before { - content: ""; -} - -.fa-cloud-showers-heavy:before { - content: ""; -} - -.fa-cloud-sun:before { - content: ""; -} - -.fa-cloud-sun-rain:before { - content: ""; -} - -.fa-cloud-upload-alt:before { - content: ""; -} - -.fa-cloudflare:before { - content: ""; -} - -.fa-cloudscale:before { - content: ""; -} - -.fa-cloudsmith:before { - content: ""; -} - -.fa-cloudversify:before { - content: ""; -} - -.fa-cocktail:before { - content: ""; -} - -.fa-code:before { - content: ""; -} - -.fa-code-branch:before { - content: ""; -} - -.fa-codepen:before { - content: ""; -} - -.fa-codiepie:before { - content: ""; -} - -.fa-coffee:before { - content: ""; -} - -.fa-cog:before { - content: ""; -} - -.fa-cogs:before { - content: ""; -} - -.fa-coins:before { - content: ""; -} - -.fa-columns:before { - content: ""; -} - -.fa-comment:before { - content: ""; -} - -.fa-comment-alt:before { - content: ""; -} - -.fa-comment-dollar:before { - content: ""; -} - -.fa-comment-dots:before { - content: ""; -} - -.fa-comment-medical:before { - content: ""; -} - -.fa-comment-slash:before { - content: ""; -} - -.fa-comments:before { - content: ""; -} - -.fa-comments-dollar:before { - content: ""; -} - -.fa-compact-disc:before { - content: ""; -} - -.fa-compass:before { - content: ""; -} - -.fa-compress:before { - content: ""; -} - -.fa-compress-alt:before { - content: ""; -} - -.fa-compress-arrows-alt:before { - content: ""; -} - -.fa-concierge-bell:before { - content: ""; -} - -.fa-confluence:before { - content: ""; -} - -.fa-connectdevelop:before { - content: ""; -} - -.fa-contao:before { - content: ""; -} - -.fa-cookie:before { - content: ""; -} - -.fa-cookie-bite:before { - content: ""; -} - -.fa-copy:before { - content: ""; -} - -.fa-copyright:before { - content: ""; -} - -.fa-cotton-bureau:before { - content: ""; -} - -.fa-couch:before { - content: ""; -} - -.fa-cpanel:before { - content: ""; -} - -.fa-creative-commons:before { - content: ""; -} - -.fa-creative-commons-by:before { - content: ""; -} - -.fa-creative-commons-nc:before { - content: ""; -} - -.fa-creative-commons-nc-eu:before { - content: ""; -} - -.fa-creative-commons-nc-jp:before { - content: ""; -} - -.fa-creative-commons-nd:before { - content: ""; -} - -.fa-creative-commons-pd:before { - content: ""; -} - -.fa-creative-commons-pd-alt:before { - content: ""; -} - -.fa-creative-commons-remix:before { - content: ""; -} - -.fa-creative-commons-sa:before { - content: ""; -} - -.fa-creative-commons-sampling:before { - content: ""; -} - -.fa-creative-commons-sampling-plus:before { - content: ""; -} - -.fa-creative-commons-share:before { - content: ""; -} - -.fa-creative-commons-zero:before { - content: ""; -} - -.fa-credit-card:before { - content: ""; -} - -.fa-critical-role:before { - content: ""; -} - -.fa-crop:before { - content: ""; -} - -.fa-crop-alt:before { - content: ""; -} - -.fa-cross:before { - content: ""; -} - -.fa-crosshairs:before { - content: ""; -} - -.fa-crow:before { - content: ""; -} - -.fa-crown:before { - content: ""; -} - -.fa-crutch:before { - content: ""; -} - -.fa-css3:before { - content: ""; -} - -.fa-css3-alt:before { - content: ""; -} - -.fa-cube:before { - content: ""; -} - -.fa-cubes:before { - content: ""; -} - -.fa-cut:before { - content: ""; -} - -.fa-cuttlefish:before { - content: ""; -} - -.fa-d-and-d:before { - content: ""; -} - -.fa-d-and-d-beyond:before { - content: ""; -} - -.fa-dailymotion:before { - content: ""; -} - -.fa-dashcube:before { - content: ""; -} - -.fa-database:before { - content: ""; -} - -.fa-deaf:before { - content: ""; -} - -.fa-deezer:before { - content: ""; -} - -.fa-delicious:before { - content: ""; -} - -.fa-democrat:before { - content: ""; -} - -.fa-deploydog:before { - content: ""; -} - -.fa-deskpro:before { - content: ""; -} - -.fa-desktop:before { - content: ""; -} - -.fa-dev:before { - content: ""; -} - -.fa-deviantart:before { - content: ""; -} - -.fa-dharmachakra:before { - content: ""; -} - -.fa-dhl:before { - content: ""; -} - -.fa-diagnoses:before { - content: ""; -} - -.fa-diaspora:before { - content: ""; -} - -.fa-dice:before { - content: ""; -} - -.fa-dice-d20:before { - content: ""; -} - -.fa-dice-d6:before { - content: ""; -} - -.fa-dice-five:before { - content: ""; -} - -.fa-dice-four:before { - content: ""; -} - -.fa-dice-one:before { - content: ""; -} - -.fa-dice-six:before { - content: ""; -} - -.fa-dice-three:before { - content: ""; -} - -.fa-dice-two:before { - content: ""; -} - -.fa-digg:before { - content: ""; -} - -.fa-digital-ocean:before { - content: ""; -} - -.fa-digital-tachograph:before { - content: ""; -} - -.fa-directions:before { - content: ""; -} - -.fa-discord:before { - content: ""; -} - -.fa-discourse:before { - content: ""; -} - -.fa-disease:before { - content: ""; -} - -.fa-divide:before { - content: ""; -} - -.fa-dizzy:before { - content: ""; -} - -.fa-dna:before { - content: ""; -} - -.fa-dochub:before { - content: ""; -} - -.fa-docker:before { - content: ""; -} - -.fa-dog:before { - content: ""; -} - -.fa-dollar-sign:before { - content: ""; -} - -.fa-dolly:before { - content: ""; -} - -.fa-dolly-flatbed:before { - content: ""; -} - -.fa-donate:before { - content: ""; -} - -.fa-door-closed:before { - content: ""; -} - -.fa-door-open:before { - content: ""; -} - -.fa-dot-circle:before { - content: ""; -} - -.fa-dove:before { - content: ""; -} - -.fa-download:before { - content: ""; -} - -.fa-draft2digital:before { - content: ""; -} - -.fa-drafting-compass:before { - content: ""; -} - -.fa-dragon:before { - content: ""; -} - -.fa-draw-polygon:before { - content: ""; -} - -.fa-dribbble:before { - content: ""; -} - -.fa-dribbble-square:before { - content: ""; -} - -.fa-dropbox:before { - content: ""; -} - -.fa-drum:before { - content: ""; -} - -.fa-drum-steelpan:before { - content: ""; -} - -.fa-drumstick-bite:before { - content: ""; -} - -.fa-drupal:before { - content: ""; -} - -.fa-dumbbell:before { - content: ""; -} - -.fa-dumpster:before { - content: ""; -} - -.fa-dumpster-fire:before { - content: ""; -} - -.fa-dungeon:before { - content: ""; -} - -.fa-dyalog:before { - content: ""; -} - -.fa-earlybirds:before { - content: ""; -} - -.fa-ebay:before { - content: ""; -} - -.fa-edge:before { - content: ""; -} - -.fa-edge-legacy:before { - content: ""; -} - -.fa-edit:before { - content: ""; -} - -.fa-egg:before { - content: ""; -} - -.fa-eject:before { - content: ""; -} - -.fa-elementor:before { - content: ""; -} - -.fa-ellipsis-h:before { - content: ""; -} - -.fa-ellipsis-v:before { - content: ""; -} - -.fa-ello:before { - content: ""; -} - -.fa-ember:before { - content: ""; -} - -.fa-empire:before { - content: ""; -} - -.fa-envelope:before { - content: ""; -} - -.fa-envelope-open:before { - content: ""; -} - -.fa-envelope-open-text:before { - content: ""; -} - -.fa-envelope-square:before { - content: ""; -} - -.fa-envira:before { - content: ""; -} - -.fa-equals:before { - content: ""; -} - -.fa-eraser:before { - content: ""; -} - -.fa-erlang:before { - content: ""; -} - -.fa-ethereum:before { - content: ""; -} - -.fa-ethernet:before { - content: ""; -} - -.fa-etsy:before { - content: ""; -} - -.fa-euro-sign:before { - content: ""; -} - -.fa-evernote:before { - content: ""; -} - -.fa-exchange-alt:before { - content: ""; -} - -.fa-exclamation:before { - content: ""; -} - -.fa-exclamation-circle:before { - content: ""; -} - -.fa-exclamation-triangle:before { - content: ""; -} - -.fa-expand:before { - content: ""; -} - -.fa-expand-alt:before { - content: ""; -} - -.fa-expand-arrows-alt:before { - content: ""; -} - -.fa-expeditedssl:before { - content: ""; -} - -.fa-external-link-alt:before { - content: ""; -} - -.fa-external-link-square-alt:before { - content: ""; -} - -.fa-eye:before { - content: ""; -} - -.fa-eye-dropper:before { - content: ""; -} - -.fa-eye-slash:before { - content: ""; -} - -.fa-facebook:before { - content: ""; -} - -.fa-facebook-f:before { - content: ""; -} - -.fa-facebook-messenger:before { - content: ""; -} - -.fa-facebook-square:before { - content: ""; -} - -.fa-fan:before { - content: ""; -} - -.fa-fantasy-flight-games:before { - content: ""; -} - -.fa-fast-backward:before { - content: ""; -} - -.fa-fast-forward:before { - content: ""; -} - -.fa-faucet:before { - content: ""; -} - -.fa-fax:before { - content: ""; -} - -.fa-feather:before { - content: ""; -} - -.fa-feather-alt:before { - content: ""; -} - -.fa-fedex:before { - content: ""; -} - -.fa-fedora:before { - content: ""; -} - -.fa-female:before { - content: ""; -} - -.fa-fighter-jet:before { - content: ""; -} - -.fa-figma:before { - content: ""; -} - -.fa-file:before { - content: ""; -} - -.fa-file-alt:before { - content: ""; -} - -.fa-file-archive:before { - content: ""; -} - -.fa-file-audio:before { - content: ""; -} - -.fa-file-code:before { - content: ""; -} - -.fa-file-contract:before { - content: ""; -} - -.fa-file-csv:before { - content: ""; -} - -.fa-file-download:before { - content: ""; -} - -.fa-file-excel:before { - content: ""; -} - -.fa-file-export:before { - content: ""; -} - -.fa-file-image:before { - content: ""; -} - -.fa-file-import:before { - content: ""; -} - -.fa-file-invoice:before { - content: ""; -} - -.fa-file-invoice-dollar:before { - content: ""; -} - -.fa-file-medical:before { - content: ""; -} - -.fa-file-medical-alt:before { - content: ""; -} - -.fa-file-pdf:before { - content: ""; -} - -.fa-file-powerpoint:before { - content: ""; -} - -.fa-file-prescription:before { - content: ""; -} - -.fa-file-signature:before { - content: ""; -} - -.fa-file-upload:before { - content: ""; -} - -.fa-file-video:before { - content: ""; -} - -.fa-file-word:before { - content: ""; -} - -.fa-fill:before { - content: ""; -} - -.fa-fill-drip:before { - content: ""; -} - -.fa-film:before { - content: ""; -} - -.fa-filter:before { - content: ""; -} - -.fa-fingerprint:before { - content: ""; -} - -.fa-fire:before { - content: ""; -} - -.fa-fire-alt:before { - content: ""; -} - -.fa-fire-extinguisher:before { - content: ""; -} - -.fa-firefox:before { - content: ""; -} - -.fa-firefox-browser:before { - content: ""; -} - -.fa-first-aid:before { - content: ""; -} - -.fa-first-order:before { - content: ""; -} - -.fa-first-order-alt:before { - content: ""; -} - -.fa-firstdraft:before { - content: ""; -} - -.fa-fish:before { - content: ""; -} - -.fa-fist-raised:before { - content: ""; -} - -.fa-flag:before { - content: ""; -} - -.fa-flag-checkered:before { - content: ""; -} - -.fa-flag-usa:before { - content: ""; -} - -.fa-flask:before { - content: ""; -} - -.fa-flickr:before { - content: ""; -} - -.fa-flipboard:before { - content: ""; -} - -.fa-flushed:before { - content: ""; -} - -.fa-fly:before { - content: ""; -} - -.fa-folder:before { - content: ""; -} - -.fa-folder-minus:before { - content: ""; -} - -.fa-folder-open:before { - content: ""; -} - -.fa-folder-plus:before { - content: ""; -} - -.fa-font:before { - content: ""; -} - -.fa-font-awesome:before { - content: ""; -} - -.fa-font-awesome-alt:before { - content: ""; -} - -.fa-font-awesome-flag:before { - content: ""; -} - -.fa-font-awesome-logo-full:before { - content: ""; -} - -.fa-fonticons:before { - content: ""; -} - -.fa-fonticons-fi:before { - content: ""; -} - -.fa-football-ball:before { - content: ""; -} - -.fa-fort-awesome:before { - content: ""; -} - -.fa-fort-awesome-alt:before { - content: ""; -} - -.fa-forumbee:before { - content: ""; -} - -.fa-forward:before { - content: ""; -} - -.fa-foursquare:before { - content: ""; -} - -.fa-free-code-camp:before { - content: ""; -} - -.fa-freebsd:before { - content: ""; -} - -.fa-frog:before { - content: ""; -} - -.fa-frown:before { - content: ""; -} - -.fa-frown-open:before { - content: ""; -} - -.fa-fulcrum:before { - content: ""; -} - -.fa-funnel-dollar:before { - content: ""; -} - -.fa-futbol:before { - content: ""; -} - -.fa-galactic-republic:before { - content: ""; -} - -.fa-galactic-senate:before { - content: ""; -} - -.fa-gamepad:before { - content: ""; -} - -.fa-gas-pump:before { - content: ""; -} - -.fa-gavel:before { - content: ""; -} - -.fa-gem:before { - content: ""; -} - -.fa-genderless:before { - content: ""; -} - -.fa-get-pocket:before { - content: ""; -} - -.fa-gg:before { - content: ""; -} - -.fa-gg-circle:before { - content: ""; -} - -.fa-ghost:before { - content: ""; -} - -.fa-gift:before { - content: ""; -} - -.fa-gifts:before { - content: ""; -} - -.fa-git:before { - content: ""; -} - -.fa-git-alt:before { - content: ""; -} - -.fa-git-square:before { - content: ""; -} - -.fa-github:before { - content: ""; -} - -.fa-github-alt:before { - content: ""; -} - -.fa-github-square:before { - content: ""; -} - -.fa-gitkraken:before { - content: ""; -} - -.fa-gitlab:before { - content: ""; -} - -.fa-gitter:before { - content: ""; -} - -.fa-glass-cheers:before { - content: ""; -} - -.fa-glass-martini:before { - content: ""; -} - -.fa-glass-martini-alt:before { - content: ""; -} - -.fa-glass-whiskey:before { - content: ""; -} - -.fa-glasses:before { - content: ""; -} - -.fa-glide:before { - content: ""; -} - -.fa-glide-g:before { - content: ""; -} - -.fa-globe:before { - content: ""; -} - -.fa-globe-africa:before { - content: ""; -} - -.fa-globe-americas:before { - content: ""; -} - -.fa-globe-asia:before { - content: ""; -} - -.fa-globe-europe:before { - content: ""; -} - -.fa-gofore:before { - content: ""; -} - -.fa-golf-ball:before { - content: ""; -} - -.fa-goodreads:before { - content: ""; -} - -.fa-goodreads-g:before { - content: ""; -} - -.fa-google:before { - content: ""; -} - -.fa-google-drive:before { - content: ""; -} - -.fa-google-pay:before { - content: ""; -} - -.fa-google-play:before { - content: ""; -} - -.fa-google-plus:before { - content: ""; -} - -.fa-google-plus-g:before { - content: ""; -} - -.fa-google-plus-square:before { - content: ""; -} - -.fa-google-wallet:before { - content: ""; -} - -.fa-gopuram:before { - content: ""; -} - -.fa-graduation-cap:before { - content: ""; -} - -.fa-gratipay:before { - content: ""; -} - -.fa-grav:before { - content: ""; -} - -.fa-greater-than:before { - content: ""; -} - -.fa-greater-than-equal:before { - content: ""; -} - -.fa-grimace:before { - content: ""; -} - -.fa-grin:before { - content: ""; -} - -.fa-grin-alt:before { - content: ""; -} - -.fa-grin-beam:before { - content: ""; -} - -.fa-grin-beam-sweat:before { - content: ""; -} - -.fa-grin-hearts:before { - content: ""; -} - -.fa-grin-squint:before { - content: ""; -} - -.fa-grin-squint-tears:before { - content: ""; -} - -.fa-grin-stars:before { - content: ""; -} - -.fa-grin-tears:before { - content: ""; -} - -.fa-grin-tongue:before { - content: ""; -} - -.fa-grin-tongue-squint:before { - content: ""; -} - -.fa-grin-tongue-wink:before { - content: ""; -} - -.fa-grin-wink:before { - content: ""; -} - -.fa-grip-horizontal:before { - content: ""; -} - -.fa-grip-lines:before { - content: ""; -} - -.fa-grip-lines-vertical:before { - content: ""; -} - -.fa-grip-vertical:before { - content: ""; -} - -.fa-gripfire:before { - content: ""; -} - -.fa-grunt:before { - content: ""; -} - -.fa-guilded:before { - content: ""; -} - -.fa-guitar:before { - content: ""; -} - -.fa-gulp:before { - content: ""; -} - -.fa-h-square:before { - content: ""; -} - -.fa-hacker-news:before { - content: ""; -} - -.fa-hacker-news-square:before { - content: ""; -} - -.fa-hackerrank:before { - content: ""; -} - -.fa-hamburger:before { - content: ""; -} - -.fa-hammer:before { - content: ""; -} - -.fa-hamsa:before { - content: ""; -} - -.fa-hand-holding:before { - content: ""; -} - -.fa-hand-holding-heart:before { - content: ""; -} - -.fa-hand-holding-medical:before { - content: ""; -} - -.fa-hand-holding-usd:before { - content: ""; -} - -.fa-hand-holding-water:before { - content: ""; -} - -.fa-hand-lizard:before { - content: ""; -} - -.fa-hand-middle-finger:before { - content: ""; -} - -.fa-hand-paper:before { - content: ""; -} - -.fa-hand-peace:before { - content: ""; -} - -.fa-hand-point-down:before { - content: ""; -} - -.fa-hand-point-left:before { - content: ""; -} - -.fa-hand-point-right:before { - content: ""; -} - -.fa-hand-point-up:before { - content: ""; -} - -.fa-hand-pointer:before { - content: ""; -} - -.fa-hand-rock:before { - content: ""; -} - -.fa-hand-scissors:before { - content: ""; -} - -.fa-hand-sparkles:before { - content: ""; -} - -.fa-hand-spock:before { - content: ""; -} - -.fa-hands:before { - content: ""; -} - -.fa-hands-helping:before { - content: ""; -} - -.fa-hands-wash:before { - content: ""; -} - -.fa-handshake:before { - content: ""; -} - -.fa-handshake-alt-slash:before { - content: ""; -} - -.fa-handshake-slash:before { - content: ""; -} - -.fa-hanukiah:before { - content: ""; -} - -.fa-hard-hat:before { - content: ""; -} - -.fa-hashtag:before { - content: ""; -} - -.fa-hat-cowboy:before { - content: ""; -} - -.fa-hat-cowboy-side:before { - content: ""; -} - -.fa-hat-wizard:before { - content: ""; -} - -.fa-hdd:before { - content: ""; -} - -.fa-head-side-cough:before { - content: ""; -} - -.fa-head-side-cough-slash:before { - content: ""; -} - -.fa-head-side-mask:before { - content: ""; -} - -.fa-head-side-virus:before { - content: ""; -} - -.fa-heading:before { - content: ""; -} - -.fa-headphones:before { - content: ""; -} - -.fa-headphones-alt:before { - content: ""; -} - -.fa-headset:before { - content: ""; -} - -.fa-heart:before { - content: ""; -} - -.fa-heart-broken:before { - content: ""; -} - -.fa-heartbeat:before { - content: ""; -} - -.fa-helicopter:before { - content: ""; -} - -.fa-highlighter:before { - content: ""; -} - -.fa-hiking:before { - content: ""; -} - -.fa-hippo:before { - content: ""; -} - -.fa-hips:before { - content: ""; -} - -.fa-hire-a-helper:before { - content: ""; -} - -.fa-history:before { - content: ""; -} - -.fa-hive:before { - content: ""; -} - -.fa-hockey-puck:before { - content: ""; -} - -.fa-holly-berry:before { - content: ""; -} - -.fa-home:before { - content: ""; -} - -.fa-hooli:before { - content: ""; -} - -.fa-hornbill:before { - content: ""; -} - -.fa-horse:before { - content: ""; -} - -.fa-horse-head:before { - content: ""; -} - -.fa-hospital:before { - content: ""; -} - -.fa-hospital-alt:before { - content: ""; -} - -.fa-hospital-symbol:before { - content: ""; -} - -.fa-hospital-user:before { - content: ""; -} - -.fa-hot-tub:before { - content: ""; -} - -.fa-hotdog:before { - content: ""; -} - -.fa-hotel:before { - content: ""; -} - -.fa-hotjar:before { - content: ""; -} - -.fa-hourglass:before { - content: ""; -} - -.fa-hourglass-end:before { - content: ""; -} - -.fa-hourglass-half:before { - content: ""; -} - -.fa-hourglass-start:before { - content: ""; -} - -.fa-house-damage:before { - content: ""; -} - -.fa-house-user:before { - content: ""; -} - -.fa-houzz:before { - content: ""; -} - -.fa-hryvnia:before { - content: ""; -} - -.fa-html5:before { - content: ""; -} - -.fa-hubspot:before { - content: ""; -} - -.fa-i-cursor:before { - content: ""; -} - -.fa-ice-cream:before { - content: ""; -} - -.fa-icicles:before { - content: ""; -} - -.fa-icons:before { - content: ""; -} - -.fa-id-badge:before { - content: ""; -} - -.fa-id-card:before { - content: ""; -} - -.fa-id-card-alt:before { - content: ""; -} - -.fa-ideal:before { - content: ""; -} - -.fa-igloo:before { - content: ""; -} - -.fa-image:before { - content: ""; -} - -.fa-images:before { - content: ""; -} - -.fa-imdb:before { - content: ""; -} - -.fa-inbox:before { - content: ""; -} - -.fa-indent:before { - content: ""; -} - -.fa-industry:before { - content: ""; -} - -.fa-infinity:before { - content: ""; -} - -.fa-info:before { - content: ""; -} - -.fa-info-circle:before { - content: ""; -} - -.fa-innosoft:before { - content: ""; -} - -.fa-instagram:before { - content: ""; -} - -.fa-instagram-square:before { - content: ""; -} - -.fa-instalod:before { - content: ""; -} - -.fa-intercom:before { - content: ""; -} - -.fa-internet-explorer:before { - content: ""; -} - -.fa-invision:before { - content: ""; -} - -.fa-ioxhost:before { - content: ""; -} - -.fa-italic:before { - content: ""; -} - -.fa-itch-io:before { - content: ""; -} - -.fa-itunes:before { - content: ""; -} - -.fa-itunes-note:before { - content: ""; -} - -.fa-java:before { - content: ""; -} - -.fa-jedi:before { - content: ""; -} - -.fa-jedi-order:before { - content: ""; -} - -.fa-jenkins:before { - content: ""; -} - -.fa-jira:before { - content: ""; -} - -.fa-joget:before { - content: ""; -} - -.fa-joint:before { - content: ""; -} - -.fa-joomla:before { - content: ""; -} - -.fa-journal-whills:before { - content: ""; -} - -.fa-js:before { - content: ""; -} - -.fa-js-square:before { - content: ""; -} - -.fa-jsfiddle:before { - content: ""; -} - -.fa-kaaba:before { - content: ""; -} - -.fa-kaggle:before { - content: ""; -} - -.fa-key:before { - content: ""; -} - -.fa-keybase:before { - content: ""; -} - -.fa-keyboard:before { - content: ""; -} - -.fa-keycdn:before { - content: ""; -} - -.fa-khanda:before { - content: ""; -} - -.fa-kickstarter:before { - content: ""; -} - -.fa-kickstarter-k:before { - content: ""; -} - -.fa-kiss:before { - content: ""; -} - -.fa-kiss-beam:before { - content: ""; -} - -.fa-kiss-wink-heart:before { - content: ""; -} - -.fa-kiwi-bird:before { - content: ""; -} - -.fa-korvue:before { - content: ""; -} - -.fa-landmark:before { - content: ""; -} - -.fa-language:before { - content: ""; -} - -.fa-laptop:before { - content: ""; -} - -.fa-laptop-code:before { - content: ""; -} - -.fa-laptop-house:before { - content: ""; -} - -.fa-laptop-medical:before { - content: ""; -} - -.fa-laravel:before { - content: ""; -} - -.fa-lastfm:before { - content: ""; -} - -.fa-lastfm-square:before { - content: ""; -} - -.fa-laugh:before { - content: ""; -} - -.fa-laugh-beam:before { - content: ""; -} - -.fa-laugh-squint:before { - content: ""; -} - -.fa-laugh-wink:before { - content: ""; -} - -.fa-layer-group:before { - content: ""; -} - -.fa-leaf:before { - content: ""; -} - -.fa-leanpub:before { - content: ""; -} - -.fa-lemon:before { - content: ""; -} - -.fa-less:before { - content: ""; -} - -.fa-less-than:before { - content: ""; -} - -.fa-less-than-equal:before { - content: ""; -} - -.fa-level-down-alt:before { - content: ""; -} - -.fa-level-up-alt:before { - content: ""; -} - -.fa-life-ring:before { - content: ""; -} - -.fa-lightbulb:before { - content: ""; -} - -.fa-line:before { - content: ""; -} - -.fa-link:before { - content: ""; -} - -.fa-linkedin:before { - content: ""; -} - -.fa-linkedin-in:before { - content: ""; -} - -.fa-linode:before { - content: ""; -} - -.fa-linux:before { - content: ""; -} - -.fa-lira-sign:before { - content: ""; -} - -.fa-list:before { - content: ""; -} - -.fa-list-alt:before { - content: ""; -} - -.fa-list-ol:before { - content: ""; -} - -.fa-list-ul:before { - content: ""; -} - -.fa-location-arrow:before { - content: ""; -} - -.fa-lock:before { - content: ""; -} - -.fa-lock-open:before { - content: ""; -} - -.fa-long-arrow-alt-down:before { - content: ""; -} - -.fa-long-arrow-alt-left:before { - content: ""; -} - -.fa-long-arrow-alt-right:before { - content: ""; -} - -.fa-long-arrow-alt-up:before { - content: ""; -} - -.fa-low-vision:before { - content: ""; -} - -.fa-luggage-cart:before { - content: ""; -} - -.fa-lungs:before { - content: ""; -} - -.fa-lungs-virus:before { - content: ""; -} - -.fa-lyft:before { - content: ""; -} - -.fa-magento:before { - content: ""; -} - -.fa-magic:before { - content: ""; -} - -.fa-magnet:before { - content: ""; -} - -.fa-mail-bulk:before { - content: ""; -} - -.fa-mailchimp:before { - content: ""; -} - -.fa-male:before { - content: ""; -} - -.fa-mandalorian:before { - content: ""; -} - -.fa-map:before { - content: ""; -} - -.fa-map-marked:before { - content: ""; -} - -.fa-map-marked-alt:before { - content: ""; -} - -.fa-map-marker:before { - content: ""; -} - -.fa-map-marker-alt:before { - content: ""; -} - -.fa-map-pin:before { - content: ""; -} - -.fa-map-signs:before { - content: ""; -} - -.fa-markdown:before { - content: ""; -} - -.fa-marker:before { - content: ""; -} - -.fa-mars:before { - content: ""; -} - -.fa-mars-double:before { - content: ""; -} - -.fa-mars-stroke:before { - content: ""; -} - -.fa-mars-stroke-h:before { - content: ""; -} - -.fa-mars-stroke-v:before { - content: ""; -} - -.fa-mask:before { - content: ""; -} - -.fa-mastodon:before { - content: ""; -} - -.fa-maxcdn:before { - content: ""; -} - -.fa-mdb:before { - content: ""; -} - -.fa-medal:before { - content: ""; -} - -.fa-medapps:before { - content: ""; -} - -.fa-medium:before { - content: ""; -} - -.fa-medium-m:before { - content: ""; -} - -.fa-medkit:before { - content: ""; -} - -.fa-medrt:before { - content: ""; -} - -.fa-meetup:before { - content: ""; -} - -.fa-megaport:before { - content: ""; -} - -.fa-meh:before { - content: ""; -} - -.fa-meh-blank:before { - content: ""; -} - -.fa-meh-rolling-eyes:before { - content: ""; -} - -.fa-memory:before { - content: ""; -} - -.fa-mendeley:before { - content: ""; -} - -.fa-menorah:before { - content: ""; -} - -.fa-mercury:before { - content: ""; -} - -.fa-meteor:before { - content: ""; -} - -.fa-microblog:before { - content: ""; -} - -.fa-microchip:before { - content: ""; -} - -.fa-microphone:before { - content: ""; -} - -.fa-microphone-alt:before { - content: ""; -} - -.fa-microphone-alt-slash:before { - content: ""; -} - -.fa-microphone-slash:before { - content: ""; -} - -.fa-microscope:before { - content: ""; -} - -.fa-microsoft:before { - content: ""; -} - -.fa-minus:before { - content: ""; -} - -.fa-minus-circle:before { - content: ""; -} - -.fa-minus-square:before { - content: ""; -} - -.fa-mitten:before { - content: ""; -} - -.fa-mix:before { - content: ""; -} - -.fa-mixcloud:before { - content: ""; -} - -.fa-mixer:before { - content: ""; -} - -.fa-mizuni:before { - content: ""; -} - -.fa-mobile:before { - content: ""; -} - -.fa-mobile-alt:before { - content: ""; -} - -.fa-modx:before { - content: ""; -} - -.fa-monero:before { - content: ""; -} - -.fa-money-bill:before { - content: ""; -} - -.fa-money-bill-alt:before { - content: ""; -} - -.fa-money-bill-wave:before { - content: ""; -} - -.fa-money-bill-wave-alt:before { - content: ""; -} - -.fa-money-check:before { - content: ""; -} - -.fa-money-check-alt:before { - content: ""; -} - -.fa-monument:before { - content: ""; -} - -.fa-moon:before { - content: ""; -} - -.fa-mortar-pestle:before { - content: ""; -} - -.fa-mosque:before { - content: ""; -} - -.fa-motorcycle:before { - content: ""; -} - -.fa-mountain:before { - content: ""; -} - -.fa-mouse:before { - content: ""; -} - -.fa-mouse-pointer:before { - content: ""; -} - -.fa-mug-hot:before { - content: ""; -} - -.fa-music:before { - content: ""; -} - -.fa-napster:before { - content: ""; -} - -.fa-neos:before { - content: ""; -} - -.fa-network-wired:before { - content: ""; -} - -.fa-neuter:before { - content: ""; -} - -.fa-newspaper:before { - content: ""; -} - -.fa-nimblr:before { - content: ""; -} - -.fa-node:before { - content: ""; -} - -.fa-node-js:before { - content: ""; -} - -.fa-not-equal:before { - content: ""; -} - -.fa-notes-medical:before { - content: ""; -} - -.fa-npm:before { - content: ""; -} - -.fa-ns8:before { - content: ""; -} - -.fa-nutritionix:before { - content: ""; -} - -.fa-object-group:before { - content: ""; -} - -.fa-object-ungroup:before { - content: ""; -} - -.fa-octopus-deploy:before { - content: ""; -} - -.fa-odnoklassniki:before { - content: ""; -} - -.fa-odnoklassniki-square:before { - content: ""; -} - -.fa-oil-can:before { - content: ""; -} - -.fa-old-republic:before { - content: ""; -} - -.fa-om:before { - content: ""; -} - -.fa-opencart:before { - content: ""; -} - -.fa-openid:before { - content: ""; -} - -.fa-opera:before { - content: ""; -} - -.fa-optin-monster:before { - content: ""; -} - -.fa-orcid:before { - content: ""; -} - -.fa-osi:before { - content: ""; -} - -.fa-otter:before { - content: ""; -} - -.fa-outdent:before { - content: ""; -} - -.fa-page4:before { - content: ""; -} - -.fa-pagelines:before { - content: ""; -} - -.fa-pager:before { - content: ""; -} - -.fa-paint-brush:before { - content: ""; -} - -.fa-paint-roller:before { - content: ""; -} - -.fa-palette:before { - content: ""; -} - -.fa-palfed:before { - content: ""; -} - -.fa-pallet:before { - content: ""; -} - -.fa-paper-plane:before { - content: ""; -} - -.fa-paperclip:before { - content: ""; -} - -.fa-parachute-box:before { - content: ""; -} - -.fa-paragraph:before { - content: ""; -} - -.fa-parking:before { - content: ""; -} - -.fa-passport:before { - content: ""; -} - -.fa-pastafarianism:before { - content: ""; -} - -.fa-paste:before { - content: ""; -} - -.fa-patreon:before { - content: ""; -} - -.fa-pause:before { - content: ""; -} - -.fa-pause-circle:before { - content: ""; -} - -.fa-paw:before { - content: ""; -} - -.fa-paypal:before { - content: ""; -} - -.fa-peace:before { - content: ""; -} - -.fa-pen:before { - content: ""; -} - -.fa-pen-alt:before { - content: ""; -} - -.fa-pen-fancy:before { - content: ""; -} - -.fa-pen-nib:before { - content: ""; -} - -.fa-pen-square:before { - content: ""; -} - -.fa-pencil-alt:before { - content: ""; -} - -.fa-pencil-ruler:before { - content: ""; -} - -.fa-penny-arcade:before { - content: ""; -} - -.fa-people-arrows:before { - content: ""; -} - -.fa-people-carry:before { - content: ""; -} - -.fa-pepper-hot:before { - content: ""; -} - -.fa-perbyte:before { - content: ""; -} - -.fa-percent:before { - content: ""; -} - -.fa-percentage:before { - content: ""; -} - -.fa-periscope:before { - content: ""; -} - -.fa-person-booth:before { - content: ""; -} - -.fa-phabricator:before { - content: ""; -} - -.fa-phoenix-framework:before { - content: ""; -} - -.fa-phoenix-squadron:before { - content: ""; -} - -.fa-phone:before { - content: ""; -} - -.fa-phone-alt:before { - content: ""; -} - -.fa-phone-slash:before { - content: ""; -} - -.fa-phone-square:before { - content: ""; -} - -.fa-phone-square-alt:before { - content: ""; -} - -.fa-phone-volume:before { - content: ""; -} - -.fa-photo-video:before { - content: ""; -} - -.fa-php:before { - content: ""; -} - -.fa-pied-piper:before { - content: ""; -} - -.fa-pied-piper-alt:before { - content: ""; -} - -.fa-pied-piper-hat:before { - content: ""; -} - -.fa-pied-piper-pp:before { - content: ""; -} - -.fa-pied-piper-square:before { - content: ""; -} - -.fa-piggy-bank:before { - content: ""; -} - -.fa-pills:before { - content: ""; -} - -.fa-pinterest:before { - content: ""; -} - -.fa-pinterest-p:before { - content: ""; -} - -.fa-pinterest-square:before { - content: ""; -} - -.fa-pizza-slice:before { - content: ""; -} - -.fa-place-of-worship:before { - content: ""; -} - -.fa-plane:before { - content: ""; -} - -.fa-plane-arrival:before { - content: ""; -} - -.fa-plane-departure:before { - content: ""; -} - -.fa-plane-slash:before { - content: ""; -} - -.fa-play:before { - content: ""; -} - -.fa-play-circle:before { - content: ""; -} - -.fa-playstation:before { - content: ""; -} - -.fa-plug:before { - content: ""; -} - -.fa-plus:before { - content: ""; -} - -.fa-plus-circle:before { - content: ""; -} - -.fa-plus-square:before { - content: ""; -} - -.fa-podcast:before { - content: ""; -} - -.fa-poll:before { - content: ""; -} - -.fa-poll-h:before { - content: ""; -} - -.fa-poo:before { - content: ""; -} - -.fa-poo-storm:before { - content: ""; -} - -.fa-poop:before { - content: ""; -} - -.fa-portrait:before { - content: ""; -} - -.fa-pound-sign:before { - content: ""; -} - -.fa-power-off:before { - content: ""; -} - -.fa-pray:before { - content: ""; -} - -.fa-praying-hands:before { - content: ""; -} - -.fa-prescription:before { - content: ""; -} - -.fa-prescription-bottle:before { - content: ""; -} - -.fa-prescription-bottle-alt:before { - content: ""; -} - -.fa-print:before { - content: ""; -} - -.fa-procedures:before { - content: ""; -} - -.fa-product-hunt:before { - content: ""; -} - -.fa-project-diagram:before { - content: ""; -} - -.fa-pump-medical:before { - content: ""; -} - -.fa-pump-soap:before { - content: ""; -} - -.fa-pushed:before { - content: ""; -} - -.fa-puzzle-piece:before { - content: ""; -} - -.fa-python:before { - content: ""; -} - -.fa-qq:before { - content: ""; -} - -.fa-qrcode:before { - content: ""; -} - -.fa-question:before { - content: ""; -} - -.fa-question-circle:before { - content: ""; -} - -.fa-quidditch:before { - content: ""; -} - -.fa-quinscape:before { - content: ""; -} - -.fa-quora:before { - content: ""; -} - -.fa-quote-left:before { - content: ""; -} - -.fa-quote-right:before { - content: ""; -} - -.fa-quran:before { - content: ""; -} - -.fa-r-project:before { - content: ""; -} - -.fa-radiation:before { - content: ""; -} - -.fa-radiation-alt:before { - content: ""; -} - -.fa-rainbow:before { - content: ""; -} - -.fa-random:before { - content: ""; -} - -.fa-raspberry-pi:before { - content: ""; -} - -.fa-ravelry:before { - content: ""; -} - -.fa-react:before { - content: ""; -} - -.fa-reacteurope:before { - content: ""; -} - -.fa-readme:before { - content: ""; -} - -.fa-rebel:before { - content: ""; -} - -.fa-receipt:before { - content: ""; -} - -.fa-record-vinyl:before { - content: ""; -} - -.fa-recycle:before { - content: ""; -} - -.fa-red-river:before { - content: ""; -} - -.fa-reddit:before { - content: ""; -} - -.fa-reddit-alien:before { - content: ""; -} - -.fa-reddit-square:before { - content: ""; -} - -.fa-redhat:before { - content: ""; -} - -.fa-redo:before { - content: ""; -} - -.fa-redo-alt:before { - content: ""; -} - -.fa-registered:before { - content: ""; -} - -.fa-remove-format:before { - content: ""; -} - -.fa-renren:before { - content: ""; -} - -.fa-reply:before { - content: ""; -} - -.fa-reply-all:before { - content: ""; -} - -.fa-replyd:before { - content: ""; -} - -.fa-republican:before { - content: ""; -} - -.fa-researchgate:before { - content: ""; -} - -.fa-resolving:before { - content: ""; -} - -.fa-restroom:before { - content: ""; -} - -.fa-retweet:before { - content: ""; -} - -.fa-rev:before { - content: ""; -} - -.fa-ribbon:before { - content: ""; -} - -.fa-ring:before { - content: ""; -} - -.fa-road:before { - content: ""; -} - -.fa-robot:before { - content: ""; -} - -.fa-rocket:before { - content: ""; -} - -.fa-rocketchat:before { - content: ""; -} - -.fa-rockrms:before { - content: ""; -} - -.fa-route:before { - content: ""; -} - -.fa-rss:before { - content: ""; -} - -.fa-rss-square:before { - content: ""; -} - -.fa-ruble-sign:before { - content: ""; -} - -.fa-ruler:before { - content: ""; -} - -.fa-ruler-combined:before { - content: ""; -} - -.fa-ruler-horizontal:before { - content: ""; -} - -.fa-ruler-vertical:before { - content: ""; -} - -.fa-running:before { - content: ""; -} - -.fa-rupee-sign:before { - content: ""; -} - -.fa-rust:before { - content: ""; -} - -.fa-sad-cry:before { - content: ""; -} - -.fa-sad-tear:before { - content: ""; -} - -.fa-safari:before { - content: ""; -} - -.fa-salesforce:before { - content: ""; -} - -.fa-sass:before { - content: ""; -} - -.fa-satellite:before { - content: ""; -} - -.fa-satellite-dish:before { - content: ""; -} - -.fa-save:before { - content: ""; -} - -.fa-schlix:before { - content: ""; -} - -.fa-school:before { - content: ""; -} - -.fa-screwdriver:before { - content: ""; -} - -.fa-scribd:before { - content: ""; -} - -.fa-scroll:before { - content: ""; -} - -.fa-sd-card:before { - content: ""; -} - -.fa-search:before { - content: ""; -} - -.fa-search-dollar:before { - content: ""; -} - -.fa-search-location:before { - content: ""; -} - -.fa-search-minus:before { - content: ""; -} - -.fa-search-plus:before { - content: ""; -} - -.fa-searchengin:before { - content: ""; -} - -.fa-seedling:before { - content: ""; -} - -.fa-sellcast:before { - content: ""; -} - -.fa-sellsy:before { - content: ""; -} - -.fa-server:before { - content: ""; -} - -.fa-servicestack:before { - content: ""; -} - -.fa-shapes:before { - content: ""; -} - -.fa-share:before { - content: ""; -} - -.fa-share-alt:before { - content: ""; -} - -.fa-share-alt-square:before { - content: ""; -} - -.fa-share-square:before { - content: ""; -} - -.fa-shekel-sign:before { - content: ""; -} - -.fa-shield-alt:before { - content: ""; -} - -.fa-shield-virus:before { - content: ""; -} - -.fa-ship:before { - content: ""; -} - -.fa-shipping-fast:before { - content: ""; -} - -.fa-shirtsinbulk:before { - content: ""; -} - -.fa-shoe-prints:before { - content: ""; -} - -.fa-shopify:before { - content: ""; -} - -.fa-shopping-bag:before { - content: ""; -} - -.fa-shopping-basket:before { - content: ""; -} - -.fa-shopping-cart:before { - content: ""; -} - -.fa-shopware:before { - content: ""; -} - -.fa-shower:before { - content: ""; -} - -.fa-shuttle-van:before { - content: ""; -} - -.fa-sign:before { - content: ""; -} - -.fa-sign-in-alt:before { - content: ""; -} - -.fa-sign-language:before { - content: ""; -} - -.fa-sign-out-alt:before { - content: ""; -} - -.fa-signal:before { - content: ""; -} - -.fa-signature:before { - content: ""; -} - -.fa-sim-card:before { - content: ""; -} - -.fa-simplybuilt:before { - content: ""; -} - -.fa-sink:before { - content: ""; -} - -.fa-sistrix:before { - content: ""; -} - -.fa-sitemap:before { - content: ""; -} - -.fa-sith:before { - content: ""; -} - -.fa-skating:before { - content: ""; -} - -.fa-sketch:before { - content: ""; -} - -.fa-skiing:before { - content: ""; -} - -.fa-skiing-nordic:before { - content: ""; -} - -.fa-skull:before { - content: ""; -} - -.fa-skull-crossbones:before { - content: ""; -} - -.fa-skyatlas:before { - content: ""; -} - -.fa-skype:before { - content: ""; -} - -.fa-slack:before { - content: ""; -} - -.fa-slack-hash:before { - content: ""; -} - -.fa-slash:before { - content: ""; -} - -.fa-sleigh:before { - content: ""; -} - -.fa-sliders-h:before { - content: ""; -} - -.fa-slideshare:before { - content: ""; -} - -.fa-smile:before { - content: ""; -} - -.fa-smile-beam:before { - content: ""; -} - -.fa-smile-wink:before { - content: ""; -} - -.fa-smog:before { - content: ""; -} - -.fa-smoking:before { - content: ""; -} - -.fa-smoking-ban:before { - content: ""; -} - -.fa-sms:before { - content: ""; -} - -.fa-snapchat:before { - content: ""; -} - -.fa-snapchat-ghost:before { - content: ""; -} - -.fa-snapchat-square:before { - content: ""; -} - -.fa-snowboarding:before { - content: ""; -} - -.fa-snowflake:before { - content: ""; -} - -.fa-snowman:before { - content: ""; -} - -.fa-snowplow:before { - content: ""; -} - -.fa-soap:before { - content: ""; -} - -.fa-socks:before { - content: ""; -} - -.fa-solar-panel:before { - content: ""; -} - -.fa-sort:before { - content: ""; -} - -.fa-sort-alpha-down:before { - content: ""; -} - -.fa-sort-alpha-down-alt:before { - content: ""; -} - -.fa-sort-alpha-up:before { - content: ""; -} - -.fa-sort-alpha-up-alt:before { - content: ""; -} - -.fa-sort-amount-down:before { - content: ""; -} - -.fa-sort-amount-down-alt:before { - content: ""; -} - -.fa-sort-amount-up:before { - content: ""; -} - -.fa-sort-amount-up-alt:before { - content: ""; -} - -.fa-sort-down:before { - content: ""; -} - -.fa-sort-numeric-down:before { - content: ""; -} - -.fa-sort-numeric-down-alt:before { - content: ""; -} - -.fa-sort-numeric-up:before { - content: ""; -} - -.fa-sort-numeric-up-alt:before { - content: ""; -} - -.fa-sort-up:before { - content: ""; -} - -.fa-soundcloud:before { - content: ""; -} - -.fa-sourcetree:before { - content: ""; -} - -.fa-spa:before { - content: ""; -} - -.fa-space-shuttle:before { - content: ""; -} - -.fa-speakap:before { - content: ""; -} - -.fa-speaker-deck:before { - content: ""; -} - -.fa-spell-check:before { - content: ""; -} - -.fa-spider:before { - content: ""; -} - -.fa-spinner:before { - content: ""; -} - -.fa-splotch:before { - content: ""; -} - -.fa-spotify:before { - content: ""; -} - -.fa-spray-can:before { - content: ""; -} - -.fa-square:before { - content: ""; -} - -.fa-square-full:before { - content: ""; -} - -.fa-square-root-alt:before { - content: ""; -} - -.fa-squarespace:before { - content: ""; -} - -.fa-stack-exchange:before { - content: ""; -} - -.fa-stack-overflow:before { - content: ""; -} - -.fa-stackpath:before { - content: ""; -} - -.fa-stamp:before { - content: ""; -} - -.fa-star:before { - content: ""; -} - -.fa-star-and-crescent:before { - content: ""; -} - -.fa-star-half:before { - content: ""; -} - -.fa-star-half-alt:before { - content: ""; -} - -.fa-star-of-david:before { - content: ""; -} - -.fa-star-of-life:before { - content: ""; -} - -.fa-staylinked:before { - content: ""; -} - -.fa-steam:before { - content: ""; -} - -.fa-steam-square:before { - content: ""; -} - -.fa-steam-symbol:before { - content: ""; -} - -.fa-step-backward:before { - content: ""; -} - -.fa-step-forward:before { - content: ""; -} - -.fa-stethoscope:before { - content: ""; -} - -.fa-sticker-mule:before { - content: ""; -} - -.fa-sticky-note:before { - content: ""; -} - -.fa-stop:before { - content: ""; -} - -.fa-stop-circle:before { - content: ""; -} - -.fa-stopwatch:before { - content: ""; -} - -.fa-stopwatch-20:before { - content: ""; -} - -.fa-store:before { - content: ""; -} - -.fa-store-alt:before { - content: ""; -} - -.fa-store-alt-slash:before { - content: ""; -} - -.fa-store-slash:before { - content: ""; -} - -.fa-strava:before { - content: ""; -} - -.fa-stream:before { - content: ""; -} - -.fa-street-view:before { - content: ""; -} - -.fa-strikethrough:before { - content: ""; -} - -.fa-stripe:before { - content: ""; -} - -.fa-stripe-s:before { - content: ""; -} - -.fa-stroopwafel:before { - content: ""; -} - -.fa-studiovinari:before { - content: ""; -} - -.fa-stumbleupon:before { - content: ""; -} - -.fa-stumbleupon-circle:before { - content: ""; -} - -.fa-subscript:before { - content: ""; -} - -.fa-subway:before { - content: ""; -} - -.fa-suitcase:before { - content: ""; -} - -.fa-suitcase-rolling:before { - content: ""; -} - -.fa-sun:before { - content: ""; -} - -.fa-superpowers:before { - content: ""; -} - -.fa-superscript:before { - content: ""; -} - -.fa-supple:before { - content: ""; -} - -.fa-surprise:before { - content: ""; -} - -.fa-suse:before { - content: ""; -} - -.fa-swatchbook:before { - content: ""; -} - -.fa-swift:before { - content: ""; -} - -.fa-swimmer:before { - content: ""; -} - -.fa-swimming-pool:before { - content: ""; -} - -.fa-symfony:before { - content: ""; -} - -.fa-synagogue:before { - content: ""; -} - -.fa-sync:before { - content: ""; -} - -.fa-sync-alt:before { - content: ""; -} - -.fa-syringe:before { - content: ""; -} - -.fa-table:before { - content: ""; -} - -.fa-table-tennis:before { - content: ""; -} - -.fa-tablet:before { - content: ""; -} - -.fa-tablet-alt:before { - content: ""; -} - -.fa-tablets:before { - content: ""; -} - -.fa-tachometer-alt:before { - content: ""; -} - -.fa-tag:before { - content: ""; -} - -.fa-tags:before { - content: ""; -} - -.fa-tape:before { - content: ""; -} - -.fa-tasks:before { - content: ""; -} - -.fa-taxi:before { - content: ""; -} - -.fa-teamspeak:before { - content: ""; -} - -.fa-teeth:before { - content: ""; -} - -.fa-teeth-open:before { - content: ""; -} - -.fa-telegram:before { - content: ""; -} - -.fa-telegram-plane:before { - content: ""; -} - -.fa-temperature-high:before { - content: ""; -} - -.fa-temperature-low:before { - content: ""; -} - -.fa-tencent-weibo:before { - content: ""; -} - -.fa-tenge:before { - content: ""; -} - -.fa-terminal:before { - content: ""; -} - -.fa-text-height:before { - content: ""; -} - -.fa-text-width:before { - content: ""; -} - -.fa-th:before { - content: ""; -} - -.fa-th-large:before { - content: ""; -} - -.fa-th-list:before { - content: ""; -} - -.fa-the-red-yeti:before { - content: ""; -} - -.fa-theater-masks:before { - content: ""; -} - -.fa-themeco:before { - content: ""; -} - -.fa-themeisle:before { - content: ""; -} - -.fa-thermometer:before { - content: ""; -} - -.fa-thermometer-empty:before { - content: ""; -} - -.fa-thermometer-full:before { - content: ""; -} - -.fa-thermometer-half:before { - content: ""; -} - -.fa-thermometer-quarter:before { - content: ""; -} - -.fa-thermometer-three-quarters:before { - content: ""; -} - -.fa-think-peaks:before { - content: ""; -} - -.fa-thumbs-down:before { - content: ""; -} - -.fa-thumbs-up:before { - content: ""; -} - -.fa-thumbtack:before { - content: ""; -} - -.fa-ticket-alt:before { - content: ""; -} - -.fa-tiktok:before { - content: ""; -} - -.fa-times:before { - content: ""; -} - -.fa-times-circle:before { - content: ""; -} - -.fa-tint:before { - content: ""; -} - -.fa-tint-slash:before { - content: ""; -} - -.fa-tired:before { - content: ""; -} - -.fa-toggle-off:before { - content: ""; -} - -.fa-toggle-on:before { - content: ""; -} - -.fa-toilet:before { - content: ""; -} - -.fa-toilet-paper:before { - content: ""; -} - -.fa-toilet-paper-slash:before { - content: ""; -} - -.fa-toolbox:before { - content: ""; -} - -.fa-tools:before { - content: ""; -} - -.fa-tooth:before { - content: ""; -} - -.fa-torah:before { - content: ""; -} - -.fa-torii-gate:before { - content: ""; -} - -.fa-tractor:before { - content: ""; -} - -.fa-trade-federation:before { - content: ""; -} - -.fa-trademark:before { - content: ""; -} - -.fa-traffic-light:before { - content: ""; -} - -.fa-trailer:before { - content: ""; -} - -.fa-train:before { - content: ""; -} - -.fa-tram:before { - content: ""; -} - -.fa-transgender:before { - content: ""; -} - -.fa-transgender-alt:before { - content: ""; -} - -.fa-trash:before { - content: ""; -} - -.fa-trash-alt:before { - content: ""; -} - -.fa-trash-restore:before { - content: ""; -} - -.fa-trash-restore-alt:before { - content: ""; -} - -.fa-tree:before { - content: ""; -} - -.fa-trello:before { - content: ""; -} - -.fa-tripadvisor:before { - content: ""; -} - -.fa-trophy:before { - content: ""; -} - -.fa-truck:before { - content: ""; -} - -.fa-truck-loading:before { - content: ""; -} - -.fa-truck-monster:before { - content: ""; -} - -.fa-truck-moving:before { - content: ""; -} - -.fa-truck-pickup:before { - content: ""; -} - -.fa-tshirt:before { - content: ""; -} - -.fa-tty:before { - content: ""; -} - -.fa-tumblr:before { - content: ""; -} - -.fa-tumblr-square:before { - content: ""; -} - -.fa-tv:before { - content: ""; -} - -.fa-twitch:before { - content: ""; -} - -.fa-twitter:before { - content: ""; -} - -.fa-twitter-square:before { - content: ""; -} - -.fa-typo3:before { - content: ""; -} - -.fa-uber:before { - content: ""; -} - -.fa-ubuntu:before { - content: ""; -} - -.fa-uikit:before { - content: ""; -} - -.fa-umbraco:before { - content: ""; -} - -.fa-umbrella:before { - content: ""; -} - -.fa-umbrella-beach:before { - content: ""; -} - -.fa-uncharted:before { - content: ""; -} - -.fa-underline:before { - content: ""; -} - -.fa-undo:before { - content: ""; -} - -.fa-undo-alt:before { - content: ""; -} - -.fa-uniregistry:before { - content: ""; -} - -.fa-unity:before { - content: ""; -} - -.fa-universal-access:before { - content: ""; -} - -.fa-university:before { - content: ""; -} - -.fa-unlink:before { - content: ""; -} - -.fa-unlock:before { - content: ""; -} - -.fa-unlock-alt:before { - content: ""; -} - -.fa-unsplash:before { - content: ""; -} - -.fa-untappd:before { - content: ""; -} - -.fa-upload:before { - content: ""; -} - -.fa-ups:before { - content: ""; -} - -.fa-usb:before { - content: ""; -} - -.fa-user:before { - content: ""; -} - -.fa-user-alt:before { - content: ""; -} - -.fa-user-alt-slash:before { - content: ""; -} - -.fa-user-astronaut:before { - content: ""; -} - -.fa-user-check:before { - content: ""; -} - -.fa-user-circle:before { - content: ""; -} - -.fa-user-clock:before { - content: ""; -} - -.fa-user-cog:before { - content: ""; -} - -.fa-user-edit:before { - content: ""; -} - -.fa-user-friends:before { - content: ""; -} - -.fa-user-graduate:before { - content: ""; -} - -.fa-user-injured:before { - content: ""; -} - -.fa-user-lock:before { - content: ""; -} - -.fa-user-md:before { - content: ""; -} - -.fa-user-minus:before { - content: ""; -} - -.fa-user-ninja:before { - content: ""; -} - -.fa-user-nurse:before { - content: ""; -} - -.fa-user-plus:before { - content: ""; -} - -.fa-user-secret:before { - content: ""; -} - -.fa-user-shield:before { - content: ""; -} - -.fa-user-slash:before { - content: ""; -} - -.fa-user-tag:before { - content: ""; -} - -.fa-user-tie:before { - content: ""; -} - -.fa-user-times:before { - content: ""; -} - -.fa-users:before { - content: ""; -} - -.fa-users-cog:before { - content: ""; -} - -.fa-users-slash:before { - content: ""; -} - -.fa-usps:before { - content: ""; -} - -.fa-ussunnah:before { - content: ""; -} - -.fa-utensil-spoon:before { - content: ""; -} - -.fa-utensils:before { - content: ""; -} - -.fa-vaadin:before { - content: ""; -} - -.fa-vector-square:before { - content: ""; -} - -.fa-venus:before { - content: ""; -} - -.fa-venus-double:before { - content: ""; -} - -.fa-venus-mars:before { - content: ""; -} - -.fa-vest:before { - content: ""; -} - -.fa-vest-patches:before { - content: ""; -} - -.fa-viacoin:before { - content: ""; -} - -.fa-viadeo:before { - content: ""; -} - -.fa-viadeo-square:before { - content: ""; -} - -.fa-vial:before { - content: ""; -} - -.fa-vials:before { - content: ""; -} - -.fa-viber:before { - content: ""; -} - -.fa-video:before { - content: ""; -} - -.fa-video-slash:before { - content: ""; -} - -.fa-vihara:before { - content: ""; -} - -.fa-vimeo:before { - content: ""; -} - -.fa-vimeo-square:before { - content: ""; -} - -.fa-vimeo-v:before { - content: ""; -} - -.fa-vine:before { - content: ""; -} - -.fa-virus:before { - content: ""; -} - -.fa-virus-slash:before { - content: ""; -} - -.fa-viruses:before { - content: ""; -} - -.fa-vk:before { - content: ""; -} - -.fa-vnv:before { - content: ""; -} - -.fa-voicemail:before { - content: ""; -} - -.fa-volleyball-ball:before { - content: ""; -} - -.fa-volume-down:before { - content: ""; -} - -.fa-volume-mute:before { - content: ""; -} - -.fa-volume-off:before { - content: ""; -} - -.fa-volume-up:before { - content: ""; -} - -.fa-vote-yea:before { - content: ""; -} - -.fa-vr-cardboard:before { - content: ""; -} - -.fa-vuejs:before { - content: ""; -} - -.fa-walking:before { - content: ""; -} - -.fa-wallet:before { - content: ""; -} - -.fa-warehouse:before { - content: ""; -} - -.fa-watchman-monitoring:before { - content: ""; -} - -.fa-water:before { - content: ""; -} - -.fa-wave-square:before { - content: ""; -} - -.fa-waze:before { - content: ""; -} - -.fa-weebly:before { - content: ""; -} - -.fa-weibo:before { - content: ""; -} - -.fa-weight:before { - content: ""; -} - -.fa-weight-hanging:before { - content: ""; -} - -.fa-weixin:before { - content: ""; -} - -.fa-whatsapp:before { - content: ""; -} - -.fa-whatsapp-square:before { - content: ""; -} - -.fa-wheelchair:before { - content: ""; -} - -.fa-whmcs:before { - content: ""; -} - -.fa-wifi:before { - content: ""; -} - -.fa-wikipedia-w:before { - content: ""; -} - -.fa-wind:before { - content: ""; -} - -.fa-window-close:before { - content: ""; -} - -.fa-window-maximize:before { - content: ""; -} - -.fa-window-minimize:before { - content: ""; -} - -.fa-window-restore:before { - content: ""; -} - -.fa-windows:before { - content: ""; -} - -.fa-wine-bottle:before { - content: ""; -} - -.fa-wine-glass:before { - content: ""; -} - -.fa-wine-glass-alt:before { - content: ""; -} - -.fa-wix:before { - content: ""; -} - -.fa-wizards-of-the-coast:before { - content: ""; -} - -.fa-wodu:before { - content: ""; -} - -.fa-wolf-pack-battalion:before { - content: ""; -} - -.fa-won-sign:before { - content: ""; -} - -.fa-wordpress:before { - content: ""; -} - -.fa-wordpress-simple:before { - content: ""; -} - -.fa-wpbeginner:before { - content: ""; -} - -.fa-wpexplorer:before { - content: ""; -} - -.fa-wpforms:before { - content: ""; -} - -.fa-wpressr:before { - content: ""; -} - -.fa-wrench:before { - content: ""; -} - -.fa-x-ray:before { - content: ""; -} - -.fa-xbox:before { - content: ""; -} - -.fa-xing:before { - content: ""; -} - -.fa-xing-square:before { - content: ""; -} - -.fa-y-combinator:before { - content: ""; -} - -.fa-yahoo:before { - content: ""; -} - -.fa-yammer:before { - content: ""; -} - -.fa-yandex:before { - content: ""; -} - -.fa-yandex-international:before { - content: ""; -} - -.fa-yarn:before { - content: ""; -} - -.fa-yelp:before { - content: ""; -} - -.fa-yen-sign:before { - content: ""; -} - -.fa-yin-yang:before { - content: ""; -} - -.fa-yoast:before { - content: ""; -} - -.fa-youtube:before { - content: ""; -} - -.fa-youtube-square:before { - content: ""; -} - -.fa-zhihu:before { - content: ""; -} - -.sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.sr-only-focusable:active, .sr-only-focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -/*! - * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: 400; - font-display: block; - src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot?4079ae2d2a15d0689568f3a5459241c7); - src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot?4079ae2d2a15d0689568f3a5459241c7) format("embedded-opentype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2?68c5af1f48e2bfca1e57ae1c556a5c72) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff?3672264812746c3c7225909742da535c) format("woff"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf?1017bce89c72f95bcf8e2bf4774efdbf) format("truetype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.svg?19e27d348fefc21941e0310a0ec6339b) format("svg"); -} -.far { - font-family: "Font Awesome 5 Free"; - font-weight: 400; -} - -/*! - * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: "Font Awesome 5 Free"; - font-style: normal; - font-weight: 900; - font-display: block; - src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot?efbd5d20e407bbf85f2b3087ee67bfa1); - src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot?efbd5d20e407bbf85f2b3087ee67bfa1) format("embedded-opentype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2?ada6e6df937f7e5e8b790dfea07109b7) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff?c6ec080084769a6d8a34ab35b77999cd) format("woff"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf?07c3313b24f7b1ca85ee99b4fa7db55e) format("truetype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.svg?13de59f1a36b6cb4bca0050160ff0e41) format("svg"); -} -.fa, -.fas { - font-family: "Font Awesome 5 Free"; - font-weight: 900; -} - -/*! - * Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */ -@font-face { - font-family: "Font Awesome 5 Brands"; - font-style: normal; - font-weight: 400; - font-display: block; - src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot?89a52ae1d02b86d6143987c865471c24); - src: url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot?89a52ae1d02b86d6143987c865471c24) format("embedded-opentype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2?c1210e5ebe4344da508396540be7f52c) format("woff2"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff?329a95a9172fdb2cccb4f9347ed55233) format("woff"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf?9e138496e8f1719c6ebf0abe50563635) format("truetype"), url(/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.svg?216edb96b562c79adc09e2d3c63db7c0) format("svg"); -} -.fab { - font-family: "Font Awesome 5 Brands"; - font-weight: 400; -} - -.-mb-2 { - margin-bottom: -0.5rem !important; -} - -.-mx-2, .-m-2 { - margin-left: -0.5rem !important; - margin-right: -0.5rem !important; -} - -.-my-2, .-m-2 { - margin-top: -0.5rem !important; - margin-bottom: -0.5rem !important; -} - -body { - font: normal 8pt/normal Verdana, sans-serif; - margin: 0; - text-transform: none; - text-decoration: none; - background: #F8FCFF url(/images/bg_gradient.jpg) repeat-x; -} - -a { - text-decoration: none; -} - -a img { - border: none; -} - -a:link, -a:visited, -a:active { - color: #00F; -} - -a:hover { - text-decoration: underline; -} - -abbr, -acronym { - cursor: help; - border-bottom: 1px dotted #000; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - padding: 0; - font-size: 100%; - font-weight: inherit; - display: inline-block; - *display: inline; -} - -pre { - white-space: pre-wrap; - white-space: -moz-pre-wrap !important; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; -} - -input.Text { - border-color: #777; - border-style: dashed; -} - -.AdminPanel { - border-color: Orange; - border-style: dotted; - padding: 10px; -} - -.ImageButton { - cursor: pointer; - padding: 0; - border: 0; - text-decoration: none; - margin: 0; - display: inline-block; -} - -.Button { - cursor: pointer; - background-color: #fff; - border: solid 1px #333; - color: #333; - font-family: Verdana, Sans-Serif; - font-size: 0.9em; - padding: 3px 10px 3px 10px; - text-decoration: none; -} - -.Button:link, -.Button:visited { - border: solid 1px #777; - color: #777; -} - -.Button:hover, -.Button:active { - background-color: #6e99c9; - border: solid 1px #000; - color: #fff; -} - -.Bullet { - float: left; - margin-right: 10px; - margin-bottom: 4px; -} - -.Ads_RightSidebar { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -.Legalese { - font-size: 7pt; -} - -#Container { - margin: 0 auto; - padding: 0 10px; - border-left: 5px solid #DDD; - border-right: 5px solid #DDD; - width: 900px; - background: #e5f1fd; -} - -#Header { - margin: 0 auto; - color: White; - font: normal 12px/normal Verdana, sans-serif; - font-weight: bold; - width: 900px; - text-align: center; -} - -#Header a, -#Header a:visited, -#Header a:active { - text-decoration: none; -} - -#Header a:hover { - text-decoration: underline; -} - -#Banner { - background-image: url(/images/WoodBanner.png); - background-repeat: no-repeat; - height: 72px; - text-align: center; -} - -#Banner #Options { - float: left; - height: 72px; - position: relative; - overflow: hidden; - width: 200px; -} - -#Banner #Authentication { - top: 0; - left: 0; - padding: 4px; - position: absolute; - background: #6E99C9; -} - -#Banner #Options #Settings { - bottom: 0; - left: 0; - padding: 4px; - position: absolute; -} - -#Banner #Logo { - float: left; - margin: 7px 0; - text-align: center; - width: 293px; - height: 58px; -} - -#Banner #Alerts { - float: right; - border: 1px solid #6E99C9; - background: #FFF; - width: 203px; -} - -#Header .Navigation { - clear: both; - background-color: #6e99c9; - color: #fff; - font-family: Arial, Helvetica, sans-serif; - font-size: 12pt; - font-weight: normal; - line-height: 2em; - text-decoration: none; -} - -#AdvertisingLeaderboard { - margin: 0 auto; - margin-bottom: 5px; - text-align: center; - width: 898px; -} - -#AdvertisingSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 120px; -} - -#RobloxLargeRectangleAd { - padding: 10px 0 10px 0; -} - -#MasterContainer { - background: transparent url(/images/bg_clouds.jpg) no-repeat scroll center top; - width: 100%; - overflow: auto; -} - -#Body { - width: 900px; -} - -#Footer { - font: normal 8px/normal Verdana, sans-serif; - padding: 3em 20px; - width: 860px; - text-align: center; - font-size: 13px; - margin: 0; -} - -#Footer .SEOGenreLinks { - padding: 1em 0 2em 0; - font-size: 11px; -} - -#Footer .Legalese { - color: #555; - font-size: 10px; - margin-bottom: 1em; -} - -.AdmiPanel { - border: solid 1px #000; - bottom: 20px; - height: 200px; - overflow: hidden; - right: 10px; - padding-top: 15px; - position: fixed; - width: 200px; -} - -.AdmiPanel h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - margin: 0; - text-align: center; -} - -.AdmiPanelExpandCollapse { - color: green; - cursor: pointer; - font-weight: bolder; - position: absolute; - right: 2px; - top: 2px; -} - -.Panel { - border: solid 1px #000; -} - -.Panel h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - margin: 0; - text-align: center; -} - -.MultilineTextBox { - border: dashed 2px Gray; - font-family: Verdana, Sans-Serif; - font-size: 1.2em; - line-height: 1.5em; - padding: 5px 5px; -} - -.TextBox { - border: 1px solid #ccc; - font-family: Verdana, Sans-Serif; - font-size: 1.2em; - padding: 5px; -} - -.Label { - font-weight: bold; -} - -.BigButton { - background-color: #F5CD2F; - color: #000; - height: 2.5em; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 20px; - font-weight: bold; -} - -.ErrorReporting, -.ErrorReportingThanks { - width: 500px; - margin: 16px auto 16px auto; - padding: 10px; -} - -.YesNoButtons { - text-align: right; -} - -.YesButton, -.NoButton { - background-color: #F5CD2F; - color: #000; - margin-left: 10px; -} - -.popupControl { - background-color: #fff; - border: 1px outset #fff; - position: absolute; - visibility: hidden; -} - -.ColorPickerItem { - border-color: #fff; - border-style: solid; - border-width: 2px; -} - -.ColorPickerItem:hover { - border-color: Blue; - border-style: solid; - border-width: 2px; -} - -.modalBackground { - background-color: Gray; - filter: alpha(opacity=30); - opacity: 0.3; -} - -.modalPopup { - background-color: #ffd; - border-width: 3px; - border-style: solid; - border-color: Gray; - padding: 3px; -} - -.newModalPopup { - padding: 3px; -} - -.GuestModePromptText { - font-size: 14px; - color: #333; - margin-left: 30px; -} - -.GuestModePromptText li { - font-weight: bolder; -} - -.PopupMenu { - background-color: #fff; - border: solid 1px #666; - padding: 10px; - z-index: 1; -} - -.PopupMenu .Button { - line-height: 2.5em; -} - -.PopupMenu .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -.Attention { - color: Red; -} - -.OKCancelButton { - width: 80px; -} - -.MenuItem { - color: White; - font-size: 18px; - line-height: 2em; -} - -a.MenuItem:link, -a.MenuItem:visited, -a.MenuItem:active { - color: White; - text-decoration: none; -} - -a.MenuItem:hover { - text-decoration: underline; -} - -.Toolbox { - background-color: ButtonFace; - padding: 2px; -} - -.ToolboxItem { - border-color: Window; - border-style: solid; - border-width: 2px; - width: 52px; - height: 52px; -} - -.Grid { - background-color: White; - border-color: #CCC; - border-width: 1px; - border-style: solid; -} - -.GridHeader { - color: White; - background-color: #6E99C9; -} - -.GridItem { - color: #006; -} - -.GridItemAlt { - color: #006; - background: #EEE; -} - -.GridItem:hover { - background-color: #DDD; -} - -.GridItemAlt:hover { - background-color: #DDD; -} - -.GridFooter { - color: White; - background-color: #6E99C9; -} - -.GridPager { - color: White; - background-color: #6E99C9; - text-align: center; - font-weight: bold; -} - -.Title { - font-size: 18px; -} - -a.Title:link, -a.Title:visited, -a.Title:active { - text-decoration: none; -} - -a.Title:hover { - text-decoration: underline; -} - -.Header { - font-size: 14px; -} - -.Banner { - padding: 8px; -} - -.BannerText { - font-weight: bold; - color: white; -} - -a.BannerText:link, -a.BannerText:visited, -a.BannerText:active { - text-decoration: none; - color: white; -} - -a.BannerText:hover { - text-decoration: underline; - color: white; -} - -.PageSelector { - font-family: Verdana, Sans-Serif; - margin: 0 0 0 10px; -} - -.PageSelector label { - font-weight: bold; -} - -.DisplayFilters { - margin-right: 3px; - min-width: 0; - position: relative; -} - -.SearchBar { - background-color: #eee; - border: solid 1px #bbb; - height: 30px; - margin: -5px 0 5px 0; - padding: 0; - text-align: center; -} - -.SearchBar .SearchBox, -.SearchBar .SearchButton { - height: 30px; - margin: 0; - padding: 0; -} - -.SearchBar .TextBox { - border: solid 1px #000; - height: 19px; - margin: 2px 0 0 0; - padding: 2px 3px 0 3px; - width: 250px; -} - -.SearchLinks { - display: inline; - font-family: Verdana, Sans-Serif; - z-index: 9; -} - -.SearchLinks a span { - display: none; -} - -.SearchLinks a:hover { - border: none; - text-decoration: none; -} - -.SearchLinks a:hover span { - background-color: #6e99c9; - border-color: Gray; - border-style: ridge; - border-width: 1px; - color: white; - display: block; - font: 11px Verdana, sans-serif; - left: 15%; - line-height: 1.4em; - margin: 5px; - padding: 5px; - position: absolute; - text-align: center; - text-decoration: none; - top: 20px; - width: 60%; - z-index: 10; -} - -.SearchError { - clear: both; - margin: 2px; - float: none; - padding: 2px; - text-align: center; - color: Red; -} - -.SystemAlert { - background-color: #FFF; - text-align: center; - color: #FFF; - border: 2px solid #000; - padding: 1px; -} - -.SystemAlertText { - font-size: 16px; - font-weight: bold; - background-color: #F00; - padding: 2px; -} - -.SystemAlert a { - color: White; -} - -.Exclamation { - background: url(/images/Icons/exclamation.png) no-repeat; - height: 16px; - width: 16px; - float: left; -} - -.EmailTemplateTable { - border-collapse: collapse; -} - -.EmailTemplateH1 { - font-size: 18px; - color: #6E99C9; -} - -.EmailTemplateLogoRow { - padding: 3px; - margin-bottom: 5px; -} - -.EmailTemplateRow { - padding: 3px; - margin-bottom: 3px; - font-size: 14px; - font-family: Verdana, Helvetica, Sans-Serif; -} - -.EmailTemplateRow input { - font-size: 14px; - padding: 2px; - border: 1px solid #CCC; -} - -.EmailTemplateRow input:hover { - font-size: 14px; - padding: 2px; - border: 1px solid #CCC; - background: #6E99C9; -} - -.subMenu { - background: #A3514F; - background-repeat: repeat-x; - color: White; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - height: 26px; - position: relative; - border-left: solid 3px #6E99C9; - border-right: solid 3px #6E99C9; - border-bottom: solid 3px #6E99C9; - z-index: 5; -} - -.subMenu ul { - padding: 0; - margin: 0; - list-style-type: none; -} - -.subMenu li { - float: left; - position: relative; -} - -.subMenu a, -.subMenu a:visited { - display: block; - padding: 5px; - border-right: 1px solid #FFF; - font-size: 14px; - color: #FFF; -} - -.subMenu .subMenuItemselected { - display: block; - padding: 5px; - border-right: 1px solid #FFF; - font-size: 14px; - color: #FFF; - font-weight: bold; - text-decoration: none; -} - -.subMenu ul ul a.subMenudrop, -.menu ul ul a.subMenudrop:visited { - font-weight: bold; - text-decoration: underline; -} - -.subMenu ul ul ul a, -.subMenu ul ul ul a:visited { - background: #A3514F; -} - -.subMenu ul ul ul a:hover { - text-decoration: underline; -} - -.subMenu ul ul { - visibility: hidden; - position: absolute; - height: 0; - left: 0; -} - -.subMenu ul ul ul { - left: 141px; - top: 0; - width: 149px; -} - -.subMenu ul ul ul.left { - left: -149px; -} - -.subMenu ul ul a, -.subMenu ul ul a:visited { - background: #A3514F; - color: #FFF; - height: auto; - padding: 4px 6px; - line-height: 1em; - width: 148px; - margin-left: -1px; - border-left: 1px solid #FFF; - border-right: none; -} - -.subMenu a:hover, -.subMenu ul ul a:hover { - text-decoration: underline; - background: #573333; -} - -.subMenu :hover > a, -.subMenu ul ul :hover > a { - text-decoration: underline; -} - -.subMenu ul li:hover ul, -.subMenu ul a:hover ul { - visibility: visible; -} - -.subMenu ul :hover ul ul { - visibility: hidden; -} - -.subMenu ul :hover ul :hover ul { - visibility: visible; -} - -.subMenu table { - position: absolute; - top: 0; - margin-top: 15px; - left: 0; - border-collapse: collapse; - background: #A3514F; - display: none; -} - -.subMenu table a, -.subMenu table a:visited { - border: none; - width: 148px; - padding-top: 8px; -} - -#LeftGutterAdContainer { - position: fixed; - top: 0; - left: 50%; - margin-left: -850px; -} - -#RightGutterAdContainer { - position: fixed; - top: 0; - left: 50%; - margin-left: 450px; -} - -.partnerLogo { - margin-right: 30px; - vertical-align: middle; -} - -.errorMsg { - font-weight: bold; - text-align: center; - display: block; - font-size: 1.5em; - margin: 0.83em 0; - letter-spacing: 1px; -} - -.facepile { - min-height: 0; -} - -body { - margin: 0; - padding: 0; - background: url(/images/css/bkg.jpg) top center repeat-x #000444; - font-family: Arial, Helvetica, sans-serif; - color: black; - font-size: 12px; -} - -a { - text-decoration: none; - color: #00f; -} - -a:hover, -a:active { - text-decoration: underline; -} - -a.green { - color: #080; -} - -a.green:hover { - color: #0c0; -} - -a img { - border: none; -} - -#Header a:hover { - text-decoration: none; -} - -#MasterContainer { - background-image: none; -} - -#Container { - background: Transparent; - border: none; -} - -#HeaderContainer { - position: relative; - margin: 0; - padding: 0; - width: 900px; - height: 225px; - background: url(/images/css/head_03.png) repeat scroll 0 0 transparent; - background-position: 0 0; - background-repeat: no-repeat; - z-index: 6; -} - -#Banner { - height: 100px; - background: none; - position: relative; - bottom: 0; -} - -#Banner #Logo { - height: 70px; - left: 275px; - position: absolute; - top: 10px; - width: 350px; - margin: 0; - float: none; -} - -#Header .headLink { - position: absolute; - top: 4px; - left: 278px; - width: 348px; - height: 88px; -} - -#Banner #Authentication { - position: relative; - top: 0; - margin: 0; - height: 28px; - font-family: Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: normal; - color: Black; - float: left; - background: url(/images/css/head_bkg_t1.png) no-repeat left top; - padding: 0 0 0 2px; -} - -#Banner #Authentication #AuthenticationBannerSpan { - background: url(/images/css/head_bkg_t2.png) no-repeat scroll right top transparent; - display: block; - height: 28px; - padding: 6px 10px 0; -} - -#Banner #Authentication a { - height: 18px; - background: url(/images/css/btn_blue18h.png) repeat-x; - background-position: 0 0; - margin: 0 5px; - font-weight: bold; - font-size: 10px; - padding: 2px 5px; -} - -#Banner #Authentication a:hover { - background-position: 0 -18px; -} - -#Banner #Alerts { - background: Transparent; - border: none; - position: absolute; - width: 147px; - height: 81px; - bottom: 0; - right: 3px; - float: none; -} - -#Body { - margin: 0; - padding: 5px; - width: 890px; - background: url(/images/css/containerBkg_01.png); - _overflow: hidden; -} - -.favorited, -.notFavorited { - background: url(/images/css/favoriteStar_20h.png) no-repeat 0 -20px; - width: 21px; - height: 20px; - margin: 0; - display: inline-block; - position: relative; - top: 3px; - *display: inline; - *zoom: 1; -} - -.notFavorited { - background-position: 0 0; -} - -#Footer { - background: #e6e6e6; - text-align: center; - font-size: 13px; - color: #aaa; - margin: 0; - padding: 3em 20px; - width: 860px; -} - -#Footer .FooterNav { - color: #bbb; -} - -#Footer .SEOGenreLinks { - padding: 1em 0 2em 0; - font-size: 11px; -} - -#Footer .Legalese { - font-size: 10px; - margin-bottom: 1em; -} - -#Footer .Legalese p { - margin: 0; - padding: 0; -} - -.blueAndWhite { - border: 2px solid #6e99c9; - background-color: #fff; - color: #000; -} - -.blueAndWhite .titleBar { - background-color: #000; - color: #FFF; - font-weight: bold; - padding: 2px 2px 2px 2px; - margin-bottom: 5px; - font-size: 13px; -} - -#ResetPassword, -#ResetPassword input { - font-size: 16px; -} - -#ResetPassword #ResetPasswordTable td { - padding: 5px; -} - -.ParentsLearningContent { - font-size: 14px; -} - -.ParentsLearningContent .ParentsLearningHeader { - text-decoration: none; -} - -.StandardBoxLight { - float: inherit; - border: 1px solid #3B526B; - padding: 10px 10px 10px 10px; - margin-bottom: 10px; - display: block; -} - -.StandardBoxLightHeader { - float: inherit; - background-color: #3B526B; - text-align: center; - color: #FFF; - text-align: left; - font-size: 16px; - font-weight: bold; - padding: 5px 10px 5px 20px; - display: block; -} - -.ParentsLearningContent .StandardBoxLightHeader { - margin: 10px 0; -} - -.LoginParentAccount { - text-align: left; -} - -.ParentsControlPanel, -.ParentsControlPanel input { - font-size: 14px; -} - -.ParentsControlPanelTable table { - border-collapse: collapse; - border-spacing: 0; -} - -.ParentsControlPanelTable table td, -.ParentsControlPanelTable table th { - border: 1px solid #EEE; - padding: 5px; -} - -.ParentsControlPanelTable table tr:first-child td, -.ParentsControlPanelTable table tr:first-child th { - border-top: 0; -} - -.ParentsControlPanelTable table tr:last-child td { - border-bottom: 0; -} - -.ParentsControlPanelTable table tr td:first-child, -.ParentsControlPanelTable table tr th:first-child { - border-left: 0; -} - -.ParentsControlPanelTable table tr td:last-child, -.ParentsControlPanelTable table tr th:last-child { - border-right: 0; -} - -.ContinueButtonFix { - text-align: center; -} - -.ParentCenterAlignedTable table { - margin: 0 auto; -} - -.JustWhiteBox { - float: inherit; - background-color: White; - margin-bottom: 10px; - display: block; -} - -.MediumButton { - background-color: #F5CD2F; - color: #000; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 15px; - font-weight: bold; - padding: 5px; - display: inline-block; - border: 1px solid #6E99C9; - text-align: center; - cursor: pointer; -} - -.MediumButton:hover { - background-color: #FF9D2F; -} - -.MediumButtonSignup { - background-color: #8CE16F; - color: #000; - height: 2.5em; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 15px; - font-weight: bold; -} - -.catalog_nav { - color: White; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - position: relative; - z-index: 5; - float: right; -} - -.catalog_nav ul { - padding: 0; - margin: 0; - list-style-type: none; -} - -.catalog_nav li { - float: left; - position: relative; - text-align: center; -} - -.catalog_nav a, -.catalog_nav a:visited { - background: #b9cee5 url(/images/tabmiddle.png) repeat-x; - display: block; - padding: 5px; - margin-right: 4px; - font-size: 14px; - color: #FFF; - height: 18px; - cursor: pointer; -} - -.catalog_nav .catalog_navselected { - display: block; - background: #6E99C9 url(/images/tabmiddleselected.png) repeat-x; - padding: 5px 10px; - margin-right: 4px; - font-size: 14px; - color: #FFF; - font-weight: bold; - text-decoration: none; - height: 18px; -} - -.catalog_nav ul ul a.catalog_navdrop, -t.menu ul ul a.catalog_navdrop:visited { - font-weight: bold; - text-decoration: none; -} - -.catalog_nav ul ul ul a:hover { - text-decoration: underline; -} - -.catalog_nav ul ul { - visibility: hidden; - position: absolute; - height: 0; - left: 0; - z-index: 20; -} - -.catalog_nav ul ul ul { - left: 141px; - top: 0; - width: 89px; -} - -.catalog_nav ul ul ul.left { - left: -149px; -} - -.catalog_nav ul ul a, -.catalog_nav ul ul a:visited { - color: #FFF; - background: #6E99C9; - height: auto; - padding: 4px 6px; - line-height: 1em; - width: 78px; - margin-right: 4px; - z-index: 20; - height: 18px; -} - -.catalog_nav img { - border: 0; - margin-right: 3px; - vertical-align: middle; -} - -.catalog_nav a:hover { - text-decoration: none; - background: #6E99C9 url(/images/tabmiddleselected.png) repeat-x; -} - -.catalog_nav ul ul a:hover { - text-decoration: none; - background: #517194; -} - -.catalog_nav :hover > a, -.catalog_nav ul ul :hover > a { - text-decoration: none; -} - -.catalog_nav ul li:hover ul, -.catalog_nav ul a:hover ul { - visibility: visible; -} - -.catalog_nav ul :hover ul ul { - visibility: hidden; -} - -.catalog_nav ul :hover ul :hover ul { - visibility: visible; -} - -.catalog_nav table { - position: absolute; - top: 0; - margin-top: 15px; - left: 0; - border-collapse: collapse; - background: #6E99C9; - display: none; -} - -.catalog_nav table a, -.catalog_nav table a:visited { - border: none; - width: 78px; - padding-top: 8px; -} - -.Step1 { - float: left; - font-size: 16px; - font-weight: bold; - background: url(/images/step1.png) no-repeat 0; - line-height: 32px; - padding-left: 32px; -} - -.Step2 { - float: left; - font-size: 16px; - font-weight: bold; - background: url(/images/step2.png) no-repeat 0; - line-height: 32px; - padding-left: 32px; -} - -.Step3 { - float: left; - font-size: 16px; - font-weight: bold; - background: url(/images/step3.png) no-repeat 0; - line-height: 32px; - padding-left: 32px; -} - -.CatalogOptions { - float: left; - padding: 20px; - background: #8bc2ff url(/images/catalog_options_back.png) repeat-x; - border: 0; - margin-bottom: 0; - display: none; - width: 176px; - overflow: hidden; -} - -#ApplyFilters input { - font-size: 17px; - cursor: pointer; -} - -.CatalogOptionsSections { - float: left; - margin: 5px 20px 0 5px; -} - -.CatalogOptionsHelp { - margin-top: -5px; - float: left; -} - -.CatalogOptionsHelp ul { - list-style: none; -} - -.CatalogOptionsHelp ul li { - margin-top: 3px; -} - -.CatalogOptionsHelp ul li a { - background: url(/images/smallmetallicbutton.png) repeat-x; - border: 2px solid transparent; - padding: 3px; - font-size: 12px; - cursor: pointer; - text-decoration: none; - display: block; - width: 120px; - text-align: center; -} - -.CatalogOptionsHelp ul li a:hover { - border-color: #333; -} - -.bc_iconset, -#BuildersClubContainer div.icons { - background-image: url(/images/bc_page_icon_sprites.png); - background-repeat: no-repeat; - width: 32px; - display: inline-block; - text-align: center; -} - -#BuildersClubContainer div.maps_icon { - background-position: 0 1px; - height: 30px; -} - -#BuildersClubContainer div.money_icon { - background-position: 0 -28px; - height: 28px; -} - -#BuildersClubContainer div.shirt_icon { - background-position: 0 -55px; - height: 30px; -} - -#BuildersClubContainer div.ads_icon { - background-position: 0 -85px; - height: 30px; -} - -.bc_icon, -#BuildersClubContainer div.bc_icon { - background-position: 0 -115px; - height: 31px; -} - -#BuildersClubContainer div.gear_icon { - background-position: 0 -146px; - height: 30px; -} - -#BuildersClubContainer div.groups_icon { - background-position: 0 -173px; - height: 23px; -} - -#BuildersClubContainer div.badges_icon { - background-position: 0 -196px; - height: 30px; -} - -#BuildersClubContainer div.beta_icon { - background-position: 0 -228px; - height: 31px; -} - -#BuildersClubContainer div.tbc_icon { - background-position: 0 -263px; - height: 31px; -} - -#BuildersClubContainer div.obc_icon { - background-position: 0 -297px; - height: 31px; -} - -#BuildersClubContainer div.upgrades_enabled { - background-image: url(/images/buybc/bc_sprites_math_enabled.png); - background-repeat: no-repeat; - display: inline-block; - height: 95px; - width: 128px; -} - -#BuildersClubContainer div.upgrades_disabled { - background-image: url(/images/buybc/bc_sprites_math_disabled.png); - background-repeat: no-repeat; - display: inline-block; - height: 95px; - width: 128px; -} - -#BuildersClubContainer div.bcmonthly { - background-position: 0 0; -} - -#BuildersClubContainer div.bc6 { - background-position: -128px 0; -} - -#BuildersClubContainer div.bc12 { - background-position: -256px 0; -} - -#BuildersClubContainer div.bclife { - background-position: -384px 0; -} - -#BuildersClubContainer div.tbcmonthly { - background-position: 0 -95px; -} - -#BuildersClubContainer div.tbc6 { - background-position: -128px -95px; -} - -#BuildersClubContainer div.tbc12 { - background-position: -256px -95px; -} - -#BuildersClubContainer div.tbclife { - background-position: -384px -95px; -} - -#BuildersClubContainer div.obcmonthly { - background-position: 0 -191px; -} - -#BuildersClubContainer div.obc6 { - background-position: -128px -191px; -} - -#BuildersClubContainer div.obc12 { - background-position: -256px -191px; -} - -#BuildersClubContainer div.obclife { - background-position: -384px -191px; -} - -#BuildersClubContainer .bctotbcconversion { - background-image: url(/images/BuyBC/bc_lifetime_tbc_lifetime_discount.png); - background-repeat: no-repeat; - height: 95px; - width: 128px; -} - -#BuildersClubContainer .bctoobcconversion { - background-image: url(/images/BuyBC/bc_lifetime_obc_lifetime_discount.png); - background-repeat: no-repeat; - height: 95px; - width: 128px; -} - -#BuildersClubContainer .tbctoobcconversion { - background-image: url(/images/BuyBC/tbc_lifetime_obc_lifetime_discount.png); - background-repeat: no-repeat; - height: 95px; - width: 128px; -} - -#BuildersClubContainer upgrade_button { - cursor: pointer; -} - -.OBCSellSheet ul { - list-style: armenian; - width: 500px; -} - -.OBCSellSheet ul li { - padding: 10px; - border-bottom: 1px solid #abc; - position: relative; -} - -.OBCSellSheet ul li em { - -moz-background-clip: border; - -moz-background-inline-policy: continuous; - -moz-background-origin: padding; - background: transparent url(/images/obctip.png) no-repeat scroll 0 0; - display: none; - font-style: normal; - height: 45px; - left: -10px; - padding: 15px 0; - position: absolute; - text-align: center; - top: -40px; - width: 300px; - z-index: 2; - color: #FFF; -} - -.hoverover { - cursor: pointer; -} - -.AlertSpace { - color: #6e99c9; - margin: 0 auto; -} - -div.icons, -a.icons { - background-image: url(/images/master_page_image_sprites.png?v=1202010); - background-repeat: no-repeat; - display: inline-block; - vertical-align: middle; -} - -div.message_icon { - background-position: -65px 0; - height: 11px; - width: 13px; - margin: 3px; - float: left; -} - -div.robux_icon { - background-position: -33px 0; - height: 12px; - width: 16px; - margin: 3px; - float: left; -} - -div.tickets_icon { - background-position: -49px 0; - height: 16px; - width: 16px; - margin: 3px; - float: left; -} - -div.friends_icon { - background-position: -78px 0; - height: 14px; - width: 12px; - margin: 3px; - float: left; -} - -a.rss_icon { - background-position: 0 0; - height: 14px; - width: 14px; -} - -a.twitter_icon { - background-position: -14px 0; - height: 16px; - width: 19px; -} - -div.MessageAlert { - height: 17px; - vertical-align: middle; - width: 49%; - float: left; - height: 32px; - overflow: hidden; - background: #FFF; -} - -div.MessageAlert a:hover { - color: #1874CD; -} - -div.RobuxAlert { - padding-top: 2px; - vertical-align: middle; - width: 49%; - float: left; - overflow: hidden; - border-top: 1px solid #6E99C9; - background: #FFF; - height: 29px; -} - -div.RobuxAlert a { - color: Green; - vertical-align: middle; -} - -div.RobuxAlert a:hover { - color: #49b745; -} - -div.TicketsAlert { - padding-top: 2px; - vertical-align: middle; - width: 49%; - float: left; - overflow: hidden; - border-left: 1px solid #6E99C9; - border-top: 1px solid #6E99C9; - background: #FFF; - height: 29px; -} - -div.TicketsAlert a:hover { - color: #FF3000; -} - -div.FriendsAlert { - color: #883000; - height: 20px; - vertical-align: middle; - width: 49%; - float: left; - height: 32px; - overflow: hidden; - border-left: 1px solid #6E99C9; - background: #FFF; -} - -div.FriendsAlert a { - color: #883000; - vertical-align: middle; -} - -div.FriendsAlert a:hover { - color: #00D; -} - -a.MessageAlertCaption { - color: #6e99c9; - vertical-align: middle; - font-weight: bold; -} - -a.RobuxAlertCaption { - color: Green; - vertical-align: middle; - font-weight: bold; -} - -a.TicketsAlertCaption { - color: #fbb117; - vertical-align: middle; - font-weight: bold; -} - -a.FriendsAlertCaption { - color: #883000; - vertical-align: middle; - font-weight: bold; -} - -#Authentication span a { - color: #FFF; -} - -.MySetsDisplayInfo { - padding: 10px 20px 10px 20px; - background: #8bc2ff url(/images/catalog_options_back.png) repeat-x; - border: 0; - margin-bottom: 0; - overflow: hidden; - height: 125px; -} - -.MySetsDisplayInfo h1 { - margin: 0; - padding: 0; - text-align: center; - color: White; - font-size: 16px; - font-weight: bold; -} - -.MySetsDisplayInfo h1 > a { - cursor: pointer; - color: Blue; - font-size: 12px; - font-style: italic; - margin-left: 5px; -} - -.CreateSetButton { - cursor: pointer; - text-decoration: none; -} - -.SetAddButton { - margin-bottom: 3px; - cursor: pointer; - height: 16px; - display: block; - font-size: 12px; - overflow: hidden; - width: 100px; -} - -.CreateSetButton:hover, -.SetAddButton:hover { - background-color: Gray; -} - -.SetAddButtonAlreadyContainsItem { - margin-bottom: 3px; - height: 16px; - display: block; - width: 100%; - cursor: default; - color: #ddd; - font-style: italic; - font-size: 12px; - background: url(/images/accept.png) no-repeat center left; - background-position: 1px 0; - padding-left: 18px; - width: 92px; - overflow: hidden; -} - -.CantAddToSetLabel { - float: left; - width: 75px; -} - -.CantAddToSetHelpImg { - float: left; - vertical-align: text-top; - cursor: pointer; -} - -.SetDescription { - float: left; - overflow-y: auto scroll; - overflow-x: hidden; -} - -.SetList { - z-index: 10; - height: 0; - float: left; - width: 0; -} - -.friendBarDropDown { - position: absolute; - margin-top: 0; - margin-left: 28px; - z-index: 10; -} - -.SetList > img { - position: relative; - float: left; - z-index: 10; - width: 20px; - cursor: pointer; - top: 5px; - left: 5px; -} - -.CantAddToSetLabel, -.SetListDropDownList { - float: left; - position: relative; - top: -18px; - left: 20px; - z-index: 11; - display: block; -} - -.CantAddToSetLabel, -.SetListDropDownList { - background: #6e99c9; - width: 100px; - border: 3px solid #C6D9FD; - padding: 3px; -} - -.SetListDropDown, -.friendBarDropDownList { - display: none; - float: left; - z-index: 10; - height: 0; -} - -.friendBarDropDownList { - position: relative; - height: 100%; - width: 120px; - border: 1px solid black; -} - -.friendBarDropDownList > ul { - list-style: none outside none; - margin: 0; - padding-left: 0; -} - -.friendBarDropDownList li { - background-color: White; - color: Black; - cursor: default; - float: left; - position: relative; - list-style: none; - display: block; - z-index: 11; - height: 18px; -} - -.friendBarDropDownList li > div { - margin: 2px; - width: 116px; -} - -.friendBarDropDownList li:hover { - background-color: Black; - color: White; -} - -.friend_dropdownbutton20 { - background: url(/images/friendsbar/friend_dropdownBtn20h.jpg); - float: left; - cursor: pointer; - height: 20px; - width: 20px; - background-position: top left; -} - -.friend_dropdownbutton20:hover { - background-position: bottom left; -} - -.ContestButton { - float: left; - font-size: 20px; - padding: 4px 10px; - background: url(/images/Contests/contestbutton.png) repeat-x; - color: #FFF; - border: 2px solid #193441; - cursor: pointer; - text-align: center; -} - -.ContestButton:hover { - background: #5d90a6; -} - -.ContestButtonSkip { - font-size: 20px; - padding: 4px 10px; - background-color: #283d47; - color: #FFF; - border: 2px solid #193441; - cursor: pointer; - text-align: center; -} - -.ContestButtonSkip:hover { - background: #5d90a6; -} - -ul.ContestPrizes { - list-style: none; - margin: 0; - padding: 0; -} - -a.slider_next { - color: #444; - font-size: 20px; - font-weight: bold; -} - -a.slider_prev { - color: #444; - font-size: 20px; - font-weight: bold; -} - -a.contesttab { - float: left; - background: #B2C1D2; - padding: 3px 5px; - color: #FFF; - margin-right: 4px; - text-decoration: none; - display: block; - font-size: 14px; - font-weight: bold; -} - -a.contesttab:hover { - background: #6E99C9; -} - -a.contesttabselected { - float: left; - background: #6E99C9; - padding: 3px 5px; - color: #FFF; - margin-right: 4px; - text-decoration: none; - display: block; - font-size: 14px; - font-weight: bold; -} - -div.ContestBox { - border: 2px solid #6E99C9; - background: url(/images/Contests/contestback.png?v=2) repeat-x; - background-color: #c5d3e3; - float: left; - margin-bottom: 10px; - padding: 10px; -} - -.Contests { - float: left; - width: 900px; - margin: 10px auto 0 auto; -} - -.Contests h1 { - margin: 0; - color: #6E99C9; - float: left; - width: 100%; -} - -.FullSubmissions { - width: 300px; - padding: 5px; - float: left; - margin-left: 3px; - margin-bottom: 1px; - border-bottom: 1px solid #FFF; - color: #000; -} - -.ContestShowcase { - width: 90%; - padding: 2px; - border: 2px solid transparent; - cursor: pointer; - margin: 2px auto; - background: #d5dec2; -} - -.ContestShowcase:hover { - border: 2px solid #AAA; -} - -.VibModalBack { - z-index: 665; - position: fixed; - width: 100%; - height: 100%; - background: gray; - opacity: 0.5; - filter: alpha(opacity=50); - background-repeat: repeat; - top: 0; - left: 0; -} - -.VibModal { - z-index: 666; - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; -} - -.VibModalBox { - z-index: 667; - width: 500px; - margin: 7% auto; - background: #FFF; - border: 5px solid #6E99C9; -} - -.VibModalContents { - padding: 10px; -} - -.VibModalHeader { - width: 96%; - padding: 1% 2%; - font-size: 20px; - font-weight: bold; - background: #6E99C9; - text-align: center; - color: #FFF; -} - -.VibModalClose { - font-size: 25px; - color: #F00; - font-weight: bold; - float: right; - line-height: 17px; - cursor: pointer; -} - -div.cannot_vote { - height: 30px; - width: 30px; - background: url(/images/Contests/not_checked_box.png); - vertical-align: text-top; - margin-right: 7px; - float: left; -} - -div.can_vote { - height: 30px; - width: 30px; - background: url(/images/Contests/checked_box.png); - vertical-align: text-top; - margin-right: 7px; - float: left; -} - -div.vote_text { - font-size: 18px; - float: left; - color: #0F0; -} - -div.no_vote_text { - font-size: 18px; - float: left; - color: #F00; -} - -.Contests .StatCounters { - position: absolute; - font-size: 30px; - font-weight: bold; - color: #444; - text-align: left; - margin-left: 10px; - z-index: 4000; -} - -.Contests .StatType { - font-size: 14px; - margin-left: 4px; - margin-top: -7px; - display: block; -} - -.Contests .PlaceOpaqueName { - width: 148px; - font-weight: bold; - text-align: center; - padding: 3px 6px; - font-size: 10px; - color: #444; - background: #FFF; - opacity: 0.6; - filter: alpha(opacity=60); - margin: 1px auto 7px auto; - height: 24px; - overflow: hidden; - word-wrap: none; -} - -.Contests .FifthPlaceHolder { - float: left; - width: 20%; - margin-top: 5px; - margin: 0 auto; - text-align: center; -} - -div.friend_dock_chatbox { - float: left; - background-color: #E5E3E4; - width: 200px; - margin-right: 10px; - border: solid 1px #7F7F7F; - padding-bottom: 10px; -} - -div.friend_dock_chatsettings { - color: Black; - background-color: #E5E5E5; - border: solid 1px black; - width: 150px; - margin-right: 10px; - position: fixed; - bottom: 105px; - font-size: 11px; - z-index: 1200; - right: 30px; -} - -div.chat_settings_group_header { - font-weight: bold; - margin-bottom: 5px; -} - -div#friend_dock_chatholder { - position: fixed; - bottom: 106px; - z-index: 1022; -} - -div#friend_dock_container { - position: fixed; - bottom: 0; - width: 100%; - font-size: 10px; - font-family: Verdana; - z-index: 1022; -} - -div#friend_dock_titlebar ul { - padding: 0; - margin: 0; - list-style-type: none; -} - -div#friend_dock_thumb_container { - border: solid 1px #7F7F7F; - background-color: White; - height: 74px; - padding: 5px; - width: 100%; - overflow: hidden; -} - -div#friend_dock_thumbnails { - float: left; -} - -div#friend_dock_titlebar { - height: 18px; - position: relative; -} - -div#friend_dock_titlebar a { - color: Black; -} - -div#friend_dock_minimized_container { - width: 100%; - position: fixed; - bottom: 0; - z-index: 1022; -} - -div#friend_dock_friendzone, -div#friend_dock_chatzone { - float: left; - height: 65px; - margin-top: 5px; - margin-right: 10px; - margin-left: 10px; -} - -div.friend_dock_chatbox_closebutton { - float: right; - padding-right: 5px; - font-weight: bold; - font-size: 14px; -} - -div.friend_dock_chatbox_closebutton a.hover { - color: #fff; - text-decoration: none; -} - -div.blinkoffheader, -div.blinkonheader { - background-repeat: repeat-x; - border: none; - height: 16px; - padding: 2px; -} - -div.blinkoffheader { - background-image: url("/images/chat/HeaderBarRepeat1x1.jpg"); -} - -div.blinkonheader { - background-image: url("/images/chat/HeaderBarRepeat1x1_orange.jpg"); -} - -div.friend_dock_chatbox_username { - width: 150px; - float: left; - font-size: 14px; - color: White; -} - -div.friend_dock_chatbox_chat { - background-color: White; - border: solid 1px black; - margin-left: 10px; - margin-top: 5px; - margin-bottom: 10px; - width: 176px; - padding: 2px; - height: 196px; - overflow: auto; -} - -textarea.friend_dock_chatbox_entry { - margin-left: 10px; - width: 176px; - padding: 2px; - overflow: auto; - overflow-x: hidden; -} - -span.friend_dock_onlinestatus { - position: absolute; - margin-left: 16px; - width: 16px; - height: 16px; - background-image: url(/images/online.png); - background-repeat: no-repeat; -} - -span.friend_dock_offlinestatus { - position: absolute; - margin-left: 16px; - width: 16px; - height: 16px; - background-image: url(/images/offline.png); - background-repeat: no-repeat; -} - -div.friend_dock_onlinestatus { - position: absolute; - margin-top: 5px; - margin-left: 5px; - width: 16px; - height: 16px; - background-image: url(/images/online.png); - background-repeat: no-repeat; -} - -div.friend_dock_offlinestatus { - position: absolute; - margin-top: 5px; - margin-left: 5px; - width: 16px; - height: 16px; - background-image: url(/images/offline.png); - background-repeat: no-repeat; -} - -div.friend_dock_newmessage { - position: absolute; - margin-top: -5px; - margin-left: 42px; - width: 16px; - height: 16px; - background-image: url(/images/newmessage.png); - background-repeat: no-repeat; -} - -div.friend_dock_friend { - width: 50px; - height: 70px; - overflow: hidden; - margin-right: 10px; - margin-bottom: 10px; - float: left; -} - -div.friend_dock_pager { - width: 16px; - height: 16px; - margin-left: 0; - margin-right: 10px; - margin-bottom: 10px; - margin-top: 25px; -} - -.Navigation { - height: 35px; - z-index: 1022; -} - -.Navigation ul { - list-style: none; - margin: 0; - padding: 0; - width: 890px; - margin: 0 auto; -} - -.Navigation ul li { - float: left; - position: relative; -} - -.Navigation ul li a, -.Navigation ul li a:visited { - display: inline-block; - color: #FFF; - padding: 0 9px; - border-left: 1px solid #FFF; - font-size: 18px; -} - -.Navigation ul li a h1, -.Navigation ul li a h2 { - cursor: pointer; -} - -.Navigation ul li:first-child a { - border-left: none; -} - -.Navigation .dropdownnavcontainer { - display: none; - position: absolute; - margin-left: 126px; - margin-top: 27px; - z-index: 1024; -} - -.Navigation .dropdownmainnav { - display: block; - background: #6E99C9; - border-left: 1px solid #FFF; - border-right: 1px solid #FFF; - border-bottom: 1px solid #FFF; - padding: 10px; - width: 250px; - float: left; - z-index: 1024; - height: 225px; -} - -.Navigation .dropdownmainnav a { - color: White; -} - -.Navigation .dropdownmainnav a:hover { - text-decoration: underline; -} - -.friend_dock_username { - height: 15px; - overflow: hidden; - float: left; - width: 55px; -} - -.friend_dock_username_href { - color: Black !important; - font-size: 10px; - font-family: Verdana; -} - -div#chatbar { - position: fixed; - bottom: 0; - left: 0; - height: 0; - font-size: 11px; - font-family: Verdana; - margin: 0 1%; - z-index: 1022; -} - -div#statusbar { - position: fixed; - bottom: 0; - left: 0; - height: 30px; - background: url(/CSS/Base/CSS/chatbarback.jpg); - border-left: 3px solid #E5E5E5; - border-right: 3px solid #E5E5E5; - font-size: 11px; - font-family: Verdana; - margin: 0 1%; - z-index: 1022; -} - -#chat { - float: left; -} - -.chat_box { - border-left: 2px solid #6E99C9; - border-right: 2px solid #6E99C9; - width: 217px; - float: left; - height: 280px; - overflow-y: scroll; - overflow-x: none; - background: #eee; - font-size: 11px; - font-family: Verdana; -} - -.chat_text { - width: 80%; - padding: 4px; - float: left; - font-size: 11px; - font-family: Verdana; -} - -.chat_name { - color: #88a9bf; - border-bottom: 1px solid #CCC; - font-weight: bold; - padding: 3px; - float: left; - font-size: 11px; - font-family: Verdana; - width: 75%; -} - -.chat_header { - width: 211px; - float: left; - color: #03C; - background: #6E99C9; - color: #000; - font-weight: bold; - font-size: 12px; - margin: 0; - padding: 5px; - font-family: Verdana; -} - -.chat_options { - width: 219px; - float: left; - color: #03C; - background: #6E99C9; - color: #000; - font-weight: bold; - font-size: 12px; - margin: 0; - padding: 1px; - font-family: Verdana; -} - -#chat_close { - background: url(/CSS/Base/CSS/close.png); - height: 10px; - width: 10px; - float: right; - cursor: pointer; - margin-right: 1px; -} - -#chat_mini { - background: url(/CSS/Base/CSS/mini.png); - height: 10px; - width: 10px; - float: right; - cursor: pointer; - margin-right: 5px; -} - -.chat_abuse { - color: #FFF; - background: yellow; - color: #000; - font-weight: bold; - padding: 1px; - cursor: pointer; - font-family: Verdana; - font-size: 7px; - float: left; -} - -.chat_abuse:hover { - color: #FFF; - background: red; - color: #000; - font-weight: bold; - padding: 1px; - cursor: pointer; - font-family: Verdana; - font-size: 7px; - float: left; -} - -.chat_wrapper { - width: 221px; - background: #eee; - position: absolute; - bottom: 0; - float: left; - z-index: 1022; - margin-left: 3px; -} - -#chatfix { - position: fixed; - bottom: 0; - left: 176px; - z-index: 1337; -} - -.chat_input { - float: left; - background: #eee; - border-right: 2px solid #6E99C9; - border-left: 2px solid #6E99C9; - border-bottom: 2px solid #6E99C9; - border-top: 1px solid #6E99C9; - width: 217px; -} - -.chat_contents { - bottom: 27px; - display: none; -} - -.roster_box { - border-bottom: 2px solid #bcbcbc; - float: left; - cursor: pointer; - padding: 4px; - width: 125px; -} - -.roster_box:hover { - border-bottom: 2px solid #bcbcbc; - float: left; - cursor: pointer; - background: #eee; - padding: 4px; - width: 125px; -} - -.roster_name { - margin-left: 5px; -} - -.roster_alert { - margin: 1px; - padding: 1px; - font-size: 11px; - font-family: Verdana; -} - -#roster { - float: left; - font-size: 11px; - font-family: Verdana; - display: none; - height: 331px; - overflow-y: scroll; - background: #d8e0e9; - margin: 5px; - width: 150px; - position: absolute; - left: 0; - bottom: 25px; - z-index: 1022; -} - -#roster-wrapper { - float: left; - height: 1px; - width: 170px; -} - -#chat_friends { - float: left; - height: 20px; - color: #000; - font-weight: bold; - padding-left: 33px; - padding-top: 7px; - width: 119px; - cursor: pointer; -} - -#chat_friends:hover { - float: left; - height: 20px; - background: #d8e0e9; - color: #000; - font-weight: bold; - padding-left: 33px; - padding-top: 7px; - width: 119px; - cursor: pointer; -} - -#statusbar_wrapper { - padding-top: 3px; - float: left; -} - -#long-wrapper { - float: left; -} - -#chatlog { - float: left; - padding: 3px; - color: Green; -} - -.chat-unavailable { - background: url(/CSS/Base/CSS/unavailable.png); - height: 15px; - width: 15px; - float: left; -} - -.chat-available { - background: url(/CSS/Base/CSS/available.png); - height: 15px; - width: 15px; - float: left; -} - -.chat-default { - height: 15px; - width: 15px; - float: left; -} - -.chat_send_button { - background: #eee; - border: 0 solid #FFF; - float: left; - line-height: 17px; - height: 18px; - border-left: 2px solid #CCC; - border-bottom: 0; - border-right: 0; - border-top: 0; - padding: 3px; - cursor: pointer; -} - -.chat_send_button:hover { - background: #D8E0E9; - border: 0 solid #FFF; - float: left; - line-height: 17px; - height: 18px; - border-left: 2px solid #CCC; - border-bottom: 0; - border-right: 0; - border-top: 0; - padding: 3px; - cursor: pointer; -} - -.chat_send_input { - border: 0 solid #FFF; - float: left; - height: 22px; - font-size: 12px; - padding: 2px; -} - -.chat_close { - cursor: pointer; - color: #FFF; - font-size: 16px; - line-height: 11px; - padding-right: 8px; - float: left; - padding-top: 6px; -} - -.chat_close:hover { - cursor: pointer; - color: #000; - font-size: 16px; - line-height: 11px; - padding-right: 8px; - float: left; - padding-top: 6px; -} - -.chat_entry_click { - cursor: pointer; - padding-right: 10px; - padding-top: 7px; - padding-left: 10px; - padding-bottom: 7px; - padding-top: 6px; -} - -.chat_entry { - float: left; - background: #d8e0e9; - height: 27px; - color: #000; - font-weight: bold; - cursor: pointer; - width: 221px; -} - -#chat_login { - margin-top: 1px; - margin-left: 2px; - float: left; -} - -#chat_logout { - margin-top: 1px; -} - -#chat-availability { - float: left; -} - -#partycontainer { - position: fixed; - bottom: 91px; - z-index: 1022; -} - -.ActiveChatThumb { - z-index: 10; - cursor: pointer; -} - -.RemoveActiveChat { - position: absolute; - z-index: 10; - cursor: pointer; - margin-left: 40px; -} - -.clear { - overflow: hidden; - width: 100%; -} - -.followme_green19h { - background-image: url("/images/Buttons/followme_19h.png"); - background-repeat: no-repeat; - background-position: left top; - height: 19px; - cursor: pointer; - width: 65px; - float: left; - text-align: center; -} - -.followme_green19h:hover { - background-position: left bottom; -} - -.followme_gray19h { - background-image: url("/images/Buttons/followme_19h-gray.png"); - background-repeat: no-repeat; - background-position: left top; - height: 19px; - cursor: pointer; - width: 65px; - float: left; - text-align: center; -} - -.followme_gray19h:hover { - background-position: left bottom; -} - -.tab_white19h, -.tab_white19hselected { - background: transparent url("/images/friendsbar/tab_white19h_l2.gif") no-repeat left top; - color: #444; - display: block; - float: left; - font: normal 12px verdana, sans-serif; - text-decoration: none; - padding-left: 2px; - height: 19px; - outline: none; - cursor: pointer; -} - -.tab_white19h span, -.tab_white19hselected span { - background: transparent url("/images/friendsbar/tab_white19h_r2.gif") no-repeat right top; - display: block; - height: 15px; - padding: 2px 15px 2px 7px; - text-decoration: none; -} - -.tab_white19h:hover, -.tab_white19hselected { - background-position: left bottom; - color: #000; - outline: none; - text-decoration: none; -} - -.tab_white19h a, -.tab_white19hselected a { - text-decoration: none; - outline: none; -} - -.tab_white19h:hover span, -.tab_white19hselected span { - background-position: right bottom; - padding: 3px 15px 1px 7px; - text-decoration: none; -} - -.tab_white19h_flash { - background: transparent url("/images/friendsbar/tab_blue19h_l.gif") no-repeat left top; -} - -.tab_white19h_flash span { - background: transparent url("/images/friendsbar/tab_blue19h_r.gif") no-repeat right top; - color: White; -} - -.bold { - font-weight: bold; -} - -.clear { - clear: both; -} - -.alignCenter { - text-align: center; -} - -.InGamePopup { - background: url(/images/css/containerBkg_01.png); - _overflow: hidden; -} - -.voteYes { - background: url(/images/css/button_vote.jpg); - width: 24px; - height: 23px; - background-position: top left; -} - -.voteYes:hover { - background-position: bottom left; -} - -.voteNo { - background: url(/images/css/button_vote.jpg); - width: 24px; - height: 23px; - background-position: top right; -} - -.voteNo:hover { - background-position: bottom right; -} - -#MyAccountBalanceContainer { - font-family: Verdana, Helvetica, Sans-Serif; -} - -#MyAccountBalanceContainer h2 { - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - letter-spacing: 0.4em; - line-height: 1em; - margin: 10px 0 0 -2px; - padding: 0; -} - -#MyAccountBalanceContainer h3 { - background-color: #ccc; - border-bottom: solid 1px #000; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 1.7em; - font-weight: normal; - letter-spacing: 0.1em; - line-height: 1em; - margin: 0; - padding: 5px; - text-align: center; -} - -#MyAccountBalanceContainer h4 { - font-family: Verdana, Sans-Serif; - font-size: 13px; - font-weight: bold; - margin: 5px 0; - padding: 5px 5px 5px 15px; - color: #900; -} - -#MyAccountBalanceContainer #AboutRobux { - border-bottom: solid 1px #000; - border-left: solid 1px #000; - border-right: solid 1px #000; - float: right; - margin-top: 20px; - width: 275px; -} - -#MyAccountBalanceContainer #AboutRobux h3 { - border-top: solid 1px #000; -} - -#MyAccountBalanceContainer #AboutRobux p { - margin: 0; - padding: 10px 15px; -} - -#MyAccountBalanceContainer #Earnings { - border: solid 1px #000; - margin-top: 20px; - padding-bottom: 10px; - width: 600px; -} - -#MyAccountBalanceContainer .Earnings_Period { - margin-bottom: 20px; -} - -#MyAccountBalanceContainer .Earnings_LoginAward, -#MyAccountBalanceContainer .Earnings_PlaceTrafficAward, -#MyAccountBalanceContainer .Earnings_Ambassador { - padding: 0 0 0 50px; - height: 16px; - background-color: #eee; -} - -#MyAccountBalanceContainer .Earnings_SaleOfGoods, -#MyAccountBalanceContainer .Earnings_PeriodTotal, -#MyAccountBalanceContainer .Earnings_LoginAwardBC, -#MyAccountBalanceContainer .Earnings_Currency { - padding: 0 0 0 50px; - height: 16px; -} - -#MyAccountBalanceContainer .Earnings_LoginAward .Label, -#MyAccountBalanceContainer .Earnings_LoginAwardBC .Label, -#MyAccountBalanceContainer .Earnings_PlaceTrafficAward .Label, -#MyAccountBalanceContainer .Earnings_SaleOfGoods .Label, -#MyAccountBalanceContainer .Earnings_Ambassador .Label, -#MyAccountBalanceContainer .Earnings_Currency .Label { - float: left; - width: 380px; -} - -#MyAccountBalanceContainer .Earnings_PeriodTotal .Label { - float: left; - padding-right: 10px; - text-align: right; - width: 370px; -} - -#MyAccountBalanceContainer .Earnings_PeriodTotal .Field { - color: Blue; - font-weight: bold; -} - -#MyAccountBalanceContainer .Field { - float: right; - width: 75px; -} - -#MyAccountBalanceContainer .Zebra { - background-color: #eee; -} - -table.stats { - text-align: center; - font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; - font-weight: normal; - font-size: 11px; - color: #fff; - width: 280px; - background-color: #666; - border: 0; - border-collapse: collapse; - border-spacing: 0; -} - -table.stats td { - background-color: #CCC; - color: #000; - padding: 4px; - text-align: left; - border: 1px #fff solid; -} - -table.stats td.hed { - background-color: #666; - color: #fff; - padding: 4px; - text-align: left; - border-bottom: 2px #fff solid; - font-size: 12px; - font-weight: bold; -} - -#AssetContainer { - margin: 0 auto; - width: 620px; -} - -#AssetContainer h2 { - color: #333; - font-size: x-large; - margin-bottom: 5px; -} - -#AssetContainer #Asset { - background-color: #eee; - border: solid 1px #000; - color: #555; -} - -#BadgesContainer { - border: solid 1px #000; -} - -#BadgesContainer .Legend .BadgesList { - color: #666; - float: left; - list-style: none; - margin: 0; - padding: 0; -} - -#BadgesContainer .Legend .BadgesList li { - background-color: #fff; - background-position: 0 5px; - background-repeat: no-repeat; - margin: 10px 0 20px 0; - padding: 0 0 7px 80px; - border: solid 1px #000; -} - -#CommunityBadges .Legend, -#FriendshipBadges .Legend, -#CombatBadges .Legend, -#VisitsBadges .Legend { - float: left; - padding: 5px 15px 5px 5px; - width: 500px; -} - -#StatisticsRankingsPane_Friendship, -#StatisticsRankingsPane_Combat, -#StatisticsRankingsPane_Visits, -#FeaturedBadge_Community { - float: right; - margin: 15px; - width: 300px; -} - -#FeaturedBadge_Community { - border: solid 1px #000; - margin-top: 20px; - width: 325px; - background-color: White; -} - -#TurboBuildersClubBadge_Community { - border: solid 1px #000; - margin: 15px 15px 15px 15px; - background-color: White; - float: left; -} - -#OutrageousBuildersClubBadge_Community { - border: solid 1px #000; - margin: 15px 15px 15px 15px; - background-color: White; - float: left; -} - -#FeaturedBadge_Community h4, -#OutrageousBuildersClubBadge_Community h4 { - background-color: #6e99c9; - border-bottom: solid 1px #000; - color: #fff; - font-size: 1.4em; - font-weight: bold; - letter-spacing: 0.2em; - margin: 0; - padding: 3px; - text-align: center; -} - -#OutrageousBuildersClubBadge_Community h4 { - background-color: #000; - color: #FFF; - border-bottom: solid 1px #000; -} - -#OutrageousBuildersClubBadge_Community h4 .OutrageousSpan { - color: White; -} - -.FeaturedOBCContent .FeaturedOBCDescription { - color: #222; - margin: 10px 10px 10px 10px; - font-size: 14px; -} - -.FeaturedOBCIcon { - margin: 10px 10px 10px 10px; - float: left; - vertical-align: text-top; - width: 150px; -} - -#OutrageousBuildersClubBadge_Community { - margin: 10px 10px 10px; -} - -#FeaturedBadge_Community h4, -#TurboBuildersClubBadge_Community h4 { - background-color: #6e99c9; - border-bottom: solid 1px #000; - color: #fff; - font-size: 1.4em; - font-weight: bold; - letter-spacing: 0.2em; - margin: 0; - padding: 3px; - text-align: center; -} - -#TurboBuildersClubBadge_Community h4 { - background-color: #B94542; - color: #6e99FF; - border-bottom: solid 1px #000; -} - -#TurboBuildersClubBadge_Community h4 .TurboSpan { - color: White; -} - -.BadgeHint { - border: dashed 1px #000; - padding: 5px 5px 5px 5px; - background-color: #E8EDFF; -} - -.FeaturedBadgeContent { - margin: 0; - padding: 0 15px 10px 15px; -} - -.FeaturedBadgeContent p { - color: #222; - font-family: Verdana, Sans-Serif; - margin-top: 10px; -} - -.FeaturedBadgeIcon { - float: left; - margin: auto 10px auto 10px; - vertical-align: text-top; - width: 125px; -} - -.FeaturedTBCContent .FeaturedTBCDescription { - color: #222; - font-size: 14px; - margin: 10px 10px 10px 10px; -} - -.FeaturedTBCIcon { - margin: 10px 10px 10px 10px; - float: left; - vertical-align: text-top; - width: 150px; -} - -#TurboBuildersClubBadge_Community { - margin: 10px 10px 10px; -} - -#StatisticsRankingsPane_Community { - border: none; -} - -#BadgesContainer .Legend h4 { - background-color: #fff; - font-size: 1.4em; - font-weight: bold; - margin: 5px 0 5px 0; -} - -#BadgesContainer #CommunityBadges .Legend #Administrator { - background-image: url(/images/Badges/Administrator-75x75.png?v=2); -} - -#BadgesContainer #CommunityBadges .Legend #ForumModerator { - background-image: url(/images/Badges/ForumModerator-75x75.png?v=2); -} - -#BadgesContainer #CommunityBadges .Legend #ImageModerator { - background-image: url(/images/Badges/ImageModerator-75x75.png?v=2); -} - -#BadgesContainer #FriendshipBadges .Legend #Friendship { - background-image: url(/images/Badges/Friendship-75x75.png?v=2); -} - -#BadgesContainer #FriendshipBadges .Legend #Inviter { - background-image: url(/images/Badges/Inviter-75x75.png?v=2); -} - -#BadgesContainer #CombatBadges .Legend #CombatInitiation { - background-image: url(/images/Badges/CombatInitiation-75x75.png?v=2); -} - -#BadgesContainer #CombatBadges .Legend #Warrior { - background-image: url(/images/Badges/Warrior-75x75.png?v=2); -} - -#BadgesContainer #CombatBadges .Legend #Bloxxer { - background-image: url(/images/Badges/Bloxxer-75x75.png?v=2); -} - -#BadgesContainer #VisitsBadges .Legend #Homestead { - background-image: url(/images/Badges/Homestead-70x75.png?v=2); -} - -#BadgesContainer #VisitsBadges .Legend #Bricksmith { - background-image: url(/images/Badges/Bricksmith-54x75.png?v=2); -} - -#BadgesContainer .AccordionHeader, -#BadgesContainer .TopAccordionHeader, -#BadgesContainer .BottomAccordionHeader { - background-color: #ccc; - cursor: pointer; - font-size: 1.4em; - margin: 0 0 1px 0; - padding: 5px; - text-align: center; -} - -#BadgesContainer .AccordionHeader, -#BadgesContainer .BottomAccordionHeader { - border-bottom: solid 1px #000; - border-top: solid 1px #000; -} - -#BadgesContainer .TopAccordionHeader { - border-bottom: solid 1px #000; - border-top: none; -} - -#BadgesContainer .AccordionHeader:hover, -#BadgesContainer .TopAccordionHeader:hover, -#BadgesContainer .BottomAccordionHeader:hover { - background-color: #6e99c9; - color: #fff; -} - -.StatisticsRankings { - background-color: #eee; -} - -.StatisticsRankings h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: 1.2em; - margin: 0; - text-align: center; -} - -.StatisticsRankingsHeader_Rank, -.StatisticsRankingsHeader_Item, -.StatisticsRankingsHeader_Score { - border: solid 1px #000; - float: left; - font-weight: bold; - padding: 2px 0 2px 0; - text-align: center; -} - -.StatisticsRankingsHeader_Rank { - margin-right: 1px; - width: 45px; -} - -.StatisticsRankingsHeader_Item { - margin-right: 1px; - width: 150px; -} - -.StatisticsRankingsHeader_Score { - width: 95px; -} - -.StatisticsRanking, -.StatisticsRanking_AlternatingRow, -.StatisticsRanking_UserCentric, -.StatisticsRanking_UserCentric_AlternatingRow { - font: normal 0.9em/normal Verdana, sans-serif; -} - -.StatisticsRanking_UserCentric a, -.StatisticsRanking_UserCentric a:link, -.StatisticsRanking_UserCentric a:visited, -.StatisticsRanking_UserCentric a:active, -.StatisticsRanking_UserCentric_AlternatingRow a, -.StatisticsRanking_UserCentric_AlternatingRow a:link, -.StatisticsRanking_UserCentric_AlternatingRow a:visited, -.StatisticsRanking_UserCentric_AlternatingRow a:active { - color: #fff; -} - -.StatisticsRanking .StatisticsRanking_Rank, -.StatisticsRanking .StatisticsRanking_Item, -.StatisticsRanking .StatisticsRanking_Score, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Rank, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Item, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Score { - border: solid 1px #000; - float: left; - padding: 2px 0 2px 0; - text-align: center; -} - -.StatisticsRanking .StatisticsRanking_Rank, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Rank { - margin-right: 1px; - width: 45px; -} - -.StatisticsRanking .StatisticsRanking_Item, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Item { - margin-right: 1px; - width: 150px; -} - -.StatisticsRanking .StatisticsRanking_Score, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Score { - width: 95px; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Rank, -.StatisticsRanking_UserCentric .StatisticsRanking_Item, -.StatisticsRanking_UserCentric .StatisticsRanking_Score, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Rank, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Item, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Score { - background-color: #6e99c9; - border: solid 1px #000; - color: #fff; - float: left; - font-weight: bold; - padding: 2px 0 2px 0; - text-align: center; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Rank, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Rank { - margin-right: 1px; - width: 45px; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Item, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Item { - margin-right: 1px; - width: 150px; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Score, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Score { - width: 95px; -} - -.StatisticsRankingsFooter { - border-top: solid 1px #000; - padding: 2px 1px 2px 1px; -} - -.RankingsPeriodSelector { - font-family: Verdana, Sans-Serif; - font-size: xx-small; - width: 100%; -} - -.TileBadges { - float: left; - margin: 10px 10px; - text-align: center; -} - -#CatalogContainer { - font-family: Verdana, Sans-Serif; - min-width: 0; - position: relative; -} - -#CatalogContainer h2 { - font-family: Verdana, Sans-Serif; - font-weight: normal; - letter-spacing: 0.1em; - line-height: 24px; - padding: 0; - color: #555; - font-size: 14px; - margin-left: 10px; -} - -#BrowseMode ul li h3 a { - font-weight: normal; - font-size: 14px; -} - -#CatalogContainer ul { - font-family: Verdana, Sans-Serif; - list-style: none; - margin: 0 0 20px 0; - padding-left: 0; -} - -#CatalogContainer ul li { - margin: 5px 0 5px 10px; - font-family: Arial, Helvetica, sans-serif; - padding-left: 20px; - font-size: 14px; -} - -#CatalogContainer .Selected { - background: url("/images/gamesPage_filterArrow.png") no-repeat scroll 0 1px transparent; -} - -#CatalogContainer .DisplayFilters { - width: 185px; - background-color: White; - border: solid 2px #6e99c9; -} - -#CatalogContainer .Assets { - float: left; - min-width: 0; - overflow: hidden; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - position: relative; - width: 680px; -} - -#CatalogContainer .SearchBar { - background-color: #eee; - border: solid 1px #bbb; - height: 30px; - margin: -5px 0 5px 0; - padding: 0; - text-align: center; -} - -#CatalogContainer .SearchBar .SearchBox, -#CatalogContainer .SearchBar .SearchButton { - height: 30px; - margin: 0; - padding: 0; -} - -#CatalogContainer .SearchBar .TextBox { - border: solid 1px #000; - height: 19px; - margin: 2px 0 0 0; - padding: 2px 3px 0 3px; - width: 250px; -} - -#CatalogContainer .SearchLinks { - z-index: 9; - display: inline; -} - -#CatalogContainer .SearchLinks a span { - display: none; -} - -#CatalogContainer .SearchLinks a:hover { - text-decoration: none; - border: none; -} - -#CatalogContainer .SearchLinks a:hover span { - display: block; - position: absolute; - top: 20px; - left: 15%; - width: 60%; - padding: 5px; - margin: 5px; - z-index: 10; - color: white; - background-color: #6e99c9; - border-width: 1px; - border-color: Gray; - border-style: ridge; - text-decoration: none; - line-height: 1.4em; - font: 11px Verdana, sans-serif; - text-align: center; -} - -#CatalogContainer .SearchError { - clear: both; - margin: 2px; - float: none; - padding: 2px; - text-align: center; - color: Red; -} - -#CatalogContainer .Assets .HeaderPager, -#CatalogContainer .Assets .FooterPager { - padding: 2px 0; - text-align: right; -} - -#CatalogContainer .Assets .HeaderPager { - margin-bottom: 10px; -} - -#CatalogContainer .Assets .HeaderPager .Label, -#CatalogContainer .Assets .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#CatalogContainer .Asset { - margin: -1px 0 15px -1px; - vertical-align: top; - width: 122px; -} - -#CatalogContainer .Asset .AssetThumbnail { - border: solid 1px #EEE; - height: 110px; - text-align: center; - width: 110px; - background-color: #FFF; -} - -#CatalogContainer .Asset .AssetDetails { - font-family: Verdana, Sans-Serif; - overflow: hidden; - padding: 2px 0 6px 0; - width: 110px; -} - -#CatalogContainer .AssetName a { - font-size: 0.9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.AssetsBullet { - padding-right: 3px; -} - -#CatalogContainer .Label, -#CatalogContainer .Detail, -#CatalogContainer .DetailHighlighted, -#CatalogContainer .PriceInRobux, -#CatalogContainer .PriceInTickets { - font-size: 0.8em; -} - -#CatalogContainer .PriceInRobux { - color: Green; - font-weight: bold; -} - -#CatalogContainer .PriceInTickets { - color: #fbb117; - font-weight: bold; -} - -#CatalogContainer .AssetsDisplaySet { - float: left; - font-family: Comic Sans MS, Arial, Sans-Serif; - font-size: 1.5em; -} - -.Assets .StandardBoxHeader { - width: 660px; -} - -.Assets .StandardBox { - width: 660px; -} - -.CustomizeCharacterContainer { - font-family: Verdana, Sans-Serif; - margin: 0; -} - -.CustomizeCharacterContainer h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Verdana, Sans-Serif; - margin: 0; - text-align: center; -} - -.CustomizeCharacterContainer .NoResults { - padding: 15px; - text-align: center; -} - -.CustomizeCharacterContainer .TileGroup { - clear: left; - text-align: center; -} - -.CustomizeCharacterContainer .Asset { - float: left; - margin: 5px 7px 5px 0; - text-align: left; - vertical-align: top; - width: 112px; -} - -.CustomizeCharacterContainer .Asset .AssetThumbnail { - height: 110px; - position: relative; - text-align: center; - width: 110px; -} - -.CustomizeCharacterContainer .Asset .AssetDetails { - overflow: hidden; - padding: 2px 0 6px 0; - text-align: left; - width: 110px; -} - -.CustomizeCharacterContainer .AssetName a { - font-size: 0.9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.CustomizeCharacterContainer .Label, -.CustomizeCharacterContainer .Detail, -.CustomizeCharacterContainer .DetailHighlighted { - font-size: 0.8em; -} - -.CustomizeCharacterContainer .FooterPager { - border-top: solid 1px #000; - clear: left; - margin: 10px 0 0 0; - padding: 3px 0; - text-align: center; -} - -.AttireChooser { - border: solid 1px #000; - float: left; - margin: 0; - min-width: 0; - padding: 0; - position: relative; - text-align: left; - width: 530px; -} - -.Accoutrements { - border: solid 1px #000; - clear: left; - margin-top: 10px; - min-width: 0; - padding: 0; - position: relative; - text-align: left; - width: 530px; -} - -.AttireChooser .AttireCategory { - border-bottom: solid 1px #000; - margin: 0 0 10px 0; - padding: 3px 0; - text-align: center; -} - -.AttireChooser .AttireOptions { - margin: 5px; -} - -.AttireCategory .AttireCategorySelector_Selected { - font-weight: bold; -} - -.AttireChooser .HeaderPager, -.AttireChooser .HeaderPager { - margin-bottom: 10px; -} - -.AttireChooser .HeaderPager .Label, -.AttireChooser .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -.CharacterViewer { - border: solid 1px #000; - float: right; - width: 354px; -} - -.CharacterViewer .ReDrawAvatar { - font-size: 1em; - vertical-align: bottom; - text-align: center; -} - -.Mannequin { - clear: right; - margin-top: 10px; - text-align: center; - width: 354px; -} - -.Mannequin .ColorChooserFrame { - margin: 0 auto; -} - -.TeeShirtBuilder { - border: solid 1px #000; - clear: both; - margin-top: 10px; -} - -div.AspNet-DetailsView-Data ul { - margin: 0; - padding: 0; -} - -div.AspNet-DetailsView-Data li { - margin: 0; - padding: 0; - list-style-type: none; - position: relative; -} - -ul.AspNet-Menu { - position: relative; -} - -ul.AspNet-Menu, -ul.AspNet-Menu ul { - margin: 0; - padding: 0; - display: block; -} - -ul.AspNet-Menu li { - position: relative; - list-style: none; -} - -ul.AspNet-Menu li a, -ul.AspNet-Menu li span { - display: block; - text-decoration: none; -} - -ul.AspNet-Menu ul { - position: absolute; - display: none; -} - -ul.AspNet-Menu li:hover ul ul, -ul.AspNet-Menu li:hover ul ul ul, -ul.AspNet-Menu li.AspNet-Menu-Hover ul ul, -ul.AspNet-Menu li.AspNet-Menu-Hover ul ul ul { - display: none; -} - -ul.AspNet-Menu li:hover ul, -ul.AspNet-Menu li li:hover ul, -ul.AspNet-Menu li li li:hover ul, -ul.AspNet-Menu li.AspNet-Menu-Hover ul, -ul.AspNet-Menu li li.AspNet-Menu-Hover ul, -ul.AspNet-Menu li li li.AspNet-Menu-Hover ul { - display: block; -} - -.AspNet-Menu-Horizontal ul.AspNet-Menu li { - float: left; -} - -.AspNet-Menu-Horizontal ul.AspNet-Menu li li { - float: none; -} - -div.AspNet-TreeView { - margin: 0; - padding: 0; -} - -div.AspNet-TreeView ul { - list-style: none; - margin: 0; - padding: 0; -} - -.AspNet-TreeView-Hide { - display: none; -} - -#ContentBuilderContainer { - margin-top: 10px; -} - -#ContentBuilderContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#ContentBuilderContainer h3 { - background-color: #ccc; - font-size: 16px; - font-weight: bold; - padding: 5px; - text-align: center; -} - -#ContentBuilderContainer blockquote { - margin: 0 auto; -} - -#ContentBuilderContainer .UploaderPanel, -#ContentBuilderContainer .UpsellPanel { - text-align: center; -} - -#ContentBuilderContainer .SelectorArea { - margin: 0 auto; - margin-bottom: 20px; - margin-top: 20px; - text-align: center; -} - -#ContentBuilderContainer .DisclaimerLink { - z-index: 9; - display: inline; - font-size: 1.2em; -} - -#ContentBuilderContainer .DisclaimerLink a span { - display: none; -} - -#ContentBuilderContainer .DisclaimerLink a:hover { - text-decoration: none; - border: none; -} - -#ContentBuilderContainer .DisclaimerLink a:hover span { - display: block; - position: absolute; - top: 50%; - left: 12%; - width: 75%; - padding: 5px; - margin: 5px; - z-index: 10; - color: white; - background-color: #6e99c9; - border-width: 1px; - border-color: Gray; - border-style: ridge; - text-decoration: none; - line-height: 1.4em; - font: 12px Verdana, sans-serif; - text-align: left; -} - -#TradeCurrencyContainer { - margin-top: 10px; -} - -#TradeCurrencyContainer .TradeBox { - width: 100px; -} - -#TradeCurrencyContainer h2 { - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0 0 15px 0; - padding: 0; - text-align: center; -} - -#TradeCurrencyContainer .LeftColumn { - float: left; - width: 230px; -} - -#TradeCurrencyContainer .CenterColumn { - float: left; - width: 410px; -} - -#TradeCurrencyContainer .RightColumn { - float: left; - width: 230px; -} - -#TradeCurrencyContainer h4 { - border-bottom: solid 1px #000; - font-size: 1em; - font-weight: bold; - margin: 0; - padding: 5px; - text-align: center; - display: block; -} - -#TradeCurrencyContainer .AccordionHeader { - background-color: #ccc; - border: solid 1px #000; - cursor: pointer; - font-size: 1em; - font-weight: bold; - letter-spacing: 0.1em; - margin: 1px 0; - padding: 1px 1em; - text-align: center; -} - -#TradeCurrencyContainer .AccordionHeader:hover { - background-color: #6e99c9; - color: #fff; -} - -#CurrencyOffersPane { - float: right; -} - -.TradingDashboard { - margin-bottom: 10px; -} - -.CurrencyQuote, -.CurrencyTrade, -.CurrencyOffers, -.CurrencyBids, -.TradingDashboard { - width: 350px; -} - -.CurrencyQuote, -.CurrencyTrade, -.CurrencyOffers, -.CurrencyBids, -.OpenBids, -.OpenOffers, -.TradeHistory { - border: solid 1px #000; - padding: 0; -} - -.CurrencyQuote, -.CurrencyTrade, -.TradingDashboard, -.OpenBids, -.OpenOffers, -.TradeHistory, -.TradingDashboard .FooterPager { - margin: 0 auto; -} - -.CurrencyTrade, -.TradingDashboard { - margin-top: 20px; -} - -.CurrencyTradeDetails { - padding: 5px; -} - -.CurrencyTradeDetail, -.TradingDashboard .FooterPager { - padding-top: 5px; - text-align: center; -} - -.CurrencyOffers, -.CurrencyBids { - width: 200px; -} - -.CurrencyOffer, -.AlternatingCurrencyOffer, -.CurrencyBid, -.AlternatingCurrencyBid { - padding: 5px; - text-align: center; -} - -.CurrencyQuote .TableHeader, -.CurrencyOffers .TableHeader, -.CurrencyBids .TableHeader { - font-weight: bold; -} - -.CurrencyQuote .TableRow, -.CurrencyOffers .TableRow, -.CurrencyBids .TableRow { - border-top: solid 1px #000; -} - -.CurrencyQuote .Pair, -.CurrencyQuote .Rate, -.CurrencyQuote .Spread, -.CurrencyQuote .HighLow { - float: left; - padding: 5px; - text-align: center; - width: 77px; -} - -.DarkGradientBox { - background: url(/images/DarkGradientW150.png) repeat-y top left; - width: 150px; - color: White; - position: relative; - border: solid 2px #7DADE0; -} - -.DarkGradientBox .DGB_Header { - font-size: 14px; - font-weight: bold; - text-align: center; - padding-top: 5px; - padding-bottom: 0; - border-bottom: solid 2px #6e99c9; -} - -.DarkGradientBox .DGB_TextBox { - border: solid 2px #6e99c9; -} - -.DarkGradientBox .DGB_Label { - color: White; - font-size: 10px; - font-weight: bold; - text-align: left; -} - -.DarkGradientBox .DGB_Button { - cursor: pointer; - background-color: #435D77; - color: White; - text-decoration: none; - border: solid 1px #777; - padding: 6px 10px 6px 10px; - font-family: Verdana, Sans-Serif; - font-size: 12px; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.DarkGradientBox .DGB_Button:link, -.DarkGradientBox .DGB_Button:visited { - background-color: #435D77; - color: White; - text-decoration: none; -} - -.DarkGradientBox .DGB_Button:hover, -.DarkGradientBox .DGB_Button:active { - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; -} - -#FriendliestFolkPane { - border-color: #000; - border-style: solid; - border-width: 1px; - height: 184px; - margin-top: 10px; - overflow: auto; - width: 770px; -} - -#FriendliestFolk h4 { - font-size: 10pt; - font-weight: bold; - line-height: 1em; - margin-bottom: 5px; - margin-top: 5px; -} - -#GamesContainer { - font-family: Verdana, Sans-Serif; -} - -#GamesContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#GamesContainer h4 { - font-family: Verdana, Sans-Serif; - font-size: 1.3em; - font-weight: normal; - letter-spacing: 0.1em; - line-height: 1em; - margin: 15px 0; - padding: 0; -} - -#GamesContainer ul { - font-family: Verdana, Sans-Serif; - list-style: none; - margin: 10px 0 30px 0; - padding-left: 0; -} - -#GamesContainer ul li { - font-family: Verdana, Sans-Serif; - margin-bottom: 0.5em; -} - -#GamesContainer ul a { - font-size: 1.1em; -} - -#GamesContainer .DisplayFilters { - width: 170px; -} - -#GamesContainer #Games { - float: left; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - width: 720px; - overflow: visible; -} - -.GameList { - overflow: visible; -} - -#GamesContainer .Ads_WideSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -#GamesContainer #Games .FooterPager { - margin: 20px 24px 0 0; - padding: 2px 0; - text-align: right; -} - -#GamesContainer #Games .HeaderPager { - margin: 0 24px 0 100px; - padding: 30px 0; - text-align: left; -} - -#GamesContainer #Games .HeaderPager .Label, -#GamesContainer #Games .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#GamesContainer .Game { - margin: 0 10px 15px 10px; - vertical-align: top; - width: 162px; -} - -#GamesContainer .Game .GameThumbnail { - border: solid 1px #000; - width: 160px; - height: 100px; - text-align: center; -} - -#GamesContainer .Game .GameDetails { - font-family: Verdana, Sans-Serif; - overflow: hidden; - padding: 2px 0 6px 0; - width: 152px; -} - -.GameDetails12 > GameName { - font-weight: bold; -} - -.GameName { - font-weight: bold; - font-size: 12px; -} - -#GamesContainer .GameName a { - font-size: 0.9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.GamesBullet { - padding-right: 3px; -} - -#GamesContainer .Label, -#GamesContainer .Detail, -#GamesContainer .DetailHighlighted { - font-size: 0.8em; -} - -#GamesContainer .DetailHighlighted { - color: Red; - font-weight: bold; -} - -#GamesContainer .GamesDisplaySet { - float: left; - font-family: Comic Sans MS, Arial, Sans-Serif; - font-size: 1.5em; -} - -.GamesInfoIcon, -.GenreIcon, -.GearIcon { - margin-top: 1px; - margin-right: 1px; - position: relative; - top: 3px; -} - -.SearchBoxBack .StandardBox { - background: #6e99c9; -} - -.GameFilter { - color: #555; - margin-left: 10px; - font-size: 14px; -} - -.GameFilter ul { - list-style-type: none; - padding-left: 0; - margin: 0; -} - -.GameFilter ul li { - margin: 5px 0; -} - -.GameFilter .SelectedFilter, -.GameFilter .SelectedGenre { - background: url(/images/gamesPage_filterArrow.png) no-repeat 0 1px; - cursor: pointer; - padding-left: 20px; - font-weight: normal; -} - -.GameFilter .GamesFilter, -.GameFilter .GamesGenre { - padding-left: 20px; - display: inline-block; -} - -.GamesGenre h3 { - display: inline-block; - cursor: pointer; - font-weight: normal; -} - -#PlayTabs a { - text-decoration: none; -} - -.SelectedFilter, -.SelectedGenre { - font-weight: normal; -} - -a.DisabledFilter, -a.DisabledFilter:hover { - color: gray; - text-decoration: none; - cursor: default; -} - -a.GamesGenre.DisabledFilter h3, -a.GamesGenre.DisabledFilter:hover h3 { - cursor: default; -} - -#BCOnlyPlaces { - position: relative; - width: 410px; - text-align: center; - float: left; - margin-top: 8px; - margin-bottom: 6px; -} - -#BCOnlyPlaces .StandardBoxHeaderGray { - width: 410px; - height: 27px; - padding: 9px 2px 0 2px; - *padding: 5px 2px 0 2px; -} - -#BCOnlyPlaces .StandardBox { - height: 188px; - padding: 2px 0; -} - -#BCOnlyPlacesTitle { - display: inline; - font-weight: bold; - font-size: 19px; - position: relative; - *margin-left: 5px; -} - -#BCOnlyGamesContent { - width: 370px; - margin: 0 auto; -} - -#BCOnlyGamesContentPrevNavButton { - position: absolute; - top: 105px; - left: 10px; - visibility: hidden; -} - -#BCOnlyGamesContentNextNavButton { - position: absolute; - top: 105px; - right: 10px; -} - -#GenreDescriptionPanel { - float: left; - width: 695px; - font-size: 0.9em; - padding: 10px; - border-top: 1px solid #AAA; -} - -.SearchIconButton { - background: url(/images/searchIcon.png) no-repeat; - cursor: pointer; - width: 16px; - height: 16px; - position: absolute; - top: 5px; - right: 4px; -} - -.GameItem { - padding: 6px; - margin-left: 8px; - margin-bottom: 8px; - position: relative; - text-align: left; -} - -.GameItem:hover { - display: block; - z-index: 99; -} - -.GameItem .AlwaysShown { - position: relative; - width: 160px; - height: 130px; -} - -.GameItem:hover .AlwaysShown { - z-index: 999; -} - -.GameItem .HoverShown { - display: none; - position: absolute; - width: 160px; - padding: 158px 15px 15px; - top: -10px; - left: -10px; - border: solid 1px #888; - background: #fff; - font-size: 11px; - text-align: left; - color: #888; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} - -.GameItem .CreatorName { - position: relative; - top: -5px; - font-size: 11px; - color: #888; -} - -.GameItem .BCOverlay { - position: absolute; - top: 81px; - left: 0; -} - -.GameItem .GenreIcon, -.GameItem .GearIcon { - position: static; - top: 0; - margin-top: 0; - margin-right: 0; -} - -#GamesLeftColumn { - width: 136px; -} - -.groupEmblemThumbnail { - margin-top: 10px; - margin-bottom: 10px; - margin-left: 8px; - margin-right: 8px; - text-align: center; - width: 105px; - overflow: hidden; -} - -#GroupThumbnails { - text-align: center; - margin-bottom: 10px; -} - -.GroupDescriptionThumbnail { - float: left; - clear: none; - margin: 0 10px 10px 0; -} - -.GroupMembers { - width: 100%; -} - -.GroupMembers tr { - padding-bottom: 10px; -} - -.GroupMembers td { - padding: 0 5px 10px 5px; - text-align: center; -} - -.IncompleteFormField { - color: red; -} - -.GroupWallPostButton { - width: 69px; - height: 53px; - margin: 3px 0 4px 0; - float: right; -} - -.GroupWallPostText { - width: 375px; - height: 53px; - float: left; -} - -.GroupDescriptionEdit { - border: none; - border-style: none; -} - -.EmblemAdminImage { - margin: 0x; -} - -.CreateNewGroup { - padding-bottom: 10px; - margin-bottom: 10px; - display: block; - text-align: center; - font-size: 12px; - cursor: pointer; -} - -.CreateNewGroupError { - color: Red; -} - -.GroupMembersAdminTable tr { - text-align: left; -} - -.GroupMembersAdminTable td { - width: 85px; - margin: 2px; -} - -#GroupSearchResults thead tr { - background-color: #B0C4DE; - color: Black; -} - -#GroupSearchResults .GroupEmblemImg { - border: solid 2px #B0C4DE; - padding: 2px; -} - -.selectedSmallThumb { - border: solid 2px #FFE390; -} - -.nonSelectedSmallThumb { - border: solid 2px transparent; -} - -#Help { - border-style: ridge; - border-color: #ddd; - border-width: 5px; - background-color: #eee; - height: 600px; - padding: 1px; -} - -#Help h1 { - text-indent: 10px; -} - -#Help .salesForce, -#Help .salesForce iframe { - margin-left: 5px; - margin-bottom: 10px; - float: left; - width: 625px; - height: 500px; -} - -#Help .avatar { - text-align: center; - display: block; - float: right; - clear: right; - margin-right: auto; - margin-left: auto; - padding-left: 0; - padding-right: 0; -} - -#Help .descriptionPanels { - background-color: Transparent; - background-image: url("/images/Speech Bubble 225.gif"); - width: 225px; - height: 235px; - background-repeat: no-repeat; - margin-top: 40px; -} - -#Help .descriptionPanels p { - font-family: Comic Sans MS; - padding-top: 20px; - padding-right: 40px; - padding-left: 25px; - text-align: left; - color: Navy; - font-size: 9pt; -} - -#Help .navigation { - clear: left; - color: #6e99c9; - border: none; - background-color: Transparent; - font-family: "Comic Sans MS", Verdana, sans-serif; - font-size: 10pt; - font-weight: normal; - text-decoration: none; - text-align: center; -} - -#Help .navigation .MenuItem { - color: #6e99c9; - font-size: 16px; - line-height: 2em; -} - -#Help .navigation a.MenuItem:link, -#Help .navigation a.MenuItem:visited, -#Help .navigation a.MenuItem:active { - color: #6e99c9; - text-decoration: none; -} - -#Help .navigation a.MenuItem:hover { - text-decoration: underline; -} - -#Help .forumLinks { - font-family: Sans-Serif; - border-width: 3px; - border-color: #ddd; - border-style: groove; - visibility: hidden; - display: none; - filter: alpha(opacity=93); - opacity: 0.93; - background-color: #eee; - background-image: url("/images/help_gradient.png"); - background-repeat: repeat-y; - background-position: left top; - width: 150px; - font-size: 10pt; - text-align: center; - padding: 5px; - line-height: 2em; -} - -#InboxContainer { - margin-top: 10px; -} - -#InboxContainer #InboxPane { - float: left; - position: relative; - top: -2px; - width: 700px; -} - -.InboxDateField { - text-align: right; -} - -#InboxContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - letter-spacing: 0.5em; - line-height: 1em; - margin: 0 0 10px 0; - padding: 0; -} - -#InboxContainer .Ads_WideSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -#InboxContainer #Inbox { - border: solid 1px #000; -} - -#InboxContainer .Buttons { - margin: 10px 0; - text-align: center; -} - -#InboxContainer .InboxHeader { - background: url(/images/topNav_black.png); - border: none; - color: #fff; - font: 1.2em/normal Verdana, sans-serif; - font-weight: lighter; - letter-spacing: 0.15em; - text-align: center; -} - -#InboxContainer .InboxRow { - cursor: pointer; - font: normal 1em/normal Verdana, sans-serif; -} - -#InboxContainer .InboxRow_Unread { - cursor: pointer; - font: bold 1em/normal Verdana, sans-serif; -} - -#InboxContainer .InboxRow:hover, -#InboxContainer .InboxRow_Unread:hover, -#InboxContainer .SystemAlertMessage:hover { - background-color: #6e99c9; - color: #fff; -} - -#InboxContainer .InboxHeader a, -#InboxContainer .InboxPager a, -#InboxContainer .InboxRow:hover a, -#InboxContainer .InboxRow_Unread:hover a, -#InboxContainer .SystemAlertMessage:hover a { - color: #fff; -} - -#InboxContainer .InboxPager { - background-color: #999; - font: bold 1.2em/normal Verdana, sans-serif; - letter-spacing: 0.15em; - text-align: center; -} - -#InboxContainer .SystemAlertMessage { - cursor: pointer; - font: normal 1em/normal Verdana, sans-serif; - color: #F00; -} - -#InboxContainer .SystemAlertMessage a { - color: #F00; -} - -#InfoContainer { - background-color: #eee; - border: solid 1px #000; - color: #555; - margin: 0 auto; - width: 620px; -} - -#InfoContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -#InfoContainer #Content { - font: normal 1em/normal Verdana, sans-serif; - line-height: 1.5em; - padding: 10px 20px 10px 20px; -} - -#AlreadyInstalled { - font-size: large; - margin: 44px 44px 44px 44px; -} - -#AlreadyInstalled a { - text-decoration: underline; -} - -#ItemContainer { - margin-top: 10px; -} - -#ItemContainer h2 { - background-color: #036; - border-bottom: solid 1px #555; - color: #fff; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: x-large; - margin: 0; - text-align: center; -} - -#ItemContainer h3 { - font-size: 1.5em; - font-weight: normal; - letter-spacing: 0.15em; - line-height: 1em; - margin: 0 0 0.5em 0; - padding: 0; -} - -#ItemContainer #Item { - color: #555; - float: left; - font-family: Verdana, Sans-Serif; - width: 705px; -} - -#ItemContainer #Details { - margin: 10px; -} - -#ItemContainer #Thumbnail, -#ItemContainer #Thumbnail_Place { - border: solid 1px #eee; - padding: 0; - text-align: left; - min-width: 0; -} - -#ItemContainer #Thumbnail { - height: 420px; - width: 420px; -} - -#ItemContainer #Thumbnail_Place { - height: 230px; - width: 420px; -} - -#ItemContainer #Actions, -#ItemContainer #Actions_Place { - width: 408px; - background-color: #fff; - padding: 5px; - text-align: left; - min-width: 0; - overflow: hidden; - top: 420px; -} - -.AddRemoveFavorite { - background: url(/images/css/favoriteStar_20h.png) no-repeat 0 -20px; - margin: 0; - display: inline-block; - position: relative; - top: 3px; - *display: inline; - *zoom: 1; - padding-top: 4px; - padding-left: 25px; - width: 200px; - height: 18px; -} - -.AddRemoveFavorite:hover { - background-position: 0 0; -} - -#ItemContainer #Summary { - background-color: #fff; - border: dashed 1px #555; - display: inline; - float: right; - padding: 7px; - width: 235px; -} - -#ItemContainer #Summary #Creator { - clear: left; -} - -#ItemContainer #Summary #DescriptionLabel { - margin-bottom: 0.4em; - margin-top: 0.7em; -} - -.label { - margin-bottom: 0.5em; -} - -#ItemContainer #Summary .Description { - border: solid 1px #555; - font: normal 1em/normal Verdana, sans-serif; - max-height: 136px; - line-height: 1.5em; - padding: 4px; - overflow: auto; - text-align: left; -} - -#ItemContainer #Summary #ReportAbuse { - margin: 0 auto; - padding: 4px; - text-align: center; -} - -#ItemContainer #Summary #PublicDomainPurchase { - float: left; -} - -#ItemContainer #Summary #PublicDomainPurchase #PricePublicDomain { - color: Blue; - float: left; - font-weight: bold; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #PublicDomainPurchase #BuyForFree { - float: left; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #PublicDomainPurchase #BuyForFree .Button:hover { - background-color: #6e99c9; - border: solid 1px #000; -} - -#ItemContainer #Summary #PublicDomainPurchase #BuyForFree a:hover { - color: #fff; -} - -#ItemContainer #Summary #RobuxPurchase #PriceInRobux { - color: Green; - float: left; - font-weight: bold; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #RobuxPurchase #BuyWithRobux { - float: left; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #RobuxPurchase #BuyWithRobux .Button:hover { - background-color: #49b745; - border: solid 1px #000; -} - -#ItemContainer #Summary #RobuxPurchase #BuyWithRobux a:hover { - color: #fff; -} - -#ItemContainer #Summary #TicketsPurchase { - clear: left; -} - -#ItemContainer #Summary #TicketsPurchase #PriceInTickets { - color: #fbb117; - float: left; - font-weight: bold; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #TicketsPurchase #BuyWithTickets { - float: left; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #TicketsPurchase #BuyWithTickets .Button:hover { - background-color: #fdd017; - border: solid 1px #000; -} - -#ItemContainer #Summary #TicketsPurchase #BuyWithTickets a:hover { - color: #fff; -} - -#ItemContainer #Configuration { - background-color: #fff; - border-bottom: dashed 1px #555; - border-left: dashed 1px #555; - border-right: dashed 1px #555; - clear: right; - float: right; - margin-left: 10px; - margin-top: -10px; - padding: 5px 10px; - text-align: center; - width: 249px; -} - -.ItemVerb { - background-color: #fff; - border: dashed 1px #555; - text-align: center; - height: 20px; - margin-top: 5px; -} - -#ItemContainer .Ownership { - background-color: #ccc; - border: dashed 1px #f00; - clear: right; - color: #f00; - float: right; - margin-left: 10px; - margin-top: 0; - padding: 10px 10px; - text-align: center; - width: 230px; -} - -#ItemContainer .PlayGames { - background-color: #ccc; - border: dashed 1px Green; - color: Green; - margin-top: 10px; - padding: 10px 5px; - text-align: center; - width: 408px; -} - -#ItemContainer .BadgeStats { - width: 408px; - padding: 10px 5px; -} - -#ItemContainer .RunningGames { - background-color: #ccc; - border: dashed 1px #555; - color: #555; - margin-top: 10px; - padding: 10px 5px; - text-align: center; - width: 408px; -} - -#ItemContainer .GameInstances { - background-color: #fff; - border: solid 1px #000; - color: #555; - width: 408px; -} - -#ItemContainer .RefreshRunningGames { - margin: 10px 0; - text-align: center; -} - -#ItemContainer #Ownership .Button, -#ItemContainer .PlayGames .Button { - background-color: #fff; -} - -#ItemContainer #Ownership .Button:Hover { - background-color: #fff; - border: solid 1px #f00; - color: #f00; -} - -#ItemContainer .PlayGames .Button:Hover { - background-color: #fff; - border: solid 1px Green; - color: Green; -} - -#ItemContainer .CommentsContainer, -#ItemContainer .TabbedInfoContainer { - margin: 10px; - margin-top: 0; - width: 665px; -} - -#ItemContainer .TabbedInfoContainer h3 { - padding: 5px; -} - -#ItemContainer .CommentsContainer .HeaderPager, -#ItemContainer .CommentsContainer .FooterPager { - padding: 5px 0; - text-align: right; -} - -#ItemContainer .CommentsContainer .Comments { - border: dashed 1px #555; - overflow: hidden; - width: 663px; -} - -#ItemContainer .CommentsContainer .Comment, -#ItemContainer .CommentsContainer .AlternateComment { - padding: 7px 10px; -} - -#ItemContainer .CommentsContainer .Comment { - background-color: #fff; -} - -#ItemContainer .CommentsContainer .AlternateComment { - background-color: #eee; -} - -#ItemContainer .CommentsContainer .Commenter { - float: left; - width: 110px; -} - -#ItemContainer .CommentsContainer .Avatar { - border: solid 1px #555; - height: 100px; - width: 100px; -} - -.Avatar { - padding: 0 0 8px 0; -} - -#ItemContainer .CommentsContainer .Post { - float: left; - width: 80%; -} - -#ItemContainer .CommentsContainer .Content { - margin: 10px 0; - overflow: hidden; -} - -#ItemContainer .CommentsContainer .PostAComment { - margin: 10px 0 0 0; -} - -#ItemContainer .CommentsContainer .PostAComment .Buttons { - margin: 10px 0 0 0; -} - -#ItemContainer .CommentsContainer .MultilineTextBox, -#ItemContainer .CommentsContainer textarea { - min-height: 0; - width: 400px; -} - -#EditItem { - color: #555; - float: left; - font-family: Verdana, Sans-Serif; - margin: 0; -} - -#EditItemContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Sans-Serif; - font-size: x-large; - margin: 0; - text-align: center; -} - -#EditItemContainer fieldset { - font-size: 1.2em; - margin: 0; - color: #000; -} - -#EditItemContainer #Confirmation { - border: dashed 1px #f00; - background-color: #ccc; - color: #f00; - margin: 0 auto; - margin-top: 10px; - padding: 10px 5px; - width: 410px; -} - -#EditItemContainer #ItemName { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#EditItemContainer #ItemThumbnail { - border: solid 1px #555; - height: 230px; - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#EditItemContainer #ItemDescription { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#EditItemContainer #Comments, -#EditItemContainer #PlaceAccess, -#EditItemContainer #PlaceCopyProtection, -#EditItemContainer #AllowGear, -#EditItemContainer #SetGenres, -#EditItemContainer #VersionHistory, -#EditItemContainer #PublicDomain, -#EditItemContainer #SellThisItem, -#EditItemContainer #PlaceReset, -#EditItemContainer #PlaceBuildAccess, -.MyItemOptions { - margin: 0 auto; - margin-top: 10px; - width: 420px; -} - -#EditItemContainer #SellThisItem #Pricing { - background-color: #fff; - border: dashed 1px #000; - margin: 15px 5px 5px 5px; - padding: 5px; -} - -#EditItemContainer #SellThisItem #Price { - margin-top: 10px; -} - -#EditItemContainer #SellThisItem #Price .TextBox { - padding: 2px 4px; - width: 75px; -} - -#EditItemContainer .CopyProtectionRow, -#EditItemContainer .EnableCommentsRow, -#EditItemContainer .PlaceAccessRow, -#EditItemContainer .PublicDomainRow, -#EditItemContainer .SellThisItemRow, -#EditItemContainer .ResetPlaceRow { - font-size: 0.9em; - margin: 10px 0; - text-align: center; -} - -#EditItemContainer .PlaceAccessRow { - margin: 10px 0 10px 100px; - text-align: left; -} - -#ConfigurePlaceContainer .ResetPlaceRow .Button { - margin: 0 auto; -} - -#EditItemContainer .PricingLabel { - float: left; - font-weight: bold; - margin-right: 5px; - text-align: right; - width: 155px; -} - -#EditItemContainer .PricingField_Robux { - float: left; - margin-left: 5px; - text-align: left; - width: 110px; -} - -#EditItemContainer .PricingField_Tickets { - float: left; - margin-left: 5px; - text-align: left; - width: 110px; -} - -#EditItemContainer .Buttons { - margin: 0 auto; - margin-top: 10px; - margin-bottom: 10px; - text-align: center; -} - -#EditItemContainer .Button { - border-color: #555; - color: #555; - cursor: pointer; -} - -#EditItemContainer .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -#EditItemContainer .Label { - font-size: 1.2em; - margin: 0; - padding: 0; -} - -#EditItemContainer .TextBox { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#EditItemContainer .Multiline { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#EditItemContainer .Suggestion { - font: normal 0.8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -#ItemContainer .Ads_WideSkyscraper, -#EditItemContainer .Ads_WideSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -.GroupBuildRunningGameItem { - border: solid 2px #50F; -} - -.MultiplayerVisit { - background: url(/images/Play.png); - width: 250px; - height: 48px; -} - -.SoloVisit { - background: url(/images/PlaySolo.png); - width: 143px; - height: 48px; -} - -.SoloVisitText { - display: none; -} - -.BuildSolo { - background: url(/images/BuildSolo2.png); - width: 143px; - height: 48px; -} - -.EditButton { - background: url(/images/EditMode2.png); - width: 143px; - height: 48px; -} - -.PlaceInfoIcons { - text-align: center; - margin: 1em 5px; -} - -.iPublic { - background: url(/images/public.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.iLocked { - background: url(/images/locked.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.iUnlocked { - background: url(/images/unlocked.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.SharedIcon { - background: url(/images/Shared.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.CopyLockedIcon { - background: url(/images/CopyLocked.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.AllGearIcon { - background: url(/images/Suitcase16x16.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.GenreGearIcon { - background: url(/images/GenreSuitcase16x16.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.NoGearIcon { - background: url(/images/NoSuitcase16x16.png); - display: inline-block; - width: 16px; - height: 16px; -} - -#BadgeStatsHeader { - width: 388px; -} - -.item-header h1 { - margin: 0; - padding: 0; - font-size: 16px; - font-style: inherit; - display: inline; -} - -.section { - padding: 8px 0 0 0; -} - -.expires-div { - margin: 16px 0 8px 0; -} - -#timer { - color: Red; - margin: 8px 0; -} - -.item-detail div, -.creator-name { - line-height: 1.5em; -} - -#assetContainer, -#placeContainer { - float: left; - width: 420px; - overflow: hidden; -} - -.updateSetsDiv { - float: right; - width: 248px; - border: 2px dashed maroon; - margin-top: 5px; -} - -.newVersionMsg { - padding: 5px 0 5px 0; - text-align: center; - color: Yellow; - background-color: Maroon; - float: right; - width: 100%; -} - -#updateSetContainer { - padding: 5px; - float: right; - width: 100%; -} - -#updateSetContainer p { - cursor: pointer; - font-size: 12px; - float: right; - width: 100%; -} - -.resaleError { - padding: 5px; - background-color: #F00; -} - -.resaleConfirmation { - padding: 5px; - background-color: #0F0; -} - -.sellCollectibleMsg { - font-family: Verdana, Helvetica, sans-serif; - font-weight: bold; - font-size: 14px; -} - -.groupBuildingGameText { - font-size: 16px; - font-weight: bold; - font-style: italic; - line-height: 24px; -} - -#ProcessPurchase_Free, -#ProcessPurchase_Robux, -#ProcessPurchase_Tickets, -#ProcessRenew_Free, -#ProcessRenew_Robux, -#ProcessRenew_Tickets, -#ProcessROBLOXPurchase { - margin: 2.5em auto; - display: none; -} - -#Processing_Free, -#Processing_Robux, -#Processing_Tickets, -#Processing_FreeRenew, -#Processing_RobuxRenew, -#Processing_TicketsRenew, -.processingMsg { - margin: 0 auto; - text-align: center; - vertical-align: middle; -} - -.createSetPanelPopup { - width: 400px; - height: 100%; - padding: 0; - float: left; - display: none; -} - -.GetAFreeAccount:hover { - background-position: 0 56px; -} - -.GetAFreeAccount { - width: 316px; - height: 56px; - background: url(/images/Buttons/getAFreeAccount.png); -} - -.PlayAsGuest:hover { - background-position: 0 56px; -} - -.PlayAsGuest { - width: 316px; - height: 56px; - background: url(/images/Buttons/playAsGuest.png); -} - -.closeBtnCircle_35h:hover { - background-position: 0 35px; -} - -.closeBtnCircle_35h { - width: 35px; - height: 35px; - background: url(/images/Buttons/closeBtnCircle_35h.png); -} - -.fblike { - display: inline-block; - float: left; - background-color: White; -} - -.LinkCountContainer { - width: 200px; - margin: 0; - padding: 5px; -} - -.LinkStatusImage { - float: left; -} - -#ManageAccountButton img, -#CancelButtonImg, -#ChangeCreditCardInfoImg { - border: none; -} - -#ManageAccountButton { - text-align: center; -} - -#GoTurboPopupPanel, -#TurnOffTurboPopupPanel { - width: 550px; - text-align: center; -} - -#CurrentAccountUpgrades { - width: 90%; - margin: auto; - text-align: center; -} - -#CurrentAccountUpgrades table { - border-collapse: collapse; - margin-bottom: 15px; - text-align: center; - background-color: #d0d6e0; - width: 225px; - margin-left: auto; - margin-right: auto; -} - -#CurrentAccountUpgrades th { - border-bottom: solid 1px #999; - text-align: center; -} - -.rightCellWall { - border: 1px solid #999; -} - -.CancelBuildersClubMembership, -.ChangeCreditCardInfo { - text-align: center; - margin-top: 5px; -} - -#BCCompareModal { - background-color: White; - border: solid 2px #6e99c9; - margin: 5px; - padding: 10px; -} - -#BuyBCComparePanelTopInfo { - text-align: center; - padding: 10px 40px 10px 40px; - width: 340px; -} - -.BuyBCComparePanelTable { - font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; - font-size: 12px; - background: #fff; - width: 340px; - margin: 0 40px 0 40px; - border-collapse: collapse; - margin-bottom: 15px; -} - -.BCCompareHeaderRow { - color: #2163A5; - padding: 10px 8px; - border-bottom: 1px solid #D3D3D3; - text-align: left; -} - -.BuyBCComparePanelTable tr:hover td, -.BuyBCComparePanelTable tr:hover td { - color: Maroon; -} - -.BCCompareRowOdd td, -.BCCompareRowEven td { - color: #2163A5; - padding-top: 10px; - padding-left: 10px; - padding-bottom: 10px; -} - -.BCCompareRowOdd { - background: #e8edff; -} - -#BCCompareButtons { - text-align: center; - width: 340px; - margin: 0 40px 0 40px; -} - -#upgrades-membership-options .leftBorder { - border-left: 1px solid #D3D3D3; -} - -#upgrades-membership-options .odd #upgrades-membership-options .LeftText { - text-align: left; -} - -.daysConversion { - color: Red; -} - -.AspNet-Login input { - font-size: 1em; -} - -.AspNet-Login label em { - text-decoration: underline; - font-style: normal; -} - -.AspNet-Login .AspNet-Login-FailurePanel { - color: #F00; -} - -.AspNet-Login .AspNet-Login-UserPanel, -.AspNet-Login .AspNet-Login-PasswordPanel, -.AspNet-Login .AspNet-Login-RememberMePanel, -.AspNet-Login .AspNet-Login-SubmitPanel { - padding: 0.25em 0.1em 0 0; -} - -.AspNet-Login .AspNet-Login-UserPanel, -.AspNet-Login .AspNet-Login-PasswordPanel, -.AspNet-Login .AspNet-Login-SubmitPanel { - text-align: left; -} - -.AspNet-Login .AspNet-Login-UserPanel label, -.AspNet-Login .AspNet-Login-PasswordPanel label, -#PaneLogin .TextboxLabel { - font-weight: bold; -} - -.AspNet-Login .AspNet-Login-UserPanel input, -.AspNet-Login .AspNet-Login-PasswordPanel input { - width: 9em; -} - -#PaneNewUser { - float: right; - width: 170px; - background-color: #dcdcdc; - padding: 0 22px 22px; -} - -#PaneLogin { - width: 18em; - padding: 0; -} - -#PaneLogin .AspNet-Login div { - margin: 10px; -} - -#LoginView { - border: solid 1px Black; - width: 150px; - height: 250px; -} - -#LoginView h5 { - background-color: #ccc; - border-bottom: solid 1px #000; - margin: 0; -} - -#LoginView #AlreadySignedIn { - background-color: #eee; -} - -#LoginView .Label { - font-weight: bold; -} - -#LoginView .Text { - width: 133px; -} - -#LoginView .AspNet-Login { - height: 225px; - background-color: #eee; -} - -#LoginView .AspNet-Login .AspNet-Login-InstructionPanel, -#LoginView .AspNet-Login .AspNet-Login-HelpPanel, -#LoginView .AspNet-Login .AspNet-Login-UserPanel, -#LoginView .AspNet-Login .AspNet-Login-PasswordPanel, -#LoginView .AspNet-Login .AspNet-Login-RememberMePanel { - padding: 3px 5px 3px 5px; - text-align: left; -} - -#LoginView .AspNet-Login .AspNet-Login-SubmitPanel, -#LoginView .AspNet-Login .AspNet-Create-Account { - padding: 10px 5px 5px 10px; - text-align: center; -} - -#LoginView .AspNet-Login .AspNet-Login-PasswordRecoveryPanel { - padding: 5px 5px 5px 5px; - text-align: center; -} - -#LoginView .AspNet-Login .AspNet-Login-PasswordRecoveryPanel a { - color: #999; - font: normal 9px/normal Verdana, sans-serif; - padding: 5px 5px 5px 5px; - text-align: center; -} - -#LoginView .AspNet-Login .AspNet-Login-PasswordRecoveryPanel a:hover { - color: Blue; -} - -#Sidebars { - float: right; - width: 250px; -} - -#AlreadyRegistered, -#TermsAndConditions { - background-color: #eee; - border: solid 1px #000; - color: #555; - font: normal 12px/normal Verdana, sans-serif; - margin-top: 10px; - padding: 0 20px 10px 20px; -} - -#AlreadyRegistered h3, -#TermsAndConditions h3 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-weight: bold; - margin: 0 -20px 0 -20px; - padding: 4px; - text-align: center; -} - -#TermsAndConditions { - margin-top: 20px; -} - -.Registration { - background-color: #eee; - border: solid 1px #000; - color: #555; - float: left; - margin-top: 10px; - width: 620px; -} - -.Registration h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -.Registration h3 { - margin: 10px 0 0 0; - text-align: center; -} - -.Registration fieldset { - font-size: 1.2em; - margin: 15px 0 0 0; -} - -.Registration .TextBox { - vertical-align: middle; - width: 150px; -} - -.Registration .Label { - vertical-align: middle; -} - -.Registration #EnterUsername, -.Registration #EnterPassword, -.Registration #EnterEmail, -.Registration #EnterAgeGroup, -.Registration #EnterChatMode { - margin: 0 auto; - width: 60%; -} - -.Registration .UsernameRow, -.Registration .PasswordRow, -.Registration .ConfirmPasswordRow, -.Registration .EmailRow { - height: 5em; - line-height: 5em; - padding: 3px; - text-align: right; -} - -.Registration .PasswordRow, -.Registration .ConfirmPasswordRow { - height: 3em; - line-height: 3em; -} - -.Registration .AgeGroupRow, -.Registration .ChatModeRow { - font-size: 0.9em; - margin: 10px 0 10px 100px; -} - -.Registration .Confirm { - margin: 20px 0 20px 0; - text-align: center; -} - -.Registration .Validators { - margin-left: 9px; -} - -.Registration .Legend { - color: Blue; - margin-left: 9px; -} - -.Registration .Suggestion { - font: normal 0.8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -.Registration label { - margin-right: 5px; -} - -.Registration input { - width: 9em; -} - -.AgeOptions { - margin: 0 auto; - margin-top: 20px; - width: 490px; -} - -.AgeOptions #Under13, -.AgeOptions #Over12 { - margin: 0; - padding: 0 20px; - width: 200px; - text-align: center; -} - -.AgeOptions #ParentAccount { - margin: 0; - padding: 0 0 0 40px; - width: 400px; - text-align: center; -} - -#AgeOptions .Label { - text-align: center; -} - -.MessageContainer .MultilineTextBox { - min-height: 50px; -} - -.MessageContainer #AdsPane { - border: solid 1px #000; - float: left; - width: 160px; -} - -.MessageContainer #MessagePane { - float: left; - margin: 0 0 0 60px; - width: 650px; -} - -.MessageContainer h3 { - text-align: left; - width: 622px; -} - -.MessageContainer #MessagePane .Buttons { - width: 622px; -} - -.MessageContainer #MessagePane .Buttons .Button { - margin: 10px 0 0 10px; -} - -.MessageContainer .Label { - font-weight: bold; - padding: 6px 0 3px 0; -} - -.MessageContainer .MessageReaderContainer { - border: solid 1px #000; - padding: 10px; - width: 95%; -} - -.MessageReaderContainer #Message { - text-align: left; -} - -#Message #DateSent { - text-align: left; -} - -#Message #Author { - margin: 0; - text-align: left; -} - -#Message #Subject { - display: inline-block; - *display: inline; - font-weight: bold; - margin: 0; - text-align: center; - width: 350px; - *zoom: 1; -} - -#Message .Body { - text-align: left; - vertical-align: top; -} - -#MessageEditorContainer { - border: solid 1px #000; - padding: 10px; - width: 95%; -} - -.EmptyInbox { - text-align: center; - margin: 20px 0; -} - -.MessageEditor { - text-align: left; -} - -.MessageEditor #From { - text-align: left; - width: 39%; -} - -.MessageEditor #To { - margin: 5px 0 0 0; - text-align: left; - width: 39%; -} - -.MessageEditor .CannedResponsesPanel { - background-color: #eee; - border: solid 1px #000; - margin: 30px 0; - width: 200px; -} - -.MessageEditor .CannedResponsesPanel h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - font-size: 1.3em; - margin: 0; - text-align: center; - display: block; -} - -.MessageEditor #CannedResponses { - margin: 0; - padding: 5px 0; - width: 200px; -} - -.MessageEditor .CannedResponse { - margin: 0; - padding: 7px 5px; - text-align: center; - width: 190px; -} - -.MessageEditor #CannedResponses .Button { - padding: 3px 5px; -} - -.MessageEditor .Body { - text-align: left; - vertical-align: top; -} - -.MessageContainer #Confirmation h3 { - text-align: left; - width: 422px; -} - -.MessageContainer #Confirmation .Buttons { - width: 422px; -} - -.MessageContainer #Confirmation #Message { - border: solid 1px #000; - padding: 10px; - width: 95%; -} - -#InvitationContainer #AdsPane { - border: solid 1px #000; - float: left; - width: 160px; -} - -#InvitationContainer #InvitationPane { - float: left; - margin: 0 0 0 60px; - width: 650px; -} - -#InvitationContainer h3 { - text-align: left; - width: 622px; -} - -#InvitationContainer .Buttons { - width: 622px; -} - -#InvitationContainer .Button { - float: right; - font-family: Verdana, Sans-Serif; - padding: 3px 10px 3px 10px; - text-decoration: none; -} - -#InvitationContainer .TextBox { - border-color: Gray; - border-style: dashed; - padding: 5px; - width: 98%; -} - -#InvitationContainer .Label { - font-weight: bold; -} - -#InvitationContainer .MessageReaderContainer { - border-style: solid; - border-width: 1px; - border-color: #000; - padding: 10px; - width: 95%; -} - -.MessageReaderContainer #Message { - float: left; - text-align: left; -} - -#InvitationContainer #MessageEditorContainer .MessageEditor .CannedResponsesPanel { - display: none; -} - -#InvitationContainer #Confirmation h3 { - text-align: left; - width: 422px; -} - -#InvitationContainer #Confirmation .Buttons { - width: 422px; -} - -#InvitationContainer #Confirmation #Message { - border: solid 1px #000; - margin: 10px; - padding: 10px; - width: 95%; -} - -.ReportAbuse { - position: relative; - text-align: left; -} - -.ReportAbuse .AbuseButton a { - color: #F99; - background: none; - padding-left: 16px; - padding-bottom: 2px; -} - -.ReportAbuse .AbuseButton a:hover { - background: url("/images/css/abuse.png") no-repeat scroll 0 2px transparent; - color: #F00; -} - -.ReportAbuse img { - display: none; -} - -#ParentsContainer #BreadcrumbsContainer { - margin-bottom: 20px; -} - -#ParentsContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0 0 20px 0; -} - -#ParentsContainer #LeftColumn { - float: left; - padding: 0 15px 0 0; - width: 400px; -} - -#ParentsContainer #RightColumn { - float: right; - padding: 0 0 0 15px; - width: 400px; -} - -#ParentsContainer .ParentsSection { - background-color: #fff; - border: solid 1px #ccc; - height: 120px; - margin-bottom: 20px; - padding: 15px 15px; - width: 370px; -} - -#ParentsContainer h3, -dt { - color: Blue; - font-family: Verdana, Sans-Serif; - font-size: 1.3em; - font-weight: normal; - letter-spacing: 0.1em; - line-height: 1em; -} - -#ParentsContainer .SectionIcon { - float: left; - margin-right: 20px; -} - -#ParentsContainer .PageImage { - float: right; -} - -#partycontainer { - bottom: 110px; - right: 10px; -} - -.partyWindow { - color: #666; - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - width: 250px; -} - -.partyWindow .title { - background: transparent url("/images/friendsbar/tab_blue19h_l.gif") no-repeat left top; - display: block; - text-decoration: none; - padding-left: 2px; - height: 19px; - width: 248px; - cursor: pointer; -} - -.partyWindow .title span { - background: transparent url("/images/friendsbar/tab_blue19h_r.gif") no-repeat right top; - display: block; - height: 15px; - padding: 2px 15px 2px 7px; - text-decoration: none; - color: #fff; -} - -.partyWindow .title_flash { - background: transparent url("/images/friendsbar/tab_white19h_l2.gif") no-repeat left top; -} - -.partyWindow .title_flash span { - background: transparent url("/images/friendsbar/tab_white19h_r2.gif") no-repeat right top; - color: #444; -} - -.partyWindow .title strong { - display: block; - padding: 2px 15px 4px 6px; - background: url("/images/chat/tab_blue21h_r.png") no-repeat right top; - color: #fff; - width: 227px; - font-weight: bold; -} - -.partyWindow .closeparty { - width: 10px; - height: 9px; - margin: 5px 9px 0 0; - cursor: pointer; - position: absolute; - right: 0; - top: 0; - color: #fff; - font-weight: bold; - font-size: 14px; -} - -.partyWindow .main { - clear: both; - width: 248px; - height: auto; - margin: 0; - background: #f2f2f2; - border: 1px solid #a6a6a6; - border-top: 0 none; - overflow: auto; -} - -.partyWindow .kickuser { - float: right; - padding-right: 5px; - color: Red; - cursor: pointer; -} - -#new_party p { - text-align: center; - padding: 40px 0 0 0; -} - -#party_none .main .btn_green21h { - margin: 15px 0 0 77px; -} - -.clear { - clear: both; -} - -.main #new_party_clear { - padding: 40px 0 0 0; -} - -.btn_green21h { - float: left; - background: url("/images/chat/btn_green21h_l.png") no-repeat left top; - padding: 0 0 0 2px; -} - -.btn_green21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_green21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_green21h:hover { - background: url("/images/chat/btn_green21h_over_l.png") no-repeat left top; -} - -.btn_green21h:hover a { - background: url("/images/chat/btn_green21h_over_r.png") no-repeat right top; -} - -.btn_red21h { - float: left; - background: url("/images/chat/btn_red21h_l.png") no-repeat left top; - padding: 0 0 0 2px; -} - -.btn_red21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_red21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_red21h:hover { - background: url("/images/chat/btn_red21h_over_l.png") no-repeat left top; -} - -.btn_red21h:hover a { - background: url("/images/chat/btn_red21h_over_r.png") no-repeat right top; -} - -.btn_black21h { - float: left; - background: url("/images/chat/btn_black21h_l.png") no-repeat left top; - padding: 0 0 0 2px; - color: White; -} - -.btn_black21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_black21h_r.png") no-repeat right top; - color: #FFF; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_black21h:hover { - background: url("/images/chat/btn_black21h_over_l.png") no-repeat left top; -} - -.btn_black21h:hover a { - background: url("/images/chat/btn_black21h_over_r.png") no-repeat right top; -} - -.main h1 { - padding: 15px 20px 15px 20px; - font-size: 130%; - text-align: center; -} - -.main #invite_status { - padding: 10px 0 10px 0; -} - -.main p { - padding: 0 0 7px 0; -} - -.main .btn_green21h { - float: left; - margin: 0 0 0 35px; -} - -.main .btn_black21h { - float: right; - margin: 0 35px 0 0; -} - -.main #invite_clear { - padding: 15px 0 0 0; -} - -dt { - float: left; -} - -dd { - margin-left: 30px; -} - -.grey9 { - color: gray; - font-size: 9px; -} - -.status { - color: gray; - font-size: 11px; -} - -.name_me { - font-weight: bold; - color: #06c; -} - -.name_other { - font-weight: bold; - color: #007b00; -} - -.name_status { - font-weight: bold; -} - -.partyWindow { - color: black; - font-size: 11px; - height: auto; -} - -.members dl { - padding: 0 0 0 5px; -} - -.members dt { - padding: 4px 0 0 0; -} - -.members dd { - padding: 4px 0 1px 0; -} - -.main p { - padding: 10px 0 5px 0; - text-align: center; -} - -#chat_messages { - padding: 0 3px 3px 3px; - margin: 5px 5px 0 5px; - height: 217px; - overflow: auto; - background-color: white; - border-style: solid; - border-width: 1px; - border-color: #aaa; -} - -#chat_messages li { - padding: 6px 0 0 0; - list-style-type: none; -} - -#party_game_thumb { - width: 75px; - margin-right: 5px; - float: left; -} - -#party_current_game { - margin: 5px; -} - -#party_game_name { - width: 140px; - float: left; -} - -#party_game_follow_me { - margin-top: 5px; -} - -#chat_input { - margin: 5px 5px 0 5px; - padding-right: 2px; -} - -#chat_input input { - border: 1px solid #ccc; - width: 236px; - height: 40px; -} - -#chat_input textarea { - border: 1px solid #aaa; - overflow: auto; - width: 100%; - height: 50px; -} - -.main #leader_clear { - padding: 15px 0 0 0; -} - -#party_my .main .btn_black21h { - margin: 15px 70px 0 0; -} - -.GuestPlayAvatarImage { - border: solid 3px green; -} - -.GuestPlayAvatarImage:Hover { - border: solid 3px #0C0; -} - -#ConfigurePlaceContainer { - background-color: #eee; - border: solid 1px #000; - color: #555; - margin: 0 auto; - width: 620px; -} - -#ConfigurePlaceContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -#ConfigurePlaceContainer fieldset { - font-size: 1.2em; - margin: 0; -} - -#ConfigurePlaceContainer #PlaceName { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#ConfigurePlaceContainer #PlaceThumbnail { - border: solid 1px #555; - height: 230px; - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#ConfigurePlaceContainer #PlaceDescription { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#ConfigurePlaceContainer #PlaceAccess, -#ConfigurePlaceContainer #PlaceCopyProtection, -#ConfigurePlaceContainer #Comments, -#ConfigurePlaceContainer #PlaceIsDefault, -#ConfigurePlaceContainer #PlaceReset, -#ConfigurePlaceContainer #AllowGear, -#ConfigurePlaceContainer #SetGenres, -#ConfigurePlaceContainer #PlaceBuildAccess { - margin: 0 auto; - margin-top: 10px; - width: 420px; -} - -#ConfigurePlaceContainer .PlaceAccessRow, -#ConfigurePlaceContainer .CopyProtectionRow, -#ConfigurePlaceContainer .EnableCommentsRow, -#ConfigurePlaceContainer .PlaceIsDefaultRow, -.MyItemIndentedOption { - font-size: 0.9em; - margin: 10px 0 10px 100px; -} - -#ConfigurePlaceContainer .ResetPlaceRow { - font-size: 0.9em; - margin: 10px 0; - text-align: center; -} - -#ConfigurePlaceContainer .ResetPlaceRow .Button { - margin: 0 auto; -} - -#ConfigurePlaceContainer .Buttons { - margin: 0 auto; - margin-top: 10px; - margin-bottom: 10px; - text-align: center; -} - -#ConfigurePlaceContainer .Button { - border-color: #555; - color: #555; - cursor: pointer; -} - -#ConfigurePlaceContainer .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -#ConfigurePlaceContainer .Label { - font-size: 1.2em; - margin: 0; - padding: 0; -} - -#ConfigurePlaceContainer .TextBox { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#ConfigurePlaceContainer .MultilineTextBox { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#ConfigurePlaceContainer .Suggestion { - font: normal 0.8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -#ConfigurePlaceContainer .popupControl { - border-color: #000; -} - -#ConfigurePlaceContainer .PopUpOption { - font: normal 0.8em/normal Verdana, sans-serif; - padding: 4px; -} - -#ConfigurePlaceContainer .PopUpInstruction { - font: normal 1.1em/normal Verdana, sans-serif; - padding: 4px; - text-align: center; -} - -#Place_PlacePanel { - float: left; - width: 490px; - margin-right: 10px; -} - -#Place_AuthorPanel { - float: left; - width: 200px; -} - -#Place_GamesPanel { - margin-top: 10px; - width: 700px; - clear: left; -} - -#ConfigureShowcase { - font-family: Verdana, sans-serif; -} - -#ConfigureShowcase h2 { - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#ConfigureShowcase .CallbackStyle { - border: thin blue inset; -} - -#ConfigureShowcase .DragHandle { - width: 161px; - height: 101px; - cursor: move; - border: outset 1px white; -} - -#ConfigureShowcase .ItemArea { - float: left; - font-size: 1.2em; - height: 82px; - padding: 10px; - text-align: left; - width: 500px; -} - -#ConfigureShowcase .ActionsArea { - float: left; - font-weight: bold; - height: 82px; - padding: 10px; - text-align: right; - width: 155px; -} - -#ConfigureShowcase .ReorderCue { - border: dashed thin black; - width: 100%; - height: 101px; -} - -#ConfigureShowcase ul, -#ConfigureShowcase ol { - margin: 0; -} - -#ConfigureShowcase li { - background: #EEE; - border: solid 1px #000; - color: #000; - list-style: none; - margin: 3px 0; - width: 100%; -} - -#ConfigureShowcase blockquote li { - border-style: none; - list-style-type: circle; - margin-left: 20px; -} - -.PlaceLauncherStatus { - color: #333; - display: none; - font-size: 16px; - font-weight: bolder; - line-height: 19px; -} - -.PlaceLauncherStatusBackBuffer { - position: relative; - display: none; -} - -.CancelPlaceLauncherButton { - background-color: White; - border: none; - color: Blue; - cursor: pointer; - font-size: 12px; -} - -.CancelPlaceLauncherButton:Hover, -.CancelPlaceLauncherButton:Active { - background-color: White; - border: none; - color: Blue; - cursor: pointer; - text-decoration: underline; -} - -.PlaceLauncherModal { - border: none; - color: Black; - height: 125px; - margin: 1.5em; - padding: 10px; - text-align: center; - width: 360px; -} - -#FeaturedGameButtonContainer { - border: none; - width: 330px; - height: 267px; -} - -.FeaturedGameButton { - cursor: pointer; - position: absolute; - right: 60px; - top: 28px; -} - -.VisitButtonsGuestCharacter { - display: inline-block; - *display: inline; - padding: 10px 5px; -} - -legend span { - color: #777; - line-height: 6px; -} - -#EditProfileContainer { - background-color: #eee; - border: solid 1px #000; - color: #555; - margin: 0 auto; - width: 620px; -} - -#EditProfileContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -#EditProfileContainer h3 { - text-align: center; -} - -#EditProfileContainer fieldset { - font-size: 1.2em; - margin: 15px 0 0 0; -} - -#EditProfileContainer .MultilineTextBox { - width: 250px; -} - -#EditProfileContainer .TextBox { - vertical-align: middle; - width: 150px; -} - -#EditProfileContainer .Label { - vertical-align: middle; -} - -#EditProfileContainer #Confirmation { - border: dashed 1px #f00; - background-color: #ccc; - color: #f00; - font-family: Verdana, Sans-Serif; - margin: 0 auto; - margin-top: 10px; - padding: 10px 5px; - text-align: center; - width: 410px; -} - -#EditProfileContainer #AgeGroup, -#EditProfileContainer #ChatMode, -#EditProfileContainer #PrivacyMode, -#EditProfileContainer #ResetPassword, -#EditProfileContainer #Blurb { - margin: 0 auto; - width: 60%; -} - -#EditProfileContainer #EnterEmail { - margin: 0 auto; - width: 60%; - text-align: left; -} - -#EditProfileContainer .Buttons { - margin: 20px 0 20px 0; - text-align: center; -} - -#EditProfileContainer .AgeGroupRow, -#EditProfileContainer .ChatModeRow { - font-size: 0.9em; - margin: 10px 0 10px 100px; -} - -#EditProfileContainer .ResetPasswordRow { - margin: 10px 0; - text-align: center; -} - -#EditProfileContainer .BlurbRow { - padding: 10px 4px 10px 4px; - text-align: right; -} - -#EditProfileContainer .Legend { - color: Blue; - margin-left: 9px; -} - -#EditProfileContainer .Suggestion { - font: normal 0.8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -#EditProfileContainer .Validators { - margin-left: 9px; -} - -.FrontPagePanel { - float: left; - border: solid 1px black; - margin: 5px; - background-color: White; -} - -#SignInPane { - border: none; - margin-left: 0; - width: 152px; - height: 250px; -} - -#Movie { - width: 424px; - height: 250px; -} - -#FrontPageRectangleAd { - margin: 5px 0 5px 5px; - width: 300px; - height: 250px; - background-color: Transparent; -} - -#SalesPitch { - margin-left: 0; - width: 586px; - height: 90px; -} - -#WhatsNew { - margin-left: 0; - width: 586px; - height: 280px; -} - -#RandomFacts { - float: right; - margin-right: 0; - width: 300px; - height: 150px; -} - -.RandomFactoid { - text-align: center; - height: 32px; - width: 290px; - padding: 2px; - overflow: hidden; -} - -#marqueecontainer { - position: relative; - width: 300px; - height: 100px; - background-color: white; - overflow: hidden; -} - -.RandomFactoid img { - float: left; -} - -#ParentsCorner { - margin-right: 0; - width: 300px; - height: 220px; - _height: 240px; -} - -#ParentsCorner #Inside { - padding: 10px; -} - -.ShieldImage { - float: left; - padding: 5px; -} - -.TrusteeSeal { - float: left; - width: 140px; - padding: 5px; -} - -#NewsFeeder { - margin-right: 0; - width: 158px; -} - -#FrontPageBannerAd { - margin-left: 0; - width: 728px; - height: 90px; - background-color: Transparent; -} - -.BadAdButton { - background-color: Transparent; - border: 0; - font-size: 0.8em; - font-family: Verdana; - padding: 0; - position: relative; - text-align: center; - height: 8px; - top: -2px; - right: 0; -} - -.BadAdButton:hover { - background-color: #fff; - border: solid 1px #000; - text-decoration: none; -} - -.Centered { - margin-left: auto; - margin-right: auto; -} - -.ShadowedStandardBox { - position: relative; - z-index: 0; - _padding-bottom: 6px; - _overflow-y: hidden; - margin-bottom: 10px; -} - -.ShadowedStandardBox .Header { - background: url(/images/HeaderGradientW800.png) repeat-y top left; - text-align: center; - color: White; - height: 20px; - line-height: 20px; - font-size: 15px; - font-weight: bold; - display: block; - position: relative; - z-index: 0; - white-space: nowrap; -} - -.ShadowedStandardBox .Content { - position: relative; - z-index: 0; - border: 2px solid #6e99c9; - background-color: White; - height: 100%; - _height: 3000px; - padding: 10px 10px 10px 10px; -} - -.Shadow { - display: block; - background: url(/images/ShadowAlpha.png) no-repeat bottom right !important; - background: #D3DEFF; - height: 100%; - _height: 3000px; - width: 100%; - position: absolute; - top: 6px; - left: 6px; - z-index: -1; -} - -.ShadowedStandardBox .Button { - cursor: pointer; - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; - border: solid 1px #ccc; - padding: 3px 10px 3px 10px; - font-family: Verdana; - font-size: 10px; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.ShadowedStandardBox .Button:link, -.ShadowedStandardBox .Button:visited { - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; -} - -.ShadowedStandardBox .Button:hover, -.ShadowedStandardBox .Button:active { - background-color: #5F84A8; - color: White; - text-decoration: none; -} - -.OutlineBox { - z-index: 0; - position: relative; - margin-top: 16px; - padding-top: 14px; - margin-bottom: 10px; - border: solid 2px #B6CCE4; -} - -.OutlineBox .OB_HeaderPositioner { - z-index: 1; - position: absolute; - top: -16px; - left: 0; - width: 100%; -} - -.OutlineBox .OB_Header { - z-index: 1; - display: block; - width: 90%; - margin-left: auto; - margin-right: auto; - background-color: White; - border: solid 2px #B6CCE4; - text-align: center; - font-size: 18px; - font-weight: bold; - padding: 2px 2px 2px 2px; -} - -.OutlineBox .OB_Content { - padding-top: 5px; -} - -#InviteAFriendContainer { - margin-top: 10px; -} - -#InviteAFriendContainer h3 { - margin: 0 auto; - padding: 0 0 10px 0; - text-align: left; - width: 700px; -} - -#InviteAFriendContainer #Exposition { - margin: 0 auto; - padding: 0 0 10px 0; - width: 700px; -} - -#InviteAFriendContainer .Button { - border: solid 1px #000; - color: #000; - font-family: Verdana, Sans-Serif; - margin: 0 0 0 10px; - padding: 3px 10px 3px 10px; - text-decoration: none; -} - -#InviteAFriendContainer .MultilineTextBox { - border: 2px solid #CCC; - font-family: Arial, Sans-Serif; - line-height: 1.5em; - padding: 5px 5px 5px 5px; - width: 92%; -} - -#InviteAFriendContainer .TextBox { - border: 2px solid #CCC; - font-family: Arial, Sans-Serif; - padding: 5px 5px 5px 5px; - width: 92%; -} - -#InviteAFriendContainer .Label { - font-weight: bold; -} - -#InviteAFriendContainer #InvitationElements { - margin: 0 auto; - padding: 5px 5px 5px 5px; - width: 688px; -} - -#InviteAFriendContainer #Name, -#InviteAFriendContainer #Recipients, -#InviteAFriendContainer #Message { - margin: 15px 0 0 0; -} - -#InviteAFriendContainer .FormLabel { - float: left; - width: 94px; -} - -#InviteAFriendContainer .FormField { - float: left; - width: 317px; -} - -#InviteAFriendContainer .FormNotes { - float: right; - font-family: Verdana; - font-size: xx-small; - width: 277px; - text-align: left; -} - -#InviteAFriendContainer #Confirmation h3 { - margin: 0 auto; - text-align: left; - width: 400px; -} - -#InviteAFriendContainer #Confirmation #Message { - border: solid 1px #000; - margin: 0 auto; - padding: 10px 10px 10px 10px; - width: 380px; -} - -#InviteAFriendContainer #Confirmation .Buttons { - margin: 0 auto; - width: 400px; -} - -#ShareRobloxRibbon { - margin: 15px 0; - padding: 3px; - text-align: center; -} - -#ShareRobloxRibbon a { - text-decoration: none; - color: #000; -} - -.ShareRobloxButton { - padding: 4px; - margin: 4px 6px; - border: 3px solid #B2C1D2; - background: #A5D0FF; - color: #000; - cursor: pointer; - font-size: 16px; -} - -.ShareRobloxButtonCurrent { - padding: 4px; - margin: 4px 6px; - border: 3px solid #B2C1D2; - background: #527396; - color: #FFF; - cursor: pointer; - font-size: 16px; - text-decoration: none; -} - -.ShareRobloxButton:hover { - background: #527396; - color: #FFF; -} - -.clearing { - clear: both; -} - -#PleaseUpgradeMeContainer { - margin-top: 10px; -} - -#StoreContainer { - font-family: Verdana, Sans-Serif; -} - -#StoreContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - letter-spacing: 0.5em; - line-height: 1em; - margin: 0; - padding: 0; -} - -#StoreContainer h3 { - font-family: Verdana, Sans-Serif; - font-size: 1.5em; - font-weight: normal; - letter-spacing: 0.1em; - line-height: 1em; - margin: 5px 0; - padding: 0; -} - -#StoreContainer ul { - list-style: none; - margin: 10px 0 30px 0; -} - -#StoreContainer ul li { - margin-bottom: 0.5em; -} - -#StoreContainer ul a { - font-size: 1.1em; -} - -#StoreContainer .DisplayFilters { - width: 150px; -} - -#StoreContainer #Products { - float: left; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - width: 585px; -} - -#StoreContainer #Products #HeaderPager, -#StoreContainer #Products #FooterPager { - margin: 0 24px 0 10px; - padding: 2px 0; - text-align: right; -} - -#StoreContainer #Products #HeaderPager { - margin-bottom: 10px; -} - -#StoreContainer #Products #HeaderPager .Label, -#StoreContainer #Products #FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#StoreContainer #Products #AdditionalPlace { - margin: 0 auto; - width: 420px; -} - -#StoreContainer #AdsPane { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -#StoreContainer .Label, -#StoreContainer .Detail, -#StoreContainer .DetailHighlighted { - font-size: 0.8em; -} - -#StoreContainer .DetailHighlighted { - color: Red; - font-weight: bold; -} - -#StoreContainer .Thumbnail { - border: solid 1px #000; - height: 230px; - width: 420px; -} - -#StoreContainer .Price { - font-weight: bold; - margin: 5px 0; -} - -#StoreContainer .InsufficientFunds { - color: Red; -} - -.tipsy { - padding: 5px; - font-size: 10px; - opacity: 0.8; - filter: alpha(opacity=80); - background-repeat: no-repeat; - background-image: url(/images/css/tipsy.gif); -} - -.tipsy-inner { - padding: 5px 8px 4px 8px; - background-color: black; - color: white; - max-width: 200px; - text-align: center; -} - -.tipsy-inner { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} - -.tipsy-north { - background-position: top center; -} - -.tipsy-south { - background-position: bottom center; -} - -.tipsy-east { - background-position: right center; -} - -.tipsy-west { - background-position: left center; -} - -#CancelBuildersClubContainer, -#PaymentMethodsContainer, -#PaymentContainer, -#PayPalContainer, -#CashContainer { - background-color: #fff; - font-family: Arial, Sans-Serif; - margin: 0 auto; - padding: 20px 80px; -} - -#UpgradeCompleteContainer, -#CancelAccountUpgradeContainer, -#ManageAccountUpgradesContainer, -#AccountUpgradesConfirmationContainer { - background-color: #fff; - font-family: Arial, Sans-Serif; - margin: 0 auto; -} - -#AccountUpgradesConfirmationContainer, -#CancelAccountUpgradeContainer { - border: solid 2px #6e99c9; - padding: 10px 10px 20px 10px; -} - -#CancelBuildersClubContainer h2, -#PaymentMethodsContainer h2, -#PaymentContainer h2, -#PayPalContainer h2, -#CashContainer h2, -#UpgradeCompleteContainer h2, -#ManageAccountUpgradesContainer h2, -#CancelAccountUpgradeContainer h2, -#AccountUpgradesConfirmationContainer h2 { - font-family: Arial, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#UpgradeCompleteContainer h2, -#CancelAccountUpgradeContainer h2, -#ManageAccountUpgradesContainer h2, -#AccountUpgradesConfirmationContainer h2 { - font-size: 2em; - letter-spacing: 0.1em; - line-height: 1.5em; - margin: 0 auto; - margin-top: 10px; - width: 600px; -} - -#UpgradeCompleteContainer p, -#ManageAccountUpgradesContainer p, -#AccountUpgradesConfirmationContainer p { - line-height: 1.6em; -} - -#RobloxCentralBank { - border-bottom: solid 1px #000; -} - -#MembershipOptions .Label, -#SpecialMembershipOption .Label { - text-align: center; -} - -#WhyJoin { - display: inline; - float: left; - margin: 30px 10px 20px 90px; - padding: 0; - width: 375px; -} - -#WhyJoin h3 { - font-size: 15pt; - font-weight: normal; - letter-spacing: 0.2em; - margin: 0 0 15px 0; - padding: 0; -} - -#WhyJoin #MembershipBenefits { - list-style: none; - margin: 0; - padding: 0; -} - -#WhyJoin #MembershipBenefits li { - background-position: 0 0; - background-repeat: no-repeat; - font-family: Arial, Sans-Serif; - font-size: 11pt; - margin: 0 0 10px 10px; - min-height: 32px; - padding: 0 0 0 40px; -} - -#WhyJoin .MembershipBenefits { - list-style: none; - margin: 0; - padding: 0; -} - -#WhyJoin .MembershipBenefits li { - background-position: 0 0; - background-repeat: no-repeat; - font-family: Arial, Sans-Serif; - font-size: 11pt; - margin: 0 0 10px 10px; - min-height: 32px; - padding: 0 0 0 40px; -} - -#WhyJoin .MembershipBenefits .Benefit_MultiplePlaces { - background-image: url(/images/MultiplePlacesBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_RobuxAllowance { - background-image: url(/images/AllowanceBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_SellContent { - background-image: url(/images/SellBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_SuppressAds { - background-image: url(/images/AdSuppressionBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_ExclusiveHat { - background-image: url(/images/HardHatBullet.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_OwnPlace { - background-image: url(/images/JoinBulletHouse.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_GetTix { - background-image: url(/images/JoinBulletTreasure.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_BuyStuff { - background-image: url(/images/JoinBulletShoppingBag.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_CustomizeGuy { - background-image: url(/images/JoinBulletWizardHat.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Username { - background-image: url(/images/JoinBulletStar.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Forums { - background-image: url(/images/JoinBulletScript.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Stats { - background-image: url(/images/JoinBulletStats.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Comments { - background-image: url(/images/JoinBulletPencil.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Badges { - background-image: url(/images/JoinBulletBadges.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Friends { - background-image: url(/images/JoinBulletFriends.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_WeRock { - background-image: url(/images/JoinBulletCreative.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_OhYeahItsFree { - background-image: url(/images/JoinBulletHappy.png); -} - -#SpecialMembershipOption { - display: inline; - float: right; - margin: 30px 69px 0 10px; - padding: 0; - width: 254px; -} - -#PaymentMethodsContainer .PaymentMethods { - border: none; - margin: 20px auto; - padding: 10px; - width: 600px; -} - -#PaymentMethodsHeader { - margin: 0 auto; - padding-left: 60px; - width: 600px; -} - -.PaymentMethodRow { - font-family: Arial, Helvetica, Sans-Serif; - background-color: transparent; - color: #090; -} - -.PaymentMethodRow:hover { - background-color: #f2f2f2; - cursor: pointer; - color: #00d900; -} - -.PaymentMethodRowUnavailable a { - color: #090; -} - -.PaymentMethodRow td, -.PaymentMethodRowUnavailable td { - border: none; - padding: 20px; -} - -#PaymentMethodsContainer .PaymentMethodName { - color: #333; - font-weight: bold; - font-size: medium; -} - -#Legend { - margin-top: 10px; -} - -#CurrentBalance { - color: #333; -} - -#PaymentContainer #Account, -#PaymentContainer #BillingInfo, -#PaymentContainer #ProductAndPricing, -#PaymentContainer #ProductAndPricing1, -#PaymentContainer #CreditCard, -#PayPalContainer #ConfirmDetails, -#CashContainer #ConfirmDetails, -#PayPalContainer #Notes, -#CashContainer #Notes { - margin-bottom: 20px; -} - -#PaymentContainer #Pay, -#PayPalContainer #Continue { - margin: 0 auto; - text-align: center; -} - -.PaymentDropDownList { - padding: 5px; - width: 95%; -} - -#PaymentContainer .Label, -#PayPalContainer .Label, -#CashContainer .Label { - float: left; - font-size: 1.25em; - height: 40px; - line-height: 40px; - padding: 0 10px; - vertical-align: middle; - width: 250px; -} - -#ConfirmDetails .Detail { - background-color: #EEE; - border-bottom: solid 1px #CCC; - border-top: solid 1px #CCC; - height: 40px; - line-height: 40px; -} - -#PaymentContainer .Field, -#PayPalContainer .Field, -#CashContainer .Field { - float: left; - height: 40px; - line-height: 40px; - padding: 0 10px; - vertical-align: middle; - width: 400px; -} - -#PaymentContainer .Button, -#PayPalContainer .Button { - font-size: 16px; - margin: 0 3px; -} - -#PaymentMethodsContainer .ExistingSubscription { - font-size: 16px; - color: Blue; - width: 50%; - text-align: center; -} - -#PayPalContainer .PayPalDisallowedMessage { - font-size: 16px; - padding-bottom: 12px; - color: Blue; - width: 90%; -} - -#ProductAndPricing, -#ProductAndPricing1 { - float: left; - width: 865px; -} - -#ProductAndPricing .TotalRowName, -#ProductAndPricing .TotalRowPrice { - font-size: 14px; - font-weight: bold; - padding-top: 10px; -} - -.TotalRowName, -.TotalRowPrice, -.ProductName, -.SuperchargeProductName, -.ProductPrice, -.SuperchargeProductPrice { - float: left; - font-weight: bold; -} - -.ProductName, -.TotalRowName, -.SuperchargeProductName { - width: 600px; -} - -.ProductPrice, -.TotalRowPrice, -.SuperchargeProductPrice { - width: 200px; -} - -.SuperchargeProductName, -.SuperchargeProductPrice { - color: #E6B800; -} - -#PaymentDetails #Account .Field, -#PaymentDetails #ProductAndPricing .Field, -#PayPalContainer #ConfirmDetails .Field, -#CashContainer #ConfirmDetails .Field { - font-size: 1.25em; - font-weight: bold; -} - -#PaymentDetailsTable { - width: 400px; -} - -#UpgradeCompleteContainer #Message, -#CancelAccountUpgradeContainer #Message, -#ManageAccountUpgradesContainer #CurrentAccountUpgrades, -#AccountUpgradesConfirmationContainer #Message { - background-color: #eee; - border: solid 1px #ccc; - margin: 0 auto; - margin-top: 15px; - padding: 10px; - width: 580px; -} - -#ManageAccountUpgradesContainer #CurrentAccountUpgrades { - margin-top: 25px; - font-family: Arial, Helvetica, Sans-Serif; -} - -.ExtensionNote { - margin: 10px 0; -} - -.UpgradeStatus { - font-weight: bold; - margin: 20px; - text-align: center; -} - -#BuildersClubContainer { - font-family: Arial, Sans-Serif; - margin: 0 auto; - width: 900px; -} - -#BuildersClubContainer #LeftColumn { - background-color: #fff; - width: 575px; - float: left; - margin-top: 10px; -} - -#BuildersClubContainer #LeftColumn #MembershipOptions { - margin-bottom: 50px; - padding: 10px 10px 0 10px; -} - -#BuildersClubContainer #LeftColumn #MembershipOptions .MembershipButton { - margin: 0 4px 0 4px; - float: left; - width: 130px; -} - -#BuildersClubContainer #LeftColumn #MembershipOptions .BCButtonLabel { - color: #6e99c9; - margin-top: 4px; - text-align: center; -} - -#BuildersClubContainer #LeftColumn h1 { - font-size: 20px; - color: #6e99c9; - font-style: italic; - font-weight: bold; -} - -#MembershipOptionsTable { - width: 500px; - margin: auto; -} - -#MembershipOptionsTable tr { - text-align: center; -} - -#MembershipOptionsTable td { - width: 100px; - margin: 38px; -} - -#MembershipOptionsTable td .BCButton { - padding-left: 35px; - padding-right: 0; -} - -#MembershipOptionsTable .BCText { - padding-right: 20px; - width: 150px; - text-align: left; -} - -.TurboSpan { - color: #72942E; -} - -#upgrades-membership-options { - font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; - font-size: 13px; - background: #fff; - padding-top: 10px; - clear: left; - width: 100%; - border-collapse: collapse; - text-align: center; -} - -#upgrades-membership-options th { - font-size: 15px; - font-weight: normal; - color: #2163A5; - padding: 5px 8px; - border-bottom: 1px solid #D3D3D3; - line-height: 32px; -} - -#upgrades-membership-options th img { - float: left; -} - -#upgrades-membership-options td { - color: #2163A5; - padding: 5px 10px; -} - -#upgrades-membership-options tbody tr:hover td { - color: Maroon; -} - -#upgrades-membership-options .leftBorder { - border-left: 1px solid #D3D3D3; - width: 150px; -} - -#upgrades-membership-options .odd { - background: #e8edff; -} - -#upgrades-membership-options .LeftText { - text-align: left; -} - -#BuildersClubContainer #LeftColumn #WindowsOnlyWarning { - padding-left: 10px; - padding-bottom: 1px; -} - -#BuildersClubContainer #RightColumn { - margin: 10px 0 10px 5px; - width: 290px; - float: right; -} - -.RightColumnBox, -#UpgradeCompleteContainer { - border: 2px solid #6e99c9; - margin-bottom: 20px; - padding: 10px; - background-color: #fff; -} - -.RightColumnBox a { - text-decoration: underline; -} - -.RightColumnBox h2 { - float: left; - font-size: 14px; - color: Maroon; -} - -.RightColumnBox h3 { - text-align: left; - font-size: 11px; - clear: both; -} - -.RightColumnBox h1 { - float: left; - font-size: 16px; - color: Maroon; - padding-left: 10px; - font-weight: bold; -} - -.RightColumnManageAccount { - border-left: 2px solid #6e99c9; - border-bottom: 2px solid #6e99c9; - border-right: 2px solid #6e99c9; - background-color: #fff; - margin-bottom: 20px; -} - -#CancelMembership { - padding-top: 10px; - padding-bottom: 10px; - text-align: center; -} - -#RightColumn #ManageAccountBody { - padding: 10px; -} - -#RightColumn #ManageAccount #CancelMembershipButton, -#RedirectToLoginLink { - text-align: center; -} - -.OBCSellButton { - border: 0; - cursor: pointer; - top: 218px; - position: absolute; -} - -.BuyRobuxBtn { - display: inline-block; - width: 205px; - height: 44px; - background: url(/images/buildersClubPage_buyRobux_44px.png) no-repeat; -} - -.BuyRobuxBtn:hover { - background-position: 0 -44px; - cursor: pointer; -} - -.cardPanelLeft { - margin-left: 12px; - margin-top: 25px; - float: left; -} - -.cardPanelRight { - margin-right: 12px; - margin-top: 10px; - float: right; -} - -.centeredImage { - margin-bottom: 10px; -} - -#GameCardButtonContainer { - clear: both; - margin: 15px 0; -} - -.WhereToBuyTableCell, -WhereToBuyTableCellRight { - width: 320px; - padding: 10px 0; -} - -.WhereToBuyTableCellRight { - text-align: left; -} - -.AwardAssetDisplayList { - display: inline-block; - *display: inline; - *zoom: 1; - vertical-align: top; - width: 100px; - height: 100px; -} - -.PaymentTextBox { - padding: 5px; - width: 90%; -} - -.PaymentLabel { - width: 120px; - font-weight: bold; -} - -.PaymentPadding { - padding: 5px; -} - -.AutoRecurText { - color: Red; - display: none; -} - -#post-image-main, -#upload-video-main { - font-size: 16pt; - font-weight: bold; - text-align: center; -} - -#post-image-main a, -#post-image-main a:hover, -#upload-video-main a, -#upload-video-main a:hover { - text-decoration: none; -} - -#post-image-ul, -#upload-video-ul { - text-align: left; - font-weight: normal; - font-size: 12pt; -} - -#post-image-small, -#upload-video-small { - font-weight: normal; - font-size: 12pt; -} - -#post-image-footer, -#upload-video-footer { - text-align: right; -} - -#post-image-footer a, -#upload-video-footer a { - font-size: 12pt; - font-weight: bold; - text-decoration: none; -} - -#post-image-footer a:hover, -#upload-video-footer a:hover { - text-decoration: none; -} - -#UserContainer { - font-family: Verdana, Sans-Serif; -} - -#UserContainer #LeftBank { - float: left; - text-align: center; - width: 444px; -} - -#UserContainer #RightBank { - float: right; - text-align: center; - width: 444px; -} - -#UserContainer #LeftBank #UserPageLargeRectangleAd { - border: none; -} - -#UserPlacesPane { - clear: both; - background-color: #FFF; -} - -#UserPlacesPane { - clear: both; - background-color: #FFF; -} - -.FriendRequestsPane, -#UserModelsContainer, -#UserAssetsPane { - clear: both; - margin: 10px 0 0 0; - text-align: center; -} - -#UserBadgesPane, -#UserStatisticsPane { - margin: 10px 0 0 0; -} - -#UserStatisticsPane { - text-align: left; -} - -#FriendsPane, -#FavoritesPane { - clear: right; - margin: 10px 0 0 0; -} - -#UserAssetsPane { - margin-bottom: 10px; -} - -#UserBadgesPane #UserBadges { - background-color: #fff; - text-align: center; -} - -#ProfilePane h4 { - background-color: #ccc; - border-top: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Verdana, Sans-Serif; - font-size: 1.3em; - margin: 0; - text-align: center; -} - -#ProfilePane p { - margin: 0.9em 0; - line-height: 1.6em; -} - -#UserAssetsPane #UserAssets h4, -#UserBadgesPane #UserBadges h4, -#UserPlacesPane #UserPlaces h4, -#UserStatisticsPane #UserStatistics h4, -#FavoritesPane #Favorites h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Verdana, Sans-Serif; - margin: 0; - text-align: center; -} - -#UserPlacesPane #UserPlaces h4 { - background-color: #6e99c9; - color: #fff; - font-family: Verdana, Sans-Serif; - font-size: 1.4em; - font-weight: normal; - letter-spacing: 0.1em; - line-height: 1.5em; -} - -#UserStatisticsPane #UserStatistics { - background-color: #eee; - padding-bottom: 10px; -} - -#UserStatisticsPane #UserStatistics h4 { - margin-bottom: 5px; -} - -#UserStatisticsPane #UserStatistics .Statistic { - line-height: 1.8em; - margin: 0 auto; - width: 385px; -} - -#UserStatisticsPane #UserStatistics .Label { - float: left; - text-align: right; - width: 178px; -} - -#UserStatisticsPane #UserStatistics .Value { - float: right; - width: 177px; -} - -#UserModelsContainer { - text-align: left; -} - -#Friends { - margin-top: 10px; -} - -#Friends h4, -#FriendRequests h4 { - font-size: 10pt; - font-weight: bold; - line-height: 1em; - margin-bottom: 5px; - margin-top: 5px; -} - -.NoResults { - line-height: 1.3em; - padding: 10px; - text-align: center; -} - -.Badge { - margin: 10px 10px; - text-align: center; -} - -.Friend { - margin: 10px; -} - -.Friend .Avatar { - text-align: center; -} - -.Friend .Summary, -.Friend .Options { - margin-top: 5px; - text-align: center; -} - -#UserContainer .CollapsiblePanelHint { - color: #999; - padding: 5px; - text-align: center; -} - -#UserContainer #AssetsMenu { - float: left; - width: 158px; -} - -#UserContainer #AssetSearchOption { - float: left; -} - -#UserContainer #AssetUploadOption { - float: right; -} - -#UserContainer #AssetsList { - clear: both; -} - -#UserAssetsPane .AssetsMenuItem { - border: solid 1px #777; - margin: 15px; - padding: 3px 10px; - width: 100px; -} - -#UserAssetsPane .AssetsMenuItem:hover { - border: solid 1px #000; - cursor: pointer; - margin: 15px; - width: 100px; -} - -#UserAssetsPane .AssetsMenuItem_Selected { - background-color: #6e99c9; - border: solid 1px #000; - margin: 15px; - padding: 3px 10px; - width: 100px; -} - -#UserAssetsPane .AssetsMenuButton { - color: #777; - font: normal 14px/normal Verdana, sans-serif; -} - -#UserAssetsPane .AssetsMenuButton:hover { - color: #000; - text-decoration: none; -} - -#UserAssetsPane .AssetsMenuButton_Selected { - color: #fff; - font: normal 14px/normal Verdana, sans-serif; - text-decoration: none; -} - -#UserPlaces .PanelFooter, -#GroupPlaces .PanelFooter, -#Favorites .PanelFooter { - background-color: #fff; - color: #333; - font-family: Verdana, Sans-Serif; - margin: 0; - padding: 3px; - text-align: center; -} - -#UserPlaces .AccordionHeader { - background-color: #ccc; - border: solid 1px #000; - cursor: pointer; - font: bold 1em/normal Verdana, sans-serif; - letter-spacing: 0.1em; - margin: 1px 0; - padding: 1px 1em; - text-align: left; -} - -#UserPlaces .AccordionHeader:hover { - background-color: #6e99c9; - color: #fff; -} - -#UserPlaces .Place .PlayStatus { - margin: 5px 0 0 0; - display: inline; -} - -#UserPlaces .Place .PlayOptions { - margin: 5px 0 0 0; - display: inline; -} - -#UserPlaces .Place .PlayOptions .Button { - border-color: #333; - color: #333; - margin: 0 3px; -} - -#UserPlaces .Place .PlayOptions .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -#UserPlaces .Place .Statistics { - border-top: dashed 1px #555; - border-left: dashed 1px #555; - border-right: dashed 1px #555; - color: #555; - font: normal 1em/normal Verdana, sans-serif; - letter-spacing: 0.1em; - line-height: 1.7em; - margin: 0; - margin-top: 10px; -} - -#UserPlaces .Place .Thumbnail { - border: solid 1px #555; - margin: 0; -} - -#UserPlaces .Place .Description { - border: dashed 1px #555; - color: #555; - font: normal 1em/normal Verdana, sans-serif; - max-height: 75px; - line-height: 1.7em; - margin: 5px 0 0 0; - padding: 5px 10px; - overflow: auto; - text-align: left; -} - -#UserPlaces .Place .Configuration { - border-bottom: dashed 1px #555; - border-left: dashed 1px #555; - border-right: dashed 1px #555; - font: normal 1em/normal Verdana, sans-serif; - line-height: 1.7em; - padding: 5px 10px; -} - -#UserContainer #AssetsContent { - float: left; - font-family: Verdana, Sans-Serif; - margin: 0 auto; - margin-left: 28px; - margin-right: 28px; - min-width: 0; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - position: relative; - text-align: left; - width: 662px; -} - -#UserContainer #AssetsContent .HeaderPager, -#UserContainer #FavoritesContent .HeaderPager, -#UserContainer #AssetsContent .FooterPager, -#UserContainer #FavoritesContent .FooterPager { - clear: both; - margin: 0 12px 0 10px; - padding: 2px 0; - text-align: center; -} - -#UserContainer #AssetsContent .HeaderPager, -#UserContainer #FavoritesContent .HeaderPager { - margin-bottom: 10px; -} - -#UserContainer #AssetsContent .HeaderPager .Label, -#UserContainer #FavoritesContent .HeaderPager .Label, -#UserContainer #AssetsContent .FooterPager .Label, -#UserContainer #FavoritesContent .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#UserContainer .Asset { - margin: 0 10px 15px 10px; - vertical-align: top; - width: 112px; -} - -#UserContainer .Asset .AssetThumbnail { - border: solid 1px #000; - height: 110px; - position: relative; - text-align: center; - width: 110px; -} - -#UserContainer .Asset .AssetDetails { - overflow: hidden; - padding: 2px 0 6px 0; - text-align: left; - width: 110px; -} - -#UserContainer .AssetName a { - font-size: 0.9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.AssetsBullet { - padding-right: 3px; -} - -#UserContainer .Label, -#UserContainer .Detail, -#UserContainer .DetailHighlighted, -#UserContainer .PriceInRobux, -#UserContainer .PriceInTickets { - font-size: 0.8em; -} - -#UserContainer .DetailHighlighted { - color: Red; - font-weight: bold; -} - -#UserContainer .PriceInRobux { - color: Green; - font-weight: bold; -} - -#UserContainer .PriceInTickets { - color: #fbb117; - font-weight: bold; -} - -.UserOnlineMessage { - font-family: Verdana; - font-size: 8pt; - color: Red; -} - -.UserOfflineMessage { - font-family: Verdana; - font-size: 8pt; - color: Gray; -} - -.AdPanel { - position: relative; - margin: 0 auto; -} - -.BanishButtonOverlay { - background-color: #eee; - border: solid 1px #444; - font-size: 0.8em; - padding: 1px 3px 2px 3px; - position: absolute; - text-align: center; - top: 0; - right: 0; -} - -.BanishButtonOverlay:hover { - background-color: #fff; - border: solid 1px #000; - text-decoration: none; -} - -.DeleteButtonOverlay { - background-color: #eee; - border: solid 1px #444; - font-size: 0.8em; - padding: 1px 3px 2px 3px; - position: absolute; - right: 2px; - text-align: center; - top: 2px; -} - -.DeleteFavoriteOverlay { - background-color: #eee; - border: solid 1px #444; - font-size: 0.8em; - padding: 1px 3px 2px 3px; - position: relative; - left: -57px; - text-align: center; - top: -97px; -} - -.DeleteButtonOverlay:hover { - background-color: #fff; - border: solid 1px #000; - text-decoration: none; -} - -.PlaceAccessIndicator { - color: #000; -} - -.SubscriptionStatusPanel { - width: 348px; - font-weight: bold; - margin-top: 5px; - padding: 5px 5px 5px 5px; - border: solid 1px black; - background-color: #ccc; -} - -.ProfileAlertPanel { - width: 348px; - padding: 5px 5px 5px 5px; - background-color: #FFF; - border: solid 1px black; - height: 64px; -} - -.UserBlurb { - overflow: hidden; - width: 348px; - padding: 5px 5px 5px 5px; - line-height: 20px; - background-color: #FFF; - border: solid 1px #000; -} - -#AccountSettingsForm { - font-size: 11px; - line-height: 18px; -} - -#AccountSettingsForm fieldset { - border: 1px solid #ddd; - padding: 5px 5px 5px 5px; -} - -.MyRobloxContainer { - font-family: Verdana, Sans-Serif; - margin: 0 auto; - width: 900px; -} - -.ThemeStandardColorBackground { - background: #6e99c9; -} - -.StandardBox, -.StandardBoxWhite, -.StandardBoxGray { - float: none; - border: 2px solid #6e99c9; - background-color: White; - padding: 10px 10px 10px 10px; - margin-bottom: 10px; - display: block; -} - -.StandardBoxWhite { - *zoom: 1; -} - -.StandardBoxGrey { - float: inherit; - border: 2px solid #6e99c9; - background-color: #A6A6A6; - padding: 10px 10px 10px 10px; - margin-bottom: 10px; - display: block; -} - -.StandardBoxHeader, -.StandardBoxHeaderGray, -.StandardTabWhite, -.StandardTabGray, -.StandardTabGrayActive { - float: none; - background-color: #6e99c9; - text-align: center; - color: White; - font-size: 16px; - font-weight: bold; - padding: 5px 12px 5px 12px; - display: block; - *display: inline; - *zoom: 1; - cursor: pointer; -} - -.StandardBoxHeaderGray { - background-color: #A6A6A6; -} - -.StandardTabWhite, -.StandardTabGrayActive, -.StandardTabGray { - display: inline-block; - height: 26px; - z-index: 2; - position: relative; - *display: inline; - *zoom: 1; -} - -.StandardTabWhite span { - *padding-right: 14px; -} - -.StandardTabGray { - background-color: #b4cde9; - margin-right: 4px; -} - -.StandardTabGrayActive { - margin-right: 4px; -} - -.StandardTabGray a, -.StandardTabGrayActive a { - color: White; -} - -.StandardTabGray:hover, -.StandardTabGrayActive { - background-color: #6c98cb; - color: White; -} - -.Column1a { - width: 290px; - float: left; - margin-top: 10px; -} - -.Column2a { - margin-top: 10px; - width: 600px; - float: right; -} - -.Column1a .StandardBox { - width: 266px; -} - -.Column1a .StandardBoxHeader, -.Column1a .StandardBoxHeaderGray { - width: 266px; -} - -.Column2a .StandardBox { - width: 576px; -} - -.Column2a .StandardBoxHeader, -.Column2a .StandardBoxHeaderGray { - width: 576px; -} - -.Column1b { - margin-top: 10px; - width: 190px; - float: left; - margin-right: 15px; -} - -.Column2b { - margin-top: 10px; - width: 490px; - float: left; -} - -.Column3b { - margin-top: 10px; - width: 190px; - float: right; -} - -.Column1b .StandardBox { - width: 166px; -} - -.Column1b .StandardBoxHeader, -.Column1b .StandardBoxHeaderGray { - width: 166px; -} - -.Column2b .StandardBox { - width: 466px; -} - -.Column2b .StandardBoxHeader, -.Column2b .StandardBoxHeaderGray { - width: 466px; -} - -.Column3b .StandardBox { - width: 166px; -} - -.Column3b .StandardBoxHeader, -.Column3b .StandardBoxHeaderGray { - width: 166px; -} - -.Column1c { - margin-top: 10px; - width: 590px; - float: left; -} - -.Column2c { - margin-top: 10px; - width: 290px; - float: right; -} - -.Column1c .StandardBox { - width: 556px; -} - -.Column1c .StandardBoxHeader, -.Column1c .StandardBoxHeaderGray { - width: 556px; -} - -.Column2c .StandardBox { - width: 266px; -} - -.Column2c .StandardBoxHeader, -.Column2c .StandardBoxHeaderGray { - width: 266px; -} - -.Column1d { - margin-top: 10px; - width: 440px; - float: left; -} - -.Column2d { - margin-top: 10px; - width: 440px; - float: right; -} - -.Column1d .StandardBox, -.Column1d .StandardBoxWhite { - width: 416px; -} - -.Column1d .StandardBoxHeader, -.Column1d .StandardBoxHeaderGray, -.Column1d .StandardTabWhite { - width: 416px; -} - -.Column2d .StandardBox, -.Column2d .StandardBoxWhite { - width: 416px; -} - -.Column2d .StandardBoxHeader, -.Column2d .StandardBoxHeaderGray, -.Column2d .StandardTabWhite { - width: 416px; -} - -.Column1e { - margin-top: 10px; - width: 150px; - float: left; -} - -.Column2e { - margin-top: 10px; - width: 740px; - margin-left: 10px; - float: left; -} - -.Column1e .StandardBox { - width: 136px; -} - -.Column1e .StandardBoxHeader, -.Column1e .StandardBoxHeaderGray { - width: 126px; -} - -.Column2e .StandardBoxGray { - width: 726px; - padding: 5px; -} - -.Column2e .StandardBoxHeader, -.Column2e .StandardBoxHeaderGray { - width: 356px; -} - -.Column1f { - margin-top: 10px; - width: 380px; - float: left; -} - -.Column2f { - margin-top: 10px; - width: 500px; - float: right; -} - -.Column1f .StandardBox { - width: 356px; -} - -.Column1f .StandardBoxHeader, -.Column1f .StandardBoxHeaderGray { - width: 356px; -} - -.Column2f .StandardBox { - width: 476px; -} - -.Column2f .StandardBoxHeader, -.Column2f .StandardBoxHeaderGray { - width: 476px; -} - -.Repeater { - border: 0; - width: 100%; -} - -.Repeater .AlternatingItemTemplateOdd { - background-color: #eee; - padding: 5px 5px 5px 5px; -} - -.Repeater .AlternatingItemTemplateEven { - background-color: #fff; - padding: 5px 5px 5px 5px; -} - -.Repeater .RepeaterImage { - float: left; - vertical-align: top; - margin: 5px 5px 5px 5px; -} - -.Repeater .RepeaterText { - float: left; - vertical-align: top; - margin: 5px 5px 5px 5px; -} - -.Repeater .RepeaterImageNoFloat { - text-align: left; - vertical-align: middle; - padding-left: 5px; -} - -.Repeater .RepeaterTextNoFloat { - text-align: left; - vertical-align: top; - padding: 5px; -} - -.Repeater thead { - font-size: 15px; - font-weight: normal; - color: #2163A5; - border-bottom: 1px solid #D3D3D3; -} - -.Column2b .Repeater .AlternatingItemTemplateOdd, -.Column2b .Repeater .AlternatingItemTemplateEven { - width: 466; - height: 50px; -} - -.GreySearchBar { - background-color: #7F7F7F; - border-color: #385D8A; - width: 150px; - color: White; - cursor: default; -} - -.GreySearchButton { - background-color: #7F7F7F; - border-color: #385D8A; - width: 50px; - color: White; -} - -.DescriptionText { - font-size: 14px; - padding: 10px; - background: #D2E3F7; -} - -.tab_white_31h_container .ajax__tab_header { - font-family: verdana, tahoma, helvetica; - font-size: 11px; - background: url(/images/tab-line.gif) repeat-x bottom; -} - -.tab_white_31h_container .ajax__tab_outer { - margin: 0; - background: url(/images/tab-right.gif) no-repeat right; - height: 21px; -} - -.tab_white_31h_container .ajax__tab_inner { - padding-left: 3px; - background: url(/images/tab-left.gif) no-repeat; -} - -.tab_white_31h_container .ajax__tab_tab { - height: 13px; - padding: 4px; - margin: 0; - background: url(/images/tab.gif) repeat-x; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_outer { - background: url(/images/tab-hover-right.gif) no-repeat right; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_inner { - background: url(/images/tab-hover-left.gif) no-repeat; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_tab { - background: url(/images/tab-hover.gif) repeat-x; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_outer { - background: url(/images/tab-active-right.gif) no-repeat right; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_inner { - background: url(/images/tab-active-left.gif) no-repeat; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_tab { - background: url(/images/tab-active.gif) repeat-x; -} - -.tab_white_31h_container .ajax__tab_body { - font-family: verdana, tahoma, helvetica; - font-size: 10pt; - border: 1px solid #999; - border-top: 0; - padding: 8px; - background-color: #fff; -} - -.rbx2only { - display: none; -} - -.GreenButton { - height: 30px; - background: url(/images/btn_green_30h_t1.png) no-repeat; - display: inline-block; - font-family: Arial, Helvetica, Sans-Serif; - font-weight: bold; - font-size: 14px; - cursor: pointer; - *display: inline; - *zoom: 1; -} - -.GreenButton span { - height: 23px; - background: url(/images/btn_green_30h_t2.png) no-repeat top right; - margin: 0 0 0 4px; - display: block; - padding: 7px 12px 0 5px; - cursor: pointer; - color: White; -} - -.GreenButton span a { - color: White; - text-decoration: none; -} - -.GreenButton:hover { - background-position: 0 -30px; - cursor: pointer; - text-decoration: none; -} - -.GreenButton span:hover { - background-position: right -30px; - cursor: pointer; -} - -.RedButton { - height: 30px; - background: url(/images/btn_red_30h_t1.png) no-repeat; - display: inline-block; - font-family: Arial, Helvetica, Sans-Serif; - font-weight: bold; - font-size: 14px; - cursor: pointer; - *display: inline; - *zoom: 1; -} - -.RedButton span { - height: 23px; - background: url(/images/btn_red_30h_t2.png) no-repeat top right; - margin: 0 0 0 4px; - display: block; - padding: 7px 12px 0 5px; - cursor: pointer; - color: White; -} - -.RedButton span a { - color: White; - text-decoration: none; -} - -.RedButton:hover { - background-position: 0 -30px; - cursor: pointer; - text-decoration: none; -} - -.RedButton span:hover { - background-position: right -30px; - cursor: pointer; -} - -.Money { - color: #090; -} - -.SuccessBox { - border: solid 2px #a6dba6; - color: #090; - font-weight: bold; - padding: 5px; - margin: 20px 0; -} - -.ErrorBox, -.MessageBox { - border: solid 2px #ffa6a6; - color: #f00; - font-weight: bold; - padding: 5px; - margin: 20px 0; -} - -.MessageBox { - height: 65px; -} - -.GameCardMessageBox { - border: solid 2px #ffa6a6; - color: #f00; - font-weight: bold; - height: 56px; - padding: 5px; - *height: 66px; - margin: 20px 0; -} - -.GameCardSpecialOffer { - left: 73px; - position: relative; - top: -45px; -} - -.GameCardMessage { - color: #333; - left: 73px; - position: relative; - top: -44px; -} - -.BoxTextAligned { - margin-left: 10px; - position: relative; - top: -20px; -} - -#RedeemContainer { - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - color: Black; -} - -#RedeemContainer a { - color: #00f; -} - -#RedeemContainer a:hover { - text-decoration: none; -} - -#RedeemContainer #pin { - height: 21px; - font-size: 12px; -} - -.BigLinks { - font-size: 16px; - font-weight: bold; -} - -.SkinnyRightArrow { - cursor: pointer; - background: url(/images/arrow_skinny55h_right.png) no-repeat; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.SkinnyRightArrow:hover { - background-position: 0 -55px; -} - -.SkinnyRightArrowDisabled { - background: url(/images/arrow_skinny55h_right.png) no-repeat 0 -110px; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.SkinnyLeftArrow { - cursor: pointer; - background: url(/images/arrow_skinny55h_left.png) no-repeat; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.SkinnyLeftArrow:hover { - background-position: 0 -55px; -} - -.SkinnyLeftArrowDisabled { - background: url(/images/arrow_skinny55h_left.png) no-repeat 0 -110px; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.BlueLeftArrow { - cursor: pointer; - background: url(/images/arrow_36px_left.png) no-repeat; - width: 36px; - height: 36px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.BlueLeftArrow:hover { - background: url(/images/arrow36px_leftOn.png) no-repeat; -} - -.BlueRightArrow { - cursor: pointer; - background: url(/images/arrow_36px_right.png) no-repeat; - width: 36px; - height: 36px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.BlueRightArrow:hover { - background: url(/images/arrow36px_rightOn.png) no-repeat; -} - -.BCHat { - background: url(/images/Games/gamesPage_bcHelmet.png) no-repeat; - width: 35px; - height: 29px; - display: inline-block; - margin-top: 3px; - *display: inline; - *zoom: 1; -} - -.notificationBox { - display: inline-block; - background-color: #f00; - color: #fff; - height: 16px; - min-width: 18px; - width: auto; - font-size: 14px; - font-weight: bold; - margin: 2px 2px 4px 2px; - padding: 0 2px; - line-height: 1.1em; - text-align: center; - border-radius: 2px; -} - -.notificationBoxIE { - display: inline-block; - color: #fff; - background-image: url(/images/bg-notifications.png); - background-repeat: repeat-x; - background-position: left top; - min-width: 24px; - width: auto; - height: 16px; - text-align: center; - font-size: 14px; - font-weight: bold; - *display: inline; - *zoom: 1; -} - -#BuildersClubContainer { - margin-left: -5px; -} - -#CatalogContainer > .StandardBox { - padding: 3px 6px 8px 5px; -} - -.Assets .StandardBoxHeader { - width: 660px; -} - -.Assets .StandardBox { - width: 660px; -} - -.Contests { - margin-left: -5px; -} - -.DarkGradientBox { - background: none; - width: 150px; - color: Black; - position: relative; - border: none; -} - -.DarkGradientBox .DGB_Header { - font-size: 14px; - font-weight: bold; - text-align: center; - padding-top: 5px; - padding-bottom: 5px; - border-bottom: none; -} - -.DarkGradientBox .DGB_TextBox { - border: solid 1px #888; -} - -.DarkGradientBox .DGB_Label { - color: Black; - font-size: 10px; - font-weight: bold; - text-align: left; -} - -.DarkGradientBox .DGB_Button { - cursor: pointer; - background-color: #435D77; - color: White; - text-decoration: none; - border: solid 1px #777; - padding: 6px 10px 6px 10px; - font-family: Verdana, Sans-Serif; - font-size: 12px; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.DarkGradientBox .DGB_Button:link, -.DarkGradientBox .DGB_Button:visited { - background-color: #435D77; - color: White; - text-decoration: none; -} - -.DarkGradientBox .DGB_Button:hover, -.DarkGradientBox .DGB_Button:active { - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; -} - -#GamesContainer .DisplayFilters { - width: 126px; -} - -.WaitCursor, -.WaitCursor * { - cursor: wait !important; -} - -.PlayButton, -.BuildButton, -.PlayButtonSelected, -.BuildButtonSelected { - height: 54px; - width: 123px; - display: block; - cursor: pointer; -} - -.PlayButton { - background-image: url("/images/games/playBtn_off.png"); - background-repeat: no-repeat; -} - -.BuildButton { - background-image: url("/images/games/buildBtn_off.png"); - background-repeat: no-repeat; -} - -.PlayButton:hover, -.PlayButtonSelected { - background-image: url("/images/games/playBtn_on.png"); - background-repeat: no-repeat; -} - -.BuildButton:hover, -.BuildButtonSelected { - background-image: url("/images/games/buildBtn_on.png"); - background-repeat: no-repeat; -} - -#BCOnlyPlaces { - width: 416px; -} - -#BCOnlyPlaces .StandardBoxHeaderGray { - width: 399px; - height: 33px; - padding: 0 7px 0 16px; -} - -#BCOnlyPlaces .StandardBox { - padding: 5px; -} - -#GamesLeftColumn { - width: 126px; -} - -#InboxTabs { - position: relative; - top: 2px; -} - -#ItemContainer #Summary { - background-color: Transparent; - border: none; - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - color: Black; -} - -#ItemContainer #Summary .label { - color: #888; -} - -#ItemContainer #Summary .box .head { - color: Black; -} - -#ItemContainer #Summary .box .body { - border: 1px solid #CCC; - padding: 4px 8px 8px; - color: #000; -} - -#ItemContainer h3 { - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - color: #888; - letter-spacing: normal; -} - -.ReportAbuse { - text-align: right; -} - -.ReportAbuse .AbuseButton a { - color: #F99; - background: none; - padding-left: 16px; - padding-bottom: 2px; -} - -.ReportAbuse .AbuseButton a:hover { - background: url("/images/css/abuse.png") no-repeat scroll 0 2px transparent; - color: #F00; -} - -.ReportAbuse img { - display: none; -} - -.MultiplayerVisit:hover { - background-position: 0 54px; -} - -.MultiplayerVisit { - width: 212px; - height: 54px; - background: url(/images/css/btn_play_54h.png); -} - -.SoloVisit:hover { - color: #0C0; -} - -.SoloVisit { - background: none; - color: #080; - font-size: 14px; - position: relative; - top: -20px; - left: 28px; - width: auto; - height: auto; -} - -.SoloVisitText { - display: inline; -} - -#ItemContainer .PlayGames { - background-color: Transparent; - border: none; - padding: 0; - width: 100%; - margin: 4px 0 16px 0; -} - -.PlaceInfoIcons { - margin: 4px 0 0 1px; - text-align: right; -} - -.iPublic, -.iUnlocked { - background: url(/images/css/icon_public.png); - width: 20px; - height: 20px; -} - -.iLocked { - background: url(/images/css/icon_public.png); - width: 20px; - height: 20px; - background-position: -20px; -} - -.SharedIcon { - background: url(/images/css/icon_locked.png); - width: 20px; - height: 20px; - background-position: -20px; -} - -.CopyLockedIcon { - background: url(/images/css/icon_locked.png); - width: 20px; - height: 20px; -} - -.AllGearIcon { - background: url(/images/css/icon_gear.png); - width: 20px; - height: 20px; -} - -.GenreGearIcon { - background: url(/images/css/icon_gear.png); - background-position: 0 -20px; - width: 20px; - height: 20px; -} - -.NoGearIcon { - background: url(/images/css/icon_gear.png); - background-position: 0 -40px; - width: 20px; - height: 20px; -} - -#ItemContainer .ajax_tab_label { - color: #333; - font-size: 16px; - font-weight: bold; - font-family: Arial, Helvetica, sans-serif; - letter-spacing: normal; -} - -#ItemContainer #Thumbnail, -#ItemContainer #Thumbnail_Place { - border: none; -} - -#ItemContainer .CommentsContainer .Comments { - border: 0 none; -} - -#ItemContainer .CommentsContainer .Comment { - background: none; -} - -#ItemContainer .CommentsContainer .Avatar { - border: 0 none; -} - -#ItemContainer .CommentsContainer .Post .Audit { - color: #888; -} - -#BadgeStatsHeader { - width: auto; -} - -.sbMini { - margin-top: 5px; - font-family: Verdana, Sans-Serif; - font-size: 16px; - margin-right: 7px; -} - -.ProfileAlertPanel { - border: none; -} - -#UserPlaces .Place .Statistics, -#UserPlaces .Place .Configuration { - border: none; -} - -#GroupTitle { - width: 888px; -} - -.Column2b .StandardBoxGrey { - width: 454px; -} - -.subMenu { - background: url(/images/topNav_black.png); - width: 900px; - height: 30px; - border: none; - text-align: center; - margin-top: -5px; - margin-left: -5px; -} - -.subMenu ul { - margin: 0 0 0 27px; -} - -.subMenu > ul > li { - height: 30px; - margin: 0 2px; -} - -.subMenu ul ul { - left: -27px; -} - -.subMenu ul ul a, -.subMenu ul ul a:visited { - background: #444; - border: none; -} - -.subMenu ul ul a:hover { - background: #777; -} - -.subMenu > ul > li:hover { - background: url(/images/topNav_black.png); - background-position: 0 30px; -} - -.subMenu :hover > a, -.subMenu ul ul :hover > a { - text-decoration: none; -} - -.subMenu a:hover { - background: none; - text-decoration: none; -} - -.subMenu a, -.subMenu a:visited { - border: none; -} - -.subMenu .subMenuItemselected { - border: none; -} - -#CancelBuildersClubContainer h2, -#PaymentMethodsContainer h2, -#PaymentContainer h2, -#PayPalContainer h2, -#CashContainer h2, -#UpgradeCompleteContainer h2, -#ManageAccountUpgradesContainer h2, -#CancelAccountUpgradeContainer h2, -#AccountUpgradesConfirmationContainer h2 { - font-family: Arial, Helvetica, Sans-Serif; - color: #444; - font-size: 32px; - font-weight: bold; - letter-spacing: 0; -} - -#BuildersClubContainer #LeftColumn { - margin-left: 5px; -} - -#BuildersClubContainer #RightColumn { - margin-right: 5px; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - color: #000; - width: 285px; -} - -#BuildersClubContainer #RightColumn .StandardBox { - width: 273px; -} - -#BuildersClubContainer #RightColumn .StrongRed { - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - font-weight: bold; - color: #f00; -} - -#BuildersClubContainer #RightColumn h3 { - font-weight: bold; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 18px; - color: #333; -} - -#BuildersClubContainer #RightColumn .RefCode { - font-weight: bold; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 30px; - color: #666; - display: block; - margin-bottom: 16px; -} - -#Header { - font-family: Arial, Helvetica, sans-serif; - position: absolute; - bottom: 0; -} - -#hlNews { - margin-right: 4px; -} - -.AlertSpace { - position: relative; - top: 0; - width: 147px; - height: 50px; - border: 1px solid #ccc; - margin: 0; - padding: 0; - margin-left: auto; - margin-right: auto; - font-family: Arial, Helvetica, sans-serif; - font-size: 14px; - font-weight: bold; -} - -#Header .AlertSpace { - float: right; - border: none; - margin-left: 0; - margin-right: 0; - background: url(/images/css/head_sign.png) 0 0; - height: 78px; -} - -.AlertSpace a { - position: absolute; - width: 43px; - padding-left: 18px; - background: url(/images/css/head_infobox_icons.png) no-repeat 0 0; -} - -.AlertSpace a:hover, -#Header .AlertSpace a:active { - text-decoration: none; -} - -.AlertSpace .MessageAlert { - border: none; - background: none; -} - -.AlertSpace .MessageAlert a { - left: 13px; - top: 8px; - color: #444; - background-position: -2px 0; -} - -.AlertSpace .MessageAlert a:hover { - color: #aaa; - background-position: -2px -20px; -} - -.AlertSpace .RobuxAlert { - border: none; - background: none; -} - -.AlertSpace .RobuxAlert a { - left: 13px; - top: 28px; - color: #080; - background-position: -2px -41px; -} - -.AlertSpace .RobuxAlert a:hover { - color: #0d0; - background-position: -2px -61px; -} - -.AlertSpace .FriendsAlert { - border: none; - background: none; -} - -.AlertSpace .FriendsAlert a { - left: 79px; - top: 8px; - color: #05b; - background-position: -2px -81px; -} - -.AlertSpace .FriendsAlert a:hover { - color: #0cf; - background-position: -2px -101px; -} - -.AlertSpace .TicketsAlert { - border: none; - background: none; -} - -.AlertSpace .TicketsAlert a { - left: 79px; - top: 28px; - color: #a61; - background-position: -2px -121px; -} - -.AlertSpace .TicketsAlert a:hover { - color: #fb6; - background-position: -2px -141px; -} - -div.icons, -a.icons { - display: none; -} - -div.message_icon { - display: none; -} - -div.friends_icon { - display: none; -} - -div.robux_icon { - display: none; -} - -div.tickets_icon { - display: none; -} - -#Header .Navigation { - width: 900px; - height: 30px; - background: url(/images/css/topNav_blue.png); - background-position: 0 0; - text-align: center; - line-height: 20px; -} - -.Navigation ul { - margin: 0 auto; - padding: 0; -} - -.Navigation li { - display: inline-block; - margin: 0; - padding: 6px 10px 0 10px; - height: 24px; - font-size: 16px; - font-weight: bold; -} - -.Navigation li:hover { - background: url(/images/css/topNav_blue.png); - background-position: 0 30px; -} - -.Navigation a { - display: inline-block; - color: #fff; -} - -.Navigation a:hover { - text-decoration: none; -} - -.Navigation ul li a, -.Navigation ul li a:visited { - border: none; - font-size: 16px; - padding: 0; -} - -.Navigation .dropdownmainnav { - border: none; - line-height: 2em; - background: #444; -} - -.Navigation .dropdownmainnav div { - background-color: #444; - cursor: pointer; -} - -.Navigation .dropdownmainnav div:hover { - background-color: #888; -} - -.StandardBox { - padding: 5px; - margin-bottom: 8px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; - z-index: 0; -} - -.StandardBoxHeader, -.StandardBoxHeaderGray { - height: 33px; - padding: 0 7px 0 5px; - text-align: left; - z-index: 2; - background: url(/images/css/tab_black_33h_t1.png) no-repeat left top; - font-family: Arial, Helvetica, sans-serif; - font-size: 20px; - font-weight: bold; - color: #fff; - z-index: 0; -} - -.StandardBoxHeaderGray { - background: url(/images/css/tab_gray_33h_t1.png) no-repeat left top; -} - -.StandardBoxHeader span, -.StandardBoxHeaderGray span { - display: block; - width: 100%; - height: 29px; - padding: 5px 5px 0 2px; - background: url(/images/css/tab_black_33h_t2.png) no-repeat right top; - overflow: hidden; -} - -.StandardBoxHeaderGray span { - background: url(/images/css/tab_gray_33h_t2.png) no-repeat right top; -} - -.StandardTabWhite { - background: url(/images/css/tab_white_26h_t1.png) no-repeat left top; - padding: 0 4px; - float: none; - text-align: left; -} - -.StandardTabWhite span { - display: block; - width: 100%; - *width: 115%; - height: 26px; - padding: 5px 5px 0 9px; - background: url(/images/css/tab_white_26h_t2.png) no-repeat right top; - font-family: Arial, Helvetica, sans-serif; - font-size: 14px; - color: #000; - font-weight: normal; -} - -.StandardBoxWhite { - position: relative; - top: -1px; - background: #fff; - border: 1px solid #ccc; - padding: 8px; - color: Black; -} - -.StandardTabGray, -.StandardTabGrayActive { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left 0; - height: 31px; - padding: 0; - text-align: left; - cursor: pointer; - margin: 0; -} - -.StandardTabGray span, -.StandardTabGrayActive span { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right 0; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; - color: #333; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: bold; - display: block; -} - -.StandardTabGray a, -.StandardTabGrayActive a { - color: #333; -} - -.StandardTabGrayActive { - background-position: left -62px; -} - -.StandardTabGrayActive span { - background-position: right -62px; -} - -.StandardTabGray:hover { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left -31px; - height: 31px; - padding: 0; - z-index: 2; - text-align: left; - margin: 0; -} - -.StandardTabGray span:hover { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right -31px; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; - color: #333; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: bold; - display: block; -} - -.StandardBoxGray { - position: relative; - top: -2px; - padding: 8px 5px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; -} - -.tab_white_31h_container .ajax__tab_header { - background: none; -} - -.tab_white_31h_container .ajax__tab_outer { - background: none; - height: auto; -} - -.tab_white_31h_container .ajax__tab_inner { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - height: 31px; - padding-left: 0; - z-index: 2; -} - -.tab_white_31h_container .ajax__tab_header .ajax__tab_tab { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_outer { - background: none; - height: auto; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_inner { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left -31px; - height: 31px; - padding-left: 0; - z-index: 2; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_tab { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right -31px; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_outer { - background: none; - height: auto; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_inner { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left -62px; - height: 31px; - padding-left: 0; - z-index: 2; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_tab { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right -62px; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; -} - -.tab_white_31h_container .ajax__tab_body { - position: relative; - top: -2px; - padding: 8px 5px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; -} - -.Column2a { - float: left; -} - -.Column3b { - float: left; -} - -.Column2c { - float: left; - margin-left: 10px; -} - -.Column2d { - float: left; -} - -.Column1e { - width: 140px; -} - -.Column2e .StandardBoxHeaderGray { - margin: 0; - width: 726px; -} - -.Column2e .StandardBoxGray { - width: 726px; -} - -.Column2f { - float: left; -} - -div.rbx2only { - display: block; -} - -.rbx2only { - display: inline; -} - -.rbx2hide { - display: none; -} - -#RobloxCentralBank { - overflow: hidden; -} - -.transparentBkg { - background-color: Transparent; -} - -.FriendRequestsPane { - width: 890px; -} - -.Shadow { - display: none; -} - -.ShadowedStandardBox .Header { - height: 33px; - padding: 0 7px 0 5px; - text-align: left; - z-index: 2; - background: url(/images/css/tab_black_33h_t1.png) no-repeat left top; - font-family: Arial, Helvetica, sans-serif; - font-size: 20px; - font-weight: bold; - color: #fff; -} - -.ShadowedStandardBox .Header span { - display: block; - width: 100%; - height: 29px; - background: url(/images/css/tab_black_33h_t2.png) no-repeat right top; - overflow: hidden; - height: 26px; - padding: 7px 4px 0 3px; -} - -.ShadowedStandardBox .Content { - padding: 5px; - margin-bottom: 8px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; -} - -a.rss_icon { - background: url(/images/css/topNav_rss.png) no-repeat; -} - -.Column1d .StandardTabWhite, -.Column2d .StandardTabWhite { - width: auto; -} - -.MyRobloxContainer { - width: 890px; -} - -.BCHat { - margin-top: 1px; -} - -#partycontainer { - bottom: 110px; - right: 10px; -} - -.partyWindow { - color: #666; - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - width: 250px; -} - -.partyWindow .title { - background: transparent url("/images/friendsbar/tab_blue19h_l.gif") no-repeat left top; - display: block; - text-decoration: none; - padding-left: 2px; - height: 19px; - width: 248px; - cursor: pointer; -} - -.partyWindow .title span { - background: transparent url("/images/friendsbar/tab_blue19h_r.gif") no-repeat right top; - display: block; - height: 15px; - padding: 2px 15px 2px 7px; - text-decoration: none; - color: #fff; -} - -.partyWindow .title_flash { - background: transparent url("/images/friendsbar/tab_white19h_l2.gif") no-repeat left top; -} - -.partyWindow .title_flash span { - background: transparent url("/images/friendsbar/tab_white19h_r2.gif") no-repeat right top; - color: #444; -} - -.partyWindow .title strong { - display: block; - padding: 2px 15px 4px 6px; - background: url("/images/chat/tab_blue21h_r.png") no-repeat right top; - color: #fff; - width: 227px; - font-weight: bold; -} - -.partyWindow .closeparty { - width: 10px; - height: 9px; - /*float:right;*/ - margin: 5px 9px 0 0; - cursor: pointer; - position: absolute; - right: 0; - top: 0; - color: #fff; - font-weight: bold; - font-size: 14px; -} - -.partyWindow .main { - clear: both; - width: 248px; - height: auto; - margin: 0; - /*padding: 10px;*/ - background: #f2f2f2; - border: 1px solid #a6a6a6; - border-top: 0px none; - overflow: auto; -} - -.partyWindow .kickuser { - float: right; - padding-right: 5px; - color: Red; - cursor: pointer; -} - -#new_party p { - text-align: center; - padding: 40px 0 0 0; -} - -#party_none .main .btn_green21h { - margin: 15px 0 0 77px; -} - -.clear { - clear: both; -} - -.main #new_party_clear { - padding: 40px 0 0 0; -} - -/* Buttons using sliding doors */ -.btn_green21h { - float: left; - background: url("/images/chat/btn_green21h_l.png") no-repeat left top; - padding: 0 0 0 2px; -} - -.btn_green21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_green21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_green21h:hover { - background: url("/images/chat/btn_green21h_over_l.png") no-repeat left top; -} - -.btn_green21h:hover a { - background: url("/images/chat/btn_green21h_over_r.png") no-repeat right top; -} - -.btn_red21h { - float: left; - background: url("/images/chat/btn_red21h_l.png") no-repeat left top; - padding: 0 0 0 2px; -} - -.btn_red21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_red21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_red21h:hover { - background: url("/images/chat/btn_red21h_over_l.png") no-repeat left top; -} - -.btn_red21h:hover a { - background: url("/images/chat/btn_red21h_over_r.png") no-repeat right top; -} - -.btn_black21h { - float: left; - background: url("/images/chat/btn_black21h_l.png") no-repeat left top; - padding: 0 0 0 2px; - color: White; -} - -.btn_black21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_black21h_r.png") no-repeat right top; - color: #FFF; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_black21h:hover { - background: url("/images/chat/btn_black21h_over_l.png") no-repeat left top; -} - -.btn_black21h:hover a { - background: url("/images/chat/btn_black21h_over_r.png") no-repeat right top; -} - -/* Party Invite CSS */ -.main h1 { - padding: 15px 20px 15px 20px; - font-size: 130%; - text-align: center; -} - -.main #invite_status { - padding: 10px 0 10px 0; -} - -.main p { - padding: 0 0 7px 0; -} - -.main .btn_green21h { - float: left; - margin: 0 0 0 35px; -} - -.main .btn_black21h { - float: right; - margin: 0 35px 0 0; -} - -.main #invite_clear { - padding: 15px 0 0 0; -} - -/* Party Leader css */ -dt { - float: left; -} - -dd { - margin-left: 30px; -} - -.grey9 { - color: gray; - font-size: 9px; -} - -.status { - color: gray; - font-size: 11px; -} - -.name_me { - font-weight: bold; - color: #0066cc; -} - -.name_other { - font-weight: bold; - color: #007b00; -} - -.name_status { - font-weight: bold; -} - -.partyWindow { - color: black; - font-size: 11px; - height: auto; -} - -.members dl { - padding: 0 0 0 5px; -} - -.members dt { - padding: 4px 0 0 0; -} - -.members dd { - padding: 4px 0 1px 0; -} - -.main p { - padding: 10px 0 5px 0px; - text-align: center; -} - -#chat_messages { - padding: 0px 3px 3px 3px; - margin: 5px 5px 0 5px; - height: 217px; - overflow: auto; - background-color: white; - border-style: solid; - border-width: 1px; - border-color: #aaa; -} - -#chat_messages li { - padding: 6px 0 0 0; - list-style-type: none; -} - -#party_game_thumb { - width: 75px; - margin-right: 5px; - float: left; -} - -#party_current_game { - margin: 5px; -} - -#party_game_name { - width: 140px; - float: left; -} - -#party_game_follow_me { - margin-top: 5px; -} - -#chat_input { - margin: 5px 5px 0 5px; - padding-right: 2px; -} - -#chat_input input { - border: 1px solid #ccc; - width: 236px; - height: 40px; -} - -#chat_input textarea { - border: 1px solid #aaa; - overflow: auto; - width: 100%; - height: 50px; -} - -.main #leader_clear { - padding: 15px 0 0 0; -} - -#party_my .main .btn_black21h { - /*margin: 20px 0 0 73px;*/ - margin: 15px 70px 0 0; - /*position:absolute; - left:83px; - top:402px; - */ -} - -a.linkSmallBold, a.linkMenuSink { - font-weight: bold; - color: #0000FF; -} - -a.linkSmall, a.LinkSmallBold, a.linkMenuSink { - color: navy; - font-size: 0.9em; -} - -a.linkSmallBold:visited, a.linkMenuSink:visited { - font-weight: normal; - color: #013DA4; -} - -a.linkSmallBold:Hover, a.linkMenuSink:Hover { - color: #DD6900; -} - -/***************************************************** -Text and Anchor to display when a user is online -*****************************************************/ -.userOnlineLinkBold, a.userOnlineLinkBold, a.userOnlineLinkBold:Visited, a.userOnlineLinkBold:Hover, a.userOnlineLinkBold:Link { - font-weight: bold; - color: #0055E7; -} - -.moderatorOnlineLinkBold, a.moderatorOnlineLinkBold, a.moderatorOnlineLinkBold:Visited, a.moderatorOnlineLinkBold:Hover, a.moderatorOnlineLinkBold:Link { - font-weight: bold; - color: #00008B; -} - -.adminOnlineLinkBold, a.adminOnlineLinkBold, a.adminOnlineLinkBold:Visited, a.adminOnlineLinkBold:Hover, a.adminOnlineLinkBold:Link { - font-weight: bold; - color: black; -} - -/***************************************************** -Text and anchors used in the navigation menu -*****************************************************/ -.menuTitle { - font-weight: bold; - font-size: 20px; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - color: navy; -} - -.menuText { - font-size: 0.9em; - font-weight: bold; - color: #FFFFFF; -} - -a.menuTextLink:visited, a.menuTextLink:link { - font-size: 0.9em; - text-decoration: none; - color: #013DA4; -} - -a.menuTextLink:Hover { - color: #000000; -} - -/***************************************************** -Text and anchors used in the search -*****************************************************/ -.searchPager { - font-size: 0.9em; - font-weight: bold; -} - -.searchItem { - background-color: #DDEEFF; -} - -.searchAlternatingItem { - background-color: #FFFFFF; -} - -/***************************************************** -Default separator style for PostList -*****************************************************/ -td.flatViewSpacing { - height: 2px; - background-color: #80B7FF; -} - -/***************************************************** -Table Header and cell definitions -*****************************************************/ -th { - /* background-image: url(ForumC/skins/default/images/forumHeaderBackground.gif); */ - background-color: #6e99c9; -} - -td.forumHeaderBackgroundAlternate { - /* background-image: url(ForumC/skins/default/images/forumHeaderBackgroundAlternate.gif); */ - background-color: #BDD6F5; -} - -/***************************************************** -Body -*****************************************************/ -body { - FONT-SIZE: 8pt; - COLOR: #000000; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - scrollbar-face-color: #DEE3E7; - scrollbar-highlight-color: #FFFFFF; - scrollbar-shadow-color: #DEE3E7; - scrollbar-3dlight-color: #D1D7DC; - scrollbar-arrow-color: #006699; - scrollbar-track-color: #EFEFEF; - scrollbar-darkshadow-color: #98AAB1; -} - -/***************************************************** -Validation Text -*****************************************************/ -.validationWarningSmall { - color: Red; - font-size: 0.9em; -} - -/***************************************************** -General Text -*****************************************************/ -.normalTextSmall { - font-size: 1em; -} - -.CenterColumn a { - color: #0000FF; -} - -.CenterColumn a:visited { - color: #013DA4; -} - -.normalTextSmallBold { - font-size: 1em; - font-weight: bold; -} - -.normalTextSmaller { - font-size: 0.9em; -} - -.normalTextSmall, .normalTextSmallBold, .normalTextSmaller { - color: #000000; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; -} - -.normalTextSmall a, .normalTextSmallBold a, .normalTextSmaller a { - color: #0000FF; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; -} - -.normalTextSmall a:visited, .normalTextSmallBold a:visited, .normalTextSmaller a:visited { - color: #013DA4; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; -} - -/***************************************************** -Text used on tables with a background -*****************************************************/ -.tableHeaderText { - color: white; - font-size: 11px; - padding: 5px; - font-weight: bold; - text-align: center; - font-family: Verdana, Helvetica, Arial, Sans-Serif; -} - -/***************************************************** -Border used around tables -*****************************************************/ -.tableBorder { - border: 1px #013DA4 solid; - background-color: #FFFFFF; -} - -/***************************************************** -Main forum colors -*****************************************************/ -td.forumRow { - background-color: #DDEEFF; -} - -td.forumAlternate { - background-color: #DAE7FD; -} - -/***************************************************** -Background color and text used in threaded view -*****************************************************/ -td.threadTitle { - background-color: #D4D9EC; -} - -.threadDetailTextSmall { - color: #0055E7; - font-size: 0.9em; -} - -.threadDetailTextSmallBold { - color: #0055E7; - font-size: 0.9em; - font-weight: bold; -} - -td.forumRowHighlight { - background-color: #dfe9fc; -} - -/***************************************************** -Text and links used in ForumGroupRepeater and ForumRepeater -*****************************************************/ -.forumTitle { - font-size: 1em; - font-weight: bold; - color: #013DA4; -} - -a.forumTitle:visited, a.forumTitle:link { - font-size: 1em; - font-weight: bold; - color: #013DA4; -} - -a.forumTitle:hover { - color: #DD6900; -} - -.forumName { - font-weight: bold; - font-size: 16px; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - text-decoration: none; - color: navy; -} - -a.forumName:hover { - color: #DD6900; - text-decoration: underline; -} - -/***************************************************** -Form Elements -*****************************************************/ -select { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - font-size: 0.9em; - font-weight: bold; - background-color: #DAE7FD; - border-color: Black; -} - -textarea { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - font-size: 0.9em; - background-color: White; - border-color: Black; -} - -/***************************************************** -Menu Controls -*****************************************************/ -A.linkMenuSink { - font-size: 0.9em; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - position: relative; -} - -TD.popupMenuSink { - position: relative; -} - -DIV.popupMenu { - border: 1px solid blue; -} - -DIV.popupTitle { - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - color: white; - font-weight: bold; - background-color: #4455AA; -} - -DIV.popupItem { - font-size: 1em; - font-weight: bold; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - background-color: #DDEEFF; -} diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 65c7a4e..0000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot deleted file mode 100644 index d05ea58..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.eot and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.svg b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.svg deleted file mode 100644 index 4e48a46..0000000 --- a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.svg +++ /dev/null @@ -1,3717 +0,0 @@ - - - - -Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf deleted file mode 100644 index fc567cd..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.ttf and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff deleted file mode 100644 index db70e73..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2 b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2 deleted file mode 100644 index b8a8f65..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-brands-400.woff2 and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot deleted file mode 100644 index fae180d..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.eot and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.svg b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.svg deleted file mode 100644 index 9dba8c3..0000000 --- a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.svg +++ /dev/null @@ -1,801 +0,0 @@ - - - - -Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf deleted file mode 100644 index d1ac9ba..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.ttf and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff deleted file mode 100644 index e9f54b1..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2 b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2 deleted file mode 100644 index 9df490e..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-regular-400.woff2 and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot deleted file mode 100644 index afe3152..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.eot and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.svg b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.svg deleted file mode 100644 index dce459d..0000000 --- a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.svg +++ /dev/null @@ -1,5034 +0,0 @@ - - - - -Created by FontForge 20201107 at Tue Mar 16 10:15:04 2021 - By Robert Madole -Copyright (c) Font Awesome - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf deleted file mode 100644 index f33e816..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.ttf and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff deleted file mode 100644 index 73c1a4d..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff and /dev/null differ diff --git a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2 b/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2 deleted file mode 100644 index dc52d95..0000000 Binary files a/public/fonts/vendor/@fortawesome/fontawesome-free/webfa-solid-900.woff2 and /dev/null differ diff --git a/public/images/BuildSolo2.png b/public/images/BuildSolo2.png deleted file mode 100644 index 4ce2cb6..0000000 Binary files a/public/images/BuildSolo2.png and /dev/null differ diff --git a/public/images/BulletPointArrow.png b/public/images/BulletPointArrow.png deleted file mode 100644 index f1e40a9..0000000 Binary files a/public/images/BulletPointArrow.png and /dev/null differ diff --git a/public/images/Facebook/fsignin.png b/public/images/Facebook/fsignin.png deleted file mode 100644 index 70d985e..0000000 Binary files a/public/images/Facebook/fsignin.png and /dev/null differ diff --git a/public/images/GenreIcons/Classic.png b/public/images/GenreIcons/Classic.png deleted file mode 100644 index 7b40e53..0000000 Binary files a/public/images/GenreIcons/Classic.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Adventure.png b/public/images/GenreIconsInverted/Adventure.png deleted file mode 100644 index f67d441..0000000 Binary files a/public/images/GenreIconsInverted/Adventure.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Castle.png b/public/images/GenreIconsInverted/Castle.png deleted file mode 100644 index fcea2c6..0000000 Binary files a/public/images/GenreIconsInverted/Castle.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/City.png b/public/images/GenreIconsInverted/City.png deleted file mode 100644 index bb7812a..0000000 Binary files a/public/images/GenreIconsInverted/City.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Classic.png b/public/images/GenreIconsInverted/Classic.png deleted file mode 100644 index 7b40e53..0000000 Binary files a/public/images/GenreIconsInverted/Classic.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Cthulu.png b/public/images/GenreIconsInverted/Cthulu.png deleted file mode 100644 index 9298a90..0000000 Binary files a/public/images/GenreIconsInverted/Cthulu.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/LOL.png b/public/images/GenreIconsInverted/LOL.png deleted file mode 100644 index c844b0b..0000000 Binary files a/public/images/GenreIconsInverted/LOL.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/ModernMilitary.png b/public/images/GenreIconsInverted/ModernMilitary.png deleted file mode 100644 index 642164c..0000000 Binary files a/public/images/GenreIconsInverted/ModernMilitary.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Ninja.png b/public/images/GenreIconsInverted/Ninja.png deleted file mode 100644 index dc84d49..0000000 Binary files a/public/images/GenreIconsInverted/Ninja.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Pirate.png b/public/images/GenreIconsInverted/Pirate.png deleted file mode 100644 index 876f9b9..0000000 Binary files a/public/images/GenreIconsInverted/Pirate.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/SciFi.png b/public/images/GenreIconsInverted/SciFi.png deleted file mode 100644 index 91e4eba..0000000 Binary files a/public/images/GenreIconsInverted/SciFi.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Skatepark.png b/public/images/GenreIconsInverted/Skatepark.png deleted file mode 100644 index c7f27df..0000000 Binary files a/public/images/GenreIconsInverted/Skatepark.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Sports.png b/public/images/GenreIconsInverted/Sports.png deleted file mode 100644 index d423670..0000000 Binary files a/public/images/GenreIconsInverted/Sports.png and /dev/null differ diff --git a/public/images/GenreIconsInverted/Tutorial.gif b/public/images/GenreIconsInverted/Tutorial.gif deleted file mode 100644 index 682f416..0000000 Binary files a/public/images/GenreIconsInverted/Tutorial.gif and /dev/null differ diff --git a/public/images/GenreIconsInverted/WildWest.png b/public/images/GenreIconsInverted/WildWest.png deleted file mode 100644 index dff8b66..0000000 Binary files a/public/images/GenreIconsInverted/WildWest.png and /dev/null differ diff --git a/public/images/Holiday3Button.png b/public/images/Holiday3Button.png deleted file mode 100644 index 6792756..0000000 Binary files a/public/images/Holiday3Button.png and /dev/null differ diff --git a/public/images/Play.png b/public/images/Play.png deleted file mode 100644 index 2efc15c..0000000 Binary files a/public/images/Play.png and /dev/null differ diff --git a/public/images/PlayThis.png b/public/images/PlayThis.png deleted file mode 100644 index ce3d0e2..0000000 Binary files a/public/images/PlayThis.png and /dev/null differ diff --git a/public/images/ProgressIndicator2.gif b/public/images/ProgressIndicator2.gif deleted file mode 100644 index 81488af..0000000 Binary files a/public/images/ProgressIndicator2.gif and /dev/null differ diff --git a/public/images/ProgressIndicator3.gif b/public/images/ProgressIndicator3.gif deleted file mode 100644 index e190b2e..0000000 Binary files a/public/images/ProgressIndicator3.gif and /dev/null differ diff --git a/public/images/RandomFactsIcons/Admin.png b/public/images/RandomFactsIcons/Admin.png deleted file mode 100644 index 684d256..0000000 Binary files a/public/images/RandomFactsIcons/Admin.png and /dev/null differ diff --git a/public/images/RandomFactsIcons/Bux.png b/public/images/RandomFactsIcons/Bux.png deleted file mode 100644 index 26cc888..0000000 Binary files a/public/images/RandomFactsIcons/Bux.png and /dev/null differ diff --git a/public/images/RandomFactsIcons/House.png b/public/images/RandomFactsIcons/House.png deleted file mode 100644 index 7d45919..0000000 Binary files a/public/images/RandomFactsIcons/House.png and /dev/null differ diff --git a/public/images/RandomFactsIcons/Pants.png b/public/images/RandomFactsIcons/Pants.png deleted file mode 100644 index 58ea718..0000000 Binary files a/public/images/RandomFactsIcons/Pants.png and /dev/null differ diff --git a/public/images/RandomFactsIcons/Shield.png b/public/images/RandomFactsIcons/Shield.png deleted file mode 100644 index a097aa9..0000000 Binary files a/public/images/RandomFactsIcons/Shield.png and /dev/null differ diff --git a/public/images/RandomFactsIcons/Shirt.png b/public/images/RandomFactsIcons/Shirt.png deleted file mode 100644 index 335b608..0000000 Binary files a/public/images/RandomFactsIcons/Shirt.png and /dev/null differ diff --git a/public/images/RandomFactsIcons/ShoppingBag.png b/public/images/RandomFactsIcons/ShoppingBag.png deleted file mode 100644 index 7489a10..0000000 Binary files a/public/images/RandomFactsIcons/ShoppingBag.png and /dev/null differ diff --git a/public/images/SalesPitcher/PlayNow3.png b/public/images/SalesPitcher/PlayNow3.png deleted file mode 100644 index 5688135..0000000 Binary files a/public/images/SalesPitcher/PlayNow3.png and /dev/null differ diff --git a/public/images/TrusteVertical.png b/public/images/TrusteVertical.png deleted file mode 100644 index 22502c6..0000000 Binary files a/public/images/TrusteVertical.png and /dev/null differ diff --git a/public/images/abuse.png b/public/images/abuse.png deleted file mode 100644 index 6f6abba..0000000 Binary files a/public/images/abuse.png and /dev/null differ diff --git a/public/images/arrow36px_leftOn.png b/public/images/arrow36px_leftOn.png deleted file mode 100644 index 66106b8..0000000 Binary files a/public/images/arrow36px_leftOn.png and /dev/null differ diff --git a/public/images/arrow36px_rightOn.png b/public/images/arrow36px_rightOn.png deleted file mode 100644 index 1f733d1..0000000 Binary files a/public/images/arrow36px_rightOn.png and /dev/null differ diff --git a/public/images/arrow_36px_left.png b/public/images/arrow_36px_left.png deleted file mode 100644 index 7a0c286..0000000 Binary files a/public/images/arrow_36px_left.png and /dev/null differ diff --git a/public/images/arrow_36px_right.png b/public/images/arrow_36px_right.png deleted file mode 100644 index bf74fbf..0000000 Binary files a/public/images/arrow_36px_right.png and /dev/null differ diff --git a/public/images/asset-loading.gif b/public/images/asset-loading.gif deleted file mode 100644 index c58609f..0000000 Binary files a/public/images/asset-loading.gif and /dev/null differ diff --git a/public/images/assetIcons/limited.png b/public/images/assetIcons/limited.png deleted file mode 100644 index 74cdb55..0000000 Binary files a/public/images/assetIcons/limited.png and /dev/null differ diff --git a/public/images/assetIcons/limitedunique.png b/public/images/assetIcons/limitedunique.png deleted file mode 100644 index cb15906..0000000 Binary files a/public/images/assetIcons/limitedunique.png and /dev/null differ diff --git a/public/images/bbbseal1US.gif b/public/images/bbbseal1US.gif deleted file mode 100644 index 8005800..0000000 Binary files a/public/images/bbbseal1US.gif and /dev/null differ diff --git a/public/images/bg_clouds.jpg b/public/images/bg_clouds.jpg deleted file mode 100644 index cedee3f..0000000 Binary files a/public/images/bg_clouds.jpg and /dev/null differ diff --git a/public/images/buttons/playNow01.png b/public/images/buttons/playNow01.png deleted file mode 100644 index e3c4f23..0000000 Binary files a/public/images/buttons/playNow01.png and /dev/null differ diff --git a/public/images/css/WoodBanner.png b/public/images/css/WoodBanner.png deleted file mode 100644 index e575d8a..0000000 Binary files a/public/images/css/WoodBanner.png and /dev/null differ diff --git a/public/images/css/bkg.jpg b/public/images/css/bkg.jpg deleted file mode 100644 index 3966c30..0000000 Binary files a/public/images/css/bkg.jpg and /dev/null differ diff --git a/public/images/css/btn_blue18h.png b/public/images/css/btn_blue18h.png deleted file mode 100644 index 79f393b..0000000 Binary files a/public/images/css/btn_blue18h.png and /dev/null differ diff --git a/public/images/css/btn_play_54h.png b/public/images/css/btn_play_54h.png deleted file mode 100644 index 605c9b4..0000000 Binary files a/public/images/css/btn_play_54h.png and /dev/null differ diff --git a/public/images/css/containerBkg_01.png b/public/images/css/containerBkg_01.png deleted file mode 100644 index bd7301f..0000000 Binary files a/public/images/css/containerBkg_01.png and /dev/null differ diff --git a/public/images/css/head_03.png b/public/images/css/head_03.png deleted file mode 100644 index 6dad545..0000000 Binary files a/public/images/css/head_03.png and /dev/null differ diff --git a/public/images/css/head_bkg_t1.png b/public/images/css/head_bkg_t1.png deleted file mode 100644 index 418ecdd..0000000 Binary files a/public/images/css/head_bkg_t1.png and /dev/null differ diff --git a/public/images/css/head_bkg_t2.png b/public/images/css/head_bkg_t2.png deleted file mode 100644 index 0a2aef5..0000000 Binary files a/public/images/css/head_bkg_t2.png and /dev/null differ diff --git a/public/images/css/head_infobox_icons.png b/public/images/css/head_infobox_icons.png deleted file mode 100644 index 9a1dc2d..0000000 Binary files a/public/images/css/head_infobox_icons.png and /dev/null differ diff --git a/public/images/css/head_sign.png b/public/images/css/head_sign.png deleted file mode 100644 index d55655f..0000000 Binary files a/public/images/css/head_sign.png and /dev/null differ diff --git a/public/images/css/old_head_03.jpg b/public/images/css/old_head_03.jpg deleted file mode 100644 index a10b181..0000000 Binary files a/public/images/css/old_head_03.jpg and /dev/null differ diff --git a/public/images/css/standardBox_01_bkg.png b/public/images/css/standardBox_01_bkg.png deleted file mode 100644 index aaec991..0000000 Binary files a/public/images/css/standardBox_01_bkg.png and /dev/null differ diff --git a/public/images/css/tab_black_33h_t1.png b/public/images/css/tab_black_33h_t1.png deleted file mode 100644 index 8c9e1e9..0000000 Binary files a/public/images/css/tab_black_33h_t1.png and /dev/null differ diff --git a/public/images/css/tab_black_33h_t2.png b/public/images/css/tab_black_33h_t2.png deleted file mode 100644 index 09da70e..0000000 Binary files a/public/images/css/tab_black_33h_t2.png and /dev/null differ diff --git a/public/images/css/tab_white19h_l.gif b/public/images/css/tab_white19h_l.gif deleted file mode 100644 index fc6919b..0000000 Binary files a/public/images/css/tab_white19h_l.gif and /dev/null differ diff --git a/public/images/css/tab_white19h_r.gif b/public/images/css/tab_white19h_r.gif deleted file mode 100644 index cf01cc1..0000000 Binary files a/public/images/css/tab_white19h_r.gif and /dev/null differ diff --git a/public/images/css/tab_white_26h_t1.png b/public/images/css/tab_white_26h_t1.png deleted file mode 100644 index 61a28fd..0000000 Binary files a/public/images/css/tab_white_26h_t1.png and /dev/null differ diff --git a/public/images/css/tab_white_26h_t2.png b/public/images/css/tab_white_26h_t2.png deleted file mode 100644 index a40695f..0000000 Binary files a/public/images/css/tab_white_26h_t2.png and /dev/null differ diff --git a/public/images/css/tab_white_31h_t1.png b/public/images/css/tab_white_31h_t1.png deleted file mode 100644 index f154c26..0000000 Binary files a/public/images/css/tab_white_31h_t1.png and /dev/null differ diff --git a/public/images/css/tab_white_31h_t2.png b/public/images/css/tab_white_31h_t2.png deleted file mode 100644 index d9e2c5c..0000000 Binary files a/public/images/css/tab_white_31h_t2.png and /dev/null differ diff --git a/public/images/css/topNav_blue.png b/public/images/css/topNav_blue.png deleted file mode 100644 index 58000a3..0000000 Binary files a/public/images/css/topNav_blue.png and /dev/null differ diff --git a/public/images/currency.png b/public/images/currency.png deleted file mode 100644 index c4355fb..0000000 Binary files a/public/images/currency.png and /dev/null differ diff --git a/public/images/gamesPage_filterarrow.png b/public/images/gamesPage_filterarrow.png deleted file mode 100644 index 485904d..0000000 Binary files a/public/images/gamesPage_filterarrow.png and /dev/null differ diff --git a/public/images/icons/exclamation.png b/public/images/icons/exclamation.png deleted file mode 100644 index c37bd06..0000000 Binary files a/public/images/icons/exclamation.png and /dev/null differ diff --git a/public/images/icons/overlay_bcOnly.png b/public/images/icons/overlay_bcOnly.png deleted file mode 100644 index 4577950..0000000 Binary files a/public/images/icons/overlay_bcOnly.png and /dev/null differ diff --git a/public/images/icons/overlay_obcOnly.png b/public/images/icons/overlay_obcOnly.png deleted file mode 100644 index 141d161..0000000 Binary files a/public/images/icons/overlay_obcOnly.png and /dev/null differ diff --git a/public/images/icons/overlay_tbcOnly.png b/public/images/icons/overlay_tbcOnly.png deleted file mode 100644 index 1e13f04..0000000 Binary files a/public/images/icons/overlay_tbcOnly.png and /dev/null differ diff --git a/public/images/offline.png b/public/images/offline.png deleted file mode 100644 index a4613cc..0000000 Binary files a/public/images/offline.png and /dev/null differ diff --git a/public/images/online.png b/public/images/online.png deleted file mode 100644 index 83fe7e1..0000000 Binary files a/public/images/online.png and /dev/null differ diff --git a/public/images/placeholder.png b/public/images/placeholder.png deleted file mode 100644 index ff1ed37..0000000 Binary files a/public/images/placeholder.png and /dev/null differ diff --git a/public/images/placeholdergame.png b/public/images/placeholdergame.png deleted file mode 100644 index e38de97..0000000 Binary files a/public/images/placeholdergame.png and /dev/null differ diff --git a/public/images/searchIcon.png b/public/images/searchIcon.png deleted file mode 100644 index 1e5a790..0000000 Binary files a/public/images/searchIcon.png and /dev/null differ diff --git a/public/images/site/background.jpg b/public/images/site/background.jpg deleted file mode 100644 index c2e24e6..0000000 Binary files a/public/images/site/background.jpg and /dev/null differ diff --git a/public/images/site/download/img1.png b/public/images/site/download/img1.png deleted file mode 100644 index d25f9e1..0000000 Binary files a/public/images/site/download/img1.png and /dev/null differ diff --git a/public/images/site/download/img2.png b/public/images/site/download/img2.png deleted file mode 100644 index 8782e7b..0000000 Binary files a/public/images/site/download/img2.png and /dev/null differ diff --git a/public/images/site/download/img3.png b/public/images/site/download/img3.png deleted file mode 100644 index e351179..0000000 Binary files a/public/images/site/download/img3.png and /dev/null differ diff --git a/public/images/site/offline.png b/public/images/site/offline.png deleted file mode 100644 index b4eb143..0000000 Binary files a/public/images/site/offline.png and /dev/null differ diff --git a/public/images/site/online.png b/public/images/site/online.png deleted file mode 100644 index e62ee3b..0000000 Binary files a/public/images/site/online.png and /dev/null differ diff --git a/public/images/star.png b/public/images/star.png deleted file mode 100644 index b88c857..0000000 Binary files a/public/images/star.png and /dev/null differ diff --git a/public/images/star_disabled.png b/public/images/star_disabled.png deleted file mode 100644 index a600b00..0000000 Binary files a/public/images/star_disabled.png and /dev/null differ diff --git a/public/images/tadah-hd-nogradient.png b/public/images/tadah-hd-nogradient.png deleted file mode 100644 index 5759b0d..0000000 Binary files a/public/images/tadah-hd-nogradient.png and /dev/null differ diff --git a/public/images/tadah-hd.png b/public/images/tadah-hd.png deleted file mode 100644 index 85b7514..0000000 Binary files a/public/images/tadah-hd.png and /dev/null differ diff --git a/public/images/tadahfull.png b/public/images/tadahfull.png deleted file mode 100644 index d32e819..0000000 Binary files a/public/images/tadahfull.png and /dev/null differ diff --git a/public/images/tadaht.png b/public/images/tadaht.png deleted file mode 100644 index dbe48ae..0000000 Binary files a/public/images/tadaht.png and /dev/null differ diff --git a/public/images/topNav_arrow_white.png b/public/images/topNav_arrow_white.png deleted file mode 100644 index 4758e8c..0000000 Binary files a/public/images/topNav_arrow_white.png and /dev/null differ diff --git a/public/images/topNav_black.png b/public/images/topNav_black.png deleted file mode 100644 index 670d054..0000000 Binary files a/public/images/topNav_black.png and /dev/null differ diff --git a/public/index.php b/public/index.php deleted file mode 100644 index 66ea93c..0000000 --- a/public/index.php +++ /dev/null @@ -1,55 +0,0 @@ -make(Kernel::class); - -$response = tap($kernel->handle( - $request = Request::capture() -))->send(); - -$kernel->terminate($request, $response); diff --git a/public/js/app.js b/public/js/app.js deleted file mode 100644 index 00540a5..0000000 --- a/public/js/app.js +++ /dev/null @@ -1,172 +0,0 @@ -/* - * ATTENTION: An "eval-source-map" devtool has been used. - * This devtool is neither made for production nor for readable output files. - * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. - * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) - * or disable the default devtool with "devtool: false". - * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). - */ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./resources/js/app.js": -/*!*****************************!*\ - !*** ./resources/js/app.js ***! - \*****************************/ -/***/ (() => { - -eval("function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//require('./bootstrap');\n; /// files: roblox.js, jquery.json-2.2.js, jquery.simplemodal-1.3.5.js, jquery.tipsy.js, AjaxAvatarThumbnail.js, extensions/string.js, StringTruncator.min.js, json2.min.js, webkit.js, GoogleAnalytics/GoogleAnalyticsEvents.js, MasterPageUI.js, jquery.cookie.js, jquery.jsoncookie.js, XsrfToken.js, RobloxEventManager.js, RobloxEventListener.js, KontagentEventListener.js, GoogleEventListener.js, MongoEventListener.js, SearchVisionListener.js, SiteTouchEvent.js, JSErrorTracker.js, Studio2Alert.js, ClientInstaller.js, InstallationInstructions.js, MadStatus.js, PlaceLauncher.js, VideoPreRoll.js\n\n; /// roblox.js\n\n(function (n, t) {\n function p(n, i) {\n var r = i.split(\".\");\n\n for (i = r.shift(); r.length > 0; n = n[i], i = r.shift()) {\n if (n[i] === t) return t;\n }\n\n return n[i];\n }\n\n function k(n, i, r) {\n var u = i.split(\".\");\n\n for (i = u.shift(); u.length > 0; n = n[i], i = u.shift()) {\n n[i] === t && (n[i] = {});\n }\n\n n[i] = r;\n }\n\n function nt(n, t) {\n var i = f.createElement(\"link\");\n i.href = n, i.rel = \"stylesheet\", i.type = \"text/css\", u.parentNode.insertBefore(i, u), t();\n }\n\n function g(n, t) {\n var i = f.createElement(\"script\");\n i.type = \"text/javascript\", i.src = n, i.onload = i.onreadystatechange = function () {\n i.readyState && i.readyState != \"loaded\" && i.readyState != \"complete\" || (t(), i.onload = i.onreadystatechange = null);\n }, u.parentNode.insertBefore(i, u);\n }\n\n function d(n) {\n return n.split(\".\").pop().split(\"?\").shift();\n }\n\n function o(n) {\n return n.indexOf(\".js\") < 0 ? n : n.indexOf(r.modulePath) >= 0 ? n.split(r.modulePath).pop().split(\".js\").shift().replace(\"/\", \".\") : n;\n }\n\n function v(n) {\n var t, i;\n return t = n.indexOf(\".js\") >= 0 || n.indexOf(\".css\") >= 0 ? n : r.baseUrl + r.modulePath + n.replace(\".\", \"/\") + \".js\", i = r.versions[t] || 1, t + \"?v=\" + i;\n }\n\n function s(n) {\n for (var r, u = [], i = 0; i < n.length; i++) {\n r = p(Roblox, o(n[i])), r !== t && u.push(r);\n }\n\n return u;\n }\n\n function e(n) {\n var t = i[n];\n if (t.loaded && t.depsLoaded) while (t.listeners.length > 0) {\n t.listeners.shift()();\n }\n }\n\n function a(n, u) {\n var f, s, h;\n if (!b(n) || r.externalResources.toString().indexOf(n) >= 0) return u();\n f = o(n), i[f] === t ? (i[f] = {\n loaded: !1,\n depsLoaded: !0,\n listeners: []\n }, i[f].listeners.push(u), s = v(f), h = d(s) == \"css\" ? nt : g, h(s, function () {\n i[f].loaded = !0, e(f);\n })) : (i[f].listeners.push(u), e(f));\n }\n\n function h(n, t) {\n var r = n.shift(),\n i = n.length == 0 ? t : function () {\n h(n, t);\n };\n a(r, i);\n }\n\n function l(n, t) {\n c(n) || (n = [n]);\n\n var i = function i() {\n t.apply(null, s(n));\n };\n\n h(n.slice(0), i);\n }\n\n function y(n, t, r) {\n w(t) ? (r = t, t = []) : c(t) || (t = [t]), i[n] = i[n] || {\n loaded: !0,\n listeners: []\n }, i[n].depsLoaded = !1, i[n].listeners.unshift(function () {\n k(Roblox, n, r.apply(null, s(t)));\n }), l(t, function () {\n i[n].depsLoaded = !0, e(n);\n });\n }\n\n var f = n.document,\n u = f.getElementsByTagName(\"script\")[0],\n b = function b(n) {\n return typeof n == \"string\";\n },\n c = function c(n) {\n return Object.prototype.toString.call(n) == \"[object Array]\";\n },\n w = function w(n) {\n return Object.prototype.toString.call(n) == \"[object Function]\";\n },\n i = {},\n r = {\n baseUrl: \"/\",\n modulePath: \"js/modules/\",\n versions: {},\n externalResources: []\n };\n\n typeof Roblox == \"undefined\" && (Roblox = {}), Roblox.config = r, Roblox.require = l, Roblox.define = y;\n})(window);\n\n; /// jquery.json-2.2.js\n\n(function (n) {\n n.toJSON = function (t) {\n var s, o, p, h, f, e, r, v, c, a, u, l, i, y;\n if (_typeof(JSON) == \"object\" && JSON.stringify) return JSON.stringify(t);\n if (i = _typeof(t), t === null) return \"null\";\n if (i == \"undefined\") return undefined;\n if (i == \"number\" || i == \"boolean\") return t + \"\";\n if (i == \"string\") return n.quoteString(t);\n\n if (i == \"object\") {\n if (typeof t.toJSON == \"function\") return n.toJSON(t.toJSON());\n if (t.constructor === Date) return s = t.getUTCMonth() + 1, s < 10 && (s = \"0\" + s), o = t.getUTCDate(), o < 10 && (o = \"0\" + o), p = t.getUTCFullYear(), h = t.getUTCHours(), h < 10 && (h = \"0\" + h), f = t.getUTCMinutes(), f < 10 && (f = \"0\" + f), e = t.getUTCSeconds(), e < 10 && (e = \"0\" + e), r = t.getUTCMilliseconds(), r < 100 && (r = \"0\" + r), r < 10 && (r = \"0\" + r), '\"' + p + \"-\" + s + \"-\" + o + \"T\" + h + \":\" + f + \":\" + e + \".\" + r + 'Z\"';\n\n if (t.constructor === Array) {\n for (v = [], c = 0; c < t.length; c++) {\n v.push(n.toJSON(t[c]) || \"null\");\n }\n\n return \"[\" + v.join(\",\") + \"]\";\n }\n\n a = [];\n\n for (u in t) {\n if (i = _typeof(u), i == \"number\") l = '\"' + u + '\"';else if (i == \"string\") l = n.quoteString(u);else continue;\n typeof t[u] != \"function\" && (y = n.toJSON(t[u]), a.push(l + \":\" + y));\n }\n\n return \"{\" + a.join(\", \") + \"}\";\n }\n }, n.evalJSON = function (n) {\n return _typeof(JSON) == \"object\" && JSON.parse ? JSON.parse(n) : eval(\"(\" + n + \")\");\n }, n.secureEvalJSON = function (n) {\n if (_typeof(JSON) == \"object\" && JSON.parse) return JSON.parse(n);\n var t = n;\n if (t = t.replace(/\\\\[\"\\\\\\/bfnrtu]/g, \"@\"), t = t.replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, \"]\"), t = t.replace(/(?:^|:|,)(?:\\s*\\[)+/g, \"\"), /^[\\],:{}\\s]*$/.test(t)) return eval(\"(\" + n + \")\");\n throw new SyntaxError(\"Error parsing JSON, source is not valid.\");\n }, n.quoteString = function (n) {\n return n.match(t) ? '\"' + n.replace(t, function (n) {\n var t = i[n];\n return typeof t == \"string\" ? t : (t = n.charCodeAt(), \"\\\\u00\" + Math.floor(t / 16).toString(16) + (t % 16).toString(16));\n }) + '\"' : '\"' + n + '\"';\n };\n var t = /[\"\\\\\\x00-\\x1f\\x7f-\\x9f]/g,\n i = {\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\"\n };\n})(jQuery);\n\n; /// jquery.simplemodal-1.3.5.js\n\n(function (n) {\n var i = n.browser.msie && parseInt(n.browser.version) == 6 && _typeof(window.XMLHttpRequest) != \"object\",\n r = !1,\n t = [];\n n.modal = function (t, i) {\n return n.modal.impl.init(t, i);\n }, n.modal.close = function () {\n n.modal.impl.close();\n }, n.fn.modal = function (t) {\n return n.modal.impl.init(this, t);\n }, n.modal.defaults = {\n appendTo: \"body\",\n focus: !0,\n opacity: 50,\n overlayId: \"simplemodal-overlay\",\n overlayCss: {},\n containerId: \"simplemodal-container\",\n containerCss: {},\n dataId: \"simplemodal-data\",\n dataCss: {},\n minHeight: null,\n minWidth: null,\n maxHeight: null,\n maxWidth: null,\n autoResize: !1,\n autoPosition: !0,\n zIndex: 1e3,\n close: !0,\n closeHTML: '',\n closeClass: \"simplemodal-close\",\n escClose: !0,\n overlayClose: !1,\n position: null,\n persist: !1,\n modal: !0,\n onOpen: null,\n onShow: null,\n onClose: null\n }, n.modal.impl = {\n o: null,\n d: {},\n init: function init(t, i) {\n var r = this;\n if (r.d.data) return !1;\n if (r.o = n.extend({}, n.modal.defaults, i), r.zIndex = r.o.zIndex, r.occb = !1, _typeof(t) == \"object\") t = t instanceof jQuery ? t : n(t), r.d.placeholder = !1, t.parent().parent().size() > 0 && (t.before(n(\"\").attr(\"id\", \"simplemodal-placeholder\").css({\n display: \"none\"\n })), r.d.placeholder = !0, r.display = t.css(\"display\"), r.o.persist || (r.d.orig = t.clone(!0)));else if (typeof t == \"string\" || typeof t == \"number\") t = n(\"
\").html(t);else return alert(\"SimpleModal Error: Unsupported data type: \" + _typeof(t)), r;\n return r.create(t), t = null, r.open(), n.isFunction(r.o.onShow) && r.o.onShow.apply(r, [r.d]), r;\n },\n create: function create(r) {\n var u = this;\n t = u.getDimensions(), u.o.modal && i && (u.d.iframe = n('').css(n.extend(u.o.iframeCss, {\n display: \"none\",\n opacity: 0,\n position: \"fixed\",\n height: t[0],\n width: t[1],\n zIndex: u.o.zIndex,\n top: 0,\n left: 0\n })).appendTo(u.o.appendTo)), u.d.overlay = n(\"
\").attr(\"id\", u.o.overlayId).addClass(\"simplemodal-overlay\").css(n.extend(u.o.overlayCss, {\n display: \"none\",\n opacity: u.o.opacity / 100,\n height: u.o.modal ? t[0] : 0,\n width: u.o.modal ? t[1] : 0,\n position: \"fixed\",\n left: 0,\n top: 0,\n zIndex: u.o.zIndex + 1\n })).appendTo(u.o.appendTo), u.d.container = n(\"
\").attr(\"id\", u.o.containerId).addClass(\"simplemodal-container\").css(n.extend(u.o.containerCss, {\n display: \"none\",\n position: \"fixed\",\n zIndex: u.o.zIndex + 2\n })).append(u.o.close && u.o.closeHTML ? n(u.o.closeHTML).addClass(u.o.closeClass) : \"\").appendTo(u.o.appendTo), u.d.wrap = n(\"
\").attr(\"tabIndex\", -1).addClass(\"simplemodal-wrap\").css({\n height: \"100%\",\n outline: 0,\n width: \"100%\",\n overflow: \"visible\"\n }).appendTo(u.d.container), u.d.data = r.attr(\"id\", r.attr(\"id\") || u.o.dataId).addClass(\"simplemodal-data\").css(n.extend(u.o.dataCss, {\n display: \"none\"\n })).appendTo(\"body\"), r = null, u.setContainerDimensions(), u.d.data.appendTo(u.d.wrap), i && u.fixIE();\n },\n bindEvents: function bindEvents() {\n var r = this;\n n(\".\" + r.o.closeClass).bind(\"click.simplemodal\", function (n) {\n n.preventDefault(), r.close();\n }), r.o.modal && r.o.close && r.o.overlayClose && r.d.overlay.bind(\"click.simplemodal\", function (n) {\n n.preventDefault(), r.close();\n }), n(document).bind(\"keydown.simplemodal\", function (n) {\n r.o.modal && r.o.focus && n.keyCode == 9 ? r.watchTab(n) : r.o.close && r.o.escClose && n.keyCode == 27 && (n.preventDefault(), r.close());\n }), n(window).bind(\"resize.simplemodal\", function () {\n t = r.getDimensions(), r.setContainerDimensions(!0), i ? r.fixIE() : r.o.modal && (r.d.iframe && r.d.iframe.css({\n height: t[0],\n width: t[1]\n }), r.d.overlay.css({\n height: t[0],\n width: t[1]\n }));\n });\n },\n unbindEvents: function unbindEvents() {\n n(\".\" + this.o.closeClass).unbind(\"click.simplemodal\"), n(document).unbind(\"keydown.simplemodal\"), n(window).unbind(\"resize.simplemodal\"), this.d.overlay.unbind(\"click.simplemodal\");\n },\n fixIE: function fixIE() {\n var i = this,\n t = i.o.position;\n n.each([i.d.iframe || null, i.o.modal ? i.d.overlay : null, i.d.container], function (n, i) {\n var l, c, o, e;\n\n if (i) {\n var s = \"document.body.clientHeight\",\n h = \"document.body.clientWidth\",\n b = \"document.body.scrollHeight\",\n a = \"document.body.scrollLeft\",\n v = \"document.body.scrollTop\",\n p = \"document.body.scrollWidth\",\n y = \"document.documentElement.clientHeight\",\n w = \"document.documentElement.clientWidth\",\n u = \"document.documentElement.scrollLeft\",\n f = \"document.documentElement.scrollTop\",\n r = i[0].style;\n r.position = \"absolute\", n < 2 ? (r.removeExpression(\"height\"), r.removeExpression(\"width\"), r.setExpression(\"height\", \"\" + b + \" > \" + s + \" ? \" + b + \" : \" + s + ' + \"px\"'), r.setExpression(\"width\", \"\" + p + \" > \" + h + \" ? \" + p + \" : \" + h + ' + \"px\"')) : (t && t.constructor == Array ? (o = t[0] ? typeof t[0] == \"number\" ? t[0].toString() : t[0].replace(/px/, \"\") : i.css(\"top\").replace(/px/, \"\"), l = o.indexOf(\"%\") == -1 ? o + \" + (t = \" + f + \" ? \" + f + \" : \" + v + ') + \"px\"' : parseInt(o.replace(/%/, \"\")) + \" * ((\" + y + \" || \" + s + \") / 100) + (t = \" + f + \" ? \" + f + \" : \" + v + ') + \"px\"', t[1] && (e = typeof t[1] == \"number\" ? t[1].toString() : t[1].replace(/px/, \"\"), c = e.indexOf(\"%\") == -1 ? e + \" + (t = \" + u + \" ? \" + u + \" : \" + a + ') + \"px\"' : parseInt(e.replace(/%/, \"\")) + \" * ((\" + w + \" || \" + h + \") / 100) + (t = \" + u + \" ? \" + u + \" : \" + a + ') + \"px\"')) : (l = \"(\" + y + \" || \" + s + \") / 2 - (this.offsetHeight / 2) + (t = \" + f + \" ? \" + f + \" : \" + v + ') + \"px\"', c = \"(\" + w + \" || \" + h + \") / 2 - (this.offsetWidth / 2) + (t = \" + u + \" ? \" + u + \" : \" + a + ') + \"px\"'), r.removeExpression(\"top\"), r.removeExpression(\"left\"), r.setExpression(\"top\", l), r.setExpression(\"left\", c));\n }\n });\n },\n focus: function focus(t) {\n var r = this,\n u = t || \"first\",\n i = n(\":input:enabled:visible:\" + u, r.d.wrap);\n i.length > 0 ? i.focus() : r.d.wrap.focus();\n },\n getDimensions: function getDimensions() {\n var t = n(window),\n i = n.browser.opera && n.browser.version > \"9.5\" && n.fn.jquery <= \"1.2.6\" ? document.documentElement.clientHeight : n.browser.opera && n.browser.version < \"9.5\" && n.fn.jquery > \"1.2.6\" ? window.innerHeight : t.height();\n return [i, t.width()];\n },\n getVal: function getVal(n) {\n return n == \"auto\" ? 0 : n.indexOf(\"%\") > 0 ? n : parseInt(n.replace(/px/, \"\"));\n },\n setContainerDimensions: function setContainerDimensions(i) {\n var r = this;\n\n if (!i || i && r.o.autoResize) {\n var f = n.browser.opera ? r.d.container.height() : r.getVal(r.d.container.css(\"height\")),\n u = n.browser.opera ? r.d.container.width() : r.getVal(r.d.container.css(\"width\")),\n s = r.d.data.outerHeight(!0),\n h = r.d.data.outerWidth(!0),\n e = r.o.maxHeight && r.o.maxHeight < t[0] ? r.o.maxHeight : t[0],\n o = r.o.maxWidth && r.o.maxWidth < t[1] ? r.o.maxWidth : t[1];\n f = f ? f > e ? e : f : s ? s > e ? e : s < r.o.minHeight ? r.o.minHeight : s : r.o.minHeight, u = u ? u > o ? o : u : h ? h > o ? o : h < r.o.minWidth ? r.o.minWidth : h : r.o.minWidth, r.d.container.css({\n height: f,\n width: u\n });\n }\n\n r.o.autoPosition && r.setPosition();\n },\n setPosition: function setPosition() {\n var n = this,\n r,\n i,\n f = t[0] / 2 - n.d.container.outerHeight(!0) / 2,\n u = t[1] / 2 - n.d.container.outerWidth(!0) / 2;\n n.o.position && Object.prototype.toString.call(n.o.position) === \"[object Array]\" ? (r = n.o.position[0] || f, i = n.o.position[1] || u) : (r = f, i = u), n.d.container.css({\n left: i,\n top: r\n });\n },\n watchTab: function watchTab(t) {\n var i = this,\n r;\n n(t.target).parents(\".simplemodal-container\").length > 0 ? (i.inputs = n(\":input:enabled:visible:first, :input:enabled:visible:last\", i.d.data[0]), (!t.shiftKey && t.target == i.inputs[i.inputs.length - 1] || t.shiftKey && t.target == i.inputs[0] || i.inputs.length == 0) && (t.preventDefault(), r = t.shiftKey ? \"last\" : \"first\", setTimeout(function () {\n i.focus(r);\n }, 10))) : (t.preventDefault(), setTimeout(function () {\n i.focus();\n }, 10));\n },\n open: function open() {\n var t = this;\n t.d.iframe && t.d.iframe.show(), n.isFunction(t.o.onOpen) ? t.o.onOpen.apply(t, [t.d]) : (t.d.overlay.show(), t.d.container.show(), t.d.data.show()), t.focus(), t.bindEvents();\n },\n close: function close() {\n var t = this,\n i;\n if (!t.d.data) return !1;\n t.unbindEvents(), n.isFunction(t.o.onClose) && !t.occb ? (t.occb = !0, t.o.onClose.apply(t, [t.d])) : (t.d.placeholder ? (i = n(\"#simplemodal-placeholder\"), t.o.persist ? i.replaceWith(t.d.data.removeClass(\"simplemodal-data\").css(\"display\", t.display)) : (t.d.data.hide().remove(), i.replaceWith(t.d.orig))) : t.d.data.hide().remove(), t.d.container.hide().remove(), t.d.overlay.hide().remove(), t.d.iframe && t.d.iframe.hide().remove(), t.d = {});\n }\n };\n})(jQuery);\n\n; /// jquery.tipsy.js\n\n(function (n) {\n n.fn.tipsy = function (t) {\n return t = n.extend({}, n.fn.tipsy.defaults, t), this.each(function () {\n var i = n.fn.tipsy.elementOptions(this, t);\n n(this).hover(function () {\n var t, e, r;\n n.data(this, \"cancel.tipsy\", !0), t = n.data(this, \"active.tipsy\"), t || (t = n('
'), t.css({\n position: \"absolute\",\n zIndex: 999999\n }), n.data(this, \"active.tipsy\", t)), (n(this).attr(\"title\") || typeof n(this).attr(\"original-title\") != \"string\") && n(this).attr(\"original-title\", n(this).attr(\"title\") || \"\").removeAttr(\"title\"), typeof i.title == \"string\" ? e = n(this).attr(i.title == \"title\" ? \"original-title\" : i.title) : typeof i.title == \"function\" && (e = i.title.call(this)), t.find(\".tipsy-inner\")[i.html ? \"html\" : \"text\"](e || i.fallback), r = n.extend({}, n(this).offset(), {\n width: this.offsetWidth,\n height: this.offsetHeight\n }), t.get(0).className = \"tipsy\", t.remove().css({\n top: 0,\n left: 0,\n visibility: \"hidden\",\n display: \"block\"\n }).appendTo(document.body);\n var f = t[0].offsetWidth,\n u = t[0].offsetHeight,\n o = typeof i.gravity == \"function\" ? i.gravity.call(this) : i.gravity;\n\n switch (o.charAt(0)) {\n case \"n\":\n t.css({\n top: r.top + r.height,\n left: r.left + r.width / 2 - f / 2\n }).addClass(\"tipsy-north\");\n break;\n\n case \"s\":\n t.css({\n top: r.top - u,\n left: r.left + r.width / 2 - f / 2\n }).addClass(\"tipsy-south\");\n break;\n\n case \"e\":\n t.css({\n top: r.top + r.height / 2 - u / 2,\n left: r.left - f\n }).addClass(\"tipsy-east\");\n break;\n\n case \"w\":\n t.css({\n top: r.top + r.height / 2 - u / 2,\n left: r.left + r.width\n }).addClass(\"tipsy-west\");\n }\n\n i.fade ? t.css({\n opacity: 0,\n display: \"block\",\n visibility: \"visible\"\n }).animate({\n opacity: .8\n }) : t.css({\n visibility: \"visible\"\n });\n }, function () {\n n.data(this, \"cancel.tipsy\", !1);\n var t = this;\n setTimeout(function () {\n if (!n.data(this, \"cancel.tipsy\")) {\n var r = n.data(t, \"active.tipsy\");\n i.fade ? r.stop().fadeOut(function () {\n n(this).remove();\n }) : r.remove();\n }\n }, 100);\n });\n });\n }, n.fn.tipsy.elementOptions = function (t, i) {\n return n.metadata ? n.extend({}, i, n(t).metadata()) : i;\n }, n.fn.tipsy.defaults = {\n fade: !1,\n fallback: \"\",\n gravity: \"n\",\n html: !1,\n title: \"title\"\n }, n.fn.tipsy.autoNS = function () {\n return n(this).offset().top > n(document).scrollTop() + n(window).height() / 2 ? \"s\" : \"n\";\n }, n.fn.tipsy.autoWE = function () {\n return n(this).offset().left > n(document).scrollLeft() + n(window).width() / 2 ? \"e\" : \"w\";\n };\n})(jQuery);\n\n; /// AjaxAvatarThumbnail.js\n\nvar RobloxThumbs = function () {\n function n(t, i, r) {\n $.get(\"/thumbs/rawavatar.ashx\", {\n UserID: i,\n ThumbnailFormatID: r\n }, function (u) {\n u == \"PENDING\" ? window.setTimeout(function () {\n n(t, i, r);\n }, 3e3) : u.substring(5, 0) == \"ERROR\" || $(\"#\" + t).attr(\"src\", u);\n });\n }\n\n return {\n GenerateAvatarThumb: function GenerateAvatarThumb(t, i, r) {\n $(\"#\" + t).attr(\"src\", \"/images/spinners/waiting.gif\"), n(t, i, r);\n }\n };\n}();\n\n; /// extensions/string.js\n\n$.extend(String.prototype, function () {\n function n() {\n return this.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n }\n\n return {\n escapeHTML: n\n };\n}());\n; /// StringTruncator.min.js\n\nfunction InitStringTruncator() {\n isInitialized || (fitStringSpan = document.createElement(\"span\"), fitStringSpan.style.display = \"inline\", fitStringSpan.style.visibility = \"hidden\", fitStringSpan.style.padding = \"0px\", document.body.appendChild(fitStringSpan), isInitialized = !0);\n}\n\nfunction fitStringToWidth(n, t, i) {\n function f(n) {\n return n.replace(\"<\", \"<\").replace(\">\", \">\");\n }\n\n if (isInitialized || InitStringTruncator(), i && (fitStringSpan.className = i), i = f(n), fitStringSpan.innerHTML = i, fitStringSpan.offsetWidth > t) {\n for (var i = 0, r, u = n.length; r = u - i >> 1;) {\n r = i + r, fitStringSpan.innerHTML = f(n.substring(0, r)) + \"…\", fitStringSpan.offsetWidth > t ? u = r : i = r;\n }\n\n i = n.substring(0, i) + \"…\";\n }\n\n return i;\n}\n\nfunction fitStringToWidthSafe(n, t, i) {\n return n = fitStringToWidth(n, t, i), n.indexOf(\"…\") != -1 && (t = n.lastIndexOf(\" \"), t != -1 && t + 10 <= n.length && (n = n.substring(0, t + 2) + \"…\")), n;\n}\n\nvar isInitialized = !1,\n fitStringSpan = null;\n; /// json2.min.js\n\nvar JSON;\nJSON || (JSON = {}), function () {\n \"use strict\";\n\n function i(n) {\n return n < 10 ? \"0\" + n : n;\n }\n\n function f(n) {\n return o.lastIndex = 0, o.test(n) ? '\"' + n.replace(o, function (n) {\n var t = s[n];\n return typeof t == \"string\" ? t : \"\\\\u\" + (\"0000\" + n.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + n + '\"';\n }\n\n function r(i, e) {\n var c,\n l,\n h,\n a,\n v = n,\n s,\n o = e[i];\n o && _typeof(o) == \"object\" && typeof o.toJSON == \"function\" && (o = o.toJSON(i)), typeof t == \"function\" && (o = t.call(e, i, o));\n\n switch (_typeof(o)) {\n case \"string\":\n return f(o);\n\n case \"number\":\n return isFinite(o) ? String(o) : \"null\";\n\n case \"boolean\":\n case \"null\":\n return String(o);\n\n case \"object\":\n if (!o) return \"null\";\n\n if (n += u, s = [], Object.prototype.toString.apply(o) === \"[object Array]\") {\n for (a = o.length, c = 0; c < a; c += 1) {\n s[c] = r(c, o) || \"null\";\n }\n\n return h = s.length === 0 ? \"[]\" : n ? \"[\\n\" + n + s.join(\",\\n\" + n) + \"\\n\" + v + \"]\" : \"[\" + s.join(\",\") + \"]\", n = v, h;\n }\n\n if (t && _typeof(t) == \"object\") for (a = t.length, c = 0; c < a; c += 1) {\n l = t[c], typeof l == \"string\" && (h = r(l, o), h && s.push(f(l) + (n ? \": \" : \":\") + h));\n } else for (l in o) {\n Object.hasOwnProperty.call(o, l) && (h = r(l, o), h && s.push(f(l) + (n ? \": \" : \":\") + h));\n }\n return h = s.length === 0 ? \"{}\" : n ? \"{\\n\" + n + s.join(\",\\n\" + n) + \"\\n\" + v + \"}\" : \"{\" + s.join(\",\") + \"}\", n = v, h;\n }\n }\n\n typeof Date.prototype.toJSON != \"function\" && (Date.prototype.toJSON = function () {\n return isFinite(this.valueOf()) ? this.getUTCFullYear() + \"-\" + i(this.getUTCMonth() + 1) + \"-\" + i(this.getUTCDate()) + \"T\" + i(this.getUTCHours()) + \":\" + i(this.getUTCMinutes()) + \":\" + i(this.getUTCSeconds()) + \"Z\" : null;\n }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () {\n return this.valueOf();\n });\n var e = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n o = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n n,\n u,\n s = {\n \"\\b\": \"\\\\b\",\n \"\\t\": \"\\\\t\",\n \"\\n\": \"\\\\n\",\n \"\\f\": \"\\\\f\",\n \"\\r\": \"\\\\r\",\n '\"': '\\\\\"',\n \"\\\\\": \"\\\\\\\\\"\n },\n t;\n typeof JSON.stringify != \"function\" && (JSON.stringify = function (i, f, e) {\n var o;\n if (n = \"\", u = \"\", typeof e == \"number\") for (o = 0; o < e; o += 1) {\n u += \" \";\n } else typeof e == \"string\" && (u = e);\n if (t = f, f && typeof f != \"function\" && (_typeof(f) != \"object\" || typeof f.length != \"number\")) throw new Error(\"JSON.stringify\");\n return r(\"\", {\n \"\": i\n });\n }), typeof JSON.parse != \"function\" && (JSON.parse = function (n, t) {\n function r(n, i) {\n var f,\n e,\n u = n[i];\n if (u && _typeof(u) == \"object\") for (f in u) {\n Object.hasOwnProperty.call(u, f) && (e = r(u, f), e !== undefined ? u[f] = e : delete u[f]);\n }\n return t.call(n, i, u);\n }\n\n var i;\n if (n = String(n), e.lastIndex = 0, e.test(n) && (n = n.replace(e, function (n) {\n return \"\\\\u\" + (\"0000\" + n.charCodeAt(0).toString(16)).slice(-4);\n })), /^[\\],:{}\\s]*$/.test(n.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, \"@\").replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, \"]\").replace(/(?:^|:|,)(?:\\s*\\[)+/g, \"\"))) return i = eval(\"(\" + n + \")\"), typeof t == \"function\" ? r({\n \"\": i\n }, \"\") : i;\n throw new SyntaxError(\"JSON.parse\");\n });\n}();\n; /// webkit.js\n\ntypeof Sys.Browser.WebKit == \"undefined\" && (Sys.Browser.WebKit = {}), navigator.userAgent.indexOf(\"WebKit/\") > -1 && (Sys.Browser.agent = Sys.Browser.WebKit, Sys.Browser.version = parseFloat(navigator.userAgent.match(/WebKit\\/(\\d+(\\.\\d+)?)/)[1]), Sys.Browser.name = \"WebKit\");\n; /// GoogleAnalytics/GoogleAnalyticsEvents.js\n\nvar GoogleAnalyticsEvents = new function () {\n this.FireEvent = function (n) {\n if ((typeof _gaq === \"undefined\" ? \"undefined\" : _typeof(_gaq)) != ( true ? \"undefined\" : 0)) {\n var i = [\"_trackEvent\"],\n t = [\"b._trackEvent\"];\n _gaq.push(i.concat(n)), _gaq.push(t.concat(n));\n }\n };\n}();\n; /// MasterPageUI.js\n\n$(function () {\n $(\".tooltip\").tipsy(), $(\".tooltip-top\").tipsy({\n gravity: \"s\"\n }), $(\".tooltip-right\").tipsy({\n gravity: \"w\"\n }), $(\".tooltip-left\").tipsy({\n gravity: \"e\"\n }), $(\".tooltip-bottom\").tipsy({\n gravity: \"n\"\n });\n}), typeof Roblox == \"undefined\" && (Roblox = {}), Roblox.FixedUI = function () {\n function s() {\n if (typeof pageYOffset != \"undefined\") return pageYOffset;\n var t = document.body,\n n = document.documentElement;\n return n = n.clientHeight ? n : t, n.scrollTop;\n }\n\n function e() {\n var n = s();\n t || (t = $(\"iframe.IframeAdHide\")), t.each(function () {\n var t = $(this).offset().top - 73;\n !r.gutterAdsEnabled && n >= t ? $(this).css(\"visibility\", \"hidden\") : $(this).css(\"visibility\", \"visible\");\n });\n }\n\n function i() {\n $(\"#Nav\").css(\"cssText\", \"position: static !important;width:970px !important\"), $(\"#SmallHeaderContainer\").css(\"cssText\", \"position: relative !important;height: 36px !important;width:970px !important\"), $(\".forceSpace\").css(\"cssText\", \"width: 970px !important; height:9px !important;padding-top: 0px !important;background:white\"), $(\"#Container\").css(\"cssText\", \"width: 970px !important\"), $(\".mySubmenuFixed\").css(\"cssText\", \"position: relative; top: 0px;\"), $(\"#MasterContainer\").css(\"cssText\", \"width: 970px !important\"), $(\".mySubmenuFixed\").length == 1 && ($(\".forceSpaceUnderSubmenu\").hide(), $(\".forceSpace\").css(\"cssText\", \"width: 910px !important; height:7px !important;padding-top: 0px !important;\")), $(window).unbind(\"scroll\");\n }\n\n function h() {\n $(\"#Nav\").css(\"cssText\", \"position: fixed !important;width:100% !important\"), $(\"#SmallHeaderContainer\").css(\"cssText\", \"position: fixed !important;height: 40px !important;width:100% !important\"), $(\".forceSpace\").css(\"cssText\", \"width: 100% !important; height:15px !important;padding-top: 62px !important;\"), $(\"#Container\").css(\"cssText\", \"width: 100% !important\"), $(\".mySubmenuFixed\").css(\"cssText\", \"position: fixed; top: 68px;\"), $(\"#MasterContainer\").css(\"cssText\", \"width: 100%\"), $(\".mySubmenuFixed\").length == 1 && $(\".forceSpaceUnderSubmenu\").show(), $(window).scroll(e);\n }\n\n function o() {\n var n = 1024;\n return document.body && document.body.offsetWidth && (n = document.body.offsetWidth), window.innerWidth && window.innerHeight && (n = window.innerWidth), n;\n }\n\n function u() {\n o() < 978 ? i() : h();\n }\n\n var n = navigator.userAgent.toLowerCase(),\n f = /mobile/i.test(n) || /ipad/i.test(n) || /iphone/i.test(n) || /android/i.test(n) || /playbook/i.test(n) || /blackberry/i.test(n),\n t,\n r;\n return $(function () {\n f ? i() : $(window).load(u).resize(u);\n }), t = null, r = {\n isMobile: f,\n gutterAdsEnabled: !1,\n unfixHeader: i\n };\n}();\n; /// jquery.cookie.js\n\njQuery.cookie = function (n, t, i) {\n var o, r, f, e, u, s;\n\n if (typeof t != \"undefined\") {\n i = i || {}, t === null && (t = \"\", i.expires = -1), o = \"\", i.expires && (typeof i.expires == \"number\" || i.expires.toUTCString) && (typeof i.expires == \"number\" ? (r = new Date(), r.setTime(r.getTime() + i.expires * 864e5)) : r = i.expires, o = \"; expires=\" + r.toUTCString());\n var h = i.path ? \"; path=\" + i.path : \"\",\n c = i.domain ? \"; domain=\" + i.domain : \"\",\n l = i.secure ? \"; secure\" : \"\";\n document.cookie = [n, \"=\", encodeURIComponent(t), o, h, c, l].join(\"\");\n } else {\n if (f = null, document.cookie && document.cookie != \"\") for (e = document.cookie.split(\";\"), u = 0; u < e.length; u++) {\n if (s = jQuery.trim(e[u]), s.substring(0, n.length + 1) == n + \"=\") {\n f = decodeURIComponent(s.substring(n.length + 1));\n break;\n }\n }\n return f;\n }\n};\n\n; /// jquery.jsoncookie.js\n\nfunction RobloxJSONCookie(n) {\n this._cookiename = n;\n}\n\n(function (n) {\n var t = function t(n) {\n return _typeof(n) == \"object\" && !(n instanceof Array) && n !== null;\n };\n\n n.extend({\n getJSONCookie: function getJSONCookie(t, i) {\n var r = n.cookie(t);\n return i ? r : r ? JSON.parse(r) : {};\n },\n setJSONCookie: function setJSONCookie(i, r, u) {\n var f = \"\";\n return u = n.extend({\n expires: 90,\n path: \"/\"\n }, u), f = t(r) ? JSON.stringify(r) : r, n.cookie(i, f, u);\n },\n removeJSONCookie: function removeJSONCookie(t) {\n return n.cookie(t, null);\n },\n JSONCookie: function JSONCookie(t, i, r) {\n return i && n.setJSONCookie(t, i, r), n.getJSONCookie(t);\n }\n });\n})(jQuery), RobloxJSONCookie.prototype = {\n Delete: function Delete() {\n return $.removeJSONCookie(this._cookiename);\n },\n SetObj: function SetObj(n, t) {\n return t || (t = {\n path: \"/\"\n }), $.JSONCookie(this._cookiename, n, t);\n },\n SetJSON: function SetJSON(n, t) {\n return t || (t = {\n path: \"/\"\n }), $.JSONCookie(this._cookiename, n, t);\n },\n GetObj: function GetObj() {\n var n = $.getJSONCookie(this._cookiename, !1);\n return n == null ? {} : n;\n },\n GetJSON: function GetJSON() {\n return $.getJSONCookie(this._cookiename, !0);\n }\n};\n; /// XsrfToken.js\n\ntypeof Roblox == \"undefined\" && (Roblox = {}), Roblox.XsrfToken = function () {\n function f(n) {\n var u, t;\n if (i.allUrlsEnabled) return !0;\n\n for (u = n.split(\"?\")[0].toLowerCase(), t = 0; t < r.length; t++) {\n if (r[t] === u) return !0;\n }\n\n return !1;\n }\n\n function e(n) {\n r.push(n.toLowerCase());\n }\n\n function o(t) {\n n = t;\n }\n\n function u() {\n return n;\n }\n\n var n = \"\",\n t = /(^|\\?|&)token=[^&]*/,\n r = [\"/chat/friendhandler.ashx\", \"/chat/party.ashx\", \"/chat/send.ashx\", \"/chat/utility.ashx\", \"/groups/rolesetupdater.ashx\", \"groups.aspx/exileuseranddeleteposts\", \"messageshandler.ashx\", \"emailupgrademe.ashx\", \"/services/usercheck.asmx/updatepersonalinfo\", \"/thumbs/assetmedia/placemediaitemsorthandler.ashx\"],\n i;\n return $.ajaxPrefilter(function (i) {\n var o, e;\n i.dataType != \"jsonp\" && i.dataType != \"script\" && n != \"\" && f(i.url) && (o = $.param({\n token: n\n }), t.test(i.url) || typeof i.data != \"undefined\" && t.test(i.data) || (i.url += /\\?/.test(i.url) ? \"&token=\" + encodeURIComponent(n) : \"?token=\" + encodeURIComponent(n)), e = i.error, i.error = function (r, u, f) {\n if (r.status == 420) {\n var o = r.getResponseHeader(\"Token\");\n\n if (o == null) {\n typeof e == \"function\" && e(r, u, f);\n throw new Error(\"Null token returned by Xsrf enabled handler\");\n }\n\n t.test(i.url) ? i.url = i.url.replace(t, \"$1token=\" + encodeURIComponent(o)) : i.data = i.data.replace(t, \"$1token=\" + encodeURIComponent(o)), $.ajax(i), n = o;\n } else typeof e == \"function\" && e(r, u, f);\n });\n }), i = {\n setToken: o,\n getToken: u,\n allUrlsEnabled: !1,\n addEnabledUrl: e\n };\n}();\n; /// RobloxEventManager.js\n\nfunction RBXBaseEventListener() {\n if (!(this instanceof RBXBaseEventListener)) return new RBXBaseEventListener();\n this.init = function () {\n for (eventKey in this.events) {\n $(document).bind(this.events[eventKey], $.proxy(this.localCopy, this));\n }\n }, this.events = [], this.localCopy = function (n, t) {\n var r = $.extend(!0, {}, n),\n i = $.extend(!0, {}, t);\n this.handleEvent(r, i);\n }, this.distillData = function () {\n return console.log(\"RBXEventListener distillData - Please implement me\"), !1;\n }, this.handleEvent = function () {\n return console.log(\"EventListener handleEvent - Please implement me\"), !1;\n }, this.fireEvent = function () {\n return console.log(\"EventListener fireEvent - Please implement me\"), !1;\n };\n}\n\nRobloxEventManager = new function () {\n function u(n) {\n var i = new RegExp(n + \"=([^;]*)\"),\n t = i.exec(document.cookie);\n return t ? t[1] : null;\n }\n\n function t(n) {\n for (var u = {}, r = n.split(\"&\"), i, t = 0; t < r.length; t++) {\n i = r[t].split(\"=\"), u[i[0]] = i[1];\n }\n\n return u;\n }\n\n function i(n) {\n var i = u(n);\n return i ? t(i) : null;\n }\n\n var n = [],\n r = {};\n this.enabled = !1, this.initialized = !1, this.eventQueue = [], this.initialize = function (n) {\n for (this.initialized = !0, this.enabled = n; this.eventQueue.length > 0;) {\n var t = this.eventQueue.pop();\n this.triggerEvent(t.eventName, t.args);\n }\n }, this.getMarketingGuid = function () {\n var n = i(\"RBXEventTracker\");\n return n != null ? n.browserid : -1;\n }, this.triggerEvent = function (n, t) {\n this.initialized ? this.enabled && (typeof t == \"undefined\" && (t = {}), t.guid = this.getMarketingGuid(), t.guid != -1 && $(document).trigger(n, [t])) : this.eventQueue.push({\n eventName: n,\n args: t\n });\n }, this.registerCookieStoreEvent = function (t) {\n n.push(t);\n }, this.insertDataStoreKeyValuePair = function (n, t) {\n r[n] = t;\n }, this.monitorCookieStore = function () {\n var i, u, f, t, r;\n\n try {\n if (typeof Roblox == \"undefined\" || typeof Roblox.Client == \"undefined\" || window.location.protocol == \"https:\") return;\n if (i = Roblox.Client.CreateLauncher(!1), i == null) return;\n\n for (u = 0; u < n.length; u++) {\n try {\n f = n[u], t = i.GetKeyValue(f), t != \"\" && t != \"-1\" && t != \"RBX_NOT_VALID\" && (r = eval(\"(\" + t + \")\"), r.userType = r.userId > 0 ? \"user\" : \"guest\", RobloxEventManager.triggerEvent(f, r), i.SetKeyValue(f, \"RBX_NOT_VALID\"));\n } catch (e) {}\n }\n\n Roblox.Client.ReleaseLauncher(i, !1, !1);\n } catch (e) {}\n };\n}();\n; /// RobloxEventListener.js\n\nRobloxListener = new RBXBaseEventListener(), RobloxListener.handleEvent = function (n, t) {\n var r, u, i;\n\n switch (n.type) {\n case \"rbx_evt_install_begin\":\n i = {\n guid: \"guid\",\n userId: \"userid\"\n }, r = n.type;\n break;\n\n case \"rbx_evt_initial_install_start\":\n i = {\n guid: \"guid\",\n userId: \"userid\"\n }, r = n.type;\n break;\n\n case \"rbx_evt_ftp\":\n i = {\n guid: \"guid\",\n userId: \"userid\"\n }, r = n.type;\n break;\n\n case \"rbx_evt_initial_install_success\":\n i = {\n guid: \"guid\",\n userId: \"userid\"\n }, r = n.type;\n break;\n\n case \"rbx_evt_fmp\":\n i = {\n guid: \"guid\",\n userId: \"userid\"\n }, r = n.type;\n break;\n\n default:\n return console.log(\"RobloxEventListener - Event registered without handling instructions: \" + n.type), !1;\n }\n\n return u = this.distillData(t, i), this.fireEvent(this.eventToString(r, u)), !0;\n}, RobloxListener.distillData = function (n, t) {\n var i = {};\n\n for (dataKey in t) {\n _typeof(n[dataKey]) != ( true ? \"undefined\" : 0) && (i[t[dataKey]] = encodeURIComponent(n[dataKey]));\n }\n\n return i;\n}, RobloxListener.eventToString = function (n, t) {\n var i = RobloxListener.restUrl;\n if (i += \"?event=\" + n + \"&\", t != null) for (arg in t) {\n (typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg)) != ( true ? \"undefined\" : 0) && t.hasOwnProperty(arg) && (i += arg + \"=\" + t[arg] + \"&\");\n }\n return i = i.slice(0, i.length - 1);\n}, RobloxListener.fireEvent = function (n) {\n var t = $('');\n}, RobloxListener.events = [\"rbx_evt_install_begin\", \"rbx_evt_initial_install_start\", \"rbx_evt_ftp\", \"rbx_evt_initial_install_success\", \"rbx_evt_fmp\"];\n; /// KontagentEventListener.js\n\nKontagentListener = new RBXBaseEventListener(), KontagentListener.restUrl = \"\", KontagentListener.APIKey = \"\", KontagentListener.StagingAPIKey = \"\", KontagentListener.StagingEvents = [], KontagentListener.handleEvent = function (n, t) {\n function f(n) {\n return n = n.toLowerCase(), n == \"win32\" ? n = \"Windows\" : n == \"osx\" && (n = \"Mac\"), n;\n }\n\n var r, u, i, o, e;\n r = \"evt\";\n\n switch (n.type) {\n case \"rbx_evt_pageview\":\n i = {\n guid: \"s\",\n path: \"u\",\n ts: \"ts\",\n user_ip: \"ip\"\n }, r = \"pgr\";\n break;\n\n case \"rbx_evt_userinfo\":\n i = {\n guid: \"s\",\n age: \"b\",\n gender: \"g\"\n }, r = \"cpu\";\n break;\n\n case \"rbx_evt_ecomm_item\":\n t.total = Math.round(t.total * 100), t.productName = t.productName.replace(/\\s/g, \"\").replace(\"Outrageous\", \"O\").replace(\"Turbo\", \"T\").replace(\"Builders\", \"B\").replace(\"Club\", \"C\"), i = {\n guid: \"s\",\n total: \"v\",\n provider: \"st1\",\n category: \"st2\",\n productName: \"st3\",\n type: \"tu\"\n }, r = \"mtu\";\n break;\n\n case \"rbx_evt_ftp\":\n t.tracking = \"\", t.shorttracking = \"\", i = {\n guid: \"s\",\n trackingtag: \"u\",\n shorttracking: \"su\"\n }, u = this.distillData(t, i), r = \"apa\", this.fireEvent(this.eventToString(n.type, r, u)), t.eventName = \"Install Success Funnel\", t.eventType = \"Install Success Funnel\", t.os = f(t.os), i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n userType: \"st3\",\n eventName: \"n\"\n }, u = this.distillData(t, i), r = \"evt\", this.fireEvent(this.eventToString(n.type, r, u)), t.eventType = \"Install Success Place\", i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n userType: \"st3\",\n placeId: \"n\"\n };\n break;\n\n case \"rbx_evt_initial_install_success\":\n t.tracking = \"\", t.shorttracking = \"\", i = {\n guid: \"s\",\n trackingtag: \"u\",\n shorttracking: \"su\"\n }, u = this.distillData(t, i), r = \"apa\", this.fireEvent(this.eventToString(n.type, r, u)), t.eventName = \"Bootstrapper Install Success Funnel\", t.eventType = \"Bootstrapper Install Success Funnel\", t.os = f(t.os), i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n userType: \"st3\",\n eventName: \"n\"\n }, u = this.distillData(t, i), r = \"evt\", this.fireEvent(this.eventToString(n.type, r, u)), t.eventType = \"Bootstrapper Install Success Place\", i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n userType: \"st3\",\n placeId: \"n\"\n };\n break;\n\n case \"rbx_evt_install_begin\":\n t.eventName = \"Install Begin\", t.eventType = \"Install Begin\", i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_initial_install_start\":\n t.eventName = \"Bootstrapper Install Begin\", t.eventType = \"Bootstrapper Install Begin\", i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_fmp\":\n t.eventName = \"Five Minute Play Funnel\", t.eventType = \"Five Minute Play Funnel\", t.os = f(t.os), i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n userType: \"st3\",\n eventName: \"n\"\n }, u = this.distillData(t, i), this.fireEvent(this.eventToString(n.type, r, u)), t.eventType = \"Five Minute Play Place\", i = {\n guid: \"s\",\n eventType: \"st1\",\n os: \"st2\",\n userType: \"st3\",\n placeId: \"n\"\n };\n break;\n\n case \"rbx_evt_play_user\":\n t.eventName = \"Play User\", t.eventType = \"Play User\", t.gender = t.gender, i = {\n guid: \"s\",\n eventType: \"st1\",\n gender: \"st2\",\n age: \"st3\",\n placeId: \"l\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_play_guest\":\n t.eventName = \"Play Guest\", t.eventType = \"Play Guest\", t.gender = t.gender, i = {\n guid: \"s\",\n eventType: \"st1\",\n gender: \"st2\",\n placeId: \"l\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_signup\":\n t.eventName = \"Sign Up Funnel\", t.eventType = \"Sign Up Funnel\", i = {\n guid: \"s\",\n eventType: \"st1\",\n eventName: \"n\"\n }, u = this.distillData(t, i), r = \"evt\", this.fireEvent(this.eventToString(n.type, r, u)), t.eventName = \"Sign Up\", t.eventType = \"Sign Up\", t.gender = t.gender, i = {\n guid: \"s\",\n eventType: \"st1\",\n gender: \"st2\",\n age: \"st3\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_ecomm_custom\":\n t.eventType = \"Purchase\", t.productName = t.productName.replace(/\\s/g, \"\").replace(\"Outrageous\", \"O\").replace(\"Turbo\", \"T\").replace(\"Builders\", \"B\").replace(\"Club\", \"C\"), i = {\n guid: \"s\",\n eventType: \"st1\",\n provider: \"st2\",\n category: \"st3\",\n productName: \"n\"\n };\n break;\n\n case \"rbx_evt_abtest\":\n i = {\n guid: \"s\",\n experiment: \"st1\",\n variation: \"n\"\n };\n break;\n\n case \"rbx_evt_pageview_custom\":\n t.eventName = t.page, i = typeof t.userType == \"undefined\" ? {\n guid: \"s\",\n page: \"st1\",\n eventName: \"n\"\n } : {\n guid: \"s\",\n page: \"st1\",\n userType: \"st2\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_generic\":\n t.eventName = t.type, i = {\n guid: \"s\",\n type: \"st1\",\n eventName: \"n\"\n }, typeof t.opt1 != \"undefined\" && (i.opt1 = \"st2\"), typeof t.opt2 != \"undefined\" && typeof t.opt1 != \"undefined\" && (i.opt2 = \"st3\");\n break;\n\n case \"rbx_evt_source_tracking\":\n t.installed = 0, t.sourceType = \"ad\", i = {\n guid: \"s\",\n sourceType: \"tu\",\n installed: \"i\",\n source: \"st1\",\n campaign: \"st2\",\n medium: \"st3\"\n }, r = \"ucc\";\n break;\n\n case \"rbx_evt_card_redemption\":\n t.eventType = \"CardRedemption\", t.eventName = \"CardRedemption\", i = {\n guid: \"s\",\n eventType: \"st1\",\n merchant: \"st2\",\n cardValue: \"st3\",\n eventName: \"n\"\n };\n break;\n\n case \"rbx_evt_popup_action\":\n t.eventType = \"GuestPlayPopupAction\", t.eventName = \"GuestPlayPopupAction\", i = {\n guid: \"s\",\n eventType: \"st1\",\n action: \"st2\",\n eventName: \"n\"\n };\n break;\n\n default:\n return console.log(\"KontagentListener - Event registered without handling instructions: \" + n.type), !1;\n }\n\n return u = this.distillData(t, i), this.fireEvent(this.eventToString(n.type, r, u)), !0;\n}, KontagentListener.distillData = function (n, t) {\n var i = {};\n\n for (dataKey in t) {\n _typeof(n[dataKey]) != ( true ? \"undefined\" : 0) && (i[t[dataKey]] = encodeURIComponent(n[dataKey]));\n }\n\n return i;\n}, KontagentListener.eventToString = function (n, t, i) {\n var r = KontagentListener.restUrl,\n u = this.isStagingEvent(n, i) ? KontagentListener.StagingAPIKey : KontagentListener.APIKey;\n if (r += u + \"/\" + t + \"/?\", i != null) for (arg in i) {\n (typeof arg === \"undefined\" ? \"undefined\" : _typeof(arg)) != ( true ? \"undefined\" : 0) && i.hasOwnProperty(arg) && (r += arg + \"=\" + i[arg] + \"&\");\n }\n return r = r.slice(0, r.length - 1);\n}, KontagentListener.isStagingEvent = function (n, t) {\n var r, i;\n staging = !1;\n\n try {\n for (r in this.StagingEvents) {\n if (i = this.StagingEvents[r], typeof i == \"string\") {\n if (n == i) {\n staging = !0;\n break;\n }\n } else if (_typeof(i) == \"object\" && typeof i[n] != \"undefined\" && i[n] == t.st1) {\n staging = !0;\n break;\n }\n }\n } catch (u) {}\n\n return staging;\n}, KontagentListener.fireEvent = function (n) {\n var t = $('');\n}, KontagentListener.events = [\"rbx_evt_pageview\", \"rbx_evt_install_begin\", \"rbx_evt_initial_install_start\", \"rbx_evt_ftp\", \"rbx_evt_initial_install_success\", \"rbx_evt_fmp\", \"rbx_evt_play_user\", \"rbx_evt_play_guest\", \"rbx_evt_signup\", \"rbx_evt_ecomm_item\", \"rbx_evt_ecomm_custom\", \"rbx_evt_userinfo\", \"rbx_evt_abtest\", \"rbx_evt_pageview_custom\", \"rbx_evt_generic\", \"rbx_evt_source_tracking\", \"rbx_evt_card_redemption\", \"rbx_evt_popup_action\"];\n; /// GoogleEventListener.js\n\nGoogleListener = new RBXBaseEventListener(), GoogleListener.handleEvent = function (n, t) {\n function r(n) {\n return n = n.toLowerCase(), n == \"win32\" ? n = \"Windows\" : n == \"osx\" && (n = \"Mac\"), n;\n }\n\n var f, u, i;\n\n switch (n.type) {\n case \"rbx_evt_initial_install_begin\":\n t.os = r(t.os), t.category = \"Bootstrapper Install Begin\", i = {\n os: \"action\"\n };\n break;\n\n case \"rbx_evt_ftp\":\n t.os = r(t.os), t.category = \"Install Success\", i = {\n os: \"action\"\n };\n break;\n\n case \"rbx_evt_initial_install_success\":\n t.os = r(t.os), t.category = \"Bootstrapper Install Success\", i = {\n os: \"action\"\n };\n break;\n\n case \"rbx_evt_fmp\":\n t.os = r(t.os), t.category = \"Five Minute Play\", i = {\n os: \"action\"\n };\n break;\n\n case \"rbx_evt_abtest\":\n i = {\n experiment: \"category\",\n variation: \"action\",\n version: \"opt_label\"\n };\n break;\n\n case \"rbx_evt_card_redemption\":\n t.category = \"CardRedemption\", i = {\n merchant: \"action\",\n cardValue: \"opt_label\"\n };\n break;\n\n default:\n return console.log(\"GoogleListener - Event registered without handling instructions: \" + n.type), !1;\n }\n\n return i.category = \"category\", u = this.distillData(t, i), this.fireEvent(u), !0;\n}, GoogleListener.distillData = function (n, t) {\n var i = {},\n r;\n\n for (dataKey in t) {\n _typeof(n[dataKey]) != ( true ? \"undefined\" : 0) && (i[t[dataKey]] = n[dataKey]);\n }\n\n return r = [i.category, i.action], i.opt_label != null && (r = r.concat(i.opt_label)), i.opt_value != null && (r = r.concat(i.opt_value)), r;\n}, GoogleListener.fireEvent = function (n) {\n if ((typeof _gaq === \"undefined\" ? \"undefined\" : _typeof(_gaq)) != ( true ? \"undefined\" : 0)) {\n var i = [\"_trackEvent\"],\n t = [\"b._trackEvent\"];\n _gaq.push(i.concat(n)), _gaq.push(t.concat(n));\n }\n}, GoogleListener.events = [\"rbx_evt_initial_install_begin\", \"rbx_evt_ftp\", \"rbx_evt_initial_install_success\", \"rbx_evt_fmp\", \"rbx_evt_abtest\", \"rbx_evt_card_redemption\"];\n; /// MongoEventListener.js\n\nMongoListener = new RBXBaseEventListener(), MongoListener.handleEvent = function (n, t) {\n var i;\n return i = typeof t.shard == \"undefined\" ? this.defaultShard : t.shard, typeof t.eventName == \"undefined\" && (t.eventName = n.type), t.eventName === \"JavascriptExceptionLoggingEvent\" ? dataMap = {\n category: \"category\",\n url: \"url\",\n msg: \"msg\",\n line: \"line\",\n ua: \"UA\"\n } : (typeof t.category == \"undefined\" && (t.category = MongoListener.getCategoryFromEventName(t.eventName)), t.userId = MongoListener.userId, t.ip = MongoListener.clientIpAddress, dataMap = {\n guid: \"guid\",\n category: \"category\",\n userId: \"userid\",\n ip: \"ip\"\n }), this.fireEvent(i, this.distillData(t, dataMap)), !0;\n}, MongoListener.getCategoryFromEventName = function (n) {\n switch (n) {\n case \"rbx_evt_sitetouch\":\n return \"SiteTouch\";\n\n case \"rbx_evt_fmp\":\n return \"FiveMinutePlay\";\n\n case \"rbx_evt_play_user\":\n case \"rbx_evt_play_guest\":\n return \"Play\";\n\n default:\n return n;\n }\n}, MongoListener.distillData = function (n, t) {\n var i = {};\n\n for (dataKey in t) {\n _typeof(n[dataKey]) != ( true ? \"undefined\" : 0) && (i[t[dataKey]] = encodeURIComponent(n[dataKey]));\n }\n\n return i;\n}, MongoListener.fireEvent = function (n, t) {\n $.ajax({\n url: MongoListener.loggingURI + n,\n dataType: \"jsonp\",\n jsonpCallback: \"MongoListener.callback\",\n data: t\n });\n}, MongoListener.callback = function () {}, MongoListener.events = [\"JavascriptExceptionLoggingEvent\"];\n; /// SearchVisionListener.js\n\nSearchVisionListener = new RBXBaseEventListener(), SearchVisionListener.handleEvent = function (n, t) {\n var i = null;\n\n switch (n.type) {\n case \"rbx_evt_fmp\":\n i = {\n esvtk_v: \"1\",\n esvtk_esvid: \"A40125\",\n event: \"five_minute_play\"\n };\n break;\n\n case \"rbx_evt_ftp\":\n i = {\n esvtk_v: \"1\",\n esvtk_esvid: \"A40125\",\n event: \"first_play\"\n };\n break;\n\n case \"rbx_evt_install_begin\":\n i = {\n esvtk_v: \"1\",\n esvtk_esvid: \"A40125\",\n event: \"download\"\n };\n break;\n\n case \"rbx_evt_signup\":\n i = {\n esvtk_v: \"1\",\n esvtk_esvid: \"A40125\",\n event: \"esv_signup\"\n };\n break;\n\n case \"rbx_evt_generic\":\n t.type === \"OneDayReturn\" && (i = {\n esvtk_v: \"1\",\n esvtk_esvid: \"A40125\",\n event: \"return\"\n });\n }\n\n return i !== null && (i.orderid = t.guid, this.fireEvent(i)), !0;\n}, SearchVisionListener.fireEvent = function (n) {\n typeof esvtk_track != \"undefined\" ? esvtk_track(n) : setTimeout(function () {\n SearchVisionListener.fireEvent(n);\n }, 500);\n}, SearchVisionListener.events = [\"rbx_evt_fmp\", \"rbx_evt_ftp\", \"rbx_evt_install_begin\", \"rbx_evt_signup\", \"rbx_evt_generic\"];\n; /// SiteTouchEvent.js\n\ntypeof Roblox == \"undefined\" && (Roblox = {}), Roblox.SiteTouchEvent = function () {\n function r() {\n var t, i;\n return typeof localStorage != \"undefined\" && (t = localStorage.getItem(n)), (typeof t == \"undefined\" || t === null) && (t = $.cookie(n)), i = Date.parse(t), t && !isNaN(i) ? new Date(i) : new Date(0);\n }\n\n function i(i) {\n typeof i == \"undefined\" && (i = new Date()), typeof localStorage != \"undefined\" && (t.useLocalStorage ? $.cookie(n, null) : localStorage.removeItem(n)), t.useLocalStorage && typeof localStorage != \"undefined\" ? localStorage.setItem(n, i) : $.cookie(n, i, {\n expires: 100\n });\n }\n\n function u() {\n var n = r();\n Math.floor((new Date() - n) / 36e5) >= t.dateDiffThresholdInHours && RobloxEventManager.triggerEvent(\"rbx_evt_sitetouch\"), i();\n }\n\n var n = \"LastActivity\",\n t = {\n updateLastActivityAndFireEvent: u,\n getLastActivity: r,\n setLastActivity: i,\n dateDiffThresholdInHours: 3,\n useLocalStorage: !1\n };\n return t;\n}();\n; /// JSErrorTracker.js\n\ntypeof Roblox == \"undefined\" && (Roblox = {}), Roblox.JSErrorTracker = {\n showAlert: !1,\n defaultPixel: \"GA\",\n internalEventListenerPixelEnabled: !1,\n javascriptStackTraceEnabled: !1,\n data: {\n category: \"Javascript Errors\"\n },\n initialize: function initialize(n) {\n typeof n != \"undefined\" && (typeof n.showAlert != \"undefined\" && (this.showAlert = n.showAlert), typeof n.internalEventListenerPixelEnabled != \"undefined\" && (this.internalEventListenerPixelEnabled = n.internalEventListenerPixelEnabled)), this.addOnErrorEventHandler(this.errorHandler);\n },\n errorHandler: function errorHandler(n, t, i) {\n try {\n Roblox.JSErrorTracker.data.msg = n, Roblox.JSErrorTracker.data.url = t, Roblox.JSErrorTracker.data.line = i, Roblox.JSErrorTracker.data.ua = window.navigator.userAgent, Roblox.JSErrorTracker.logException(Roblox.JSErrorTracker.data);\n } catch (r) {}\n\n return !0;\n },\n addOnErrorEventHandler: function addOnErrorEventHandler(n) {\n var t = window.onerror;\n window.onerror = typeof window.onerror == \"function\" ? function (i, r, u) {\n t(i, r, u), n(i, r, u);\n } : n;\n },\n processException: function processException(n, t) {\n if (typeof n != \"undefined\") {\n typeof n.category == \"undefined\" && (n.category = Roblox.JSErrorTracker.data.category);\n\n switch (t) {\n case \"GA\":\n var i = {\n category: \"category\",\n url: \"action\",\n msg: \"opt_label\",\n line: \"opt_value\"\n };\n Roblox.JSErrorTracker.fireGAPixel(Roblox.JSErrorTracker.distillGAData(n, i));\n break;\n\n case \"Diag\":\n Roblox.JSErrorTracker.internalEventListenerPixelEnabled && (n.category = \"JavascriptExceptions\", n.shard = \"WebMetrics\", n.eventName = \"JavascriptExceptionLoggingEvent\", RobloxEventManager.triggerEvent(\"JavascriptExceptionLoggingEvent\", n));\n break;\n\n default:\n console.log(\"Roblox JSErrorTracker received an unknown pixel to fire\");\n }\n\n return !0;\n }\n },\n logException: function logException(n) {\n Roblox.JSErrorTracker.processException(n, Roblox.JSErrorTracker.defaultPixel), Roblox.JSErrorTracker.internalEventListenerPixelEnabled && Roblox.JSErrorTracker.processException(n, \"Diag\"), Roblox.JSErrorTracker.showErrorMessage(n.msg);\n },\n distillData: function distillData(n, t) {\n var r = {},\n i;\n\n for (i in t) {\n typeof n[i] != \"undefined\" && (r[t[i]] = encodeURIComponent(n[i]));\n }\n\n return r;\n },\n distillGAData: function distillGAData(n, t) {\n var r = Roblox.JSErrorTracker.distillData(n, t),\n i = [decodeURIComponent([r.category])];\n return _typeof(r.action) != ( true ? \"undefined\" : 0) ? (i = i.concat(decodeURIComponent(r.action)), _typeof(r.opt_label) != ( true ? \"undefined\" : 0) && (i = i.concat(decodeURIComponent(r.opt_label)), _typeof(r.opt_value) != ( true ? \"undefined\" : 0) && (i = i.concat(parseInt(decodeURIComponent(r.opt_value)))))) : Roblox.JSErrorTracker.showAlert && alert(\"Missing a required parameter for GA\"), i;\n },\n createURL: function createURL(n, t, i) {\n var r = n,\n f = Roblox.JSErrorTracker.distillData(t, i),\n u;\n if (r += \"?\", f != null) for (u in f) {\n _typeof(u) != ( true ? \"undefined\" : 0) && t.hasOwnProperty(u) && (r += u + \"=\" + f[u] + \"&\");\n }\n return r = r.slice(0, r.length - 1);\n },\n fireGAPixel: function fireGAPixel(n) {\n typeof _gaq != \"undefined\" && _gaq.push([\"c._trackEvent\"].concat(n));\n },\n showErrorMessage: function showErrorMessage(n) {\n Roblox.JSErrorTracker.showAlert && (n !== null ? alert(n) : alert(\"An error occured\"));\n }\n};\n; /// Studio2Alert.js\n\nvar studio2AlertModal = {\n showPrompt: !1,\n userId: 0,\n updateStudioAlertUserPreference: function updateStudioAlertUserPreference() {\n $.ajax({\n type: \"GET\",\n url: \"/WebHandlers/Studio2Alert.ashx?uId=\" + studio2AlertModal.userId\n });\n },\n close: function close() {\n studio2AlertModal.updateStudioAlertUserPreference(), $.modal.close(\"#Studio2AlertModal\");\n },\n init: function init() {\n studio2AlertModal.showPrompt = $(\"#Studio2AlertModal\").data(\"showprompt\"), studio2AlertModal.userId = $(\"#Studio2AlertModal\").data(\"userid\");\n var n = {\n escClose: !0,\n opacity: 80,\n overlayCss: {\n backgroundColor: \"#000\"\n }\n };\n studio2AlertModal.showPrompt && Roblox.Client.isIDE() && (studio2AlertModal.updateStudioAlertUserPreference(), $(\"#Studio2AlertModal\").modal(n));\n }\n};\n$(\"#closeStudio2Alert\").click(function () {\n studio2AlertModal.close();\n}), $(function () {\n studio2AlertModal.init();\n});\n; /// ClientInstaller.js\n\nfunction tryToDownload() {\n oIFrm = document.getElementById(\"downloadInstallerIFrame\"), oIFrm.src = \"/install/setup.ashx\";\n}\n\nfunction logStatistics(n) {\n $.get(\"/install/VisitButtonHandler.ashx?reqtype=\" + n, function () {});\n}\n\nType.registerNamespace(\"Roblox.Client\"), Roblox.Client._installHost = null, Roblox.Client._installSuccess = null, Roblox.Client._CLSID = null, Roblox.Client._continuation = null, Roblox.Client._skip = null, Roblox.Client._isIDE = null, Roblox.Client._isRobloxBrowser = null, Roblox.Client._isPlaceLaunch = !1, Roblox.Client._silentModeEnabled = !1, Roblox.Client._bringAppToFrontEnabled = !1, Roblox.Client._numLocks = 0, Roblox.Client._logTiming = !1, Roblox.Client._logStartTime = null, Roblox.Client._logEndTime = null, Roblox.Client._hiddenModeEnabled = !1, Roblox.Client._runInstallABTest = function () {}, Roblox.Client.ReleaseLauncher = function (n, t, i) {\n if (t && Roblox.Client._numLocks--, (i || Roblox.Client._numLocks <= 0) && (n != null && (document.getElementById(\"pluginObjDiv\").innerHTML = \"\", n = null), Roblox.Client._numLocks = 0), Roblox.Client._logTiming) {\n Roblox.Client._logEndTime = new Date();\n\n var r = Roblox.Client._logEndTime.getTime() - Roblox.Client._logStartTime.getTime();\n\n console && console.log && console.log(\"Roblox.Client: \" + r + \"ms from Create to Release.\");\n }\n}, Roblox.Client.GetInstallHost = function (n) {\n if (window.ActiveXObject) return n.InstallHost;\n var t = n.Get_InstallHost();\n return t.match(/roblox.com$/) ? t : t.substring(0, t.length - 1);\n}, Roblox.Client.CreateLauncher = function (n) {\n var i, u, t, r;\n Roblox.Client._logTiming && (Roblox.Client._logStartTime = new Date()), n && Roblox.Client._numLocks++, (Roblox.Client._installHost == null || Roblox.Client._CLSID == null) && typeof initClientProps == \"function\" && initClientProps(), i = document.getElementById(\"robloxpluginobj\"), u = $(\"#pluginObjDiv\"), i || (Roblox.Client._hiddenModeEnabled = !1, window.ActiveXObject ? (t = 'Failed to INIT Plugin', $(u).append(t)) : (t = '', t += \"

You need Our Plugin for this. Get the latest version from\", t += 'here.

', $(u).append(t)), i = document.getElementById(\"robloxpluginobj\"));\n\n try {\n if (i || (typeof console.log == \"undefined\" ? alert(\"Plugin installation failed!\") : console.log(\"Plugin installation failed!\")), i.Hello(), r = Roblox.Client.GetInstallHost(i), !r || r != Roblox.Client._installHost) throw \"wrong InstallHost: (plugins): \" + r + \" (servers): \" + Roblox.Client._installHost;\n return i;\n } catch (f) {\n return Roblox.Client.ReleaseLauncher(i, n, !1), null;\n }\n}, Roblox.Client.isIDE = function () {\n if (Roblox.Client._isIDE == null && (Roblox.Client._isIDE = !1, Roblox.Client._isRobloxBrowser = !1, window.external)) try {\n window.external.IsRobloxAppIDE !== undefined && (Roblox.Client._isIDE = window.external.IsRobloxAppIDE, Roblox.Client._isRobloxBrowser = !0);\n } catch (n) {}\n return Roblox.Client._isIDE;\n}, Roblox.Client.isRobloxBrowser = function () {\n return Roblox.Client.isIDE(), Roblox.Client._isRobloxBrowser;\n}, Roblox.Client.robloxBrowserInstallHost = function () {\n if (window.external) try {\n return window.external.InstallHost;\n } catch (n) {}\n return \"\";\n}, Roblox.Client.IsRobloxProxyInstalled = function () {\n var t = Roblox.Client.CreateLauncher(!1),\n n = !1;\n return (t != null && (n = !0), Roblox.Client.ReleaseLauncher(t, !1, !1), n || Roblox.Client.isRobloxBrowser()) ? !0 : !1;\n}, Roblox.Client.IsRobloxInstalled = function () {\n try {\n var t = Roblox.Client.CreateLauncher(!1),\n n = Roblox.Client.GetInstallHost(t);\n return Roblox.Client.ReleaseLauncher(t, !1, !1), n == Roblox.Client._installHost;\n } catch (i) {\n return Roblox.Client.isRobloxBrowser() ? (n = Roblox.Client.robloxBrowserInstallHost(), n == Roblox.Client._installHost) : !1;\n }\n}, Roblox.Client.SetStartInHiddenMode = function (n) {\n try {\n var t = Roblox.Client.CreateLauncher(!1);\n if (t !== null) return t.SetStartInHiddenMode(n), Roblox.Client._hiddenModeEnabled = n, !0;\n } catch (i) {}\n\n return !1;\n}, Roblox.Client.UnhideApp = function () {\n try {\n if (Roblox.Client._hiddenModeEnabled) {\n var n = Roblox.Client.CreateLauncher(!1);\n n.UnhideApp();\n }\n } catch (t) {}\n}, Roblox.Client.Update = function () {\n try {\n var n = Roblox.Client.CreateLauncher(!1);\n n.Update(), Roblox.Client.ReleaseLauncher(n, !1, !1);\n } catch (t) {\n alert(\"Error updating: \" + t);\n }\n}, Roblox.Client.WaitForRoblox = function (n) {\n if (Roblox.Client._skip) return window.location = Roblox.Client._skip, !1;\n\n if (Roblox.Client._continuation = n, Roblox.Client._cancelled = !1, !Roblox.Client.IsRobloxProxyInstalled() && Roblox.Client.ImplementsProxy) {\n Roblox.InstallationInstructions.show(), Roblox.Client.runInstallABTest();\n var t = \"Windows\";\n return navigator.appVersion.indexOf(\"Mac\") != -1 && (t = \"Mac\"), (typeof _gaq === \"undefined\" ? \"undefined\" : _typeof(_gaq)) != ( true ? \"undefined\" : 0) && (_gaq.push([\"_trackEvent\", \"Install Begin\", t]), _gaq.push([\"b._trackEvent\", \"Install Begin\", t])), RobloxEventManager.triggerEvent(\"rbx_evt_install_begin\", {\n os: t\n }), window.chrome && (window.location.hash = \"#chromeInstall\", $.cookie(\"chromeInstall\", n.toString().replace(/play_placeId/, play_placeId.toString()))), window.setTimeout(function () {\n Roblox.Client._ontimer();\n }, 1e3), tryToDownload(), !0;\n }\n\n return Roblox.Client._continuation(), !1;\n}, Roblox.Client.ResumeTimer = function (n) {\n Roblox.Client._continuation = n, Roblox.Client._cancelled = !1, window.setTimeout(function () {\n Roblox.Client._ontimer();\n }, 0);\n}, Roblox.Client.Refresh = function () {\n try {\n navigator.plugins.refresh(!1);\n } catch (n) {}\n}, Roblox.Client._onCancel = function () {\n return Roblox.InstallationInstructions.hide(), Roblox.Client._cancelled = !0, !1;\n}, Roblox.Client._ontimer = function () {\n Roblox.Client._cancelled || (Roblox.Client.Refresh(), Roblox.Client.IsRobloxProxyInstalled() ? (Roblox.InstallationInstructions.hide(), window.setTimeout(function () {\n window.chrome && window.location.hash == \"#chromeInstall\" && (window.location.hash = \"\", $.cookie(\"chromeInstall\", null));\n }, 5e3), Roblox.Client._continuation(), Roblox.Client._installSuccess && Roblox.Client._installSuccess()) : window.setTimeout(function () {\n Roblox.Client._ontimer();\n }, 1e3));\n};\n; /// InstallationInstructions.js\n\ntypeof Roblox == \"undefined\" && (Roblox = {}), Roblox.InstallationInstructions = function () {\n function i() {\n var t, i, r;\n n(), t = 0, i = $(\".InstallInstructionsImage\"), i && typeof $(i).attr(\"modalwidth\") != \"undefined\" && (t = $(\".InstallInstructionsImage\").attr(\"modalwidth\")), t > 0 ? (r = ($(window).width() - (t - 10)) / 2, $(\"#InstallationInstructions\").modal({\n escClose: !0,\n opacity: 50,\n minWidth: t,\n maxWidth: t,\n overlayCss: {\n backgroundColor: \"#000\"\n },\n position: [20, r]\n })) : $(\"#InstallationInstructions\").modal({\n escClose: !0,\n opacity: 50,\n maxWidth: $(window).width() / 2,\n minWidth: $(window).width() / 2,\n overlayCss: {\n backgroundColor: \"#000\"\n },\n position: [20, \"25%\"]\n });\n }\n\n function r() {\n $.modal.close();\n }\n\n function n() {\n var n = $(\".InstallInstructionsImage\");\n navigator.userAgent.match(/Mac OS X 10[_|\\.]5/) ? n && typeof $(n).attr(\"oldmacdelaysrc\") != \"undefined\" && $(\".InstallInstructionsImage\").attr(\"src\", $(\".InstallInstructionsImage\").attr(\"oldmacdelaysrc\")) : n && typeof $(n).attr(\"delaysrc\") != \"undefined\" && $(\".InstallInstructionsImage\").attr(\"src\", $(\".InstallInstructionsImage\").attr(\"delaysrc\"));\n }\n\n return {\n show: i,\n hide: r\n };\n}();\n; /// MadStatus.js\n\nMadStatus = {\n running: !1,\n init: function init(n, t, i, r) {\n MadStatus.running && MadStatus.stop(), MadStatus.updateInterval = i ? i : 2e3, MadStatus.fadeInterval = r ? r : 1e3, MadStatus.timeout = null, MadStatus.running = !0, MadStatus.field = n, MadStatus.backBuffer = t, MadStatus.field.show(), MadStatus.backBuffer.hide();\n },\n participle: [\"Accelerating\", \"Aggregating\", \"Allocating\", \"Aquiring\", \"Automating\", \"Backtracing\", \"Bloxxing\", \"Bootstraping\", \"Calibrating\", \"Correlating\", \"De-noobing\", \"De-ionizing\", \"Deriving\", \"Energizing\", \"Filtering\", \"Generating\", \"Indexing\", \"Loading\", \"Noobing\", \"Optimizing\", \"Oxidizing\", \"Queueing\", \"Parsing\", \"Processing\", \"Rasterizing\", \"Reading\", \"Registering\", \"Re-routing\", \"Resolving\", \"Sampling\", \"Updating\", \"Writing\"],\n modifier: [\"Blox\", \"Count Zero\", \"Cylon\", \"Data\", \"Ectoplasm\", \"Encryption\", \"Event\", \"Farnsworth\", \"Bebop\", \"Flux Capacitor\", \"Fusion\", \"Game\", \"Gibson\", \"Host\", \"Mainframe\", \"Metaverse\", \"Nerf Herder\", \"Neutron\", \"Noob\", \"Photon\", \"Profile\", \"Script\", \"Skynet\", \"TARDIS\", \"Virtual\"],\n subject: [\"Analogs\", \"Blocks\", \"Cannon\", \"Channels\", \"Core\", \"Database\", \"Dimensions\", \"Directives\", \"Engine\", \"Files\", \"Gear\", \"Index\", \"Layer\", \"Matrix\", \"Paradox\", \"Parameters\", \"Parsecs\", \"Pipeline\", \"Players\", \"Ports\", \"Protocols\", \"Reactors\", \"Sphere\", \"Spooler\", \"Stream\", \"Switches\", \"Table\", \"Targets\", \"Throttle\", \"Tokens\", \"Torpedoes\", \"Tubes\"],\n newLib: function newLib() {\n return libString = this.participle[Math.floor(Math.random() * this.participle.length)] + \" \" + this.modifier[Math.floor(Math.random() * this.modifier.length)] + \" \" + this.subject[Math.floor(Math.random() * this.subject.length)] + \"...\";\n },\n start: function start() {\n MadStatus.timeout == null && (MadStatus.timeout = setInterval(\"MadStatus.update()\", MadStatus.updateInterval), MadStatus.running = !0);\n },\n stop: function stop(n) {\n clearInterval(MadStatus.timeout), MadStatus.timeout = null, MadStatus.field[0].innerHTML = _typeof(n) != ( true ? \"undefined\" : 0) ? n : \"\", MadStatus.running = !1;\n },\n manualUpdate: function manualUpdate(n, t, i) {\n MadStatus.timeout && MadStatus.stop(), this.update(n, i), t && setTimeout(\"MadStatus.start()\", 1e3);\n },\n update: function update(n, t) {\n (MadStatus.backBuffer[0].innerHTML = _typeof(n) != ( true ? \"undefined\" : 0) ? n : this.newLib(), (typeof noAnim === \"undefined\" ? \"undefined\" : _typeof(noAnim)) == ( true ? \"undefined\" : 0) || t != !1) && (this.field.hide(), this.backBuffer.fadeIn(this.fadeInterval + 2, function () {\n MadStatus.field[0].innerHTML = MadStatus.backBuffer[0].innerHTML, MadStatus.field.show(), MadStatus.backBuffer.hide();\n }));\n }\n};\n; /// PlaceLauncher.js\n\nvar RBX = {},\n RobloxLaunchStates = {\n StartingServer: \"StartingServer\",\n StartingClient: \"StartingClient\",\n Upgrading: \"Upgrading\",\n None: \"None\"\n},\n RobloxLaunch = {\n launchGamePage: null,\n timer: null,\n clientMetricType: null,\n launcher: null,\n googleAnalyticsCallback: function googleAnalyticsCallback() {\n RobloxLaunch._GoogleAnalyticsCallback && RobloxLaunch._GoogleAnalyticsCallback();\n },\n state: RobloxLaunchStates.None,\n secureAuthenticate: !1\n},\n RobloxPlaceLauncherService = {\n LogJoinClick: function LogJoinClick() {\n $.get(\"/Game/Placelauncher.ashx\", {\n request: \"LogJoinClick\"\n });\n },\n RequestGame: function RequestGame(n, t, i, r, u, f) {\n i = i !== null && i !== undefined ? i : \"\", $.getJSON(\"/Game/PlaceLauncher.ashx\", {\n request: \"RequestGame\",\n placeId: n,\n isPartyLeader: t,\n gender: i\n }, function (n) {\n n.Error ? u(n.Error, f) : r(n, f);\n });\n },\n RequestPlayWithParty: function RequestPlayWithParty(n, t, i, r, u, f) {\n $.getJSON(\"/Game/PlaceLauncher.ashx\", {\n request: \"RequestPlayWithParty\",\n placeId: n,\n partyGuid: t,\n gameId: i\n }, function (n) {\n n.Error ? u(n.Error, f) : r(n, f);\n });\n },\n RequestGroupBuildGame: function RequestGroupBuildGame(n, t, i, r) {\n $.getJSON(\"/Game/PlaceLauncher.ashx\", {\n request: \"RequestGroupBuildGame\",\n placeId: n\n }, function (n) {\n n.Error ? i(n.Error, r) : t(n, r);\n });\n },\n RequestFollowUser: function RequestFollowUser(n, t, i, r) {\n $.getJSON(\"/Game/PlaceLauncher.ashx\", {\n request: \"RequestFollowUser\",\n userId: n\n }, function (n) {\n n.Error ? i(n.Error, r) : t(n, r);\n });\n },\n RequestGameJob: function RequestGameJob(n, t, i, r, u, f) {\n $.getJSON(\"/Game/PlaceLauncher.ashx\", {\n request: \"RequestGameJob\",\n placeId: n,\n gameId: t,\n gameJobId: i\n }, function (n) {\n n.Error ? u(n.Error, f) : r(n, f);\n });\n },\n CheckGameJobStatus: function CheckGameJobStatus(n, t, i, r) {\n $.getJSON(\"/Game/PlaceLauncher.ashx\", {\n request: \"CheckGameJobStatus\",\n jobId: n\n }, function (n) {\n n.Error ? i(n.Error, r) : t(n, r);\n });\n }\n};\nRobloxLaunch.RequestPlayWithParty = function (n, t, i, r) {\n RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date(), RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = \"WebPlay\", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestPlayWithParty(t, i, r));\n}, RobloxLaunch.RequestGame = function (n, t, i) {\n RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date(), RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = \"WebPlay\", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestGame(t, i));\n}, RobloxLaunch.RequestGroupBuildGame = function (n, t) {\n RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date(), RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = \"WebPlay\", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestGroupBuildGame(t));\n}, RobloxLaunch.RequestGameJob = function (n, t, i, r) {\n RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date(), RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = \"WebJoin\", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestGameJob(t, i, r));\n}, RobloxLaunch.RequestFollowUser = function (n, t) {\n RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date(), RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = \"WebFollow\", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestFollowUser(t));\n}, RobloxLaunch.StartGame = function (n, t, i, r, u) {\n var o, f, e, s;\n RobloxLaunch.secureAuthenticate && (i = i.replace(\"http://\", \"https://\")), n = typeof RobloxLaunch.SeleniumTestMode == \"undefined\" ? n + \"&testmode=false\" : n + \"&testmode=true\", typeof urchinTracker != \"undefined\" && urchinTracker(\"Visit/Try/\" + t), RobloxLaunch.state = RobloxLaunchStates.StartingClient, RobloxLaunch.googleAnalyticsCallback !== null && RobloxLaunch.googleAnalyticsCallback(), o = null;\n\n try {\n if (typeof window.external != \"undefined\" && window.external.IsRobloxABApp) window.external.StartGame(r, i, n);else if (typeof window.external != \"undefined\" && window.external.IsRoblox2App && (n.indexOf(\"visit\") != -1 || u)) window.external.StartGame(r, i, n);else if (o = \"RobloxProxy/\", f = Roblox.Client.CreateLauncher(!0), f) {\n o = \"RobloxProxy/StartGame/\";\n\n try {\n try {\n window.ActiveXObject ? f.AuthenticationTicket = r : f.Put_AuthenticationTicket(r), u && f.SetEditMode();\n } catch (a) {}\n\n try {\n if (Roblox.Client._silentModeEnabled) f.SetSilentModeEnabled(!0), Roblox.VideoPreRoll.videoInitialized && Roblox.VideoPreRoll.isPlaying() && Roblox.Client.SetStartInHiddenMode(!0), f.StartGame(i, n), RobloxLaunch.CheckGameStarted(f);else throw \"silent mode is disabled, fall back\";\n } catch (a) {\n if (f.StartGame(i, n), Roblox.Client._bringAppToFrontEnabled) try {\n f.BringAppToFront();\n } catch (h) {}\n Roblox.Client.ReleaseLauncher(f, !0, !1), $.modal.close();\n }\n } catch (a) {\n Roblox.Client.ReleaseLauncher(f, !0, !1);\n throw a;\n }\n } else {\n try {\n parent.playFromUrl(n);\n return;\n } catch (l) {}\n\n if (Roblox.Client.isRobloxBrowser()) try {\n window.external.StartGame(r, i, n);\n } catch (l) {\n throw \"window.external fallback failed, Roblox must not be installed or IE cannot access ActiveX\";\n } else throw \"launcher is null or undefined and external is missing\";\n RobloxLaunch.state = RobloxLaunchStates.None, $.modal.close();\n }\n } catch (a) {\n if (e = a.message, e === \"User cancelled\" && typeof urchinTracker != \"undefined\") return urchinTracker(\"Visit/UserCancelled/\" + t), !1;\n\n try {\n s = new ActiveXObject(\"Microsoft.XMLHTTP\");\n } catch (c) {\n e = \"FailedXMLHTTP/\" + e;\n }\n\n return Roblox.Client.isRobloxBrowser() ? typeof urchinTracker != \"undefined\" && urchinTracker(\"Visit/Fail/\" + o + encodeURIComponent(e)) : (typeof urchinTracker != \"undefined\" && urchinTracker(\"Visit/Redirect/\" + o + encodeURIComponent(e)), window.location = RobloxLaunch.launchGamePage), !1;\n }\n\n return typeof urchinTracker != \"undefined\" && urchinTracker(\"Visit/Success/\" + t), !0;\n}, RobloxLaunch.CheckGameStarted = function (n) {\n function r() {\n var e = !1;\n\n try {\n if (i || (i = window.ActiveXObject ? n.IsGameStarted : n.Get_GameStarted()), i && !Roblox.VideoPreRoll.isPlaying()) {\n if (MadStatus.stop(\"Connecting to Players...\"), RobloxLaunch.state = RobloxLaunchStates.None, $.modal.close(), t._cancelled = !0, Roblox.Client._hiddenModeEnabled && Roblox.Client.UnhideApp(), Roblox.Client._bringAppToFrontEnabled) try {\n n.BringAppToFront();\n } catch (f) {}\n Roblox.Client.ReleaseLauncher(n, !0, !1);\n } else t._cancelled || setTimeout(r, 1e3);\n } catch (u) {\n t._cancelled || setTimeout(r, 1e3);\n }\n }\n\n var t = RobloxLaunch.launcher,\n i;\n t === null && (t = new RBX.PlaceLauncher(\"PlaceLauncherStatusPanel\"), t._showDialog(), t._updateStatus(0)), i = !1, r();\n}, RobloxLaunch.CheckRobloxInstall = function (n) {\n if (Roblox.Client.IsRobloxInstalled()) return Roblox.Client.Update(), !0;\n window.location = n;\n}, RBX.PlaceLauncher = function (n) {\n this._cancelled = !1, this._popupID = n, this._popup = $(\"#\" + n);\n}, RBX.PlaceLauncher.prototype = {\n _showDialog: function _showDialog() {\n this._cancelled = !1, _popupOptions = {\n escClose: !0,\n opacity: 80,\n overlayCss: {\n backgroundColor: \"#000\"\n }\n }, this._popupID == \"PlaceLauncherStatusPanel\" && (Roblox.VideoPreRoll && Roblox.VideoPreRoll.showVideoPreRoll && !Roblox.VideoPreRoll.isExcluded() ? (this._popup = $(\"#videoPrerollPanel\"), _popupOptions.onShow = function (n) {\n Roblox.VideoPreRoll.correctIEModalPosition(n), Roblox.VideoPreRoll.start();\n }, _popupOptions.onClose = function () {\n Roblox.VideoPreRoll.close();\n }, _popupOptions.closeHTML = '') : (this._popup = $(\"#\" + this._popupID), _popupOptions.onClose = function () {\n Roblox.VideoPreRoll.logVideoPreRoll(), $.modal.close();\n })), this._popup.modal(_popupOptions);\n var n = this;\n $(\".CancelPlaceLauncherButton\").click(function () {\n n.CancelLaunch();\n }), $(\".CancelPlaceLauncherButton\").show();\n },\n _reportDuration: function _reportDuration(n, t) {\n $.ajax({\n type: \"GET\",\n async: !0,\n cache: !1,\n timeout: 5e4,\n url: \"/Game/JoinRate.ashx?c=\" + RobloxLaunch.clientMetricType + \"&r=\" + t + \"&d=\" + n,\n success: function success() {}\n });\n },\n _onGameStatus: function _onGameStatus(n) {\n var r, i, t;\n\n if (this._cancelled) {\n r = +new Date() - RobloxLaunch.timer.getTime(), this._reportDuration(r, \"Cancel\");\n return;\n }\n\n if (this._updateStatus(n.status), n.status === 2) RobloxLaunch.StartGame(n.joinScriptUrl, \"Join\", n.authenticationUrl, n.authenticationTicket), i = +new Date() - RobloxLaunch.timer.getTime(), this._reportDuration(i, \"Success\");else if (n.status < 2 || n.status === 6) {\n var f = function f(n, t) {\n t._onGameStatus(n);\n },\n e = function e(n, t) {\n t._onGameError(n);\n },\n o = this,\n u = function u() {\n RobloxPlaceLauncherService.CheckGameJobStatus(n.jobId, f, e, o);\n };\n\n window.setTimeout(u, 2e3);\n } else n.status === 4 && (t = +new Date() - RobloxLaunch.timer.getTime(), this._reportDuration(t, \"Failure\"));\n },\n _updateStatus: function _updateStatus(n) {\n MadStatus.running || (MadStatus.init($(this._popup).find(\".MadStatusField\"), $(this._popup).find(\".MadStatusBackBuffer\"), 2e3, 800), MadStatus.start());\n\n switch (n) {\n case 0:\n break;\n\n case 1:\n MadStatus.manualUpdate(\"A server is loading the game...\", !0);\n break;\n\n case 2:\n MadStatus.manualUpdate(\"The server is ready. Joining the game...\", !0);\n break;\n\n case 3:\n MadStatus.manualUpdate(\"Joining games is temporarily disabled while we upgrade. Please try again soon.\", !1);\n break;\n\n case 4:\n MadStatus.manualUpdate(\"An error occurred. Please try again later.\", !1);\n break;\n\n case 5:\n MadStatus.manualUpdate(\"The game you requested has ended.\", !1);\n break;\n\n case 6:\n MadStatus.manualUpdate(\"The game you requested is currently full. Waiting for an opening...\", !0, !1);\n break;\n\n case 7:\n MadStatus.manualUpdate(\"Roblox is updating. Please wait...\", !0);\n break;\n\n case 8:\n MadStatus.manualUpdate(\"Requesting a server\", !0);\n break;\n\n default:\n MadStatus.stop(\"Connecting to Players...\");\n }\n\n $(this._popup).find(\".MadStatusStarting\").css(\"display\", \"none\"), $(this._popup).find(\".MadStatusSpinner\").css(\"visibility\", n === 3 || n === 4 || n === 5 ? \"hidden\" : \"visible\");\n },\n _onGameError: function _onGameError() {\n this._updateStatus(4);\n },\n _startUpdatePolling: function _startUpdatePolling(n) {\n var t, i;\n\n try {\n if (RobloxLaunch.state = RobloxLaunchStates.Upgrading, t = Roblox.Client.CreateLauncher(!0), i = window.ActiveXObject ? t.IsUpToDate : t.Get_IsUpToDate(), i || i === undefined) {\n try {\n t.PreStartGame();\n } catch (e) {}\n\n Roblox.Client.ReleaseLauncher(t, !0, !1), RobloxLaunch.state = RobloxLaunchStates.StartingServer, n();\n return;\n }\n\n var f = function f(t, i, r) {\n r._onUpdateStatus(t, i, n);\n },\n u = function u(n, t) {\n t._onUpdateError(n);\n },\n r = this;\n\n this.CheckUpdateStatus(f, u, t, n, r);\n } catch (e) {\n Roblox.Client.ReleaseLauncher(t, !0, !1), n();\n }\n },\n _onUpdateStatus: function _onUpdateStatus(n, t, i) {\n if (!this._cancelled) if (this._updateStatus(n), n === 8) Roblox.Client.ReleaseLauncher(t, !0, !0), Roblox.Client.Refresh(), RobloxLaunch.state = RobloxLaunchStates.StartingServer, i();else if (n === 7) {\n var f = function f(n, t, r) {\n r._onUpdateStatus(n, t, i);\n },\n e = function e(n, t) {\n t._onUpdateError(n);\n },\n r = this,\n u = function u() {\n r.CheckUpdateStatus(f, e, t, i, r);\n };\n\n window.setTimeout(u, 2e3);\n } else alert(\"Unknown status from CheckUpdateStatus\");\n },\n _onUpdateError: function _onUpdateError() {\n this._updateStatus(2);\n },\n CheckUpdateStatus: function CheckUpdateStatus(n, t, i, r, u) {\n try {\n if (i.PreStartGame(), window.ActiveXObject) var f = i.IsUpToDate;else f = i.Get_IsUpToDate();\n f || f === undefined ? n(8, i, u) : n(7, i, u);\n } catch (e) {\n n(8, i, u);\n }\n },\n RequestGame: function RequestGame(n, t) {\n var r;\n\n this._showDialog();\n\n var f = function f(n, t) {\n t._onGameStatus(n);\n },\n u = function u(n, t) {\n t._onGameError(n);\n },\n e = this,\n i = !1;\n\n return typeof Party != \"undefined\" && typeof Party.AmILeader == \"function\" && (i = Party.AmILeader()), r = function r() {\n RobloxPlaceLauncherService.RequestGame(n, i, t, f, u, e);\n }, this._startUpdatePolling(r), !1;\n },\n RequestPlayWithParty: function RequestPlayWithParty(n, t, i) {\n this._showDialog();\n\n var f = function f(n, t) {\n t._onGameStatus(n);\n },\n e = function e(n, t) {\n t._onGameError(n);\n },\n r = this,\n u = function u() {\n RobloxPlaceLauncherService.RequestPlayWithParty(n, t, i, f, e, r);\n };\n\n return this._startUpdatePolling(u), !1;\n },\n RequestGroupBuildGame: function RequestGroupBuildGame(n) {\n this._showDialog();\n\n var r = function r(n, t) {\n t._onGameStatus(n, !0);\n },\n u = function u(n, t) {\n t._onGameError(n);\n },\n t = this,\n i = function i() {\n RobloxPlaceLauncherService.RequestGroupBuildGame(n, r, u, t);\n };\n\n return this._startUpdatePolling(i), !1;\n },\n RequestFollowUser: function RequestFollowUser(n) {\n this._showDialog();\n\n var r = function r(n, t) {\n t._onGameStatus(n);\n },\n u = function u(n, t) {\n t._onError(n);\n },\n t = this,\n i = function i() {\n RobloxPlaceLauncherService.RequestFollowUser(n, r, u, t);\n };\n\n return this._startUpdatePolling(i), !1;\n },\n RequestGameJob: function RequestGameJob(n, t, i) {\n this._showDialog();\n\n var f = function f(n, t) {\n t._onGameStatus(n);\n },\n e = function e(n, t) {\n t._onGameError(n);\n },\n r = this,\n u = function u() {\n RobloxPlaceLauncherService.RequestGameJob(n, t, i, f, e, r);\n };\n\n return this._startUpdatePolling(u), !1;\n },\n CancelLaunch: function CancelLaunch() {\n return this._cancelled = !0, $.modal.close(), !1;\n },\n dispose: function dispose() {\n RBX.PlaceLauncher.callBaseMethod(this, \"dispose\");\n }\n};\n; /// VideoPreRoll.js\n\nfunction openVideoPreroll2(n) {\n Roblox.VideoPreRoll.test(n);\n}\n\nfunction flashCheck(n) {\n var i = !1,\n t,\n r;\n if (window.ActiveXObject) try {\n t = new ActiveXObject(\"ShockwaveFlash.ShockwaveFlash.\" + n), i = !0;\n } catch (u) {} else navigator.plugins && navigator.mimeTypes.length > 0 && (t = navigator.plugins[\"Shockwave Flash\"], t && (r = navigator.plugins[\"Shockwave Flash\"].description.replace(/.*\\s(\\d+\\.\\d+).*/, \"$1\"), r >= n && (i = !0)));\n return i;\n}\n\ntypeof Roblox == \"undefined\" && (Roblox = {}), Roblox.VideoPreRoll = {\n newValue: \"\",\n showVideoPreRoll: !1,\n videoInitialized: !1,\n videoStarted: !1,\n videoCompleted: !1,\n videoSkipped: !1,\n videoCancelled: !1,\n videoErrored: !1,\n videoOptions: {\n key: \"integration_test\",\n companionId: \"videoPrerollCompanionAd\"\n },\n myvpaidad: null,\n loadingBarMaxTime: 3e4,\n loadingBarCurrentTime: 0,\n loadingBarIntervalID: 0,\n loadingBarID: \"videoPrerollLoadingBar\",\n loadingBarInnerID: \"videoPrerollLoadingBarCompleted\",\n loadingBarPercentageID: \"videoPrerollLoadingPercent\",\n videoLoadingTimeout: 7e3,\n videoPlayingTimeout: 23e3,\n videoLogNote: \"\",\n logsEnabled: !1,\n excludedPlaceIds: \"\",\n specificAdOnPlacePageEnabled: !1,\n specificAdOnPlacePageId: 0,\n specificAdOnPlacePageCategory: \"\",\n checkEligibility: function checkEligibility() {\n Roblox.VideoPreRoll.showVideoPreRoll && (flashCheck(8) ? typeof __adaptv__ == \"undefined\" ? (Roblox.VideoPreRoll.videoLogNote = \"NoAdapTv\", Roblox.VideoPreRoll.showVideoPreRoll = !1) : Roblox.Client.IsRobloxInstalled() ? Roblox.Client.isIDE() ? (Roblox.VideoPreRoll.videoLogNote = \"RobloxStudio\", Roblox.VideoPreRoll.showVideoPreRoll = !1) : Roblox.Client.isRobloxBrowser() ? (Roblox.VideoPreRoll.videoLogNote = \"RobloxPlayer\", Roblox.VideoPreRoll.showVideoPreRoll = !1) : window.chrome && window.location.hash == \"#chromeInstall\" && (Roblox.VideoPreRoll.showVideoPreRoll = !1) : Roblox.VideoPreRoll.showVideoPreRoll = !1 : (Roblox.VideoPreRoll.videoLogNote = \"NoFlash\", Roblox.VideoPreRoll.showVideoPreRoll = !1));\n },\n isExcluded: function isExcluded() {\n var t, n;\n if (Roblox.VideoPreRoll.showVideoPreRoll && Roblox.VideoPreRoll.excludedPlaceIds !== \"\" && (t = Roblox.VideoPreRoll.excludedPlaceIds.split(\",\"), typeof play_placeId != \"undefined\")) for (n = 0; n < t.length; n++) {\n if (play_placeId == t[n]) return Roblox.VideoPreRoll.videoLogNote = \"ExcludedPlace\", !0;\n }\n return !1;\n },\n start: function start() {\n var i, r, t, n;\n this.videoInitialized = !0, this.videoStarted = !1, this.videoCancelled = !1, this.videoCompleted = !1, this.videoSkipped = !1, this.loadingBarCurrentTime = 0, this.videoLogNote = \"\", Roblox.VideoPreRoll.specificAdOnPlacePageEnabled && typeof play_placeId != \"undefined\" && (i = \",\" + Roblox.VideoPreRoll.specificAdOnPlacePageCategory, play_placeId == Roblox.VideoPreRoll.specificAdOnPlacePageId && Roblox.VideoPreRoll.videoOptions.categories.indexOf(i) == -1 && (Roblox.VideoPreRoll.videoOptions.categories += i)), r = __adaptv__, this.myvpaidad = new r.ads.vpaid.VPAIDAd(\"videoPrerollMainDiv\"), t = 1e3, LoadingBar.init(this.loadingBarID, this.loadingBarInnerID, this.loadingBarPercentageID), this.loadingBarIntervalID = setInterval(function () {\n Roblox.VideoPreRoll.loadingBarCurrentTime += t, LoadingBar.update(Roblox.VideoPreRoll.loadingBarID, Roblox.VideoPreRoll.loadingBarCurrentTime / Roblox.VideoPreRoll.loadingBarMaxTime);\n }, t), n = r.ads.vpaid.VPAIDEvent;\n this.myvpaidad.on(n.AdLoaded, function (n) {\n Roblox.VideoPreRoll._onVideoLoaded(n);\n });\n this.myvpaidad.on(n.AdStarted, function (n) {\n Roblox.VideoPreRoll._onVideoStart(n);\n });\n this.myvpaidad.on(n.AdStopped, function (n) {\n Roblox.VideoPreRoll._onVideoComplete(n);\n });\n this.myvpaidad.on(n.AdError, function (n) {\n Roblox.VideoPreRoll._onVideoError(n);\n });\n\n try {\n this.myvpaidad.initAd(391, 312, this.videoOptions);\n } catch (u) {\n f();\n }\n },\n error: function error() {\n clearInterval(loadingBarInterval);\n },\n cancel: function cancel() {\n this.videoCancelled = !0, $.modal.close();\n },\n skip: function skip() {\n this.videoCompleted = !0, this.videoSkipped = !0, this.showVideoPreRoll = !1;\n },\n close: function close() {\n MadStatus.running && MadStatus.stop(\"\"), RobloxLaunch.launcher && (RobloxLaunch.launcher._cancelled = !0), clearInterval(this.loadingBarIntervalID), LoadingBar.dispose(this.loadingBarID);\n\n try {\n this.myvpaidad.stopAd();\n } catch (n) {}\n\n this.isPlaying() && (this.videoCancelled = !0), $.modal.close(), this.logVideoPreRoll();\n },\n _onVideoError: function f() {\n this.videoCompleted = !0, this.videoErrored = !0;\n },\n _onVideoLoaded: function _onVideoLoaded(n) {\n try {\n this.myvpaidad.startAd();\n } catch (t) {\n f(n);\n }\n },\n _onVideoStart: function _onVideoStart() {\n this.videoStarted = !0;\n },\n _onVideoComplete: function _onVideoComplete() {\n this.videoStarted && this.videoCancelled == !1 && (this.videoCompleted = !0, this.showVideoPreRoll = !1, this.newValue != \"\" && $.cookie(\"RBXVPR\", this.newValue, 180));\n },\n logVideoPreRoll: function logVideoPreRoll() {\n if (Roblox.VideoPreRoll.logsEnabled) {\n var n = \"\";\n if (Roblox.VideoPreRoll.videoCompleted) n = \"Complete\", Roblox.VideoPreRoll.videoLogNote == \"\" && (Roblox.VideoPreRoll.videoLogNote = \"NoTimeout\"), Roblox.VideoPreRoll.logsEnabled = !1;else if (Roblox.VideoPreRoll.videoCancelled) n = \"Cancelled\", Roblox.VideoPreRoll.videoLogNote = RobloxLaunch.state;else if (Roblox.VideoPreRoll.videoInitialized == !1 && Roblox.VideoPreRoll.videoLogNote != \"\") n = \"Failed\", Roblox.VideoPreRoll.logsEnabled = !1;else return;\n GoogleAnalyticsEvents.FireEvent([\"PreRoll\", n, Roblox.VideoPreRoll.videoLogNote]);\n }\n },\n isPlaying: function isPlaying() {\n return Roblox.VideoPreRoll.videoInitialized ? (Roblox.VideoPreRoll.videoInitialized && !Roblox.VideoPreRoll.videoStarted && Roblox.VideoPreRoll.loadingBarCurrentTime > Roblox.VideoPreRoll.videoLoadingTimeout && (Roblox.VideoPreRoll.videoCompleted = !0, Roblox.VideoPreRoll.videoLogNote = \"LoadingTimeout\"), Roblox.VideoPreRoll.videoStarted && !Roblox.VideoPreRoll.videoCompleted && Roblox.VideoPreRoll.loadingBarCurrentTime > Roblox.VideoPreRoll.videoPlayingTimeout && (Roblox.VideoPreRoll.videoCompleted = !0, Roblox.VideoPreRoll.videoLogNote = \"PlayingTimeout\"), !Roblox.VideoPreRoll.videoCompleted) : !1;\n },\n correctIEModalPosition: function correctIEModalPosition(n) {\n if (n.container.innerHeight() <= 30) {\n var i = $(\"#videoPrerollPanel\"),\n t = -Math.floor(i.innerHeight() / 2);\n i.css({\n position: \"relative\",\n top: t + \"px\"\n }), n.container.find(\".VprCloseButton\").css({\n top: t - 10 + \"px\",\n \"z-index\": \"1003\"\n });\n }\n },\n test: function test() {\n _popupOptions = {\n escClose: !0,\n opacity: 80,\n overlayCss: {\n backgroundColor: \"#000\"\n },\n onShow: function onShow(n) {\n Roblox.VideoPreRoll.correctIEModalPosition(n), Roblox.VideoPreRoll.start();\n },\n onClose: function onClose() {\n Roblox.VideoPreRoll.close();\n },\n closeHTML: ''\n }, $(\"#videoPrerollPanel\").modal(_popupOptions), MadStatus.running || (MadStatus.init($(\"#videoPrerollPanel\").find(\".MadStatusField\"), $(\"#videoPrerollPanel\").find(\".MadStatusBackBuffer\"), 2e3, 800), MadStatus.start()), $(\"#videoPrerollPanel\").find(\".MadStatusStarting\").css(\"display\", \"none\"), $(\"#videoPrerollPanel\").find(\".MadStatusSpinner\").css(\"visibility\", status === 3 || status === 4 || status === 5 ? \"hidden\" : \"visible\");\n }\n};\nvar LoadingBar = {\n bars: [],\n init: function init(n, t, i, r) {\n var u = this.get(n);\n u == null && (u = {}), u.barID = n, u.innerBarID = t, u.percentageID = i, typeof r == \"undefined\" && (u.percentComplete = 0), this.bars.push(u), this.update(n, u.percentComplete);\n },\n get: function get(n) {\n for (var t = 0; t < this.bars.length; t++) {\n if (this.bars[t].barID == n) return this.bars[t];\n }\n\n return null;\n },\n dispose: function dispose(n) {\n for (var t = 0; t < this.bars.length; t++) {\n this.bars[t].barID == n && this.bars.splice(t, 1);\n }\n },\n update: function update(n, t) {\n var i = this.get(n),\n u,\n r;\n i && (t > 1 && (t = 1), u = $(\"#\" + n).width(), r = Math.round(u * t), $(\"#\" + i.innerBarID).animate({\n width: r\n }, 200, \"swing\"), i.percentageID && $(\"#\" + i.percentageID).length > 0 && $(\"#\" + i.percentageID).html(Math.round(t * 100) + \"%\"), i.percentComplete = t);\n }\n}; // end roblox.js//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvanMvYXBwLmpzPzZkNDAiXSwibmFtZXMiOlsibiIsInQiLCJwIiwiaSIsInIiLCJzcGxpdCIsInNoaWZ0IiwibGVuZ3RoIiwiayIsInUiLCJudCIsImYiLCJjcmVhdGVFbGVtZW50IiwiaHJlZiIsInJlbCIsInR5cGUiLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwiZyIsInNyYyIsIm9ubG9hZCIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJkIiwicG9wIiwibyIsImluZGV4T2YiLCJtb2R1bGVQYXRoIiwicmVwbGFjZSIsInYiLCJiYXNlVXJsIiwidmVyc2lvbnMiLCJzIiwiUm9ibG94IiwicHVzaCIsImUiLCJsb2FkZWQiLCJkZXBzTG9hZGVkIiwibGlzdGVuZXJzIiwiYSIsImgiLCJiIiwiZXh0ZXJuYWxSZXNvdXJjZXMiLCJ0b1N0cmluZyIsImwiLCJjIiwiYXBwbHkiLCJzbGljZSIsInkiLCJ3IiwidW5zaGlmdCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJjYWxsIiwiY29uZmlnIiwicmVxdWlyZSIsImRlZmluZSIsIndpbmRvdyIsInRvSlNPTiIsIkpTT04iLCJzdHJpbmdpZnkiLCJ1bmRlZmluZWQiLCJxdW90ZVN0cmluZyIsImNvbnN0cnVjdG9yIiwiRGF0ZSIsImdldFVUQ01vbnRoIiwiZ2V0VVRDRGF0ZSIsImdldFVUQ0Z1bGxZZWFyIiwiZ2V0VVRDSG91cnMiLCJnZXRVVENNaW51dGVzIiwiZ2V0VVRDU2Vjb25kcyIsImdldFVUQ01pbGxpc2Vjb25kcyIsIkFycmF5Iiwiam9pbiIsImV2YWxKU09OIiwicGFyc2UiLCJldmFsIiwic2VjdXJlRXZhbEpTT04iLCJ0ZXN0IiwiU3ludGF4RXJyb3IiLCJtYXRjaCIsImNoYXJDb2RlQXQiLCJNYXRoIiwiZmxvb3IiLCJqUXVlcnkiLCJicm93c2VyIiwibXNpZSIsInBhcnNlSW50IiwidmVyc2lvbiIsIlhNTEh0dHBSZXF1ZXN0IiwibW9kYWwiLCJpbXBsIiwiaW5pdCIsImNsb3NlIiwiZm4iLCJkZWZhdWx0cyIsImFwcGVuZFRvIiwiZm9jdXMiLCJvcGFjaXR5Iiwib3ZlcmxheUlkIiwib3ZlcmxheUNzcyIsImNvbnRhaW5lcklkIiwiY29udGFpbmVyQ3NzIiwiZGF0YUlkIiwiZGF0YUNzcyIsIm1pbkhlaWdodCIsIm1pbldpZHRoIiwibWF4SGVpZ2h0IiwibWF4V2lkdGgiLCJhdXRvUmVzaXplIiwiYXV0b1Bvc2l0aW9uIiwiekluZGV4IiwiY2xvc2VIVE1MIiwiY2xvc2VDbGFzcyIsImVzY0Nsb3NlIiwib3ZlcmxheUNsb3NlIiwicG9zaXRpb24iLCJwZXJzaXN0Iiwib25PcGVuIiwib25TaG93Iiwib25DbG9zZSIsImRhdGEiLCJleHRlbmQiLCJvY2NiIiwicGxhY2Vob2xkZXIiLCJwYXJlbnQiLCJzaXplIiwiYmVmb3JlIiwiYXR0ciIsImNzcyIsImRpc3BsYXkiLCJvcmlnIiwiY2xvbmUiLCJodG1sIiwiYWxlcnQiLCJjcmVhdGUiLCJvcGVuIiwiaXNGdW5jdGlvbiIsImdldERpbWVuc2lvbnMiLCJpZnJhbWUiLCJpZnJhbWVDc3MiLCJoZWlnaHQiLCJ3aWR0aCIsInRvcCIsImxlZnQiLCJvdmVybGF5IiwiYWRkQ2xhc3MiLCJjb250YWluZXIiLCJhcHBlbmQiLCJ3cmFwIiwib3V0bGluZSIsIm92ZXJmbG93Iiwic2V0Q29udGFpbmVyRGltZW5zaW9ucyIsImZpeElFIiwiYmluZEV2ZW50cyIsImJpbmQiLCJwcmV2ZW50RGVmYXVsdCIsImtleUNvZGUiLCJ3YXRjaFRhYiIsInVuYmluZEV2ZW50cyIsInVuYmluZCIsImVhY2giLCJzdHlsZSIsInJlbW92ZUV4cHJlc3Npb24iLCJzZXRFeHByZXNzaW9uIiwib3BlcmEiLCJqcXVlcnkiLCJkb2N1bWVudEVsZW1lbnQiLCJjbGllbnRIZWlnaHQiLCJpbm5lckhlaWdodCIsImdldFZhbCIsIm91dGVySGVpZ2h0Iiwib3V0ZXJXaWR0aCIsInNldFBvc2l0aW9uIiwidGFyZ2V0IiwicGFyZW50cyIsImlucHV0cyIsInNoaWZ0S2V5Iiwic2V0VGltZW91dCIsInNob3ciLCJyZXBsYWNlV2l0aCIsInJlbW92ZUNsYXNzIiwiaGlkZSIsInJlbW92ZSIsInRpcHN5IiwiZWxlbWVudE9wdGlvbnMiLCJob3ZlciIsInJlbW92ZUF0dHIiLCJ0aXRsZSIsImZpbmQiLCJmYWxsYmFjayIsIm9mZnNldCIsIm9mZnNldFdpZHRoIiwib2Zmc2V0SGVpZ2h0IiwiZ2V0IiwiY2xhc3NOYW1lIiwidmlzaWJpbGl0eSIsImJvZHkiLCJncmF2aXR5IiwiY2hhckF0IiwiZmFkZSIsImFuaW1hdGUiLCJzdG9wIiwiZmFkZU91dCIsIm1ldGFkYXRhIiwiYXV0b05TIiwic2Nyb2xsVG9wIiwiYXV0b1dFIiwic2Nyb2xsTGVmdCIsIlJvYmxveFRodW1icyIsIiQiLCJVc2VySUQiLCJUaHVtYm5haWxGb3JtYXRJRCIsInN1YnN0cmluZyIsIkdlbmVyYXRlQXZhdGFyVGh1bWIiLCJTdHJpbmciLCJlc2NhcGVIVE1MIiwiSW5pdFN0cmluZ1RydW5jYXRvciIsImlzSW5pdGlhbGl6ZWQiLCJmaXRTdHJpbmdTcGFuIiwicGFkZGluZyIsImFwcGVuZENoaWxkIiwiZml0U3RyaW5nVG9XaWR0aCIsImlubmVySFRNTCIsImZpdFN0cmluZ1RvV2lkdGhTYWZlIiwibGFzdEluZGV4T2YiLCJsYXN0SW5kZXgiLCJpc0Zpbml0ZSIsImhhc093blByb3BlcnR5IiwidmFsdWVPZiIsIk51bWJlciIsIkJvb2xlYW4iLCJFcnJvciIsIlN5cyIsIkJyb3dzZXIiLCJXZWJLaXQiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJhZ2VudCIsInBhcnNlRmxvYXQiLCJuYW1lIiwiR29vZ2xlQW5hbHl0aWNzRXZlbnRzIiwiRmlyZUV2ZW50IiwiX2dhcSIsImNvbmNhdCIsIkZpeGVkVUkiLCJwYWdlWU9mZnNldCIsImd1dHRlckFkc0VuYWJsZWQiLCJzY3JvbGwiLCJpbm5lcldpZHRoIiwidG9Mb3dlckNhc2UiLCJsb2FkIiwicmVzaXplIiwiaXNNb2JpbGUiLCJ1bmZpeEhlYWRlciIsImNvb2tpZSIsImV4cGlyZXMiLCJ0b1VUQ1N0cmluZyIsInNldFRpbWUiLCJnZXRUaW1lIiwicGF0aCIsImRvbWFpbiIsInNlY3VyZSIsImVuY29kZVVSSUNvbXBvbmVudCIsInRyaW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJSb2Jsb3hKU09OQ29va2llIiwiX2Nvb2tpZW5hbWUiLCJnZXRKU09OQ29va2llIiwic2V0SlNPTkNvb2tpZSIsInJlbW92ZUpTT05Db29raWUiLCJKU09OQ29va2llIiwiRGVsZXRlIiwiU2V0T2JqIiwiU2V0SlNPTiIsIkdldE9iaiIsIkdldEpTT04iLCJYc3JmVG9rZW4iLCJhbGxVcmxzRW5hYmxlZCIsImFqYXhQcmVmaWx0ZXIiLCJkYXRhVHlwZSIsInVybCIsInBhcmFtIiwidG9rZW4iLCJlcnJvciIsInN0YXR1cyIsImdldFJlc3BvbnNlSGVhZGVyIiwiYWpheCIsInNldFRva2VuIiwiZ2V0VG9rZW4iLCJhZGRFbmFibGVkVXJsIiwiUkJYQmFzZUV2ZW50TGlzdGVuZXIiLCJldmVudEtleSIsImV2ZW50cyIsInByb3h5IiwibG9jYWxDb3B5IiwiaGFuZGxlRXZlbnQiLCJkaXN0aWxsRGF0YSIsImNvbnNvbGUiLCJsb2ciLCJmaXJlRXZlbnQiLCJSb2Jsb3hFdmVudE1hbmFnZXIiLCJSZWdFeHAiLCJleGVjIiwiZW5hYmxlZCIsImluaXRpYWxpemVkIiwiZXZlbnRRdWV1ZSIsImluaXRpYWxpemUiLCJ0cmlnZ2VyRXZlbnQiLCJldmVudE5hbWUiLCJhcmdzIiwiZ2V0TWFya2V0aW5nR3VpZCIsImJyb3dzZXJpZCIsImd1aWQiLCJ0cmlnZ2VyIiwicmVnaXN0ZXJDb29raWVTdG9yZUV2ZW50IiwiaW5zZXJ0RGF0YVN0b3JlS2V5VmFsdWVQYWlyIiwibW9uaXRvckNvb2tpZVN0b3JlIiwiQ2xpZW50IiwibG9jYXRpb24iLCJwcm90b2NvbCIsIkNyZWF0ZUxhdW5jaGVyIiwiR2V0S2V5VmFsdWUiLCJ1c2VyVHlwZSIsInVzZXJJZCIsIlNldEtleVZhbHVlIiwiUmVsZWFzZUxhdW5jaGVyIiwiUm9ibG94TGlzdGVuZXIiLCJldmVudFRvU3RyaW5nIiwiZGF0YUtleSIsInJlc3RVcmwiLCJhcmciLCJLb250YWdlbnRMaXN0ZW5lciIsIkFQSUtleSIsIlN0YWdpbmdBUElLZXkiLCJTdGFnaW5nRXZlbnRzIiwidHMiLCJ1c2VyX2lwIiwiYWdlIiwiZ2VuZGVyIiwidG90YWwiLCJyb3VuZCIsInByb2R1Y3ROYW1lIiwicHJvdmlkZXIiLCJjYXRlZ29yeSIsInRyYWNraW5nIiwic2hvcnR0cmFja2luZyIsInRyYWNraW5ndGFnIiwiZXZlbnRUeXBlIiwib3MiLCJwbGFjZUlkIiwiZXhwZXJpbWVudCIsInZhcmlhdGlvbiIsInBhZ2UiLCJvcHQxIiwib3B0MiIsImluc3RhbGxlZCIsInNvdXJjZVR5cGUiLCJzb3VyY2UiLCJjYW1wYWlnbiIsIm1lZGl1bSIsIm1lcmNoYW50IiwiY2FyZFZhbHVlIiwiYWN0aW9uIiwiaXNTdGFnaW5nRXZlbnQiLCJzdGFnaW5nIiwic3QxIiwiR29vZ2xlTGlzdGVuZXIiLCJvcHRfbGFiZWwiLCJvcHRfdmFsdWUiLCJNb25nb0xpc3RlbmVyIiwic2hhcmQiLCJkZWZhdWx0U2hhcmQiLCJkYXRhTWFwIiwibXNnIiwibGluZSIsInVhIiwiZ2V0Q2F0ZWdvcnlGcm9tRXZlbnROYW1lIiwiaXAiLCJjbGllbnRJcEFkZHJlc3MiLCJsb2dnaW5nVVJJIiwianNvbnBDYWxsYmFjayIsImNhbGxiYWNrIiwiU2VhcmNoVmlzaW9uTGlzdGVuZXIiLCJlc3Z0a192IiwiZXN2dGtfZXN2aWQiLCJldmVudCIsIm9yZGVyaWQiLCJlc3Z0a190cmFjayIsIlNpdGVUb3VjaEV2ZW50IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsImlzTmFOIiwidXNlTG9jYWxTdG9yYWdlIiwicmVtb3ZlSXRlbSIsInNldEl0ZW0iLCJkYXRlRGlmZlRocmVzaG9sZEluSG91cnMiLCJ1cGRhdGVMYXN0QWN0aXZpdHlBbmRGaXJlRXZlbnQiLCJnZXRMYXN0QWN0aXZpdHkiLCJzZXRMYXN0QWN0aXZpdHkiLCJKU0Vycm9yVHJhY2tlciIsInNob3dBbGVydCIsImRlZmF1bHRQaXhlbCIsImludGVybmFsRXZlbnRMaXN0ZW5lclBpeGVsRW5hYmxlZCIsImphdmFzY3JpcHRTdGFja1RyYWNlRW5hYmxlZCIsImFkZE9uRXJyb3JFdmVudEhhbmRsZXIiLCJlcnJvckhhbmRsZXIiLCJsb2dFeGNlcHRpb24iLCJvbmVycm9yIiwicHJvY2Vzc0V4Y2VwdGlvbiIsImZpcmVHQVBpeGVsIiwiZGlzdGlsbEdBRGF0YSIsInNob3dFcnJvck1lc3NhZ2UiLCJjcmVhdGVVUkwiLCJzdHVkaW8yQWxlcnRNb2RhbCIsInNob3dQcm9tcHQiLCJ1cGRhdGVTdHVkaW9BbGVydFVzZXJQcmVmZXJlbmNlIiwiYmFja2dyb3VuZENvbG9yIiwiaXNJREUiLCJjbGljayIsInRyeVRvRG93bmxvYWQiLCJvSUZybSIsImdldEVsZW1lbnRCeUlkIiwibG9nU3RhdGlzdGljcyIsIlR5cGUiLCJyZWdpc3Rlck5hbWVzcGFjZSIsIl9pbnN0YWxsSG9zdCIsIl9pbnN0YWxsU3VjY2VzcyIsIl9DTFNJRCIsIl9jb250aW51YXRpb24iLCJfc2tpcCIsIl9pc0lERSIsIl9pc1JvYmxveEJyb3dzZXIiLCJfaXNQbGFjZUxhdW5jaCIsIl9zaWxlbnRNb2RlRW5hYmxlZCIsIl9icmluZ0FwcFRvRnJvbnRFbmFibGVkIiwiX251bUxvY2tzIiwiX2xvZ1RpbWluZyIsIl9sb2dTdGFydFRpbWUiLCJfbG9nRW5kVGltZSIsIl9oaWRkZW5Nb2RlRW5hYmxlZCIsIl9ydW5JbnN0YWxsQUJUZXN0IiwiR2V0SW5zdGFsbEhvc3QiLCJBY3RpdmVYT2JqZWN0IiwiSW5zdGFsbEhvc3QiLCJHZXRfSW5zdGFsbEhvc3QiLCJpbml0Q2xpZW50UHJvcHMiLCJIZWxsbyIsImV4dGVybmFsIiwiSXNSb2Jsb3hBcHBJREUiLCJpc1JvYmxveEJyb3dzZXIiLCJyb2Jsb3hCcm93c2VySW5zdGFsbEhvc3QiLCJJc1JvYmxveFByb3h5SW5zdGFsbGVkIiwiSXNSb2Jsb3hJbnN0YWxsZWQiLCJTZXRTdGFydEluSGlkZGVuTW9kZSIsIlVuaGlkZUFwcCIsIlVwZGF0ZSIsIldhaXRGb3JSb2Jsb3giLCJfY2FuY2VsbGVkIiwiSW1wbGVtZW50c1Byb3h5IiwiSW5zdGFsbGF0aW9uSW5zdHJ1Y3Rpb25zIiwicnVuSW5zdGFsbEFCVGVzdCIsImFwcFZlcnNpb24iLCJjaHJvbWUiLCJoYXNoIiwicGxheV9wbGFjZUlkIiwiX29udGltZXIiLCJSZXN1bWVUaW1lciIsIlJlZnJlc2giLCJwbHVnaW5zIiwicmVmcmVzaCIsIl9vbkNhbmNlbCIsIk1hZFN0YXR1cyIsInJ1bm5pbmciLCJ1cGRhdGVJbnRlcnZhbCIsImZhZGVJbnRlcnZhbCIsInRpbWVvdXQiLCJmaWVsZCIsImJhY2tCdWZmZXIiLCJwYXJ0aWNpcGxlIiwibW9kaWZpZXIiLCJzdWJqZWN0IiwibmV3TGliIiwibGliU3RyaW5nIiwicmFuZG9tIiwic3RhcnQiLCJzZXRJbnRlcnZhbCIsImNsZWFySW50ZXJ2YWwiLCJtYW51YWxVcGRhdGUiLCJ1cGRhdGUiLCJub0FuaW0iLCJmYWRlSW4iLCJSQlgiLCJSb2Jsb3hMYXVuY2hTdGF0ZXMiLCJTdGFydGluZ1NlcnZlciIsIlN0YXJ0aW5nQ2xpZW50IiwiVXBncmFkaW5nIiwiTm9uZSIsIlJvYmxveExhdW5jaCIsImxhdW5jaEdhbWVQYWdlIiwidGltZXIiLCJjbGllbnRNZXRyaWNUeXBlIiwibGF1bmNoZXIiLCJnb29nbGVBbmFseXRpY3NDYWxsYmFjayIsIl9Hb29nbGVBbmFseXRpY3NDYWxsYmFjayIsInN0YXRlIiwic2VjdXJlQXV0aGVudGljYXRlIiwiUm9ibG94UGxhY2VMYXVuY2hlclNlcnZpY2UiLCJMb2dKb2luQ2xpY2siLCJyZXF1ZXN0IiwiUmVxdWVzdEdhbWUiLCJnZXRKU09OIiwiaXNQYXJ0eUxlYWRlciIsIlJlcXVlc3RQbGF5V2l0aFBhcnR5IiwicGFydHlHdWlkIiwiZ2FtZUlkIiwiUmVxdWVzdEdyb3VwQnVpbGRHYW1lIiwiUmVxdWVzdEZvbGxvd1VzZXIiLCJSZXF1ZXN0R2FtZUpvYiIsImdhbWVKb2JJZCIsIkNoZWNrR2FtZUpvYlN0YXR1cyIsImpvYklkIiwiY2hlY2tSb2Jsb3hJbnN0YWxsIiwiUGxhY2VMYXVuY2hlciIsIlN0YXJ0R2FtZSIsIlNlbGVuaXVtVGVzdE1vZGUiLCJ1cmNoaW5UcmFja2VyIiwiSXNSb2Jsb3hBQkFwcCIsIklzUm9ibG94MkFwcCIsIkF1dGhlbnRpY2F0aW9uVGlja2V0IiwiUHV0X0F1dGhlbnRpY2F0aW9uVGlja2V0IiwiU2V0RWRpdE1vZGUiLCJTZXRTaWxlbnRNb2RlRW5hYmxlZCIsIlZpZGVvUHJlUm9sbCIsInZpZGVvSW5pdGlhbGl6ZWQiLCJpc1BsYXlpbmciLCJDaGVja0dhbWVTdGFydGVkIiwiQnJpbmdBcHBUb0Zyb250IiwicGxheUZyb21VcmwiLCJtZXNzYWdlIiwiSXNHYW1lU3RhcnRlZCIsIkdldF9HYW1lU3RhcnRlZCIsIl9zaG93RGlhbG9nIiwiX3VwZGF0ZVN0YXR1cyIsIkNoZWNrUm9ibG94SW5zdGFsbCIsIl9wb3B1cElEIiwiX3BvcHVwIiwiX3BvcHVwT3B0aW9ucyIsInNob3dWaWRlb1ByZVJvbGwiLCJpc0V4Y2x1ZGVkIiwiY29ycmVjdElFTW9kYWxQb3NpdGlvbiIsImxvZ1ZpZGVvUHJlUm9sbCIsIkNhbmNlbExhdW5jaCIsIl9yZXBvcnREdXJhdGlvbiIsImFzeW5jIiwiY2FjaGUiLCJzdWNjZXNzIiwiX29uR2FtZVN0YXR1cyIsImpvaW5TY3JpcHRVcmwiLCJhdXRoZW50aWNhdGlvblVybCIsImF1dGhlbnRpY2F0aW9uVGlja2V0IiwiX29uR2FtZUVycm9yIiwiX3N0YXJ0VXBkYXRlUG9sbGluZyIsIklzVXBUb0RhdGUiLCJHZXRfSXNVcFRvRGF0ZSIsIlByZVN0YXJ0R2FtZSIsIl9vblVwZGF0ZVN0YXR1cyIsIl9vblVwZGF0ZUVycm9yIiwiQ2hlY2tVcGRhdGVTdGF0dXMiLCJQYXJ0eSIsIkFtSUxlYWRlciIsIl9vbkVycm9yIiwiZGlzcG9zZSIsImNhbGxCYXNlTWV0aG9kIiwib3BlblZpZGVvUHJlcm9sbDIiLCJmbGFzaENoZWNrIiwibWltZVR5cGVzIiwiZGVzY3JpcHRpb24iLCJuZXdWYWx1ZSIsInZpZGVvU3RhcnRlZCIsInZpZGVvQ29tcGxldGVkIiwidmlkZW9Ta2lwcGVkIiwidmlkZW9DYW5jZWxsZWQiLCJ2aWRlb0Vycm9yZWQiLCJ2aWRlb09wdGlvbnMiLCJrZXkiLCJjb21wYW5pb25JZCIsIm15dnBhaWRhZCIsImxvYWRpbmdCYXJNYXhUaW1lIiwibG9hZGluZ0JhckN1cnJlbnRUaW1lIiwibG9hZGluZ0JhckludGVydmFsSUQiLCJsb2FkaW5nQmFySUQiLCJsb2FkaW5nQmFySW5uZXJJRCIsImxvYWRpbmdCYXJQZXJjZW50YWdlSUQiLCJ2aWRlb0xvYWRpbmdUaW1lb3V0IiwidmlkZW9QbGF5aW5nVGltZW91dCIsInZpZGVvTG9nTm90ZSIsImxvZ3NFbmFibGVkIiwiZXhjbHVkZWRQbGFjZUlkcyIsInNwZWNpZmljQWRPblBsYWNlUGFnZUVuYWJsZWQiLCJzcGVjaWZpY0FkT25QbGFjZVBhZ2VJZCIsInNwZWNpZmljQWRPblBsYWNlUGFnZUNhdGVnb3J5IiwiY2hlY2tFbGlnaWJpbGl0eSIsIl9fYWRhcHR2X18iLCJjYXRlZ29yaWVzIiwiYWRzIiwidnBhaWQiLCJWUEFJREFkIiwiTG9hZGluZ0JhciIsIlZQQUlERXZlbnQiLCJvbiIsIkFkTG9hZGVkIiwiX29uVmlkZW9Mb2FkZWQiLCJBZFN0YXJ0ZWQiLCJfb25WaWRlb1N0YXJ0IiwiQWRTdG9wcGVkIiwiX29uVmlkZW9Db21wbGV0ZSIsIkFkRXJyb3IiLCJfb25WaWRlb0Vycm9yIiwiaW5pdEFkIiwibG9hZGluZ0JhckludGVydmFsIiwiY2FuY2VsIiwic2tpcCIsInN0b3BBZCIsInN0YXJ0QWQiLCJiYXJzIiwiYmFySUQiLCJpbm5lckJhcklEIiwicGVyY2VudGFnZUlEIiwicGVyY2VudENvbXBsZXRlIiwic3Bs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QUFVQSxDQUFDLEdBQUcsQ0FBZCxHQUFrQlEsQ0FBQyxHQUFHMk0sQ0FBQyxDQUFDLE1BQU1wTixDQUFQLENBQUQsQ0FBV2dKLEtBQVgsRUFBdEIsRUFBMEM1SSxDQUFDLEdBQUdnRixJQUFJLENBQUNtUSxLQUFMLENBQVc5VSxDQUFDLEdBQUdSLENBQWYsQ0FBOUMsRUFBaUVtTixDQUFDLENBQUMsTUFBTWpOLENBQUMsQ0FBQ2tuQixVQUFULENBQUQsQ0FBc0IxYSxPQUF0QixDQUE4QjtBQUNqRzNELFdBQUssRUFBRTVJO0FBRDBGLEtBQTlCLEVBRXBFLEdBRm9FLEVBRS9ELE9BRitELENBQWpFLEVBRVlELENBQUMsQ0FBQ21uQixZQUFGLElBQWtCbGEsQ0FBQyxDQUFDLE1BQU1qTixDQUFDLENBQUNtbkIsWUFBVCxDQUFELENBQXdCL21CLE1BQXhCLEdBQWlDLENBQW5ELElBQXdENk0sQ0FBQyxDQUFDLE1BQU1qTixDQUFDLENBQUNtbkIsWUFBVCxDQUFELENBQXdCL2UsSUFBeEIsQ0FBNkJuRCxJQUFJLENBQUNtUSxLQUFMLENBQVd0VixDQUFDLEdBQUcsR0FBZixJQUFzQixHQUFuRCxDQUZwRSxFQUU2SEUsQ0FBQyxDQUFDb25CLGVBQUYsR0FBb0J0bkIsQ0FGdEosQ0FBRDtBQUdIO0FBcEJZLENBQWpCLEMsQ0FzQkEiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvYXBwLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy9yZXF1aXJlKCcuL2Jvb3RzdHJhcCcpO1xuXG47IC8vLyBmaWxlczogcm9ibG94LmpzLCBqcXVlcnkuanNvbi0yLjIuanMsIGpxdWVyeS5zaW1wbGVtb2RhbC0xLjMuNS5qcywganF1ZXJ5LnRpcHN5LmpzLCBBamF4QXZhdGFyVGh1bWJuYWlsLmpzLCBleHRlbnNpb25zL3N0cmluZy5qcywgU3RyaW5nVHJ1bmNhdG9yLm1pbi5qcywganNvbjIubWluLmpzLCB3ZWJraXQuanMsIEdvb2dsZUFuYWx5dGljcy9Hb29nbGVBbmFseXRpY3NFdmVudHMuanMsIE1hc3RlclBhZ2VVSS5qcywganF1ZXJ5LmNvb2tpZS5qcywganF1ZXJ5Lmpzb25jb29raWUuanMsIFhzcmZUb2tlbi5qcywgUm9ibG94RXZlbnRNYW5hZ2VyLmpzLCBSb2Jsb3hFdmVudExpc3RlbmVyLmpzLCBLb250YWdlbnRFdmVudExpc3RlbmVyLmpzLCBHb29nbGVFdmVudExpc3RlbmVyLmpzLCBNb25nb0V2ZW50TGlzdGVuZXIuanMsIFNlYXJjaFZpc2lvbkxpc3RlbmVyLmpzLCBTaXRlVG91Y2hFdmVudC5qcywgSlNFcnJvclRyYWNrZXIuanMsIFN0dWRpbzJBbGVydC5qcywgQ2xpZW50SW5zdGFsbGVyLmpzLCBJbnN0YWxsYXRpb25JbnN0cnVjdGlvbnMuanMsIE1hZFN0YXR1cy5qcywgUGxhY2VMYXVuY2hlci5qcywgVmlkZW9QcmVSb2xsLmpzXG5cbjsgLy8vIHJvYmxveC5qc1xuKGZ1bmN0aW9uKG4sIHQpIHtcbiAgICBmdW5jdGlvbiBwKG4sIGkpIHtcbiAgICAgICAgdmFyIHIgPSBpLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgZm9yIChpID0gci5zaGlmdCgpOyByLmxlbmd0aCA+IDA7IG4gPSBuW2ldLCBpID0gci5zaGlmdCgpKVxuICAgICAgICAgICAgaWYgKG5baV0gPT09IHQpIHJldHVybiB0O1xuICAgICAgICByZXR1cm4gbltpXVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGsobiwgaSwgcikge1xuICAgICAgICB2YXIgdSA9IGkuc3BsaXQoXCIuXCIpO1xuICAgICAgICBmb3IgKGkgPSB1LnNoaWZ0KCk7IHUubGVuZ3RoID4gMDsgbiA9IG5baV0sIGkgPSB1LnNoaWZ0KCkpIG5baV0gPT09IHQgJiYgKG5baV0gPSB7fSk7XG4gICAgICAgIG5baV0gPSByXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbnQobiwgdCkge1xuICAgICAgICB2YXIgaSA9IGYuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG4gICAgICAgIGkuaHJlZiA9IG4sIGkucmVsID0gXCJzdHlsZXNoZWV0XCIsIGkudHlwZSA9IFwidGV4dC9jc3NcIiwgdS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpLCB1KSwgdCgpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZyhuLCB0KSB7XG4gICAgICAgIHZhciBpID0gZi5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICBpLnR5cGUgPSBcInRleHQvamF2YXNjcmlwdFwiLCBpLnNyYyA9IG4sIGkub25sb2FkID0gaS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGkucmVhZHlTdGF0ZSAmJiBpLnJlYWR5U3RhdGUgIT0gXCJsb2FkZWRcIiAmJiBpLnJlYWR5U3RhdGUgIT0gXCJjb21wbGV0ZVwiIHx8ICh0KCksIGkub25sb2FkID0gaS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsKVxuICAgICAgICB9LCB1LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGksIHUpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZChuKSB7XG4gICAgICAgIHJldHVybiBuLnNwbGl0KFwiLlwiKS5wb3AoKS5zcGxpdChcIj9cIikuc2hpZnQoKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG8obikge1xuICAgICAgICByZXR1cm4gbi5pbmRleE9mKFwiLmpzXCIpIDwgMCA/IG4gOiBuLmluZGV4T2Yoci5tb2R1bGVQYXRoKSA+PSAwID8gbi5zcGxpdChyLm1vZHVsZVBhdGgpLnBvcCgpLnNwbGl0KFwiLmpzXCIpLnNoaWZ0KCkucmVwbGFjZShcIi9cIiwgXCIuXCIpIDogblxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHYobikge1xuICAgICAgICB2YXIgdCwgaTtcbiAgICAgICAgcmV0dXJuIHQgPSBuLmluZGV4T2YoXCIuanNcIikgPj0gMCB8fCBuLmluZGV4T2YoXCIuY3NzXCIpID49IDAgPyBuIDogci5iYXNlVXJsICsgci5tb2R1bGVQYXRoICsgbi5yZXBsYWNlKFwiLlwiLCBcIi9cIikgKyBcIi5qc1wiLCBpID0gci52ZXJzaW9uc1t0XSB8fCAxLCB0ICsgXCI/dj1cIiArIGlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzKG4pIHtcbiAgICAgICAgZm9yICh2YXIgciwgdSA9IFtdLCBpID0gMDsgaSA8IG4ubGVuZ3RoOyBpKyspIHIgPSBwKFJvYmxveCwgbyhuW2ldKSksIHIgIT09IHQgJiYgdS5wdXNoKHIpO1xuICAgICAgICByZXR1cm4gdVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGUobikge1xuICAgICAgICB2YXIgdCA9IGlbbl07XG4gICAgICAgIGlmICh0LmxvYWRlZCAmJiB0LmRlcHNMb2FkZWQpXG4gICAgICAgICAgICB3aGlsZSAodC5saXN0ZW5lcnMubGVuZ3RoID4gMCkgdC5saXN0ZW5lcnMuc2hpZnQoKSgpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYShuLCB1KSB7XG4gICAgICAgIHZhciBmLCBzLCBoO1xuICAgICAgICBpZiAoIWIobikgfHwgci5leHRlcm5hbFJlc291cmNlcy50b1N0cmluZygpLmluZGV4T2YobikgPj0gMCkgcmV0dXJuIHUoKTtcbiAgICAgICAgZiA9IG8obiksIGlbZl0gPT09IHQgPyAoaVtmXSA9IHtcbiAgICAgICAgICAgIGxvYWRlZDogITEsXG4gICAgICAgICAgICBkZXBzTG9hZGVkOiAhMCxcbiAgICAgICAgICAgIGxpc3RlbmVyczogW11cbiAgICAgICAgfSwgaVtmXS5saXN0ZW5lcnMucHVzaCh1KSwgcyA9IHYoZiksIGggPSBkKHMpID09IFwiY3NzXCIgPyBudCA6IGcsIGgocywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBpW2ZdLmxvYWRlZCA9ICEwLCBlKGYpXG4gICAgICAgIH0pKSA6IChpW2ZdLmxpc3RlbmVycy5wdXNoKHUpLCBlKGYpKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGgobiwgdCkge1xuICAgICAgICB2YXIgciA9IG4uc2hpZnQoKSxcbiAgICAgICAgICAgIGkgPSBuLmxlbmd0aCA9PSAwID8gdCA6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGgobiwgdClcbiAgICAgICAgICAgIH07XG4gICAgICAgIGEociwgaSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsKG4sIHQpIHtcbiAgICAgICAgYyhuKSB8fCAobiA9IFtuXSk7XG4gICAgICAgIHZhciBpID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0LmFwcGx5KG51bGwsIHMobikpXG4gICAgICAgIH07XG4gICAgICAgIGgobi5zbGljZSgwKSwgaSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB5KG4sIHQsIHIpIHtcbiAgICAgICAgdyh0KSA/IChyID0gdCwgdCA9IFtdKSA6IGModCkgfHwgKHQgPSBbdF0pLCBpW25dID0gaVtuXSB8fCB7XG4gICAgICAgICAgICBsb2FkZWQ6ICEwLFxuICAgICAgICAgICAgbGlzdGVuZXJzOiBbXVxuICAgICAgICB9LCBpW25dLmRlcHNMb2FkZWQgPSAhMSwgaVtuXS5saXN0ZW5lcnMudW5zaGlmdChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGsoUm9ibG94LCBuLCByLmFwcGx5KG51bGwsIHModCkpKVxuICAgICAgICB9KSwgbCh0LCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlbbl0uZGVwc0xvYWRlZCA9ICEwLCBlKG4pXG4gICAgICAgIH0pXG4gICAgfVxuICAgIHZhciBmID0gbi5kb2N1bWVudCxcbiAgICAgICAgdSA9IGYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIilbMF0sXG4gICAgICAgIGIgPSBmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIG4gPT0gXCJzdHJpbmdcIlxuICAgICAgICB9LFxuICAgICAgICBjID0gZnVuY3Rpb24obikge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuKSA9PSBcIltvYmplY3QgQXJyYXldXCJcbiAgICAgICAgfSxcbiAgICAgICAgdyA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobikgPT0gXCJbb2JqZWN0IEZ1bmN0aW9uXVwiXG4gICAgICAgIH0sXG4gICAgICAgIGkgPSB7fSxcbiAgICAgICAgciA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IFwiL1wiLFxuICAgICAgICAgICAgbW9kdWxlUGF0aDogXCJqcy9tb2R1bGVzL1wiLFxuICAgICAgICAgICAgdmVyc2lvbnM6IHt9LFxuICAgICAgICAgICAgZXh0ZXJuYWxSZXNvdXJjZXM6IFtdXG4gICAgICAgIH07XG4gICAgdHlwZW9mIFJvYmxveCA9PSBcInVuZGVmaW5lZFwiICYmIChSb2Jsb3ggPSB7fSksIFJvYmxveC5jb25maWcgPSByLCBSb2Jsb3gucmVxdWlyZSA9IGwsIFJvYmxveC5kZWZpbmUgPSB5XG59KSh3aW5kb3cpO1xuXG47IC8vLyBqcXVlcnkuanNvbi0yLjIuanNcbihmdW5jdGlvbihuKSB7XG4gICAgbi50b0pTT04gPSBmdW5jdGlvbih0KSB7XG4gICAgICAgIHZhciBzLCBvLCBwLCBoLCBmLCBlLCByLCB2LCBjLCBhLCB1LCBsLCBpLCB5O1xuICAgICAgICBpZiAodHlwZW9mIEpTT04gPT0gXCJvYmplY3RcIiAmJiBKU09OLnN0cmluZ2lmeSkgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpO1xuICAgICAgICBpZiAoaSA9IHR5cGVvZiB0LCB0ID09PSBudWxsKSByZXR1cm4gXCJudWxsXCI7XG4gICAgICAgIGlmIChpID09IFwidW5kZWZpbmVkXCIpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChpID09IFwibnVtYmVyXCIgfHwgaSA9PSBcImJvb2xlYW5cIikgcmV0dXJuIHQgKyBcIlwiO1xuICAgICAgICBpZiAoaSA9PSBcInN0cmluZ1wiKSByZXR1cm4gbi5xdW90ZVN0cmluZyh0KTtcbiAgICAgICAgaWYgKGkgPT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0LnRvSlNPTiA9PSBcImZ1bmN0aW9uXCIpIHJldHVybiBuLnRvSlNPTih0LnRvSlNPTigpKTtcbiAgICAgICAgICAgIGlmICh0LmNvbnN0cnVjdG9yID09PSBEYXRlKSByZXR1cm4gcyA9IHQuZ2V0VVRDTW9udGgoKSArIDEsIHMgPCAxMCAmJiAocyA9IFwiMFwiICsgcyksIG8gPSB0LmdldFVUQ0RhdGUoKSwgbyA8IDEwICYmIChvID0gXCIwXCIgKyBvKSwgcCA9IHQuZ2V0VVRDRnVsbFllYXIoKSwgaCA9IHQuZ2V0VVRDSG91cnMoKSwgaCA8IDEwICYmIChoID0gXCIwXCIgKyBoKSwgZiA9IHQuZ2V0VVRDTWludXRlcygpLCBmIDwgMTAgJiYgKGYgPSBcIjBcIiArIGYpLCBlID0gdC5nZXRVVENTZWNvbmRzKCksIGUgPCAxMCAmJiAoZSA9IFwiMFwiICsgZSksIHIgPSB0LmdldFVUQ01pbGxpc2Vjb25kcygpLCByIDwgMTAwICYmIChyID0gXCIwXCIgKyByKSwgciA8IDEwICYmIChyID0gXCIwXCIgKyByKSwgJ1wiJyArIHAgKyBcIi1cIiArIHMgKyBcIi1cIiArIG8gKyBcIlRcIiArIGggKyBcIjpcIiArIGYgKyBcIjpcIiArIGUgKyBcIi5cIiArIHIgKyAnWlwiJztcbiAgICAgICAgICAgIGlmICh0LmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xuICAgICAgICAgICAgICAgIGZvciAodiA9IFtdLCBjID0gMDsgYyA8IHQubGVuZ3RoOyBjKyspIHYucHVzaChuLnRvSlNPTih0W2NdKSB8fCBcIm51bGxcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiW1wiICsgdi5qb2luKFwiLFwiKSArIFwiXVwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhID0gW107XG4gICAgICAgICAgICBmb3IgKHUgaW4gdCkge1xuICAgICAgICAgICAgICAgIGlmIChpID0gdHlwZW9mIHUsIGkgPT0gXCJudW1iZXJcIikgbCA9ICdcIicgKyB1ICsgJ1wiJztcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChpID09IFwic3RyaW5nXCIpIGwgPSBuLnF1b3RlU3RyaW5nKHUpO1xuICAgICAgICAgICAgICAgIGVsc2UgY29udGludWU7XG4gICAgICAgICAgICAgICAgdHlwZW9mIHRbdV0gIT0gXCJmdW5jdGlvblwiICYmICh5ID0gbi50b0pTT04odFt1XSksIGEucHVzaChsICsgXCI6XCIgKyB5KSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBcIntcIiArIGEuam9pbihcIiwgXCIpICsgXCJ9XCJcbiAgICAgICAgfVxuICAgIH0sIG4uZXZhbEpTT04gPSBmdW5jdGlvbihuKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgSlNPTiA9PSBcIm9iamVjdFwiICYmIEpTT04ucGFyc2UgPyBKU09OLnBhcnNlKG4pIDogZXZhbChcIihcIiArIG4gKyBcIilcIilcbiAgICB9LCBuLnNlY3VyZUV2YWxKU09OID0gZnVuY3Rpb24obikge1xuICAgICAgICBpZiAodHlwZW9mIEpTT04gPT0gXCJvYmplY3RcIiAmJiBKU09OLnBhcnNlKSByZXR1cm4gSlNPTi5wYXJzZShuKTtcbiAgICAgICAgdmFyIHQgPSBuO1xuICAgICAgICBpZiAodCA9IHQucmVwbGFjZSgvXFxcXFtcIlxcXFxcXC9iZm5ydHVdL2csIFwiQFwiKSwgdCA9IHQucmVwbGFjZSgvXCJbXlwiXFxcXFxcblxccl0qXCJ8dHJ1ZXxmYWxzZXxudWxsfC0/XFxkKyg/OlxcLlxcZCopPyg/OltlRV1bK1xcLV0/XFxkKyk/L2csIFwiXVwiKSwgdCA9IHQucmVwbGFjZSgvKD86Xnw6fCwpKD86XFxzKlxcWykrL2csIFwiXCIpLCAvXltcXF0sOnt9XFxzXSokLy50ZXN0KHQpKSByZXR1cm4gZXZhbChcIihcIiArIG4gKyBcIilcIik7XG4gICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihcIkVycm9yIHBhcnNpbmcgSlNPTiwgc291cmNlIGlzIG5vdCB2YWxpZC5cIik7XG4gICAgfSwgbi5xdW90ZVN0cmluZyA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgcmV0dXJuIG4ubWF0Y2godCkgPyAnXCInICsgbi5yZXBsYWNlKHQsIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIHZhciB0ID0gaVtuXTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgdCA9PSBcInN0cmluZ1wiID8gdCA6ICh0ID0gbi5jaGFyQ29kZUF0KCksIFwiXFxcXHUwMFwiICsgTWF0aC5mbG9vcih0IC8gMTYpLnRvU3RyaW5nKDE2KSArICh0ICUgMTYpLnRvU3RyaW5nKDE2KSlcbiAgICAgICAgfSkgKyAnXCInIDogJ1wiJyArIG4gKyAnXCInXG4gICAgfTtcbiAgICB2YXIgdCA9IC9bXCJcXFxcXFx4MDAtXFx4MWZcXHg3Zi1cXHg5Zl0vZyxcbiAgICAgICAgaSA9IHtcbiAgICAgICAgICAgIFwiXFxiXCI6IFwiXFxcXGJcIixcbiAgICAgICAgICAgIFwiXFx0XCI6IFwiXFxcXHRcIixcbiAgICAgICAgICAgIFwiXFxuXCI6IFwiXFxcXG5cIixcbiAgICAgICAgICAgIFwiXFxmXCI6IFwiXFxcXGZcIixcbiAgICAgICAgICAgIFwiXFxyXCI6IFwiXFxcXHJcIixcbiAgICAgICAgICAgICdcIic6ICdcXFxcXCInLFxuICAgICAgICAgICAgXCJcXFxcXCI6IFwiXFxcXFxcXFxcIlxuICAgICAgICB9XG59KShqUXVlcnkpO1xuXG47IC8vLyBqcXVlcnkuc2ltcGxlbW9kYWwtMS4zLjUuanNcbihmdW5jdGlvbihuKSB7XG4gICAgdmFyIGkgPSBuLmJyb3dzZXIubXNpZSAmJiBwYXJzZUludChuLmJyb3dzZXIudmVyc2lvbikgPT0gNiAmJiB0eXBlb2Ygd2luZG93LlhNTEh0dHBSZXF1ZXN0ICE9IFwib2JqZWN0XCIsXG4gICAgICAgIHIgPSAhMSxcbiAgICAgICAgdCA9IFtdO1xuICAgIG4ubW9kYWwgPSBmdW5jdGlvbih0LCBpKSB7XG4gICAgICAgIHJldHVybiBuLm1vZGFsLmltcGwuaW5pdCh0LCBpKVxuICAgIH0sIG4ubW9kYWwuY2xvc2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgbi5tb2RhbC5pbXBsLmNsb3NlKClcbiAgICB9LCBuLmZuLm1vZGFsID0gZnVuY3Rpb24odCkge1xuICAgICAgICByZXR1cm4gbi5tb2RhbC5pbXBsLmluaXQodGhpcywgdClcbiAgICB9LCBuLm1vZGFsLmRlZmF1bHRzID0ge1xuICAgICAgICBhcHBlbmRUbzogXCJib2R5XCIsXG4gICAgICAgIGZvY3VzOiAhMCxcbiAgICAgICAgb3BhY2l0eTogNTAsXG4gICAgICAgIG92ZXJsYXlJZDogXCJzaW1wbGVtb2RhbC1vdmVybGF5XCIsXG4gICAgICAgIG92ZXJsYXlDc3M6IHt9LFxuICAgICAgICBjb250YWluZXJJZDogXCJzaW1wbGVtb2RhbC1jb250YWluZXJcIixcbiAgICAgICAgY29udGFpbmVyQ3NzOiB7fSxcbiAgICAgICAgZGF0YUlkOiBcInNpbXBsZW1vZGFsLWRhdGFcIixcbiAgICAgICAgZGF0YUNzczoge30sXG4gICAgICAgIG1pbkhlaWdodDogbnVsbCxcbiAgICAgICAgbWluV2lkdGg6IG51bGwsXG4gICAgICAgIG1heEhlaWdodDogbnVsbCxcbiAgICAgICAgbWF4V2lkdGg6IG51bGwsXG4gICAgICAgIGF1dG9SZXNpemU6ICExLFxuICAgICAgICBhdXRvUG9zaXRpb246ICEwLFxuICAgICAgICB6SW5kZXg6IDFlMyxcbiAgICAgICAgY2xvc2U6ICEwLFxuICAgICAgICBjbG9zZUhUTUw6ICc8YSBjbGFzcz1cIm1vZGFsQ2xvc2VJbWdcIiB0aXRsZT1cIkNsb3NlXCI+PC9hPicsXG4gICAgICAgIGNsb3NlQ2xhc3M6IFwic2ltcGxlbW9kYWwtY2xvc2VcIixcbiAgICAgICAgZXNjQ2xvc2U6ICEwLFxuICAgICAgICBvdmVybGF5Q2xvc2U6ICExLFxuICAgICAgICBwb3NpdGlvbjogbnVsbCxcbiAgICAgICAgcGVyc2lzdDogITEsXG4gICAgICAgIG1vZGFsOiAhMCxcbiAgICAgICAgb25PcGVuOiBudWxsLFxuICAgICAgICBvblNob3c6IG51bGwsXG4gICAgICAgIG9uQ2xvc2U6IG51bGxcbiAgICB9LCBuLm1vZGFsLmltcGwgPSB7XG4gICAgICAgIG86IG51bGwsXG4gICAgICAgIGQ6IHt9LFxuICAgICAgICBpbml0OiBmdW5jdGlvbih0LCBpKSB7XG4gICAgICAgICAgICB2YXIgciA9IHRoaXM7XG4gICAgICAgICAgICBpZiAoci5kLmRhdGEpIHJldHVybiAhMTtcbiAgICAgICAgICAgIGlmIChyLm8gPSBuLmV4dGVuZCh7fSwgbi5tb2RhbC5kZWZhdWx0cywgaSksIHIuekluZGV4ID0gci5vLnpJbmRleCwgci5vY2NiID0gITEsIHR5cGVvZiB0ID09IFwib2JqZWN0XCIpIHQgPSB0IGluc3RhbmNlb2YgalF1ZXJ5ID8gdCA6IG4odCksIHIuZC5wbGFjZWhvbGRlciA9ICExLCB0LnBhcmVudCgpLnBhcmVudCgpLnNpemUoKSA+IDAgJiYgKHQuYmVmb3JlKG4oXCI8c3Bhbj48L3NwYW4+XCIpLmF0dHIoXCJpZFwiLCBcInNpbXBsZW1vZGFsLXBsYWNlaG9sZGVyXCIpLmNzcyh7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCJcbiAgICAgICAgICAgIH0pKSwgci5kLnBsYWNlaG9sZGVyID0gITAsIHIuZGlzcGxheSA9IHQuY3NzKFwiZGlzcGxheVwiKSwgci5vLnBlcnNpc3QgfHwgKHIuZC5vcmlnID0gdC5jbG9uZSghMCkpKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB0ID09IFwic3RyaW5nXCIgfHwgdHlwZW9mIHQgPT0gXCJudW1iZXJcIikgdCA9IG4oXCI8ZGl2PjwvZGl2PlwiKS5odG1sKHQpO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gYWxlcnQoXCJTaW1wbGVNb2RhbCBFcnJvcjogVW5zdXBwb3J0ZWQgZGF0YSB0eXBlOiBcIiArIHR5cGVvZiB0KSwgcjtcbiAgICAgICAgICAgIHJldHVybiByLmNyZWF0ZSh0KSwgdCA9IG51bGwsIHIub3BlbigpLCBuLmlzRnVuY3Rpb24oci5vLm9uU2hvdykgJiYgci5vLm9uU2hvdy5hcHBseShyLCBbci5kXSksIHJcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlOiBmdW5jdGlvbihyKSB7XG4gICAgICAgICAgICB2YXIgdSA9IHRoaXM7XG4gICAgICAgICAgICB0ID0gdS5nZXREaW1lbnNpb25zKCksIHUuby5tb2RhbCAmJiBpICYmICh1LmQuaWZyYW1lID0gbignPGlmcmFtZSBzcmM9XCJqYXZhc2NyaXB0OmZhbHNlO1wiPjwvaWZyYW1lPicpLmNzcyhuLmV4dGVuZCh1Lm8uaWZyYW1lQ3NzLCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogdFswXSxcbiAgICAgICAgICAgICAgICB3aWR0aDogdFsxXSxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IHUuby56SW5kZXgsXG4gICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgIGxlZnQ6IDBcbiAgICAgICAgICAgIH0pKS5hcHBlbmRUbyh1Lm8uYXBwZW5kVG8pKSwgdS5kLm92ZXJsYXkgPSBuKFwiPGRpdj48L2Rpdj5cIikuYXR0cihcImlkXCIsIHUuby5vdmVybGF5SWQpLmFkZENsYXNzKFwic2ltcGxlbW9kYWwtb3ZlcmxheVwiKS5jc3Mobi5leHRlbmQodS5vLm92ZXJsYXlDc3MsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiB1Lm8ub3BhY2l0eSAvIDEwMCxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHUuby5tb2RhbCA/IHRbMF0gOiAwLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB1Lm8ubW9kYWwgPyB0WzFdIDogMCxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJmaXhlZFwiLFxuICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgIHpJbmRleDogdS5vLnpJbmRleCArIDFcbiAgICAgICAgICAgIH0pKS5hcHBlbmRUbyh1Lm8uYXBwZW5kVG8pLCB1LmQuY29udGFpbmVyID0gbihcIjxkaXY+PC9kaXY+XCIpLmF0dHIoXCJpZFwiLCB1Lm8uY29udGFpbmVySWQpLmFkZENsYXNzKFwic2ltcGxlbW9kYWwtY29udGFpbmVyXCIpLmNzcyhuLmV4dGVuZCh1Lm8uY29udGFpbmVyQ3NzLCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiZml4ZWRcIixcbiAgICAgICAgICAgICAgICB6SW5kZXg6IHUuby56SW5kZXggKyAyXG4gICAgICAgICAgICB9KSkuYXBwZW5kKHUuby5jbG9zZSAmJiB1Lm8uY2xvc2VIVE1MID8gbih1Lm8uY2xvc2VIVE1MKS5hZGRDbGFzcyh1Lm8uY2xvc2VDbGFzcykgOiBcIlwiKS5hcHBlbmRUbyh1Lm8uYXBwZW5kVG8pLCB1LmQud3JhcCA9IG4oXCI8ZGl2PjwvZGl2PlwiKS5hdHRyKFwidGFiSW5kZXhcIiwgLTEpLmFkZENsYXNzKFwic2ltcGxlbW9kYWwtd3JhcFwiKS5jc3Moe1xuICAgICAgICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgb3V0bGluZTogMCxcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IFwidmlzaWJsZVwiXG4gICAgICAgICAgICB9KS5hcHBlbmRUbyh1LmQuY29udGFpbmVyKSwgdS5kLmRhdGEgPSByLmF0dHIoXCJpZFwiLCByLmF0dHIoXCJpZFwiKSB8fCB1Lm8uZGF0YUlkKS5hZGRDbGFzcyhcInNpbXBsZW1vZGFsLWRhdGFcIikuY3NzKG4uZXh0ZW5kKHUuby5kYXRhQ3NzLCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCJcbiAgICAgICAgICAgIH0pKS5hcHBlbmRUbyhcImJvZHlcIiksIHIgPSBudWxsLCB1LnNldENvbnRhaW5lckRpbWVuc2lvbnMoKSwgdS5kLmRhdGEuYXBwZW5kVG8odS5kLndyYXApLCBpICYmIHUuZml4SUUoKVxuICAgICAgICB9LFxuICAgICAgICBiaW5kRXZlbnRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciByID0gdGhpcztcbiAgICAgICAgICAgIG4oXCIuXCIgKyByLm8uY2xvc2VDbGFzcykuYmluZChcImNsaWNrLnNpbXBsZW1vZGFsXCIsIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBuLnByZXZlbnREZWZhdWx0KCksIHIuY2xvc2UoKVxuICAgICAgICAgICAgfSksIHIuby5tb2RhbCAmJiByLm8uY2xvc2UgJiYgci5vLm92ZXJsYXlDbG9zZSAmJiByLmQub3ZlcmxheS5iaW5kKFwiY2xpY2suc2ltcGxlbW9kYWxcIiwgZnVuY3Rpb24obikge1xuICAgICAgICAgICAgICAgIG4ucHJldmVudERlZmF1bHQoKSwgci5jbG9zZSgpXG4gICAgICAgICAgICB9KSwgbihkb2N1bWVudCkuYmluZChcImtleWRvd24uc2ltcGxlbW9kYWxcIiwgZnVuY3Rpb24obikge1xuICAgICAgICAgICAgICAgIHIuby5tb2RhbCAmJiByLm8uZm9jdXMgJiYgbi5rZXlDb2RlID09IDkgPyByLndhdGNoVGFiKG4pIDogci5vLmNsb3NlICYmIHIuby5lc2NDbG9zZSAmJiBuLmtleUNvZGUgPT0gMjcgJiYgKG4ucHJldmVudERlZmF1bHQoKSwgci5jbG9zZSgpKVxuICAgICAgICAgICAgfSksIG4od2luZG93KS5iaW5kKFwicmVzaXplLnNpbXBsZW1vZGFsXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHQgPSByLmdldERpbWVuc2lvbnMoKSwgci5zZXRDb250YWluZXJEaW1lbnNpb25zKCEwKSwgaSA/IHIuZml4SUUoKSA6IHIuby5tb2RhbCAmJiAoci5kLmlmcmFtZSAmJiByLmQuaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdFswXSxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHRbMV1cbiAgICAgICAgICAgICAgICB9KSwgci5kLm92ZXJsYXkuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0WzBdLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdFsxXVxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgdW5iaW5kRXZlbnRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIG4oXCIuXCIgKyB0aGlzLm8uY2xvc2VDbGFzcykudW5iaW5kKFwiY2xpY2suc2ltcGxlbW9kYWxcIiksIG4oZG9jdW1lbnQpLnVuYmluZChcImtleWRvd24uc2ltcGxlbW9kYWxcIiksIG4od2luZG93KS51bmJpbmQoXCJyZXNpemUuc2ltcGxlbW9kYWxcIiksIHRoaXMuZC5vdmVybGF5LnVuYmluZChcImNsaWNrLnNpbXBsZW1vZGFsXCIpXG4gICAgICAgIH0sXG4gICAgICAgIGZpeElFOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciBpID0gdGhpcyxcbiAgICAgICAgICAgICAgICB0ID0gaS5vLnBvc2l0aW9uO1xuICAgICAgICAgICAgbi5lYWNoKFtpLmQuaWZyYW1lIHx8IG51bGwsIGkuby5tb2RhbCA/IGkuZC5vdmVybGF5IDogbnVsbCwgaS5kLmNvbnRhaW5lcl0sIGZ1bmN0aW9uKG4sIGkpIHtcbiAgICAgICAgICAgICAgICB2YXIgbCwgYywgbywgZTtcbiAgICAgICAgICAgICAgICBpZiAoaSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IFwiZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGggPSBcImRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBcImRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBhID0gXCJkb2N1bWVudC5ib2R5LnNjcm9sbExlZnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHYgPSBcImRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwID0gXCJkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB5ID0gXCJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB3ID0gXCJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHUgPSBcImRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBmID0gXCJkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICByID0gaVswXS5zdHlsZTtcbiAgICAgICAgICAgICAgICAgICAgci5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIiwgbiA8IDIgPyAoci5yZW1vdmVFeHByZXNzaW9uKFwiaGVpZ2h0XCIpLCByLnJlbW92ZUV4cHJlc3Npb24oXCJ3aWR0aFwiKSwgci5zZXRFeHByZXNzaW9uKFwiaGVpZ2h0XCIsIFwiXCIgKyBiICsgXCIgPiBcIiArIHMgKyBcIiA/IFwiICsgYiArIFwiIDogXCIgKyBzICsgJyArIFwicHhcIicpLCByLnNldEV4cHJlc3Npb24oXCJ3aWR0aFwiLCBcIlwiICsgcCArIFwiID4gXCIgKyBoICsgXCIgPyBcIiArIHAgKyBcIiA6IFwiICsgaCArICcgKyBcInB4XCInKSkgOiAodCAmJiB0LmNvbnN0cnVjdG9yID09IEFycmF5ID8gKG8gPSB0WzBdID8gdHlwZW9mIHRbMF0gPT0gXCJudW1iZXJcIiA/IHRbMF0udG9TdHJpbmcoKSA6IHRbMF0ucmVwbGFjZSgvcHgvLCBcIlwiKSA6IGkuY3NzKFwidG9wXCIpLnJlcGxhY2UoL3B4LywgXCJcIiksIGwgPSBvLmluZGV4T2YoXCIlXCIpID09IC0xID8gbyArIFwiICsgKHQgPSBcIiArIGYgKyBcIiA/IFwiICsgZiArIFwiIDogXCIgKyB2ICsgJykgKyBcInB4XCInIDogcGFyc2VJbnQoby5yZXBsYWNlKC8lLywgXCJcIikpICsgXCIgKiAoKFwiICsgeSArIFwiIHx8IFwiICsgcyArIFwiKSAvIDEwMCkgKyAodCA9IFwiICsgZiArIFwiID8gXCIgKyBmICsgXCIgOiBcIiArIHYgKyAnKSArIFwicHhcIicsIHRbMV0gJiYgKGUgPSB0eXBlb2YgdFsxXSA9PSBcIm51bWJlclwiID8gdFsxXS50b1N0cmluZygpIDogdFsxXS5yZXBsYWNlKC9weC8sIFwiXCIpLCBjID0gZS5pbmRleE9mKFwiJVwiKSA9PSAtMSA/IGUgKyBcIiArICh0ID0gXCIgKyB1ICsgXCIgPyBcIiArIHUgKyBcIiA6IFwiICsgYSArICcpICsgXCJweFwiJyA6IHBhcnNlSW50KGUucmVwbGFjZSgvJS8sIFwiXCIpKSArIFwiICogKChcIiArIHcgKyBcIiB8fCBcIiArIGggKyBcIikgLyAxMDApICsgKHQgPSBcIiArIHUgKyBcIiA/IFwiICsgdSArIFwiIDogXCIgKyBhICsgJykgKyBcInB4XCInKSkgOiAobCA9IFwiKFwiICsgeSArIFwiIHx8IFwiICsgcyArIFwiKSAvIDIgLSAodGhpcy5vZmZzZXRIZWlnaHQgLyAyKSArICh0ID0gXCIgKyBmICsgXCIgPyBcIiArIGYgKyBcIiA6IFwiICsgdiArICcpICsgXCJweFwiJywgYyA9IFwiKFwiICsgdyArIFwiIHx8IFwiICsgaCArIFwiKSAvIDIgLSAodGhpcy5vZmZzZXRXaWR0aCAvIDIpICsgKHQgPSBcIiArIHUgKyBcIiA/IFwiICsgdSArIFwiIDogXCIgKyBhICsgJykgKyBcInB4XCInKSwgci5yZW1vdmVFeHByZXNzaW9uKFwidG9wXCIpLCByLnJlbW92ZUV4cHJlc3Npb24oXCJsZWZ0XCIpLCByLnNldEV4cHJlc3Npb24oXCJ0b3BcIiwgbCksIHIuc2V0RXhwcmVzc2lvbihcImxlZnRcIiwgYykpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgZm9jdXM6IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgICAgIHZhciByID0gdGhpcyxcbiAgICAgICAgICAgICAgICB1ID0gdCB8fCBcImZpcnN0XCIsXG4gICAgICAgICAgICAgICAgaSA9IG4oXCI6aW5wdXQ6ZW5hYmxlZDp2aXNpYmxlOlwiICsgdSwgci5kLndyYXApO1xuICAgICAgICAgICAgaS5sZW5ndGggPiAwID8gaS5mb2N1cygpIDogci5kLndyYXAuZm9jdXMoKVxuICAgICAgICB9LFxuICAgICAgICBnZXREaW1lbnNpb25zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0ID0gbih3aW5kb3cpLFxuICAgICAgICAgICAgICAgIGkgPSBuLmJyb3dzZXIub3BlcmEgJiYgbi5icm93c2VyLnZlcnNpb24gPiBcIjkuNVwiICYmIG4uZm4uanF1ZXJ5IDw9IFwiMS4yLjZcIiA/IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgOiBuLmJyb3dzZXIub3BlcmEgJiYgbi5icm93c2VyLnZlcnNpb24gPCBcIjkuNVwiICYmIG4uZm4uanF1ZXJ5ID4gXCIxLjIuNlwiID8gd2luZG93LmlubmVySGVpZ2h0IDogdC5oZWlnaHQoKTtcbiAgICAgICAgICAgIHJldHVybiBbaSwgdC53aWR0aCgpXVxuICAgICAgICB9LFxuICAgICAgICBnZXRWYWw6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIHJldHVybiBuID09IFwiYXV0b1wiID8gMCA6IG4uaW5kZXhPZihcIiVcIikgPiAwID8gbiA6IHBhcnNlSW50KG4ucmVwbGFjZSgvcHgvLCBcIlwiKSlcbiAgICAgICAgfSxcbiAgICAgICAgc2V0Q29udGFpbmVyRGltZW5zaW9uczogZnVuY3Rpb24oaSkge1xuICAgICAgICAgICAgdmFyIHIgPSB0aGlzO1xuICAgICAgICAgICAgaWYgKCFpIHx8IGkgJiYgci5vLmF1dG9SZXNpemUpIHtcbiAgICAgICAgICAgICAgICB2YXIgZiA9IG4uYnJvd3Nlci5vcGVyYSA/IHIuZC5jb250YWluZXIuaGVpZ2h0KCkgOiByLmdldFZhbChyLmQuY29udGFpbmVyLmNzcyhcImhlaWdodFwiKSksXG4gICAgICAgICAgICAgICAgICAgIHUgPSBuLmJyb3dzZXIub3BlcmEgPyByLmQuY29udGFpbmVyLndpZHRoKCkgOiByLmdldFZhbChyLmQuY29udGFpbmVyLmNzcyhcIndpZHRoXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgcyA9IHIuZC5kYXRhLm91dGVySGVpZ2h0KCEwKSxcbiAgICAgICAgICAgICAgICAgICAgaCA9IHIuZC5kYXRhLm91dGVyV2lkdGgoITApLFxuICAgICAgICAgICAgICAgICAgICBlID0gci5vLm1heEhlaWdodCAmJiByLm8ubWF4SGVpZ2h0IDwgdFswXSA/IHIuby5tYXhIZWlnaHQgOiB0WzBdLFxuICAgICAgICAgICAgICAgICAgICBvID0gci5vLm1heFdpZHRoICYmIHIuby5tYXhXaWR0aCA8IHRbMV0gPyByLm8ubWF4V2lkdGggOiB0WzFdO1xuICAgICAgICAgICAgICAgIGYgPSBmID8gZiA+IGUgPyBlIDogZiA6IHMgPyBzID4gZSA/IGUgOiBzIDwgci5vLm1pbkhlaWdodCA/IHIuby5taW5IZWlnaHQgOiBzIDogci5vLm1pbkhlaWdodCwgdSA9IHUgPyB1ID4gbyA/IG8gOiB1IDogaCA/IGggPiBvID8gbyA6IGggPCByLm8ubWluV2lkdGggPyByLm8ubWluV2lkdGggOiBoIDogci5vLm1pbldpZHRoLCByLmQuY29udGFpbmVyLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogZixcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgci5vLmF1dG9Qb3NpdGlvbiAmJiByLnNldFBvc2l0aW9uKClcbiAgICAgICAgfSxcbiAgICAgICAgc2V0UG9zaXRpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIG4gPSB0aGlzLFxuICAgICAgICAgICAgICAgIHIsIGksIGYgPSB0WzBdIC8gMiAtIG4uZC5jb250YWluZXIub3V0ZXJIZWlnaHQoITApIC8gMixcbiAgICAgICAgICAgICAgICB1ID0gdFsxXSAvIDIgLSBuLmQuY29udGFpbmVyLm91dGVyV2lkdGgoITApIC8gMjtcbiAgICAgICAgICAgIG4uby5wb3NpdGlvbiAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobi5vLnBvc2l0aW9uKSA9PT0gXCJbb2JqZWN0IEFycmF5XVwiID8gKHIgPSBuLm8ucG9zaXRpb25bMF0gfHwgZiwgaSA9IG4uby5wb3NpdGlvblsxXSB8fCB1KSA6IChyID0gZiwgaSA9IHUpLCBuLmQuY29udGFpbmVyLmNzcyh7XG4gICAgICAgICAgICAgICAgbGVmdDogaSxcbiAgICAgICAgICAgICAgICB0b3A6IHJcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIHdhdGNoVGFiOiBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgICB2YXIgaSA9IHRoaXMsXG4gICAgICAgICAgICAgICAgcjtcbiAgICAgICAgICAgIG4odC50YXJnZXQpLnBhcmVudHMoXCIuc2ltcGxlbW9kYWwtY29udGFpbmVyXCIpLmxlbmd0aCA+IDAgPyAoaS5pbnB1dHMgPSBuKFwiOmlucHV0OmVuYWJsZWQ6dmlzaWJsZTpmaXJzdCwgOmlucHV0OmVuYWJsZWQ6dmlzaWJsZTpsYXN0XCIsIGkuZC5kYXRhWzBdKSwgKCF0LnNoaWZ0S2V5ICYmIHQudGFyZ2V0ID09IGkuaW5wdXRzW2kuaW5wdXRzLmxlbmd0aCAtIDFdIHx8IHQuc2hpZnRLZXkgJiYgdC50YXJnZXQgPT0gaS5pbnB1dHNbMF0gfHwgaS5pbnB1dHMubGVuZ3RoID09IDApICYmICh0LnByZXZlbnREZWZhdWx0KCksIHIgPSB0LnNoaWZ0S2V5ID8gXCJsYXN0XCIgOiBcImZpcnN0XCIsIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaS5mb2N1cyhyKVxuICAgICAgICAgICAgfSwgMTApKSkgOiAodC5wcmV2ZW50RGVmYXVsdCgpLCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGkuZm9jdXMoKVxuICAgICAgICAgICAgfSwgMTApKVxuICAgICAgICB9LFxuICAgICAgICBvcGVuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgICAgICAgIHQuZC5pZnJhbWUgJiYgdC5kLmlmcmFtZS5zaG93KCksIG4uaXNGdW5jdGlvbih0Lm8ub25PcGVuKSA/IHQuby5vbk9wZW4uYXBwbHkodCwgW3QuZF0pIDogKHQuZC5vdmVybGF5LnNob3coKSwgdC5kLmNvbnRhaW5lci5zaG93KCksIHQuZC5kYXRhLnNob3coKSksIHQuZm9jdXMoKSwgdC5iaW5kRXZlbnRzKClcbiAgICAgICAgfSxcbiAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHQgPSB0aGlzLFxuICAgICAgICAgICAgICAgIGk7XG4gICAgICAgICAgICBpZiAoIXQuZC5kYXRhKSByZXR1cm4gITE7XG4gICAgICAgICAgICB0LnVuYmluZEV2ZW50cygpLCBuLmlzRnVuY3Rpb24odC5vLm9uQ2xvc2UpICYmICF0Lm9jY2IgPyAodC5vY2NiID0gITAsIHQuby5vbkNsb3NlLmFwcGx5KHQsIFt0LmRdKSkgOiAodC5kLnBsYWNlaG9sZGVyID8gKGkgPSBuKFwiI3NpbXBsZW1vZGFsLXBsYWNlaG9sZGVyXCIpLCB0Lm8ucGVyc2lzdCA/IGkucmVwbGFjZVdpdGgodC5kLmRhdGEucmVtb3ZlQ2xhc3MoXCJzaW1wbGVtb2RhbC1kYXRhXCIpLmNzcyhcImRpc3BsYXlcIiwgdC5kaXNwbGF5KSkgOiAodC5kLmRhdGEuaGlkZSgpLnJlbW92ZSgpLCBpLnJlcGxhY2VXaXRoKHQuZC5vcmlnKSkpIDogdC5kLmRhdGEuaGlkZSgpLnJlbW92ZSgpLCB0LmQuY29udGFpbmVyLmhpZGUoKS5yZW1vdmUoKSwgdC5kLm92ZXJsYXkuaGlkZSgpLnJlbW92ZSgpLCB0LmQuaWZyYW1lICYmIHQuZC5pZnJhbWUuaGlkZSgpLnJlbW92ZSgpLCB0LmQgPSB7fSlcbiAgICAgICAgfVxuICAgIH1cbn0pKGpRdWVyeSk7XG5cbjsgLy8vIGpxdWVyeS50aXBzeS5qc1xuKGZ1bmN0aW9uKG4pIHtcbiAgICBuLmZuLnRpcHN5ID0gZnVuY3Rpb24odCkge1xuICAgICAgICByZXR1cm4gdCA9IG4uZXh0ZW5kKHt9LCBuLmZuLnRpcHN5LmRlZmF1bHRzLCB0KSwgdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGkgPSBuLmZuLnRpcHN5LmVsZW1lbnRPcHRpb25zKHRoaXMsIHQpO1xuICAgICAgICAgICAgbih0aGlzKS5ob3ZlcihmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdCwgZSwgcjtcbiAgICAgICAgICAgICAgICBuLmRhdGEodGhpcywgXCJjYW5jZWwudGlwc3lcIiwgITApLCB0ID0gbi5kYXRhKHRoaXMsIFwiYWN0aXZlLnRpcHN5XCIpLCB0IHx8ICh0ID0gbignPGRpdiBjbGFzcz1cInRpcHN5XCI+PGRpdiBjbGFzcz1cInRpcHN5LWlubmVyXCIvPjwvZGl2PicpLCB0LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHpJbmRleDogOTk5OTk5XG4gICAgICAgICAgICAgICAgfSksIG4uZGF0YSh0aGlzLCBcImFjdGl2ZS50aXBzeVwiLCB0KSksIChuKHRoaXMpLmF0dHIoXCJ0aXRsZVwiKSB8fCB0eXBlb2Ygbih0aGlzKS5hdHRyKFwib3JpZ2luYWwtdGl0bGVcIikgIT0gXCJzdHJpbmdcIikgJiYgbih0aGlzKS5hdHRyKFwib3JpZ2luYWwtdGl0bGVcIiwgbih0aGlzKS5hdHRyKFwidGl0bGVcIikgfHwgXCJcIikucmVtb3ZlQXR0cihcInRpdGxlXCIpLCB0eXBlb2YgaS50aXRsZSA9PSBcInN0cmluZ1wiID8gZSA9IG4odGhpcykuYXR0cihpLnRpdGxlID09IFwidGl0bGVcIiA/IFwib3JpZ2luYWwtdGl0bGVcIiA6IGkudGl0bGUpIDogdHlwZW9mIGkudGl0bGUgPT0gXCJmdW5jdGlvblwiICYmIChlID0gaS50aXRsZS5jYWxsKHRoaXMpKSwgdC5maW5kKFwiLnRpcHN5LWlubmVyXCIpW2kuaHRtbCA/IFwiaHRtbFwiIDogXCJ0ZXh0XCJdKGUgfHwgaS5mYWxsYmFjayksIHIgPSBuLmV4dGVuZCh7fSwgbih0aGlzKS5vZmZzZXQoKSwge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy5vZmZzZXRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLm9mZnNldEhlaWdodFxuICAgICAgICAgICAgICAgIH0pLCB0LmdldCgwKS5jbGFzc05hbWUgPSBcInRpcHN5XCIsIHQucmVtb3ZlKCkuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcImhpZGRlblwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCJcbiAgICAgICAgICAgICAgICB9KS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICB2YXIgZiA9IHRbMF0ub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIHUgPSB0WzBdLm9mZnNldEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgbyA9IHR5cGVvZiBpLmdyYXZpdHkgPT0gXCJmdW5jdGlvblwiID8gaS5ncmF2aXR5LmNhbGwodGhpcykgOiBpLmdyYXZpdHk7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChvLmNoYXJBdCgwKSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgdC5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogci50b3AgKyByLmhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiByLmxlZnQgKyByLndpZHRoIC8gMiAtIGYgLyAyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5hZGRDbGFzcyhcInRpcHN5LW5vcnRoXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICB0LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiByLnRvcCAtIHUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogci5sZWZ0ICsgci53aWR0aCAvIDIgLSBmIC8gMlxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWRkQ2xhc3MoXCJ0aXBzeS1zb3V0aFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgdC5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogci50b3AgKyByLmhlaWdodCAvIDIgLSB1IC8gMixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiByLmxlZnQgLSBmXG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5hZGRDbGFzcyhcInRpcHN5LWVhc3RcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBcIndcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHQuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHIudG9wICsgci5oZWlnaHQgLyAyIC0gdSAvIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogci5sZWZ0ICsgci53aWR0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuYWRkQ2xhc3MoXCJ0aXBzeS13ZXN0XCIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGkuZmFkZSA/IHQuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcInZpc2libGVcIlxuICAgICAgICAgICAgICAgIH0pLmFuaW1hdGUoe1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAuOFxuICAgICAgICAgICAgICAgIH0pIDogdC5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBcInZpc2libGVcIlxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9LCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBuLmRhdGEodGhpcywgXCJjYW5jZWwudGlwc3lcIiwgITEpO1xuICAgICAgICAgICAgICAgIHZhciB0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW4uZGF0YSh0aGlzLCBcImNhbmNlbC50aXBzeVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHIgPSBuLmRhdGEodCwgXCJhY3RpdmUudGlwc3lcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpLmZhZGUgPyByLnN0b3AoKS5mYWRlT3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4odGhpcykucmVtb3ZlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIDogci5yZW1vdmUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgMTAwKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICB9LCBuLmZuLnRpcHN5LmVsZW1lbnRPcHRpb25zID0gZnVuY3Rpb24odCwgaSkge1xuICAgICAgICByZXR1cm4gbi5tZXRhZGF0YSA/IG4uZXh0ZW5kKHt9LCBpLCBuKHQpLm1ldGFkYXRhKCkpIDogaVxuICAgIH0sIG4uZm4udGlwc3kuZGVmYXVsdHMgPSB7XG4gICAgICAgIGZhZGU6ICExLFxuICAgICAgICBmYWxsYmFjazogXCJcIixcbiAgICAgICAgZ3Jhdml0eTogXCJuXCIsXG4gICAgICAgIGh0bWw6ICExLFxuICAgICAgICB0aXRsZTogXCJ0aXRsZVwiXG4gICAgfSwgbi5mbi50aXBzeS5hdXRvTlMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG4odGhpcykub2Zmc2V0KCkudG9wID4gbihkb2N1bWVudCkuc2Nyb2xsVG9wKCkgKyBuKHdpbmRvdykuaGVpZ2h0KCkgLyAyID8gXCJzXCIgOiBcIm5cIlxuICAgIH0sIG4uZm4udGlwc3kuYXV0b1dFID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBuKHRoaXMpLm9mZnNldCgpLmxlZnQgPiBuKGRvY3VtZW50KS5zY3JvbGxMZWZ0KCkgKyBuKHdpbmRvdykud2lkdGgoKSAvIDIgPyBcImVcIiA6IFwid1wiXG4gICAgfVxufSkoalF1ZXJ5KTtcblxuOyAvLy8gQWpheEF2YXRhclRodW1ibmFpbC5qc1xudmFyIFJvYmxveFRodW1icyA9IGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIG4odCwgaSwgcikge1xuICAgICAgICAkLmdldChcIi90aHVtYnMvcmF3YXZhdGFyLmFzaHhcIiwge1xuICAgICAgICAgICAgVXNlcklEOiBpLFxuICAgICAgICAgICAgVGh1bWJuYWlsRm9ybWF0SUQ6IHJcbiAgICAgICAgfSwgZnVuY3Rpb24odSkge1xuICAgICAgICAgICAgdSA9PSBcIlBFTkRJTkdcIiA/IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIG4odCwgaSwgcilcbiAgICAgICAgICAgIH0sIDNlMykgOiB1LnN1YnN0cmluZyg1LCAwKSA9PSBcIkVSUk9SXCIgfHwgJChcIiNcIiArIHQpLmF0dHIoXCJzcmNcIiwgdSlcbiAgICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgR2VuZXJhdGVBdmF0YXJUaHVtYjogZnVuY3Rpb24odCwgaSwgcikge1xuICAgICAgICAgICAgJChcIiNcIiArIHQpLmF0dHIoXCJzcmNcIiwgXCIvaW1hZ2VzL3NwaW5uZXJzL3dhaXRpbmcuZ2lmXCIpLCBuKHQsIGksIHIpXG4gICAgICAgIH1cbiAgICB9XG59KCk7XG5cbjsgLy8vIGV4dGVuc2lvbnMvc3RyaW5nLmpzXG4kLmV4dGVuZChTdHJpbmcucHJvdG90eXBlLCBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiBuKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXBsYWNlKC8mL2csIFwiJmFtcDtcIikucmVwbGFjZSgvPC9nLCBcIiZsdDtcIikucmVwbGFjZSgvPi9nLCBcIiZndDtcIikucmVwbGFjZSgvXCIvZywgXCImcXVvdDtcIikucmVwbGFjZSgvJy9nLCBcIiYjMzk7XCIpXG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGVzY2FwZUhUTUw6IG5cbiAgICB9XG59KCkpO1xuXG47IC8vLyBTdHJpbmdUcnVuY2F0b3IubWluLmpzXG5mdW5jdGlvbiBJbml0U3RyaW5nVHJ1bmNhdG9yKCkge1xuICAgIGlzSW5pdGlhbGl6ZWQgfHwgKGZpdFN0cmluZ1NwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKSwgZml0U3RyaW5nU3Bhbi5zdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmVcIiwgZml0U3RyaW5nU3Bhbi5zdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIiwgZml0U3RyaW5nU3Bhbi5zdHlsZS5wYWRkaW5nID0gXCIwcHhcIiwgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmaXRTdHJpbmdTcGFuKSwgaXNJbml0aWFsaXplZCA9ICEwKVxufVxuXG5mdW5jdGlvbiBmaXRTdHJpbmdUb1dpZHRoKG4sIHQsIGkpIHtcbiAgICBmdW5jdGlvbiBmKG4pIHtcbiAgICAgICAgcmV0dXJuIG4ucmVwbGFjZShcIjxcIiwgXCImbHQ7XCIpLnJlcGxhY2UoXCI+XCIsIFwiJmd0O1wiKVxuICAgIH1cbiAgICBpZiAoaXNJbml0aWFsaXplZCB8fCBJbml0U3RyaW5nVHJ1bmNhdG9yKCksIGkgJiYgKGZpdFN0cmluZ1NwYW4uY2xhc3NOYW1lID0gaSksIGkgPSBmKG4pLCBmaXRTdHJpbmdTcGFuLmlubmVySFRNTCA9IGksIGZpdFN0cmluZ1NwYW4ub2Zmc2V0V2lkdGggPiB0KSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAwLCByLCB1ID0gbi5sZW5ndGg7IHIgPSB1IC0gaSA+PiAxOykgciA9IGkgKyByLCBmaXRTdHJpbmdTcGFuLmlubmVySFRNTCA9IGYobi5zdWJzdHJpbmcoMCwgcikpICsgXCImaGVsbGlwO1wiLCBmaXRTdHJpbmdTcGFuLm9mZnNldFdpZHRoID4gdCA/IHUgPSByIDogaSA9IHI7XG4gICAgICAgIGkgPSBuLnN1YnN0cmluZygwLCBpKSArIFwiJmhlbGxpcDtcIlxuICAgIH1cbiAgICByZXR1cm4gaVxufVxuXG5mdW5jdGlvbiBmaXRTdHJpbmdUb1dpZHRoU2FmZShuLCB0LCBpKSB7XG4gICAgcmV0dXJuIG4gPSBmaXRTdHJpbmdUb1dpZHRoKG4sIHQsIGkpLCBuLmluZGV4T2YoXCImaGVsbGlwO1wiKSAhPSAtMSAmJiAodCA9IG4ubGFzdEluZGV4T2YoXCIgXCIpLCB0ICE9IC0xICYmIHQgKyAxMCA8PSBuLmxlbmd0aCAmJiAobiA9IG4uc3Vic3RyaW5nKDAsIHQgKyAyKSArIFwiJmhlbGxpcDtcIikpLCBuXG59XG52YXIgaXNJbml0aWFsaXplZCA9ICExLFxuICAgIGZpdFN0cmluZ1NwYW4gPSBudWxsO1xuXG47IC8vLyBqc29uMi5taW4uanNcbnZhciBKU09OO1xuSlNPTiB8fCAoSlNPTiA9IHt9KSxcbiAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgICAgICAgZnVuY3Rpb24gaShuKSB7XG4gICAgICAgICAgICByZXR1cm4gbiA8IDEwID8gXCIwXCIgKyBuIDogblxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZihuKSB7XG4gICAgICAgICAgICByZXR1cm4gby5sYXN0SW5kZXggPSAwLCBvLnRlc3QobikgPyAnXCInICsgbi5yZXBsYWNlKG8sIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICB2YXIgdCA9IHNbbl07XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB0ID09IFwic3RyaW5nXCIgPyB0IDogXCJcXFxcdVwiICsgKFwiMDAwMFwiICsgbi5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpXG4gICAgICAgICAgICB9KSArICdcIicgOiAnXCInICsgbiArICdcIidcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHIoaSwgZSkge1xuICAgICAgICAgICAgdmFyIGMsIGwsIGgsIGEsIHYgPSBuLFxuICAgICAgICAgICAgICAgIHMsIG8gPSBlW2ldO1xuICAgICAgICAgICAgbyAmJiB0eXBlb2YgbyA9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBvLnRvSlNPTiA9PSBcImZ1bmN0aW9uXCIgJiYgKG8gPSBvLnRvSlNPTihpKSksIHR5cGVvZiB0ID09IFwiZnVuY3Rpb25cIiAmJiAobyA9IHQuY2FsbChlLCBpLCBvKSk7XG4gICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBvKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZihvKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpc0Zpbml0ZShvKSA/IFN0cmluZyhvKSA6IFwibnVsbFwiO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIm51bGxcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhvKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgICAgIGlmICghbykgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAobiArPSB1LCBzID0gW10sIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuYXBwbHkobykgPT09IFwiW29iamVjdCBBcnJheV1cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChhID0gby5sZW5ndGgsIGMgPSAwOyBjIDwgYTsgYyArPSAxKSBzW2NdID0gcihjLCBvKSB8fCBcIm51bGxcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBoID0gcy5sZW5ndGggPT09IDAgPyBcIltdXCIgOiBuID8gXCJbXFxuXCIgKyBuICsgcy5qb2luKFwiLFxcblwiICsgbikgKyBcIlxcblwiICsgdiArIFwiXVwiIDogXCJbXCIgKyBzLmpvaW4oXCIsXCIpICsgXCJdXCIsIG4gPSB2LCBoXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHQgJiYgdHlwZW9mIHQgPT0gXCJvYmplY3RcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYSA9IHQubGVuZ3RoLCBjID0gMDsgYyA8IGE7IGMgKz0gMSkgbCA9IHRbY10sIHR5cGVvZiBsID09IFwic3RyaW5nXCIgJiYgKGggPSByKGwsIG8pLCBoICYmIHMucHVzaChmKGwpICsgKG4gPyBcIjogXCIgOiBcIjpcIikgKyBoKSk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobCBpbiBvKSBPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChvLCBsKSAmJiAoaCA9IHIobCwgbyksIGggJiYgcy5wdXNoKGYobCkgKyAobiA/IFwiOiBcIiA6IFwiOlwiKSArIGgpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGggPSBzLmxlbmd0aCA9PT0gMCA/IFwie31cIiA6IG4gPyBcIntcXG5cIiArIG4gKyBzLmpvaW4oXCIsXFxuXCIgKyBuKSArIFwiXFxuXCIgKyB2ICsgXCJ9XCIgOiBcIntcIiArIHMuam9pbihcIixcIikgKyBcIn1cIiwgbiA9IHYsIGhcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0eXBlb2YgRGF0ZS5wcm90b3R5cGUudG9KU09OICE9IFwiZnVuY3Rpb25cIiAmJiAoRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNGaW5pdGUodGhpcy52YWx1ZU9mKCkpID8gdGhpcy5nZXRVVENGdWxsWWVhcigpICsgXCItXCIgKyBpKHRoaXMuZ2V0VVRDTW9udGgoKSArIDEpICsgXCItXCIgKyBpKHRoaXMuZ2V0VVRDRGF0ZSgpKSArIFwiVFwiICsgaSh0aGlzLmdldFVUQ0hvdXJzKCkpICsgXCI6XCIgKyBpKHRoaXMuZ2V0VVRDTWludXRlcygpKSArIFwiOlwiICsgaSh0aGlzLmdldFVUQ1NlY29uZHMoKSkgKyBcIlpcIiA6IG51bGxcbiAgICAgICAgfSwgU3RyaW5nLnByb3RvdHlwZS50b0pTT04gPSBOdW1iZXIucHJvdG90eXBlLnRvSlNPTiA9IEJvb2xlYW4ucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVPZigpXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZSA9IC9bXFx1MDAwMFxcdTAwYWRcXHUwNjAwLVxcdTA2MDRcXHUwNzBmXFx1MTdiNFxcdTE3YjVcXHUyMDBjLVxcdTIwMGZcXHUyMDI4LVxcdTIwMmZcXHUyMDYwLVxcdTIwNmZcXHVmZWZmXFx1ZmZmMC1cXHVmZmZmXS9nLFxuICAgICAgICAgICAgbyA9IC9bXFxcXFxcXCJcXHgwMC1cXHgxZlxceDdmLVxceDlmXFx1MDBhZFxcdTA2MDAtXFx1MDYwNFxcdTA3MGZcXHUxN2I0XFx1MTdiNVxcdTIwMGMtXFx1MjAwZlxcdTIwMjgtXFx1MjAyZlxcdTIwNjAtXFx1MjA2ZlxcdWZlZmZcXHVmZmYwLVxcdWZmZmZdL2csXG4gICAgICAgICAgICBuLCB1LCBzID0ge1xuICAgICAgICAgICAgICAgIFwiXFxiXCI6IFwiXFxcXGJcIixcbiAgICAgICAgICAgICAgICBcIlxcdFwiOiBcIlxcXFx0XCIsXG4gICAgICAgICAgICAgICAgXCJcXG5cIjogXCJcXFxcblwiLFxuICAgICAgICAgICAgICAgIFwiXFxmXCI6IFwiXFxcXGZcIixcbiAgICAgICAgICAgICAgICBcIlxcclwiOiBcIlxcXFxyXCIsXG4gICAgICAgICAgICAgICAgJ1wiJzogJ1xcXFxcIicsXG4gICAgICAgICAgICAgICAgXCJcXFxcXCI6IFwiXFxcXFxcXFxcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHQ7XG4gICAgICAgIHR5cGVvZiBKU09OLnN0cmluZ2lmeSAhPSBcImZ1bmN0aW9uXCIgJiYgKEpTT04uc3RyaW5naWZ5ID0gZnVuY3Rpb24oaSwgZiwgZSkge1xuICAgICAgICAgICAgdmFyIG87XG4gICAgICAgICAgICBpZiAobiA9IFwiXCIsIHUgPSBcIlwiLCB0eXBlb2YgZSA9PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgICAgIGZvciAobyA9IDA7IG8gPCBlOyBvICs9IDEpIHUgKz0gXCIgXCI7XG4gICAgICAgICAgICBlbHNlIHR5cGVvZiBlID09IFwic3RyaW5nXCIgJiYgKHUgPSBlKTtcbiAgICAgICAgICAgIGlmICh0ID0gZiwgZiAmJiB0eXBlb2YgZiAhPSBcImZ1bmN0aW9uXCIgJiYgKHR5cGVvZiBmICE9IFwib2JqZWN0XCIgfHwgdHlwZW9mIGYubGVuZ3RoICE9IFwibnVtYmVyXCIpKSB0aHJvdyBuZXcgRXJyb3IoXCJKU09OLnN0cmluZ2lmeVwiKTtcbiAgICAgICAgICAgIHJldHVybiByKFwiXCIsIHtcbiAgICAgICAgICAgICAgICBcIlwiOiBpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KSwgdHlwZW9mIEpTT04ucGFyc2UgIT0gXCJmdW5jdGlvblwiICYmIChKU09OLnBhcnNlID0gZnVuY3Rpb24obiwgdCkge1xuICAgICAgICAgICAgZnVuY3Rpb24gcihuLCBpKSB7XG4gICAgICAgICAgICAgICAgdmFyIGYsIGUsIHUgPSBuW2ldO1xuICAgICAgICAgICAgICAgIGlmICh1ICYmIHR5cGVvZiB1ID09IFwib2JqZWN0XCIpXG4gICAgICAgICAgICAgICAgICAgIGZvciAoZiBpbiB1KSBPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbCh1LCBmKSAmJiAoZSA9IHIodSwgZiksIGUgIT09IHVuZGVmaW5lZCA/IHVbZl0gPSBlIDogZGVsZXRlIHVbZl0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0LmNhbGwobiwgaSwgdSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBpO1xuICAgICAgICAgICAgaWYgKG4gPSBTdHJpbmcobiksIGUubGFzdEluZGV4ID0gMCwgZS50ZXN0KG4pICYmIChuID0gbi5yZXBsYWNlKGUsIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiXFxcXHVcIiArIChcIjAwMDBcIiArIG4uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KVxuICAgICAgICAgICAgICAgIH0pKSwgL15bXFxdLDp7fVxcc10qJC8udGVzdChuLnJlcGxhY2UoL1xcXFwoPzpbXCJcXFxcXFwvYmZucnRdfHVbMC05YS1mQS1GXXs0fSkvZywgXCJAXCIpLnJlcGxhY2UoL1wiW15cIlxcXFxcXG5cXHJdKlwifHRydWV8ZmFsc2V8bnVsbHwtP1xcZCsoPzpcXC5cXGQqKT8oPzpbZUVdWytcXC1dP1xcZCspPy9nLCBcIl1cIikucmVwbGFjZSgvKD86Xnw6fCwpKD86XFxzKlxcWykrL2csIFwiXCIpKSkgcmV0dXJuIGkgPSBldmFsKFwiKFwiICsgbiArIFwiKVwiKSwgdHlwZW9mIHQgPT0gXCJmdW5jdGlvblwiID8gcih7XG4gICAgICAgICAgICAgICAgXCJcIjogaVxuICAgICAgICAgICAgfSwgXCJcIikgOiBpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFwiSlNPTi5wYXJzZVwiKTtcbiAgICAgICAgfSlcbiAgICB9KCk7XG5cbjsgLy8vIHdlYmtpdC5qc1xudHlwZW9mIFN5cy5Ccm93c2VyLldlYktpdCA9PSBcInVuZGVmaW5lZFwiICYmIChTeXMuQnJvd3Nlci5XZWJLaXQgPSB7fSksIG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIldlYktpdC9cIikgPiAtMSAmJiAoU3lzLkJyb3dzZXIuYWdlbnQgPSBTeXMuQnJvd3Nlci5XZWJLaXQsIFN5cy5Ccm93c2VyLnZlcnNpb24gPSBwYXJzZUZsb2F0KG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dlYktpdFxcLyhcXGQrKFxcLlxcZCspPykvKVsxXSksIFN5cy5Ccm93c2VyLm5hbWUgPSBcIldlYktpdFwiKTtcblxuOyAvLy8gR29vZ2xlQW5hbHl0aWNzL0dvb2dsZUFuYWx5dGljc0V2ZW50cy5qc1xudmFyIEdvb2dsZUFuYWx5dGljc0V2ZW50cyA9IG5ldyBmdW5jdGlvbigpIHtcbiAgICB0aGlzLkZpcmVFdmVudCA9IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBfZ2FxICE9IHR5cGVvZiB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhciBpID0gW1wiX3RyYWNrRXZlbnRcIl0sXG4gICAgICAgICAgICAgICAgdCA9IFtcImIuX3RyYWNrRXZlbnRcIl07XG4gICAgICAgICAgICBfZ2FxLnB1c2goaS5jb25jYXQobikpLCBfZ2FxLnB1c2godC5jb25jYXQobikpXG4gICAgICAgIH1cbiAgICB9XG59O1xuXG47IC8vLyBNYXN0ZXJQYWdlVUkuanNcbiQoZnVuY3Rpb24oKSB7XG4gICAgJChcIi50b29sdGlwXCIpLnRpcHN5KCksICQoXCIudG9vbHRpcC10b3BcIikudGlwc3koe1xuICAgICAgICBncmF2aXR5OiBcInNcIlxuICAgIH0pLCAkKFwiLnRvb2x0aXAtcmlnaHRcIikudGlwc3koe1xuICAgICAgICBncmF2aXR5OiBcIndcIlxuICAgIH0pLCAkKFwiLnRvb2x0aXAtbGVmdFwiKS50aXBzeSh7XG4gICAgICAgIGdyYXZpdHk6IFwiZVwiXG4gICAgfSksICQoXCIudG9vbHRpcC1ib3R0b21cIikudGlwc3koe1xuICAgICAgICBncmF2aXR5OiBcIm5cIlxuICAgIH0pXG59KSwgdHlwZW9mIFJvYmxveCA9PSBcInVuZGVmaW5lZFwiICYmIChSb2Jsb3ggPSB7fSksIFJvYmxveC5GaXhlZFVJID0gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcygpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYWdlWU9mZnNldCAhPSBcInVuZGVmaW5lZFwiKSByZXR1cm4gcGFnZVlPZmZzZXQ7XG4gICAgICAgIHZhciB0ID0gZG9jdW1lbnQuYm9keSxcbiAgICAgICAgICAgIG4gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBuID0gbi5jbGllbnRIZWlnaHQgPyBuIDogdCwgbi5zY3JvbGxUb3BcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlKCkge1xuICAgICAgICB2YXIgbiA9IHMoKTtcbiAgICAgICAgdCB8fCAodCA9ICQoXCJpZnJhbWUuSWZyYW1lQWRIaWRlXCIpKSwgdC5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHQgPSAkKHRoaXMpLm9mZnNldCgpLnRvcCAtIDczO1xuICAgICAgICAgICAgIXIuZ3V0dGVyQWRzRW5hYmxlZCAmJiBuID49IHQgPyAkKHRoaXMpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJoaWRkZW5cIikgOiAkKHRoaXMpLmNzcyhcInZpc2liaWxpdHlcIiwgXCJ2aXNpYmxlXCIpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaSgpIHtcbiAgICAgICAgJChcIiNOYXZcIikuY3NzKFwiY3NzVGV4dFwiLCBcInBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDt3aWR0aDo5NzBweCAhaW1wb3J0YW50XCIpLCAkKFwiI1NtYWxsSGVhZGVyQ29udGFpbmVyXCIpLmNzcyhcImNzc1RleHRcIiwgXCJwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtoZWlnaHQ6IDM2cHggIWltcG9ydGFudDt3aWR0aDo5NzBweCAhaW1wb3J0YW50XCIpLCAkKFwiLmZvcmNlU3BhY2VcIikuY3NzKFwiY3NzVGV4dFwiLCBcIndpZHRoOiA5NzBweCAhaW1wb3J0YW50OyBoZWlnaHQ6OXB4ICFpbXBvcnRhbnQ7cGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50O2JhY2tncm91bmQ6d2hpdGVcIiksICQoXCIjQ29udGFpbmVyXCIpLmNzcyhcImNzc1RleHRcIiwgXCJ3aWR0aDogOTcwcHggIWltcG9ydGFudFwiKSwgJChcIi5teVN1Ym1lbnVGaXhlZFwiKS5jc3MoXCJjc3NUZXh0XCIsIFwicG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDtcIiksICQoXCIjTWFzdGVyQ29udGFpbmVyXCIpLmNzcyhcImNzc1RleHRcIiwgXCJ3aWR0aDogOTcwcHggIWltcG9ydGFudFwiKSwgJChcIi5teVN1Ym1lbnVGaXhlZFwiKS5sZW5ndGggPT0gMSAmJiAoJChcIi5mb3JjZVNwYWNlVW5kZXJTdWJtZW51XCIpLmhpZGUoKSwgJChcIi5mb3JjZVNwYWNlXCIpLmNzcyhcImNzc1RleHRcIiwgXCJ3aWR0aDogOTEwcHggIWltcG9ydGFudDsgaGVpZ2h0OjdweCAhaW1wb3J0YW50O3BhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcIikpLCAkKHdpbmRvdykudW5iaW5kKFwic2Nyb2xsXCIpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaCgpIHtcbiAgICAgICAgJChcIiNOYXZcIikuY3NzKFwiY3NzVGV4dFwiLCBcInBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O3dpZHRoOjEwMCUgIWltcG9ydGFudFwiKSwgJChcIiNTbWFsbEhlYWRlckNvbnRhaW5lclwiKS5jc3MoXCJjc3NUZXh0XCIsIFwicG9zaXRpb246IGZpeGVkICFpbXBvcnRhbnQ7aGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7d2lkdGg6MTAwJSAhaW1wb3J0YW50XCIpLCAkKFwiLmZvcmNlU3BhY2VcIikuY3NzKFwiY3NzVGV4dFwiLCBcIndpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IGhlaWdodDoxNXB4ICFpbXBvcnRhbnQ7cGFkZGluZy10b3A6IDYycHggIWltcG9ydGFudDtcIiksICQoXCIjQ29udGFpbmVyXCIpLmNzcyhcImNzc1RleHRcIiwgXCJ3aWR0aDogMTAwJSAhaW1wb3J0YW50XCIpLCAkKFwiLm15U3VibWVudUZpeGVkXCIpLmNzcyhcImNzc1RleHRcIiwgXCJwb3NpdGlvbjogZml4ZWQ7IHRvcDogNjhweDtcIiksICQoXCIjTWFzdGVyQ29udGFpbmVyXCIpLmNzcyhcImNzc1RleHRcIiwgXCJ3aWR0aDogMTAwJVwiKSwgJChcIi5teVN1Ym1lbnVGaXhlZFwiKS5sZW5ndGggPT0gMSAmJiAkKFwiLmZvcmNlU3BhY2VVbmRlclN1Ym1lbnVcIikuc2hvdygpLCAkKHdpbmRvdykuc2Nyb2xsKGUpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbygpIHtcbiAgICAgICAgdmFyIG4gPSAxMDI0O1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQuYm9keSAmJiBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoICYmIChuID0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCksIHdpbmRvdy5pbm5lcldpZHRoICYmIHdpbmRvdy5pbm5lckhlaWdodCAmJiAobiA9IHdpbmRvdy5pbm5lcldpZHRoKSwgblxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHUoKSB7XG4gICAgICAgIG8oKSA8IDk3OCA/IGkoKSA6IGgoKVxuICAgIH1cbiAgICB2YXIgbiA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgZiA9IC9tb2JpbGUvaS50ZXN0KG4pIHx8IC9pcGFkL2kudGVzdChuKSB8fCAvaXBob25lL2kudGVzdChuKSB8fCAvYW5kcm9pZC9pLnRlc3QobikgfHwgL3BsYXlib29rL2kudGVzdChuKSB8fCAvYmxhY2tiZXJyeS9pLnRlc3QobiksXG4gICAgICAgIHQsIHI7XG4gICAgcmV0dXJuICQoZnVuY3Rpb24oKSB7XG4gICAgICAgIGYgPyBpKCkgOiAkKHdpbmRvdykubG9hZCh1KS5yZXNpemUodSlcbiAgICB9KSwgdCA9IG51bGwsIHIgPSB7XG4gICAgICAgIGlzTW9iaWxlOiBmLFxuICAgICAgICBndXR0ZXJBZHNFbmFibGVkOiAhMSxcbiAgICAgICAgdW5maXhIZWFkZXI6IGlcbiAgICB9XG59KCk7XG5cbjsgLy8vIGpxdWVyeS5jb29raWUuanNcbmpRdWVyeS5jb29raWUgPSBmdW5jdGlvbihuLCB0LCBpKSB7XG4gICAgdmFyIG8sIHIsIGYsIGUsIHUsIHM7XG4gICAgaWYgKHR5cGVvZiB0ICE9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaSA9IGkgfHwge30sIHQgPT09IG51bGwgJiYgKHQgPSBcIlwiLCBpLmV4cGlyZXMgPSAtMSksIG8gPSBcIlwiLCBpLmV4cGlyZXMgJiYgKHR5cGVvZiBpLmV4cGlyZXMgPT0gXCJudW1iZXJcIiB8fCBpLmV4cGlyZXMudG9VVENTdHJpbmcpICYmICh0eXBlb2YgaS5leHBpcmVzID09IFwibnVtYmVyXCIgPyAociA9IG5ldyBEYXRlLCByLnNldFRpbWUoci5nZXRUaW1lKCkgKyBpLmV4cGlyZXMgKiA4NjRlNSkpIDogciA9IGkuZXhwaXJlcywgbyA9IFwiOyBleHBpcmVzPVwiICsgci50b1VUQ1N0cmluZygpKTtcbiAgICAgICAgdmFyIGggPSBpLnBhdGggPyBcIjsgcGF0aD1cIiArIGkucGF0aCA6IFwiXCIsXG4gICAgICAgICAgICBjID0gaS5kb21haW4gPyBcIjsgZG9tYWluPVwiICsgaS5kb21haW4gOiBcIlwiLFxuICAgICAgICAgICAgbCA9IGkuc2VjdXJlID8gXCI7IHNlY3VyZVwiIDogXCJcIjtcbiAgICAgICAgZG9jdW1lbnQuY29va2llID0gW24sIFwiPVwiLCBlbmNvZGVVUklDb21wb25lbnQodCksIG8sIGgsIGMsIGxdLmpvaW4oXCJcIilcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZiA9IG51bGwsIGRvY3VtZW50LmNvb2tpZSAmJiBkb2N1bWVudC5jb29raWUgIT0gXCJcIilcbiAgICAgICAgICAgIGZvciAoZSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdChcIjtcIiksIHUgPSAwOyB1IDwgZS5sZW5ndGg7IHUrKylcbiAgICAgICAgICAgICAgICBpZiAocyA9IGpRdWVyeS50cmltKGVbdV0pLCBzLnN1YnN0cmluZygwLCBuLmxlbmd0aCArIDEpID09IG4gKyBcIj1cIikge1xuICAgICAgICAgICAgICAgICAgICBmID0gZGVjb2RlVVJJQ29tcG9uZW50KHMuc3Vic3RyaW5nKG4ubGVuZ3RoICsgMSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH0gcmV0dXJuIGZcbiAgICB9XG59O1xuXG47IC8vLyBqcXVlcnkuanNvbmNvb2tpZS5qc1xuZnVuY3Rpb24gUm9ibG94SlNPTkNvb2tpZShuKSB7XG4gICAgdGhpcy5fY29va2llbmFtZSA9IG5cbn0oZnVuY3Rpb24obikge1xuICAgIHZhciB0ID0gZnVuY3Rpb24obikge1xuICAgICAgICByZXR1cm4gdHlwZW9mIG4gPT0gXCJvYmplY3RcIiAmJiAhKG4gaW5zdGFuY2VvZiBBcnJheSkgJiYgbiAhPT0gbnVsbFxuICAgIH07XG4gICAgbi5leHRlbmQoe1xuICAgICAgICBnZXRKU09OQ29va2llOiBmdW5jdGlvbih0LCBpKSB7XG4gICAgICAgICAgICB2YXIgciA9IG4uY29va2llKHQpO1xuICAgICAgICAgICAgcmV0dXJuIGkgPyByIDogciA/IEpTT04ucGFyc2UocikgOiB7fVxuICAgICAgICB9LFxuICAgICAgICBzZXRKU09OQ29va2llOiBmdW5jdGlvbihpLCByLCB1KSB7XG4gICAgICAgICAgICB2YXIgZiA9IFwiXCI7XG4gICAgICAgICAgICByZXR1cm4gdSA9IG4uZXh0ZW5kKHtcbiAgICAgICAgICAgICAgICBleHBpcmVzOiA5MCxcbiAgICAgICAgICAgICAgICBwYXRoOiBcIi9cIlxuICAgICAgICAgICAgfSwgdSksIGYgPSB0KHIpID8gSlNPTi5zdHJpbmdpZnkocikgOiByLCBuLmNvb2tpZShpLCBmLCB1KVxuICAgICAgICB9LFxuICAgICAgICByZW1vdmVKU09OQ29va2llOiBmdW5jdGlvbih0KSB7XG4gICAgICAgICAgICByZXR1cm4gbi5jb29raWUodCwgbnVsbClcbiAgICAgICAgfSxcbiAgICAgICAgSlNPTkNvb2tpZTogZnVuY3Rpb24odCwgaSwgcikge1xuICAgICAgICAgICAgcmV0dXJuIGkgJiYgbi5zZXRKU09OQ29va2llKHQsIGksIHIpLCBuLmdldEpTT05Db29raWUodClcbiAgICAgICAgfVxuICAgIH0pXG59KShqUXVlcnkpLCBSb2Jsb3hKU09OQ29va2llLnByb3RvdHlwZSA9IHtcbiAgICBEZWxldGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gJC5yZW1vdmVKU09OQ29va2llKHRoaXMuX2Nvb2tpZW5hbWUpXG4gICAgfSxcbiAgICBTZXRPYmo6IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgcmV0dXJuIHQgfHwgKHQgPSB7XG4gICAgICAgICAgICBwYXRoOiBcIi9cIlxuICAgICAgICB9KSwgJC5KU09OQ29va2llKHRoaXMuX2Nvb2tpZW5hbWUsIG4sIHQpXG4gICAgfSxcbiAgICBTZXRKU09OOiBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHJldHVybiB0IHx8ICh0ID0ge1xuICAgICAgICAgICAgcGF0aDogXCIvXCJcbiAgICAgICAgfSksICQuSlNPTkNvb2tpZSh0aGlzLl9jb29raWVuYW1lLCBuLCB0KVxuICAgIH0sXG4gICAgR2V0T2JqOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIG4gPSAkLmdldEpTT05Db29raWUodGhpcy5fY29va2llbmFtZSwgITEpO1xuICAgICAgICByZXR1cm4gbiA9PSBudWxsID8ge30gOiBuXG4gICAgfSxcbiAgICBHZXRKU09OOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICQuZ2V0SlNPTkNvb2tpZSh0aGlzLl9jb29raWVuYW1lLCAhMClcbiAgICB9XG59O1xuXG47IC8vLyBYc3JmVG9rZW4uanNcbnR5cGVvZiBSb2Jsb3ggPT0gXCJ1bmRlZmluZWRcIiAmJiAoUm9ibG94ID0ge30pLCBSb2Jsb3guWHNyZlRva2VuID0gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gZihuKSB7XG4gICAgICAgIHZhciB1LCB0O1xuICAgICAgICBpZiAoaS5hbGxVcmxzRW5hYmxlZCkgcmV0dXJuICEwO1xuICAgICAgICBmb3IgKHUgPSBuLnNwbGl0KFwiP1wiKVswXS50b0xvd2VyQ2FzZSgpLCB0ID0gMDsgdCA8IHIubGVuZ3RoOyB0KyspXG4gICAgICAgICAgICBpZiAoclt0XSA9PT0gdSkgcmV0dXJuICEwO1xuICAgICAgICByZXR1cm4gITFcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlKG4pIHtcbiAgICAgICAgci5wdXNoKG4udG9Mb3dlckNhc2UoKSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvKHQpIHtcbiAgICAgICAgbiA9IHRcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1KCkge1xuICAgICAgICByZXR1cm4gblxuICAgIH1cbiAgICB2YXIgbiA9IFwiXCIsXG4gICAgICAgIHQgPSAvKF58XFw/fCYpdG9rZW49W14mXSovLFxuICAgICAgICByID0gW1wiL2NoYXQvZnJpZW5kaGFuZGxlci5hc2h4XCIsIFwiL2NoYXQvcGFydHkuYXNoeFwiLCBcIi9jaGF0L3NlbmQuYXNoeFwiLCBcIi9jaGF0L3V0aWxpdHkuYXNoeFwiLCBcIi9ncm91cHMvcm9sZXNldHVwZGF0ZXIuYXNoeFwiLCBcImdyb3Vwcy5hc3B4L2V4aWxldXNlcmFuZGRlbGV0ZXBvc3RzXCIsIFwibWVzc2FnZXNoYW5kbGVyLmFzaHhcIiwgXCJlbWFpbHVwZ3JhZGVtZS5hc2h4XCIsIFwiL3NlcnZpY2VzL3VzZXJjaGVjay5hc214L3VwZGF0ZXBlcnNvbmFsaW5mb1wiLCBcIi90aHVtYnMvYXNzZXRtZWRpYS9wbGFjZW1lZGlhaXRlbXNvcnRoYW5kbGVyLmFzaHhcIl0sXG4gICAgICAgIGk7XG4gICAgcmV0dXJuICQuYWpheFByZWZpbHRlcihmdW5jdGlvbihpKSB7XG4gICAgICAgIHZhciBvLCBlO1xuICAgICAgICBpLmRhdGFUeXBlICE9IFwianNvbnBcIiAmJiBpLmRhdGFUeXBlICE9IFwic2NyaXB0XCIgJiYgbiAhPSBcIlwiICYmIGYoaS51cmwpICYmIChvID0gJC5wYXJhbSh7XG4gICAgICAgICAgICB0b2tlbjogblxuICAgICAgICB9KSwgdC50ZXN0KGkudXJsKSB8fCB0eXBlb2YgaS5kYXRhICE9IFwidW5kZWZpbmVkXCIgJiYgdC50ZXN0KGkuZGF0YSkgfHwgKGkudXJsICs9IC9cXD8vLnRlc3QoaS51cmwpID8gXCImdG9rZW49XCIgKyBlbmNvZGVVUklDb21wb25lbnQobikgOiBcIj90b2tlbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChuKSksIGUgPSBpLmVycm9yLCBpLmVycm9yID0gZnVuY3Rpb24ociwgdSwgZikge1xuICAgICAgICAgICAgaWYgKHIuc3RhdHVzID09IDQyMCkge1xuICAgICAgICAgICAgICAgIHZhciBvID0gci5nZXRSZXNwb25zZUhlYWRlcihcIlRva2VuXCIpO1xuICAgICAgICAgICAgICAgIGlmIChvID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZW9mIGUgPT0gXCJmdW5jdGlvblwiICYmIGUociwgdSwgZik7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk51bGwgdG9rZW4gcmV0dXJuZWQgYnkgWHNyZiBlbmFibGVkIGhhbmRsZXJcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHQudGVzdChpLnVybCkgPyBpLnVybCA9IGkudXJsLnJlcGxhY2UodCwgXCIkMXRva2VuPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KG8pKSA6IGkuZGF0YSA9IGkuZGF0YS5yZXBsYWNlKHQsIFwiJDF0b2tlbj1cIiArIGVuY29kZVVSSUNvbXBvbmVudChvKSksICQuYWpheChpKSwgbiA9IG9cbiAgICAgICAgICAgIH0gZWxzZSB0eXBlb2YgZSA9PSBcImZ1bmN0aW9uXCIgJiYgZShyLCB1LCBmKVxuICAgICAgICB9KVxuICAgIH0pLCBpID0ge1xuICAgICAgICBzZXRUb2tlbjogbyxcbiAgICAgICAgZ2V0VG9rZW46IHUsXG4gICAgICAgIGFsbFVybHNFbmFibGVkOiAhMSxcbiAgICAgICAgYWRkRW5hYmxlZFVybDogZVxuICAgIH1cbn0oKTtcblxuOyAvLy8gUm9ibG94RXZlbnRNYW5hZ2VyLmpzXG5mdW5jdGlvbiBSQlhCYXNlRXZlbnRMaXN0ZW5lcigpIHtcbiAgICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUkJYQmFzZUV2ZW50TGlzdGVuZXIpKSByZXR1cm4gbmV3IFJCWEJhc2VFdmVudExpc3RlbmVyO1xuICAgIHRoaXMuaW5pdCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICBmb3IgKGV2ZW50S2V5IGluIHRoaXMuZXZlbnRzKSAkKGRvY3VtZW50KS5iaW5kKHRoaXMuZXZlbnRzW2V2ZW50S2V5XSwgJC5wcm94eSh0aGlzLmxvY2FsQ29weSwgdGhpcykpXG4gICAgfSwgdGhpcy5ldmVudHMgPSBbXSwgdGhpcy5sb2NhbENvcHkgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHZhciByID0gJC5leHRlbmQoITAsIHt9LCBuKSxcbiAgICAgICAgICAgIGkgPSAkLmV4dGVuZCghMCwge30sIHQpO1xuICAgICAgICB0aGlzLmhhbmRsZUV2ZW50KHIsIGkpXG4gICAgfSwgdGhpcy5kaXN0aWxsRGF0YSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY29uc29sZS5sb2coXCJSQlhFdmVudExpc3RlbmVyIGRpc3RpbGxEYXRhIC0gUGxlYXNlIGltcGxlbWVudCBtZVwiKSwgITFcbiAgICB9LCB0aGlzLmhhbmRsZUV2ZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb25zb2xlLmxvZyhcIkV2ZW50TGlzdGVuZXIgaGFuZGxlRXZlbnQgLSBQbGVhc2UgaW1wbGVtZW50IG1lXCIpLCAhMVxuICAgIH0sIHRoaXMuZmlyZUV2ZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBjb25zb2xlLmxvZyhcIkV2ZW50TGlzdGVuZXIgZmlyZUV2ZW50IC0gUGxlYXNlIGltcGxlbWVudCBtZVwiKSwgITFcbiAgICB9XG59XG5Sb2Jsb3hFdmVudE1hbmFnZXIgPSBuZXcgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdShuKSB7XG4gICAgICAgIHZhciBpID0gbmV3IFJlZ0V4cChuICsgXCI9KFteO10qKVwiKSxcbiAgICAgICAgICAgIHQgPSBpLmV4ZWMoZG9jdW1lbnQuY29va2llKTtcbiAgICAgICAgcmV0dXJuIHQgPyB0WzFdIDogbnVsbFxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHQobikge1xuICAgICAgICBmb3IgKHZhciB1ID0ge30sIHIgPSBuLnNwbGl0KFwiJlwiKSwgaSwgdCA9IDA7IHQgPCByLmxlbmd0aDsgdCsrKSBpID0gclt0XS5zcGxpdChcIj1cIiksIHVbaVswXV0gPSBpWzFdO1xuICAgICAgICByZXR1cm4gdVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGkobikge1xuICAgICAgICB2YXIgaSA9IHUobik7XG4gICAgICAgIHJldHVybiBpID8gdChpKSA6IG51bGxcbiAgICB9XG4gICAgdmFyIG4gPSBbXSxcbiAgICAgICAgciA9IHt9O1xuICAgIHRoaXMuZW5hYmxlZCA9ICExLCB0aGlzLmluaXRpYWxpemVkID0gITEsIHRoaXMuZXZlbnRRdWV1ZSA9IFtdLCB0aGlzLmluaXRpYWxpemUgPSBmdW5jdGlvbihuKSB7XG4gICAgICAgIGZvciAodGhpcy5pbml0aWFsaXplZCA9ICEwLCB0aGlzLmVuYWJsZWQgPSBuOyB0aGlzLmV2ZW50UXVldWUubGVuZ3RoID4gMDspIHtcbiAgICAgICAgICAgIHZhciB0ID0gdGhpcy5ldmVudFF1ZXVlLnBvcCgpO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQodC5ldmVudE5hbWUsIHQuYXJncylcbiAgICAgICAgfVxuICAgIH0sIHRoaXMuZ2V0TWFya2V0aW5nR3VpZCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgbiA9IGkoXCJSQlhFdmVudFRyYWNrZXJcIik7XG4gICAgICAgIHJldHVybiBuICE9IG51bGwgPyBuLmJyb3dzZXJpZCA6IC0xXG4gICAgfSwgdGhpcy50cmlnZ2VyRXZlbnQgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPyB0aGlzLmVuYWJsZWQgJiYgKHR5cGVvZiB0ID09IFwidW5kZWZpbmVkXCIgJiYgKHQgPSB7fSksIHQuZ3VpZCA9IHRoaXMuZ2V0TWFya2V0aW5nR3VpZCgpLCB0Lmd1aWQgIT0gLTEgJiYgJChkb2N1bWVudCkudHJpZ2dlcihuLCBbdF0pKSA6IHRoaXMuZXZlbnRRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogbixcbiAgICAgICAgICAgIGFyZ3M6IHRcbiAgICAgICAgfSlcbiAgICB9LCB0aGlzLnJlZ2lzdGVyQ29va2llU3RvcmVFdmVudCA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgbi5wdXNoKHQpXG4gICAgfSwgdGhpcy5pbnNlcnREYXRhU3RvcmVLZXlWYWx1ZVBhaXIgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHJbbl0gPSB0XG4gICAgfSwgdGhpcy5tb25pdG9yQ29va2llU3RvcmUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGksIHUsIGYsIHQsIHI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIFJvYmxveCA9PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiBSb2Jsb3guQ2xpZW50ID09IFwidW5kZWZpbmVkXCIgfHwgd2luZG93LmxvY2F0aW9uLnByb3RvY29sID09IFwiaHR0cHM6XCIpIHJldHVybjtcbiAgICAgICAgICAgIGlmIChpID0gUm9ibG94LkNsaWVudC5DcmVhdGVMYXVuY2hlcighMSksIGkgPT0gbnVsbCkgcmV0dXJuO1xuICAgICAgICAgICAgZm9yICh1ID0gMDsgdSA8IG4ubGVuZ3RoOyB1KyspIHRyeSB7XG4gICAgICAgICAgICAgICAgZiA9IG5bdV0sIHQgPSBpLkdldEtleVZhbHVlKGYpLCB0ICE9IFwiXCIgJiYgdCAhPSBcIi0xXCIgJiYgdCAhPSBcIlJCWF9OT1RfVkFMSURcIiAmJiAociA9IGV2YWwoXCIoXCIgKyB0ICsgXCIpXCIpLCByLnVzZXJUeXBlID0gci51c2VySWQgPiAwID8gXCJ1c2VyXCIgOiBcImd1ZXN0XCIsIFJvYmxveEV2ZW50TWFuYWdlci50cmlnZ2VyRXZlbnQoZiwgciksIGkuU2V0S2V5VmFsdWUoZiwgXCJSQlhfTk9UX1ZBTElEXCIpKVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyKGksICExLCAhMSlcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9XG59O1xuXG47IC8vLyBSb2Jsb3hFdmVudExpc3RlbmVyLmpzXG5Sb2Jsb3hMaXN0ZW5lciA9IG5ldyBSQlhCYXNlRXZlbnRMaXN0ZW5lciwgUm9ibG94TGlzdGVuZXIuaGFuZGxlRXZlbnQgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgdmFyIHIsIHUsIGk7XG4gICAgc3dpdGNoIChuLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcInJieF9ldnRfaW5zdGFsbF9iZWdpblwiOlxuICAgICAgICAgICAgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcImd1aWRcIixcbiAgICAgICAgICAgICAgICB1c2VySWQ6IFwidXNlcmlkXCJcbiAgICAgICAgICAgIH0sIHIgPSBuLnR5cGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJieF9ldnRfaW5pdGlhbF9pbnN0YWxsX3N0YXJ0XCI6XG4gICAgICAgICAgICBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwiZ3VpZFwiLFxuICAgICAgICAgICAgICAgIHVzZXJJZDogXCJ1c2VyaWRcIlxuICAgICAgICAgICAgfSwgciA9IG4udHlwZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9mdHBcIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJndWlkXCIsXG4gICAgICAgICAgICAgICAgdXNlcklkOiBcInVzZXJpZFwiXG4gICAgICAgICAgICB9LCByID0gbi50eXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2luaXRpYWxfaW5zdGFsbF9zdWNjZXNzXCI6XG4gICAgICAgICAgICBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwiZ3VpZFwiLFxuICAgICAgICAgICAgICAgIHVzZXJJZDogXCJ1c2VyaWRcIlxuICAgICAgICAgICAgfSwgciA9IG4udHlwZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9mbXBcIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJndWlkXCIsXG4gICAgICAgICAgICAgICAgdXNlcklkOiBcInVzZXJpZFwiXG4gICAgICAgICAgICB9LCByID0gbi50eXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gY29uc29sZS5sb2coXCJSb2Jsb3hFdmVudExpc3RlbmVyIC0gRXZlbnQgcmVnaXN0ZXJlZCB3aXRob3V0IGhhbmRsaW5nIGluc3RydWN0aW9uczogXCIgKyBuLnR5cGUpLCAhMVxuICAgIH1cbiAgICByZXR1cm4gdSA9IHRoaXMuZGlzdGlsbERhdGEodCwgaSksIHRoaXMuZmlyZUV2ZW50KHRoaXMuZXZlbnRUb1N0cmluZyhyLCB1KSksICEwXG59LCBSb2Jsb3hMaXN0ZW5lci5kaXN0aWxsRGF0YSA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICB2YXIgaSA9IHt9O1xuICAgIGZvciAoZGF0YUtleSBpbiB0KSB0eXBlb2YgbltkYXRhS2V5XSAhPSB0eXBlb2YgdW5kZWZpbmVkICYmIChpW3RbZGF0YUtleV1dID0gZW5jb2RlVVJJQ29tcG9uZW50KG5bZGF0YUtleV0pKTtcbiAgICByZXR1cm4gaVxufSwgUm9ibG94TGlzdGVuZXIuZXZlbnRUb1N0cmluZyA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICB2YXIgaSA9IFJvYmxveExpc3RlbmVyLnJlc3RVcmw7XG4gICAgaWYgKGkgKz0gXCI/ZXZlbnQ9XCIgKyBuICsgXCImXCIsIHQgIT0gbnVsbClcbiAgICAgICAgZm9yIChhcmcgaW4gdCkgdHlwZW9mIGFyZyAhPSB0eXBlb2YgdW5kZWZpbmVkICYmIHQuaGFzT3duUHJvcGVydHkoYXJnKSAmJiAoaSArPSBhcmcgKyBcIj1cIiArIHRbYXJnXSArIFwiJlwiKTtcbiAgICByZXR1cm4gaSA9IGkuc2xpY2UoMCwgaS5sZW5ndGggLSAxKVxufSwgUm9ibG94TGlzdGVuZXIuZmlyZUV2ZW50ID0gZnVuY3Rpb24obikge1xuICAgIHZhciB0ID0gJCgnPGltZyB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxXCIgc3JjPVwiJyArIG4gKyAnXCIvPicpXG59LCBSb2Jsb3hMaXN0ZW5lci5ldmVudHMgPSBbXCJyYnhfZXZ0X2luc3RhbGxfYmVnaW5cIiwgXCJyYnhfZXZ0X2luaXRpYWxfaW5zdGFsbF9zdGFydFwiLCBcInJieF9ldnRfZnRwXCIsIFwicmJ4X2V2dF9pbml0aWFsX2luc3RhbGxfc3VjY2Vzc1wiLCBcInJieF9ldnRfZm1wXCJdO1xuXG47IC8vLyBLb250YWdlbnRFdmVudExpc3RlbmVyLmpzXG5Lb250YWdlbnRMaXN0ZW5lciA9IG5ldyBSQlhCYXNlRXZlbnRMaXN0ZW5lciwgS29udGFnZW50TGlzdGVuZXIucmVzdFVybCA9IFwiXCIsIEtvbnRhZ2VudExpc3RlbmVyLkFQSUtleSA9IFwiXCIsIEtvbnRhZ2VudExpc3RlbmVyLlN0YWdpbmdBUElLZXkgPSBcIlwiLCBLb250YWdlbnRMaXN0ZW5lci5TdGFnaW5nRXZlbnRzID0gW10sIEtvbnRhZ2VudExpc3RlbmVyLmhhbmRsZUV2ZW50ID0gZnVuY3Rpb24obiwgdCkge1xuICAgIGZ1bmN0aW9uIGYobikge1xuICAgICAgICByZXR1cm4gbiA9IG4udG9Mb3dlckNhc2UoKSwgbiA9PSBcIndpbjMyXCIgPyBuID0gXCJXaW5kb3dzXCIgOiBuID09IFwib3N4XCIgJiYgKG4gPSBcIk1hY1wiKSwgblxuICAgIH1cbiAgICB2YXIgciwgdSwgaSwgbywgZTtcbiAgICByID0gXCJldnRcIjtcbiAgICBzd2l0Y2ggKG4udHlwZSkge1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9wYWdldmlld1wiOlxuICAgICAgICAgICAgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBwYXRoOiBcInVcIixcbiAgICAgICAgICAgICAgICB0czogXCJ0c1wiLFxuICAgICAgICAgICAgICAgIHVzZXJfaXA6IFwiaXBcIlxuICAgICAgICAgICAgfSwgciA9IFwicGdyXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJieF9ldnRfdXNlcmluZm9cIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgYWdlOiBcImJcIixcbiAgICAgICAgICAgICAgICBnZW5kZXI6IFwiZ1wiXG4gICAgICAgICAgICB9LCByID0gXCJjcHVcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9lY29tbV9pdGVtXCI6XG4gICAgICAgICAgICB0LnRvdGFsID0gTWF0aC5yb3VuZCh0LnRvdGFsICogMTAwKSwgdC5wcm9kdWN0TmFtZSA9IHQucHJvZHVjdE5hbWUucmVwbGFjZSgvXFxzL2csIFwiXCIpLnJlcGxhY2UoXCJPdXRyYWdlb3VzXCIsIFwiT1wiKS5yZXBsYWNlKFwiVHVyYm9cIiwgXCJUXCIpLnJlcGxhY2UoXCJCdWlsZGVyc1wiLCBcIkJcIikucmVwbGFjZShcIkNsdWJcIiwgXCJDXCIpLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIHRvdGFsOiBcInZcIixcbiAgICAgICAgICAgICAgICBwcm92aWRlcjogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogXCJzdDJcIixcbiAgICAgICAgICAgICAgICBwcm9kdWN0TmFtZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcInR1XCJcbiAgICAgICAgICAgIH0sIHIgPSBcIm10dVwiO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2Z0cFwiOlxuICAgICAgICAgICAgdC50cmFja2luZyA9IFwiXCIsIHQuc2hvcnR0cmFja2luZyA9IFwiXCIsIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgdHJhY2tpbmd0YWc6IFwidVwiLFxuICAgICAgICAgICAgICAgIHNob3J0dHJhY2tpbmc6IFwic3VcIlxuICAgICAgICAgICAgfSwgdSA9IHRoaXMuZGlzdGlsbERhdGEodCwgaSksIHIgPSBcImFwYVwiLCB0aGlzLmZpcmVFdmVudCh0aGlzLmV2ZW50VG9TdHJpbmcobi50eXBlLCByLCB1KSksIHQuZXZlbnROYW1lID0gXCJJbnN0YWxsIFN1Y2Nlc3MgRnVubmVsXCIsIHQuZXZlbnRUeXBlID0gXCJJbnN0YWxsIFN1Y2Nlc3MgRnVubmVsXCIsIHQub3MgPSBmKHQub3MpLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBvczogXCJzdDJcIixcbiAgICAgICAgICAgICAgICB1c2VyVHlwZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9LCB1ID0gdGhpcy5kaXN0aWxsRGF0YSh0LCBpKSwgciA9IFwiZXZ0XCIsIHRoaXMuZmlyZUV2ZW50KHRoaXMuZXZlbnRUb1N0cmluZyhuLnR5cGUsIHIsIHUpKSwgdC5ldmVudFR5cGUgPSBcIkluc3RhbGwgU3VjY2VzcyBQbGFjZVwiLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBvczogXCJzdDJcIixcbiAgICAgICAgICAgICAgICB1c2VyVHlwZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICBwbGFjZUlkOiBcIm5cIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9pbml0aWFsX2luc3RhbGxfc3VjY2Vzc1wiOlxuICAgICAgICAgICAgdC50cmFja2luZyA9IFwiXCIsIHQuc2hvcnR0cmFja2luZyA9IFwiXCIsIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgdHJhY2tpbmd0YWc6IFwidVwiLFxuICAgICAgICAgICAgICAgIHNob3J0dHJhY2tpbmc6IFwic3VcIlxuICAgICAgICAgICAgfSwgdSA9IHRoaXMuZGlzdGlsbERhdGEodCwgaSksIHIgPSBcImFwYVwiLCB0aGlzLmZpcmVFdmVudCh0aGlzLmV2ZW50VG9TdHJpbmcobi50eXBlLCByLCB1KSksIHQuZXZlbnROYW1lID0gXCJCb290c3RyYXBwZXIgSW5zdGFsbCBTdWNjZXNzIEZ1bm5lbFwiLCB0LmV2ZW50VHlwZSA9IFwiQm9vdHN0cmFwcGVyIEluc3RhbGwgU3VjY2VzcyBGdW5uZWxcIiwgdC5vcyA9IGYodC5vcyksIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgZXZlbnRUeXBlOiBcInN0MVwiLFxuICAgICAgICAgICAgICAgIG9zOiBcInN0MlwiLFxuICAgICAgICAgICAgICAgIHVzZXJUeXBlOiBcInN0M1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZTogXCJuXCJcbiAgICAgICAgICAgIH0sIHUgPSB0aGlzLmRpc3RpbGxEYXRhKHQsIGkpLCByID0gXCJldnRcIiwgdGhpcy5maXJlRXZlbnQodGhpcy5ldmVudFRvU3RyaW5nKG4udHlwZSwgciwgdSkpLCB0LmV2ZW50VHlwZSA9IFwiQm9vdHN0cmFwcGVyIEluc3RhbGwgU3VjY2VzcyBQbGFjZVwiLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBvczogXCJzdDJcIixcbiAgICAgICAgICAgICAgICB1c2VyVHlwZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICBwbGFjZUlkOiBcIm5cIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9pbnN0YWxsX2JlZ2luXCI6XG4gICAgICAgICAgICB0LmV2ZW50TmFtZSA9IFwiSW5zdGFsbCBCZWdpblwiLCB0LmV2ZW50VHlwZSA9IFwiSW5zdGFsbCBCZWdpblwiLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBvczogXCJzdDJcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2luaXRpYWxfaW5zdGFsbF9zdGFydFwiOlxuICAgICAgICAgICAgdC5ldmVudE5hbWUgPSBcIkJvb3RzdHJhcHBlciBJbnN0YWxsIEJlZ2luXCIsIHQuZXZlbnRUeXBlID0gXCJCb290c3RyYXBwZXIgSW5zdGFsbCBCZWdpblwiLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBvczogXCJzdDJcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2ZtcFwiOlxuICAgICAgICAgICAgdC5ldmVudE5hbWUgPSBcIkZpdmUgTWludXRlIFBsYXkgRnVubmVsXCIsIHQuZXZlbnRUeXBlID0gXCJGaXZlIE1pbnV0ZSBQbGF5IEZ1bm5lbFwiLCB0Lm9zID0gZih0Lm9zKSwgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFwic3QxXCIsXG4gICAgICAgICAgICAgICAgb3M6IFwic3QyXCIsXG4gICAgICAgICAgICAgICAgdXNlclR5cGU6IFwic3QzXCIsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lOiBcIm5cIlxuICAgICAgICAgICAgfSwgdSA9IHRoaXMuZGlzdGlsbERhdGEodCwgaSksIHRoaXMuZmlyZUV2ZW50KHRoaXMuZXZlbnRUb1N0cmluZyhuLnR5cGUsIHIsIHUpKSwgdC5ldmVudFR5cGUgPSBcIkZpdmUgTWludXRlIFBsYXkgUGxhY2VcIiwgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFwic3QxXCIsXG4gICAgICAgICAgICAgICAgb3M6IFwic3QyXCIsXG4gICAgICAgICAgICAgICAgdXNlclR5cGU6IFwic3QzXCIsXG4gICAgICAgICAgICAgICAgcGxhY2VJZDogXCJuXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJieF9ldnRfcGxheV91c2VyXCI6XG4gICAgICAgICAgICB0LmV2ZW50TmFtZSA9IFwiUGxheSBVc2VyXCIsIHQuZXZlbnRUeXBlID0gXCJQbGF5IFVzZXJcIiwgdC5nZW5kZXIgPSB0LmdlbmRlciwgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFwic3QxXCIsXG4gICAgICAgICAgICAgICAgZ2VuZGVyOiBcInN0MlwiLFxuICAgICAgICAgICAgICAgIGFnZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICBwbGFjZUlkOiBcImxcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X3BsYXlfZ3Vlc3RcIjpcbiAgICAgICAgICAgIHQuZXZlbnROYW1lID0gXCJQbGF5IEd1ZXN0XCIsIHQuZXZlbnRUeXBlID0gXCJQbGF5IEd1ZXN0XCIsIHQuZ2VuZGVyID0gdC5nZW5kZXIsIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgZXZlbnRUeXBlOiBcInN0MVwiLFxuICAgICAgICAgICAgICAgIGdlbmRlcjogXCJzdDJcIixcbiAgICAgICAgICAgICAgICBwbGFjZUlkOiBcImxcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X3NpZ251cFwiOlxuICAgICAgICAgICAgdC5ldmVudE5hbWUgPSBcIlNpZ24gVXAgRnVubmVsXCIsIHQuZXZlbnRUeXBlID0gXCJTaWduIFVwIEZ1bm5lbFwiLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9LCB1ID0gdGhpcy5kaXN0aWxsRGF0YSh0LCBpKSwgciA9IFwiZXZ0XCIsIHRoaXMuZmlyZUV2ZW50KHRoaXMuZXZlbnRUb1N0cmluZyhuLnR5cGUsIHIsIHUpKSwgdC5ldmVudE5hbWUgPSBcIlNpZ24gVXBcIiwgdC5ldmVudFR5cGUgPSBcIlNpZ24gVXBcIiwgdC5nZW5kZXIgPSB0LmdlbmRlciwgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFwic3QxXCIsXG4gICAgICAgICAgICAgICAgZ2VuZGVyOiBcInN0MlwiLFxuICAgICAgICAgICAgICAgIGFnZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2Vjb21tX2N1c3RvbVwiOlxuICAgICAgICAgICAgdC5ldmVudFR5cGUgPSBcIlB1cmNoYXNlXCIsIHQucHJvZHVjdE5hbWUgPSB0LnByb2R1Y3ROYW1lLnJlcGxhY2UoL1xccy9nLCBcIlwiKS5yZXBsYWNlKFwiT3V0cmFnZW91c1wiLCBcIk9cIikucmVwbGFjZShcIlR1cmJvXCIsIFwiVFwiKS5yZXBsYWNlKFwiQnVpbGRlcnNcIiwgXCJCXCIpLnJlcGxhY2UoXCJDbHViXCIsIFwiQ1wiKSwgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBldmVudFR5cGU6IFwic3QxXCIsXG4gICAgICAgICAgICAgICAgcHJvdmlkZXI6IFwic3QyXCIsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6IFwic3QzXCIsXG4gICAgICAgICAgICAgICAgcHJvZHVjdE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2FidGVzdFwiOlxuICAgICAgICAgICAgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICBleHBlcmltZW50OiBcInN0MVwiLFxuICAgICAgICAgICAgICAgIHZhcmlhdGlvbjogXCJuXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJieF9ldnRfcGFnZXZpZXdfY3VzdG9tXCI6XG4gICAgICAgICAgICB0LmV2ZW50TmFtZSA9IHQucGFnZSwgaSA9IHR5cGVvZiB0LnVzZXJUeXBlID09IFwidW5kZWZpbmVkXCIgPyB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgcGFnZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIHBhZ2U6IFwic3QxXCIsXG4gICAgICAgICAgICAgICAgdXNlclR5cGU6IFwic3QyXCIsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lOiBcIm5cIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9nZW5lcmljXCI6XG4gICAgICAgICAgICB0LmV2ZW50TmFtZSA9IHQudHlwZSwgaSA9IHtcbiAgICAgICAgICAgICAgICBndWlkOiBcInNcIixcbiAgICAgICAgICAgICAgICB0eXBlOiBcInN0MVwiLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZTogXCJuXCJcbiAgICAgICAgICAgIH0sIHR5cGVvZiB0Lm9wdDEgIT0gXCJ1bmRlZmluZWRcIiAmJiAoaS5vcHQxID0gXCJzdDJcIiksIHR5cGVvZiB0Lm9wdDIgIT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgdC5vcHQxICE9IFwidW5kZWZpbmVkXCIgJiYgKGkub3B0MiA9IFwic3QzXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X3NvdXJjZV90cmFja2luZ1wiOlxuICAgICAgICAgICAgdC5pbnN0YWxsZWQgPSAwLCB0LnNvdXJjZVR5cGUgPSBcImFkXCIsIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgc291cmNlVHlwZTogXCJ0dVwiLFxuICAgICAgICAgICAgICAgIGluc3RhbGxlZDogXCJpXCIsXG4gICAgICAgICAgICAgICAgc291cmNlOiBcInN0MVwiLFxuICAgICAgICAgICAgICAgIGNhbXBhaWduOiBcInN0MlwiLFxuICAgICAgICAgICAgICAgIG1lZGl1bTogXCJzdDNcIlxuICAgICAgICAgICAgfSwgciA9IFwidWNjXCI7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInJieF9ldnRfY2FyZF9yZWRlbXB0aW9uXCI6XG4gICAgICAgICAgICB0LmV2ZW50VHlwZSA9IFwiQ2FyZFJlZGVtcHRpb25cIiwgdC5ldmVudE5hbWUgPSBcIkNhcmRSZWRlbXB0aW9uXCIsIGkgPSB7XG4gICAgICAgICAgICAgICAgZ3VpZDogXCJzXCIsXG4gICAgICAgICAgICAgICAgZXZlbnRUeXBlOiBcInN0MVwiLFxuICAgICAgICAgICAgICAgIG1lcmNoYW50OiBcInN0MlwiLFxuICAgICAgICAgICAgICAgIGNhcmRWYWx1ZTogXCJzdDNcIixcbiAgICAgICAgICAgICAgICBldmVudE5hbWU6IFwiblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X3BvcHVwX2FjdGlvblwiOlxuICAgICAgICAgICAgdC5ldmVudFR5cGUgPSBcIkd1ZXN0UGxheVBvcHVwQWN0aW9uXCIsIHQuZXZlbnROYW1lID0gXCJHdWVzdFBsYXlQb3B1cEFjdGlvblwiLCBpID0ge1xuICAgICAgICAgICAgICAgIGd1aWQ6IFwic1wiLFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZTogXCJzdDFcIixcbiAgICAgICAgICAgICAgICBhY3Rpb246IFwic3QyXCIsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lOiBcIm5cIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIGNvbnNvbGUubG9nKFwiS29udGFnZW50TGlzdGVuZXIgLSBFdmVudCByZWdpc3RlcmVkIHdpdGhvdXQgaGFuZGxpbmcgaW5zdHJ1Y3Rpb25zOiBcIiArIG4udHlwZSksICExXG4gICAgfVxuICAgIHJldHVybiB1ID0gdGhpcy5kaXN0aWxsRGF0YSh0LCBpKSwgdGhpcy5maXJlRXZlbnQodGhpcy5ldmVudFRvU3RyaW5nKG4udHlwZSwgciwgdSkpLCAhMFxufSwgS29udGFnZW50TGlzdGVuZXIuZGlzdGlsbERhdGEgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgdmFyIGkgPSB7fTtcbiAgICBmb3IgKGRhdGFLZXkgaW4gdCkgdHlwZW9mIG5bZGF0YUtleV0gIT0gdHlwZW9mIHVuZGVmaW5lZCAmJiAoaVt0W2RhdGFLZXldXSA9IGVuY29kZVVSSUNvbXBvbmVudChuW2RhdGFLZXldKSk7XG4gICAgcmV0dXJuIGlcbn0sIEtvbnRhZ2VudExpc3RlbmVyLmV2ZW50VG9TdHJpbmcgPSBmdW5jdGlvbihuLCB0LCBpKSB7XG4gICAgdmFyIHIgPSBLb250YWdlbnRMaXN0ZW5lci5yZXN0VXJsLFxuICAgICAgICB1ID0gdGhpcy5pc1N0YWdpbmdFdmVudChuLCBpKSA/IEtvbnRhZ2VudExpc3RlbmVyLlN0YWdpbmdBUElLZXkgOiBLb250YWdlbnRMaXN0ZW5lci5BUElLZXk7XG4gICAgaWYgKHIgKz0gdSArIFwiL1wiICsgdCArIFwiLz9cIiwgaSAhPSBudWxsKVxuICAgICAgICBmb3IgKGFyZyBpbiBpKSB0eXBlb2YgYXJnICE9IHR5cGVvZiB1bmRlZmluZWQgJiYgaS5oYXNPd25Qcm9wZXJ0eShhcmcpICYmIChyICs9IGFyZyArIFwiPVwiICsgaVthcmddICsgXCImXCIpO1xuICAgIHJldHVybiByID0gci5zbGljZSgwLCByLmxlbmd0aCAtIDEpXG59LCBLb250YWdlbnRMaXN0ZW5lci5pc1N0YWdpbmdFdmVudCA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICB2YXIgciwgaTtcbiAgICBzdGFnaW5nID0gITE7XG4gICAgdHJ5IHtcbiAgICAgICAgZm9yIChyIGluIHRoaXMuU3RhZ2luZ0V2ZW50cylcbiAgICAgICAgICAgIGlmIChpID0gdGhpcy5TdGFnaW5nRXZlbnRzW3JdLCB0eXBlb2YgaSA9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgaWYgKG4gPT0gaSkge1xuICAgICAgICAgICAgICAgICAgICBzdGFnaW5nID0gITA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaSA9PSBcIm9iamVjdFwiICYmIHR5cGVvZiBpW25dICE9IFwidW5kZWZpbmVkXCIgJiYgaVtuXSA9PSB0LnN0MSkge1xuICAgICAgICAgICAgc3RhZ2luZyA9ICEwO1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKHUpIHt9XG4gICAgcmV0dXJuIHN0YWdpbmdcbn0sIEtvbnRhZ2VudExpc3RlbmVyLmZpcmVFdmVudCA9IGZ1bmN0aW9uKG4pIHtcbiAgICB2YXIgdCA9ICQoJzxpbWcgd2lkdGg9XCIxXCIgaGVpZ2h0PVwiMVwiIHNyYz1cIicgKyBuICsgJ1wiLz4nKVxufSwgS29udGFnZW50TGlzdGVuZXIuZXZlbnRzID0gW1wicmJ4X2V2dF9wYWdldmlld1wiLCBcInJieF9ldnRfaW5zdGFsbF9iZWdpblwiLCBcInJieF9ldnRfaW5pdGlhbF9pbnN0YWxsX3N0YXJ0XCIsIFwicmJ4X2V2dF9mdHBcIiwgXCJyYnhfZXZ0X2luaXRpYWxfaW5zdGFsbF9zdWNjZXNzXCIsIFwicmJ4X2V2dF9mbXBcIiwgXCJyYnhfZXZ0X3BsYXlfdXNlclwiLCBcInJieF9ldnRfcGxheV9ndWVzdFwiLCBcInJieF9ldnRfc2lnbnVwXCIsIFwicmJ4X2V2dF9lY29tbV9pdGVtXCIsIFwicmJ4X2V2dF9lY29tbV9jdXN0b21cIiwgXCJyYnhfZXZ0X3VzZXJpbmZvXCIsIFwicmJ4X2V2dF9hYnRlc3RcIiwgXCJyYnhfZXZ0X3BhZ2V2aWV3X2N1c3RvbVwiLCBcInJieF9ldnRfZ2VuZXJpY1wiLCBcInJieF9ldnRfc291cmNlX3RyYWNraW5nXCIsIFwicmJ4X2V2dF9jYXJkX3JlZGVtcHRpb25cIiwgXCJyYnhfZXZ0X3BvcHVwX2FjdGlvblwiXTtcblxuOyAvLy8gR29vZ2xlRXZlbnRMaXN0ZW5lci5qc1xuR29vZ2xlTGlzdGVuZXIgPSBuZXcgUkJYQmFzZUV2ZW50TGlzdGVuZXIsIEdvb2dsZUxpc3RlbmVyLmhhbmRsZUV2ZW50ID0gZnVuY3Rpb24obiwgdCkge1xuICAgIGZ1bmN0aW9uIHIobikge1xuICAgICAgICByZXR1cm4gbiA9IG4udG9Mb3dlckNhc2UoKSwgbiA9PSBcIndpbjMyXCIgPyBuID0gXCJXaW5kb3dzXCIgOiBuID09IFwib3N4XCIgJiYgKG4gPSBcIk1hY1wiKSwgblxuICAgIH1cbiAgICB2YXIgZiwgdSwgaTtcbiAgICBzd2l0Y2ggKG4udHlwZSkge1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9pbml0aWFsX2luc3RhbGxfYmVnaW5cIjpcbiAgICAgICAgICAgIHQub3MgPSByKHQub3MpLCB0LmNhdGVnb3J5ID0gXCJCb290c3RyYXBwZXIgSW5zdGFsbCBCZWdpblwiLCBpID0ge1xuICAgICAgICAgICAgICAgIG9zOiBcImFjdGlvblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2Z0cFwiOlxuICAgICAgICAgICAgdC5vcyA9IHIodC5vcyksIHQuY2F0ZWdvcnkgPSBcIkluc3RhbGwgU3VjY2Vzc1wiLCBpID0ge1xuICAgICAgICAgICAgICAgIG9zOiBcImFjdGlvblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2luaXRpYWxfaW5zdGFsbF9zdWNjZXNzXCI6XG4gICAgICAgICAgICB0Lm9zID0gcih0Lm9zKSwgdC5jYXRlZ29yeSA9IFwiQm9vdHN0cmFwcGVyIEluc3RhbGwgU3VjY2Vzc1wiLCBpID0ge1xuICAgICAgICAgICAgICAgIG9zOiBcImFjdGlvblwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2ZtcFwiOlxuICAgICAgICAgICAgdC5vcyA9IHIodC5vcyksIHQuY2F0ZWdvcnkgPSBcIkZpdmUgTWludXRlIFBsYXlcIiwgaSA9IHtcbiAgICAgICAgICAgICAgICBvczogXCJhY3Rpb25cIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9hYnRlc3RcIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZXhwZXJpbWVudDogXCJjYXRlZ29yeVwiLFxuICAgICAgICAgICAgICAgIHZhcmlhdGlvbjogXCJhY3Rpb25cIixcbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiBcIm9wdF9sYWJlbFwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2NhcmRfcmVkZW1wdGlvblwiOlxuICAgICAgICAgICAgdC5jYXRlZ29yeSA9IFwiQ2FyZFJlZGVtcHRpb25cIiwgaSA9IHtcbiAgICAgICAgICAgICAgICBtZXJjaGFudDogXCJhY3Rpb25cIixcbiAgICAgICAgICAgICAgICBjYXJkVmFsdWU6IFwib3B0X2xhYmVsXCJcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBjb25zb2xlLmxvZyhcIkdvb2dsZUxpc3RlbmVyIC0gRXZlbnQgcmVnaXN0ZXJlZCB3aXRob3V0IGhhbmRsaW5nIGluc3RydWN0aW9uczogXCIgKyBuLnR5cGUpLCAhMVxuICAgIH1cbiAgICByZXR1cm4gaS5jYXRlZ29yeSA9IFwiY2F0ZWdvcnlcIiwgdSA9IHRoaXMuZGlzdGlsbERhdGEodCwgaSksIHRoaXMuZmlyZUV2ZW50KHUpLCAhMFxufSwgR29vZ2xlTGlzdGVuZXIuZGlzdGlsbERhdGEgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgdmFyIGkgPSB7fSxcbiAgICAgICAgcjtcbiAgICBmb3IgKGRhdGFLZXkgaW4gdCkgdHlwZW9mIG5bZGF0YUtleV0gIT0gdHlwZW9mIHVuZGVmaW5lZCAmJiAoaVt0W2RhdGFLZXldXSA9IG5bZGF0YUtleV0pO1xuICAgIHJldHVybiByID0gW2kuY2F0ZWdvcnksIGkuYWN0aW9uXSwgaS5vcHRfbGFiZWwgIT0gbnVsbCAmJiAociA9IHIuY29uY2F0KGkub3B0X2xhYmVsKSksIGkub3B0X3ZhbHVlICE9IG51bGwgJiYgKHIgPSByLmNvbmNhdChpLm9wdF92YWx1ZSkpLCByXG59LCBHb29nbGVMaXN0ZW5lci5maXJlRXZlbnQgPSBmdW5jdGlvbihuKSB7XG4gICAgaWYgKHR5cGVvZiBfZ2FxICE9IHR5cGVvZiB1bmRlZmluZWQpIHtcbiAgICAgICAgdmFyIGkgPSBbXCJfdHJhY2tFdmVudFwiXSxcbiAgICAgICAgICAgIHQgPSBbXCJiLl90cmFja0V2ZW50XCJdO1xuICAgICAgICBfZ2FxLnB1c2goaS5jb25jYXQobikpLCBfZ2FxLnB1c2godC5jb25jYXQobikpXG4gICAgfVxufSwgR29vZ2xlTGlzdGVuZXIuZXZlbnRzID0gW1wicmJ4X2V2dF9pbml0aWFsX2luc3RhbGxfYmVnaW5cIiwgXCJyYnhfZXZ0X2Z0cFwiLCBcInJieF9ldnRfaW5pdGlhbF9pbnN0YWxsX3N1Y2Nlc3NcIiwgXCJyYnhfZXZ0X2ZtcFwiLCBcInJieF9ldnRfYWJ0ZXN0XCIsIFwicmJ4X2V2dF9jYXJkX3JlZGVtcHRpb25cIl07XG5cbjsgLy8vIE1vbmdvRXZlbnRMaXN0ZW5lci5qc1xuTW9uZ29MaXN0ZW5lciA9IG5ldyBSQlhCYXNlRXZlbnRMaXN0ZW5lciwgTW9uZ29MaXN0ZW5lci5oYW5kbGVFdmVudCA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICB2YXIgaTtcbiAgICByZXR1cm4gaSA9IHR5cGVvZiB0LnNoYXJkID09IFwidW5kZWZpbmVkXCIgPyB0aGlzLmRlZmF1bHRTaGFyZCA6IHQuc2hhcmQsIHR5cGVvZiB0LmV2ZW50TmFtZSA9PSBcInVuZGVmaW5lZFwiICYmICh0LmV2ZW50TmFtZSA9IG4udHlwZSksIHQuZXZlbnROYW1lID09PSBcIkphdmFzY3JpcHRFeGNlcHRpb25Mb2dnaW5nRXZlbnRcIiA/IGRhdGFNYXAgPSB7XG4gICAgICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgICAgIHVybDogXCJ1cmxcIixcbiAgICAgICAgbXNnOiBcIm1zZ1wiLFxuICAgICAgICBsaW5lOiBcImxpbmVcIixcbiAgICAgICAgdWE6IFwiVUFcIlxuICAgIH0gOiAodHlwZW9mIHQuY2F0ZWdvcnkgPT0gXCJ1bmRlZmluZWRcIiAmJiAodC5jYXRlZ29yeSA9IE1vbmdvTGlzdGVuZXIuZ2V0Q2F0ZWdvcnlGcm9tRXZlbnROYW1lKHQuZXZlbnROYW1lKSksIHQudXNlcklkID0gTW9uZ29MaXN0ZW5lci51c2VySWQsIHQuaXAgPSBNb25nb0xpc3RlbmVyLmNsaWVudElwQWRkcmVzcywgZGF0YU1hcCA9IHtcbiAgICAgICAgZ3VpZDogXCJndWlkXCIsXG4gICAgICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgICAgIHVzZXJJZDogXCJ1c2VyaWRcIixcbiAgICAgICAgaXA6IFwiaXBcIlxuICAgIH0pLCB0aGlzLmZpcmVFdmVudChpLCB0aGlzLmRpc3RpbGxEYXRhKHQsIGRhdGFNYXApKSwgITBcbn0sIE1vbmdvTGlzdGVuZXIuZ2V0Q2F0ZWdvcnlGcm9tRXZlbnROYW1lID0gZnVuY3Rpb24obikge1xuICAgIHN3aXRjaCAobikge1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9zaXRldG91Y2hcIjpcbiAgICAgICAgICAgIHJldHVybiBcIlNpdGVUb3VjaFwiO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9mbXBcIjpcbiAgICAgICAgICAgIHJldHVybiBcIkZpdmVNaW51dGVQbGF5XCI7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X3BsYXlfdXNlclwiOlxuICAgICAgICBjYXNlIFwicmJ4X2V2dF9wbGF5X2d1ZXN0XCI6XG4gICAgICAgICAgICByZXR1cm4gXCJQbGF5XCI7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gblxuICAgIH1cbn0sIE1vbmdvTGlzdGVuZXIuZGlzdGlsbERhdGEgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgdmFyIGkgPSB7fTtcbiAgICBmb3IgKGRhdGFLZXkgaW4gdCkgdHlwZW9mIG5bZGF0YUtleV0gIT0gdHlwZW9mIHVuZGVmaW5lZCAmJiAoaVt0W2RhdGFLZXldXSA9IGVuY29kZVVSSUNvbXBvbmVudChuW2RhdGFLZXldKSk7XG4gICAgcmV0dXJuIGlcbn0sIE1vbmdvTGlzdGVuZXIuZmlyZUV2ZW50ID0gZnVuY3Rpb24obiwgdCkge1xuICAgICQuYWpheCh7XG4gICAgICAgIHVybDogTW9uZ29MaXN0ZW5lci5sb2dnaW5nVVJJICsgbixcbiAgICAgICAgZGF0YVR5cGU6IFwianNvbnBcIixcbiAgICAgICAganNvbnBDYWxsYmFjazogXCJNb25nb0xpc3RlbmVyLmNhbGxiYWNrXCIsXG4gICAgICAgIGRhdGE6IHRcbiAgICB9KVxufSwgTW9uZ29MaXN0ZW5lci5jYWxsYmFjayA9IGZ1bmN0aW9uKCkge30sIE1vbmdvTGlzdGVuZXIuZXZlbnRzID0gW1wiSmF2YXNjcmlwdEV4Y2VwdGlvbkxvZ2dpbmdFdmVudFwiXTtcblxuOyAvLy8gU2VhcmNoVmlzaW9uTGlzdGVuZXIuanNcblNlYXJjaFZpc2lvbkxpc3RlbmVyID0gbmV3IFJCWEJhc2VFdmVudExpc3RlbmVyLCBTZWFyY2hWaXNpb25MaXN0ZW5lci5oYW5kbGVFdmVudCA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICB2YXIgaSA9IG51bGw7XG4gICAgc3dpdGNoIChuLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcInJieF9ldnRfZm1wXCI6XG4gICAgICAgICAgICBpID0ge1xuICAgICAgICAgICAgICAgIGVzdnRrX3Y6IFwiMVwiLFxuICAgICAgICAgICAgICAgIGVzdnRrX2VzdmlkOiBcIkE0MDEyNVwiLFxuICAgICAgICAgICAgICAgIGV2ZW50OiBcImZpdmVfbWludXRlX3BsYXlcIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9mdHBcIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZXN2dGtfdjogXCIxXCIsXG4gICAgICAgICAgICAgICAgZXN2dGtfZXN2aWQ6IFwiQTQwMTI1XCIsXG4gICAgICAgICAgICAgICAgZXZlbnQ6IFwiZmlyc3RfcGxheVwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2luc3RhbGxfYmVnaW5cIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZXN2dGtfdjogXCIxXCIsXG4gICAgICAgICAgICAgICAgZXN2dGtfZXN2aWQ6IFwiQTQwMTI1XCIsXG4gICAgICAgICAgICAgICAgZXZlbnQ6IFwiZG93bmxvYWRcIlxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicmJ4X2V2dF9zaWdudXBcIjpcbiAgICAgICAgICAgIGkgPSB7XG4gICAgICAgICAgICAgICAgZXN2dGtfdjogXCIxXCIsXG4gICAgICAgICAgICAgICAgZXN2dGtfZXN2aWQ6IFwiQTQwMTI1XCIsXG4gICAgICAgICAgICAgICAgZXZlbnQ6IFwiZXN2X3NpZ251cFwiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJyYnhfZXZ0X2dlbmVyaWNcIjpcbiAgICAgICAgICAgIHQudHlwZSA9PT0gXCJPbmVEYXlSZXR1cm5cIiAmJiAoaSA9IHtcbiAgICAgICAgICAgICAgICBlc3Z0a192OiBcIjFcIixcbiAgICAgICAgICAgICAgICBlc3Z0a19lc3ZpZDogXCJBNDAxMjVcIixcbiAgICAgICAgICAgICAgICBldmVudDogXCJyZXR1cm5cIlxuICAgICAgICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGkgIT09IG51bGwgJiYgKGkub3JkZXJpZCA9IHQuZ3VpZCwgdGhpcy5maXJlRXZlbnQoaSkpLCAhMFxufSwgU2VhcmNoVmlzaW9uTGlzdGVuZXIuZmlyZUV2ZW50ID0gZnVuY3Rpb24obikge1xuICAgIHR5cGVvZiBlc3Z0a190cmFjayAhPSBcInVuZGVmaW5lZFwiID8gZXN2dGtfdHJhY2sobikgOiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICBTZWFyY2hWaXNpb25MaXN0ZW5lci5maXJlRXZlbnQobilcbiAgICB9LCA1MDApXG59LCBTZWFyY2hWaXNpb25MaXN0ZW5lci5ldmVudHMgPSBbXCJyYnhfZXZ0X2ZtcFwiLCBcInJieF9ldnRfZnRwXCIsIFwicmJ4X2V2dF9pbnN0YWxsX2JlZ2luXCIsIFwicmJ4X2V2dF9zaWdudXBcIiwgXCJyYnhfZXZ0X2dlbmVyaWNcIl07XG5cbjsgLy8vIFNpdGVUb3VjaEV2ZW50LmpzXG50eXBlb2YgUm9ibG94ID09IFwidW5kZWZpbmVkXCIgJiYgKFJvYmxveCA9IHt9KSwgUm9ibG94LlNpdGVUb3VjaEV2ZW50ID0gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICAgICAgdmFyIHQsIGk7XG4gICAgICAgIHJldHVybiB0eXBlb2YgbG9jYWxTdG9yYWdlICE9IFwidW5kZWZpbmVkXCIgJiYgKHQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuKSksICh0eXBlb2YgdCA9PSBcInVuZGVmaW5lZFwiIHx8IHQgPT09IG51bGwpICYmICh0ID0gJC5jb29raWUobikpLCBpID0gRGF0ZS5wYXJzZSh0KSwgdCAmJiAhaXNOYU4oaSkgPyBuZXcgRGF0ZShpKSA6IG5ldyBEYXRlKDApXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaShpKSB7XG4gICAgICAgIHR5cGVvZiBpID09IFwidW5kZWZpbmVkXCIgJiYgKGkgPSBuZXcgRGF0ZSksIHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT0gXCJ1bmRlZmluZWRcIiAmJiAodC51c2VMb2NhbFN0b3JhZ2UgPyAkLmNvb2tpZShuLCBudWxsKSA6IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKG4pKSwgdC51c2VMb2NhbFN0b3JhZ2UgJiYgdHlwZW9mIGxvY2FsU3RvcmFnZSAhPSBcInVuZGVmaW5lZFwiID8gbG9jYWxTdG9yYWdlLnNldEl0ZW0obiwgaSkgOiAkLmNvb2tpZShuLCBpLCB7XG4gICAgICAgICAgICBleHBpcmVzOiAxMDBcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1KCkge1xuICAgICAgICB2YXIgbiA9IHIoKTtcbiAgICAgICAgTWF0aC5mbG9vcigobmV3IERhdGUgLSBuKSAvIDM2ZTUpID49IHQuZGF0ZURpZmZUaHJlc2hvbGRJbkhvdXJzICYmIFJvYmxveEV2ZW50TWFuYWdlci50cmlnZ2VyRXZlbnQoXCJyYnhfZXZ0X3NpdGV0b3VjaFwiKSwgaSgpXG4gICAgfVxuICAgIHZhciBuID0gXCJMYXN0QWN0aXZpdHlcIixcbiAgICAgICAgdCA9IHtcbiAgICAgICAgICAgIHVwZGF0ZUxhc3RBY3Rpdml0eUFuZEZpcmVFdmVudDogdSxcbiAgICAgICAgICAgIGdldExhc3RBY3Rpdml0eTogcixcbiAgICAgICAgICAgIHNldExhc3RBY3Rpdml0eTogaSxcbiAgICAgICAgICAgIGRhdGVEaWZmVGhyZXNob2xkSW5Ib3VyczogMyxcbiAgICAgICAgICAgIHVzZUxvY2FsU3RvcmFnZTogITFcbiAgICAgICAgfTtcbiAgICByZXR1cm4gdFxufSgpO1xuXG47IC8vLyBKU0Vycm9yVHJhY2tlci5qc1xudHlwZW9mIFJvYmxveCA9PSBcInVuZGVmaW5lZFwiICYmIChSb2Jsb3ggPSB7fSksIFJvYmxveC5KU0Vycm9yVHJhY2tlciA9IHtcbiAgICBzaG93QWxlcnQ6ICExLFxuICAgIGRlZmF1bHRQaXhlbDogXCJHQVwiLFxuICAgIGludGVybmFsRXZlbnRMaXN0ZW5lclBpeGVsRW5hYmxlZDogITEsXG4gICAgamF2YXNjcmlwdFN0YWNrVHJhY2VFbmFibGVkOiAhMSxcbiAgICBkYXRhOiB7XG4gICAgICAgIGNhdGVnb3J5OiBcIkphdmFzY3JpcHQgRXJyb3JzXCJcbiAgICB9LFxuICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdHlwZW9mIG4gIT0gXCJ1bmRlZmluZWRcIiAmJiAodHlwZW9mIG4uc2hvd0FsZXJ0ICE9IFwidW5kZWZpbmVkXCIgJiYgKHRoaXMuc2hvd0FsZXJ0ID0gbi5zaG93QWxlcnQpLCB0eXBlb2Ygbi5pbnRlcm5hbEV2ZW50TGlzdGVuZXJQaXhlbEVuYWJsZWQgIT0gXCJ1bmRlZmluZWRcIiAmJiAodGhpcy5pbnRlcm5hbEV2ZW50TGlzdGVuZXJQaXhlbEVuYWJsZWQgPSBuLmludGVybmFsRXZlbnRMaXN0ZW5lclBpeGVsRW5hYmxlZCkpLCB0aGlzLmFkZE9uRXJyb3JFdmVudEhhbmRsZXIodGhpcy5lcnJvckhhbmRsZXIpXG4gICAgfSxcbiAgICBlcnJvckhhbmRsZXI6IGZ1bmN0aW9uKG4sIHQsIGkpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIFJvYmxveC5KU0Vycm9yVHJhY2tlci5kYXRhLm1zZyA9IG4sIFJvYmxveC5KU0Vycm9yVHJhY2tlci5kYXRhLnVybCA9IHQsIFJvYmxveC5KU0Vycm9yVHJhY2tlci5kYXRhLmxpbmUgPSBpLCBSb2Jsb3guSlNFcnJvclRyYWNrZXIuZGF0YS51YSA9IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LCBSb2Jsb3guSlNFcnJvclRyYWNrZXIubG9nRXhjZXB0aW9uKFJvYmxveC5KU0Vycm9yVHJhY2tlci5kYXRhKVxuICAgICAgICB9IGNhdGNoIChyKSB7fVxuICAgICAgICByZXR1cm4gITBcbiAgICB9LFxuICAgIGFkZE9uRXJyb3JFdmVudEhhbmRsZXI6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdmFyIHQgPSB3aW5kb3cub25lcnJvcjtcbiAgICAgICAgd2luZG93Lm9uZXJyb3IgPSB0eXBlb2Ygd2luZG93Lm9uZXJyb3IgPT0gXCJmdW5jdGlvblwiID8gZnVuY3Rpb24oaSwgciwgdSkge1xuICAgICAgICAgICAgdChpLCByLCB1KSwgbihpLCByLCB1KVxuICAgICAgICB9IDogblxuICAgIH0sXG4gICAgcHJvY2Vzc0V4Y2VwdGlvbjogZnVuY3Rpb24obiwgdCkge1xuICAgICAgICBpZiAodHlwZW9mIG4gIT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdHlwZW9mIG4uY2F0ZWdvcnkgPT0gXCJ1bmRlZmluZWRcIiAmJiAobi5jYXRlZ29yeSA9IFJvYmxveC5KU0Vycm9yVHJhY2tlci5kYXRhLmNhdGVnb3J5KTtcbiAgICAgICAgICAgIHN3aXRjaCAodCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJHQVwiOlxuICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBcImNhdGVnb3J5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFwiYWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBtc2c6IFwib3B0X2xhYmVsXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5lOiBcIm9wdF92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIFJvYmxveC5KU0Vycm9yVHJhY2tlci5maXJlR0FQaXhlbChSb2Jsb3guSlNFcnJvclRyYWNrZXIuZGlzdGlsbEdBRGF0YShuLCBpKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJEaWFnXCI6XG4gICAgICAgICAgICAgICAgICAgIFJvYmxveC5KU0Vycm9yVHJhY2tlci5pbnRlcm5hbEV2ZW50TGlzdGVuZXJQaXhlbEVuYWJsZWQgJiYgKG4uY2F0ZWdvcnkgPSBcIkphdmFzY3JpcHRFeGNlcHRpb25zXCIsIG4uc2hhcmQgPSBcIldlYk1ldHJpY3NcIiwgbi5ldmVudE5hbWUgPSBcIkphdmFzY3JpcHRFeGNlcHRpb25Mb2dnaW5nRXZlbnRcIiwgUm9ibG94RXZlbnRNYW5hZ2VyLnRyaWdnZXJFdmVudChcIkphdmFzY3JpcHRFeGNlcHRpb25Mb2dnaW5nRXZlbnRcIiwgbikpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlJvYmxveCBKU0Vycm9yVHJhY2tlciByZWNlaXZlZCBhbiB1bmtub3duIHBpeGVsIHRvIGZpcmVcIilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAhMFxuICAgICAgICB9XG4gICAgfSxcbiAgICBsb2dFeGNlcHRpb246IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgUm9ibG94LkpTRXJyb3JUcmFja2VyLnByb2Nlc3NFeGNlcHRpb24obiwgUm9ibG94LkpTRXJyb3JUcmFja2VyLmRlZmF1bHRQaXhlbCksIFJvYmxveC5KU0Vycm9yVHJhY2tlci5pbnRlcm5hbEV2ZW50TGlzdGVuZXJQaXhlbEVuYWJsZWQgJiYgUm9ibG94LkpTRXJyb3JUcmFja2VyLnByb2Nlc3NFeGNlcHRpb24obiwgXCJEaWFnXCIpLCBSb2Jsb3guSlNFcnJvclRyYWNrZXIuc2hvd0Vycm9yTWVzc2FnZShuLm1zZylcbiAgICB9LFxuICAgIGRpc3RpbGxEYXRhOiBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHZhciByID0ge30sXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgaW4gdCkgdHlwZW9mIG5baV0gIT0gXCJ1bmRlZmluZWRcIiAmJiAoclt0W2ldXSA9IGVuY29kZVVSSUNvbXBvbmVudChuW2ldKSk7XG4gICAgICAgIHJldHVybiByXG4gICAgfSxcbiAgICBkaXN0aWxsR0FEYXRhOiBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHZhciByID0gUm9ibG94LkpTRXJyb3JUcmFja2VyLmRpc3RpbGxEYXRhKG4sIHQpLFxuICAgICAgICAgICAgaSA9IFtkZWNvZGVVUklDb21wb25lbnQoW3IuY2F0ZWdvcnldKV07XG4gICAgICAgIHJldHVybiB0eXBlb2Ygci5hY3Rpb24gIT0gdHlwZW9mIHVuZGVmaW5lZCA/IChpID0gaS5jb25jYXQoZGVjb2RlVVJJQ29tcG9uZW50KHIuYWN0aW9uKSksIHR5cGVvZiByLm9wdF9sYWJlbCAhPSB0eXBlb2YgdW5kZWZpbmVkICYmIChpID0gaS5jb25jYXQoZGVjb2RlVVJJQ29tcG9uZW50KHIub3B0X2xhYmVsKSksIHR5cGVvZiByLm9wdF92YWx1ZSAhPSB0eXBlb2YgdW5kZWZpbmVkICYmIChpID0gaS5jb25jYXQocGFyc2VJbnQoZGVjb2RlVVJJQ29tcG9uZW50KHIub3B0X3ZhbHVlKSkpKSkpIDogUm9ibG94LkpTRXJyb3JUcmFja2VyLnNob3dBbGVydCAmJiBhbGVydChcIk1pc3NpbmcgYSByZXF1aXJlZCBwYXJhbWV0ZXIgZm9yIEdBXCIpLCBpXG4gICAgfSxcbiAgICBjcmVhdGVVUkw6IGZ1bmN0aW9uKG4sIHQsIGkpIHtcbiAgICAgICAgdmFyIHIgPSBuLFxuICAgICAgICAgICAgZiA9IFJvYmxveC5KU0Vycm9yVHJhY2tlci5kaXN0aWxsRGF0YSh0LCBpKSxcbiAgICAgICAgICAgIHU7XG4gICAgICAgIGlmIChyICs9IFwiP1wiLCBmICE9IG51bGwpXG4gICAgICAgICAgICBmb3IgKHUgaW4gZikgdHlwZW9mIHUgIT0gdHlwZW9mIHVuZGVmaW5lZCAmJiB0Lmhhc093blByb3BlcnR5KHUpICYmIChyICs9IHUgKyBcIj1cIiArIGZbdV0gKyBcIiZcIik7XG4gICAgICAgIHJldHVybiByID0gci5zbGljZSgwLCByLmxlbmd0aCAtIDEpXG4gICAgfSxcbiAgICBmaXJlR0FQaXhlbDogZnVuY3Rpb24obikge1xuICAgICAgICB0eXBlb2YgX2dhcSAhPSBcInVuZGVmaW5lZFwiICYmIF9nYXEucHVzaChbXCJjLl90cmFja0V2ZW50XCJdLmNvbmNhdChuKSlcbiAgICB9LFxuICAgIHNob3dFcnJvck1lc3NhZ2U6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgUm9ibG94LkpTRXJyb3JUcmFja2VyLnNob3dBbGVydCAmJiAobiAhPT0gbnVsbCA/IGFsZXJ0KG4pIDogYWxlcnQoXCJBbiBlcnJvciBvY2N1cmVkXCIpKVxuICAgIH1cbn07XG5cbjsgLy8vIFN0dWRpbzJBbGVydC5qc1xudmFyIHN0dWRpbzJBbGVydE1vZGFsID0ge1xuICAgIHNob3dQcm9tcHQ6ICExLFxuICAgIHVzZXJJZDogMCxcbiAgICB1cGRhdGVTdHVkaW9BbGVydFVzZXJQcmVmZXJlbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgJC5hamF4KHtcbiAgICAgICAgICAgIHR5cGU6IFwiR0VUXCIsXG4gICAgICAgICAgICB1cmw6IFwiL1dlYkhhbmRsZXJzL1N0dWRpbzJBbGVydC5hc2h4P3VJZD1cIiArIHN0dWRpbzJBbGVydE1vZGFsLnVzZXJJZFxuICAgICAgICB9KVxuICAgIH0sXG4gICAgY2xvc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICBzdHVkaW8yQWxlcnRNb2RhbC51cGRhdGVTdHVkaW9BbGVydFVzZXJQcmVmZXJlbmNlKCksICQubW9kYWwuY2xvc2UoXCIjU3R1ZGlvMkFsZXJ0TW9kYWxcIilcbiAgICB9LFxuICAgIGluaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICBzdHVkaW8yQWxlcnRNb2RhbC5zaG93UHJvbXB0ID0gJChcIiNTdHVkaW8yQWxlcnRNb2RhbFwiKS5kYXRhKFwic2hvd3Byb21wdFwiKSwgc3R1ZGlvMkFsZXJ0TW9kYWwudXNlcklkID0gJChcIiNTdHVkaW8yQWxlcnRNb2RhbFwiKS5kYXRhKFwidXNlcmlkXCIpO1xuICAgICAgICB2YXIgbiA9IHtcbiAgICAgICAgICAgIGVzY0Nsb3NlOiAhMCxcbiAgICAgICAgICAgIG9wYWNpdHk6IDgwLFxuICAgICAgICAgICAgb3ZlcmxheUNzczoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMDAwXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgc3R1ZGlvMkFsZXJ0TW9kYWwuc2hvd1Byb21wdCAmJiBSb2Jsb3guQ2xpZW50LmlzSURFKCkgJiYgKHN0dWRpbzJBbGVydE1vZGFsLnVwZGF0ZVN0dWRpb0FsZXJ0VXNlclByZWZlcmVuY2UoKSwgJChcIiNTdHVkaW8yQWxlcnRNb2RhbFwiKS5tb2RhbChuKSlcbiAgICB9XG59O1xuJChcIiNjbG9zZVN0dWRpbzJBbGVydFwiKS5jbGljayhmdW5jdGlvbigpIHtcbiAgICBzdHVkaW8yQWxlcnRNb2RhbC5jbG9zZSgpXG59KSwgJChmdW5jdGlvbigpIHtcbiAgICBzdHVkaW8yQWxlcnRNb2RhbC5pbml0KClcbn0pO1xuXG47IC8vLyBDbGllbnRJbnN0YWxsZXIuanNcbmZ1bmN0aW9uIHRyeVRvRG93bmxvYWQoKSB7XG4gICAgb0lGcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImRvd25sb2FkSW5zdGFsbGVySUZyYW1lXCIpLCBvSUZybS5zcmMgPSBcIi9pbnN0YWxsL3NldHVwLmFzaHhcIlxufVxuXG5mdW5jdGlvbiBsb2dTdGF0aXN0aWNzKG4pIHtcbiAgICAkLmdldChcIi9pbnN0YWxsL1Zpc2l0QnV0dG9uSGFuZGxlci5hc2h4P3JlcXR5cGU9XCIgKyBuLCBmdW5jdGlvbigpIHt9KVxufVxuVHlwZS5yZWdpc3Rlck5hbWVzcGFjZShcIlJvYmxveC5DbGllbnRcIiksIFJvYmxveC5DbGllbnQuX2luc3RhbGxIb3N0ID0gbnVsbCwgUm9ibG94LkNsaWVudC5faW5zdGFsbFN1Y2Nlc3MgPSBudWxsLCBSb2Jsb3guQ2xpZW50Ll9DTFNJRCA9IG51bGwsIFJvYmxveC5DbGllbnQuX2NvbnRpbnVhdGlvbiA9IG51bGwsIFJvYmxveC5DbGllbnQuX3NraXAgPSBudWxsLCBSb2Jsb3guQ2xpZW50Ll9pc0lERSA9IG51bGwsIFJvYmxveC5DbGllbnQuX2lzUm9ibG94QnJvd3NlciA9IG51bGwsIFJvYmxveC5DbGllbnQuX2lzUGxhY2VMYXVuY2ggPSAhMSwgUm9ibG94LkNsaWVudC5fc2lsZW50TW9kZUVuYWJsZWQgPSAhMSwgUm9ibG94LkNsaWVudC5fYnJpbmdBcHBUb0Zyb250RW5hYmxlZCA9ICExLCBSb2Jsb3guQ2xpZW50Ll9udW1Mb2NrcyA9IDAsIFJvYmxveC5DbGllbnQuX2xvZ1RpbWluZyA9ICExLCBSb2Jsb3guQ2xpZW50Ll9sb2dTdGFydFRpbWUgPSBudWxsLCBSb2Jsb3guQ2xpZW50Ll9sb2dFbmRUaW1lID0gbnVsbCwgUm9ibG94LkNsaWVudC5faGlkZGVuTW9kZUVuYWJsZWQgPSAhMSwgUm9ibG94LkNsaWVudC5fcnVuSW5zdGFsbEFCVGVzdCA9IGZ1bmN0aW9uKCkge30sIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyID0gZnVuY3Rpb24obiwgdCwgaSkge1xuICAgIGlmICh0ICYmIFJvYmxveC5DbGllbnQuX251bUxvY2tzLS0sIChpIHx8IFJvYmxveC5DbGllbnQuX251bUxvY2tzIDw9IDApICYmIChuICE9IG51bGwgJiYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwicGx1Z2luT2JqRGl2XCIpLmlubmVySFRNTCA9IFwiXCIsIG4gPSBudWxsKSwgUm9ibG94LkNsaWVudC5fbnVtTG9ja3MgPSAwKSwgUm9ibG94LkNsaWVudC5fbG9nVGltaW5nKSB7XG4gICAgICAgIFJvYmxveC5DbGllbnQuX2xvZ0VuZFRpbWUgPSBuZXcgRGF0ZTtcbiAgICAgICAgdmFyIHIgPSBSb2Jsb3guQ2xpZW50Ll9sb2dFbmRUaW1lLmdldFRpbWUoKSAtIFJvYmxveC5DbGllbnQuX2xvZ1N0YXJ0VGltZS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnNvbGUgJiYgY29uc29sZS5sb2cgJiYgY29uc29sZS5sb2coXCJSb2Jsb3guQ2xpZW50OiBcIiArIHIgKyBcIm1zIGZyb20gQ3JlYXRlIHRvIFJlbGVhc2UuXCIpXG4gICAgfVxufSwgUm9ibG94LkNsaWVudC5HZXRJbnN0YWxsSG9zdCA9IGZ1bmN0aW9uKG4pIHtcbiAgICBpZiAod2luZG93LkFjdGl2ZVhPYmplY3QpIHJldHVybiBuLkluc3RhbGxIb3N0O1xuICAgIHZhciB0ID0gbi5HZXRfSW5zdGFsbEhvc3QoKTtcbiAgICByZXR1cm4gdC5tYXRjaCgvcm9ibG94LmNvbSQvKSA/IHQgOiB0LnN1YnN0cmluZygwLCB0Lmxlbmd0aCAtIDEpXG59LCBSb2Jsb3guQ2xpZW50LkNyZWF0ZUxhdW5jaGVyID0gZnVuY3Rpb24obikge1xuICAgIHZhciBpLCB1LCB0LCByO1xuICAgIFJvYmxveC5DbGllbnQuX2xvZ1RpbWluZyAmJiAoUm9ibG94LkNsaWVudC5fbG9nU3RhcnRUaW1lID0gbmV3IERhdGUpLCBuICYmIFJvYmxveC5DbGllbnQuX251bUxvY2tzKyssIChSb2Jsb3guQ2xpZW50Ll9pbnN0YWxsSG9zdCA9PSBudWxsIHx8IFJvYmxveC5DbGllbnQuX0NMU0lEID09IG51bGwpICYmIHR5cGVvZiBpbml0Q2xpZW50UHJvcHMgPT0gXCJmdW5jdGlvblwiICYmIGluaXRDbGllbnRQcm9wcygpLCBpID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJyb2Jsb3hwbHVnaW5vYmpcIiksIHUgPSAkKFwiI3BsdWdpbk9iakRpdlwiKSwgaSB8fCAoUm9ibG94LkNsaWVudC5faGlkZGVuTW9kZUVuYWJsZWQgPSAhMSwgd2luZG93LkFjdGl2ZVhPYmplY3QgPyAodCA9ICc8b2JqZWN0IGNsYXNzaWQ9XCJjbHNpZDonICsgUm9ibG94LkNsaWVudC5fQ0xTSUQgKyAnXCInLCB0ICs9ICcgaWQ9XCJyb2Jsb3hwbHVnaW5vYmpcIiB0eXBlPVwiYXBwbGljYXRpb24veC12bmQtcm9ibG94LWxhdW5jaGVyXCInLCB0ICs9ICcgY29kZWJhc2U9XCInICsgUm9ibG94LkNsaWVudC5faW5zdGFsbEhvc3QgKyAnXCI+RmFpbGVkIHRvIElOSVQgUGx1Z2luPC9vYmplY3Q+JywgJCh1KS5hcHBlbmQodCkpIDogKHQgPSAnPG9iamVjdCBpZD1cInJvYmxveHBsdWdpbm9ialwiIHR5cGU9XCJhcHBsaWNhdGlvbi94LXZuZC1yb2Jsb3gtbGF1bmNoZXJcIj4nLCB0ICs9IFwiPHA+WW91IG5lZWQgT3VyIFBsdWdpbiBmb3IgdGhpcy4gIEdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbVwiLCB0ICs9ICc8YSBocmVmPVwiJyArIFJvYmxveC5DbGllbnQuX2luc3RhbGxIb3N0ICsgJ1wiPmhlcmU8L2E+LjwvcD48L29iamVjdD4nLCAkKHUpLmFwcGVuZCh0KSksIGkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInJvYmxveHBsdWdpbm9ialwiKSk7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKGkgfHwgKHR5cGVvZiBjb25zb2xlLmxvZyA9PSBcInVuZGVmaW5lZFwiID8gYWxlcnQoXCJQbHVnaW4gaW5zdGFsbGF0aW9uIGZhaWxlZCFcIikgOiBjb25zb2xlLmxvZyhcIlBsdWdpbiBpbnN0YWxsYXRpb24gZmFpbGVkIVwiKSksIGkuSGVsbG8oKSwgciA9IFJvYmxveC5DbGllbnQuR2V0SW5zdGFsbEhvc3QoaSksICFyIHx8IHIgIT0gUm9ibG94LkNsaWVudC5faW5zdGFsbEhvc3QpIHRocm93IFwid3JvbmcgSW5zdGFsbEhvc3Q6IChwbHVnaW5zKTogIFwiICsgciArIFwiICAoc2VydmVycyk6ICBcIiArIFJvYmxveC5DbGllbnQuX2luc3RhbGxIb3N0O1xuICAgICAgICByZXR1cm4gaVxuICAgIH0gY2F0Y2ggKGYpIHtcbiAgICAgICAgcmV0dXJuIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyKGksIG4sICExKSwgbnVsbFxuICAgIH1cbn0sIFJvYmxveC5DbGllbnQuaXNJREUgPSBmdW5jdGlvbigpIHtcbiAgICBpZiAoUm9ibG94LkNsaWVudC5faXNJREUgPT0gbnVsbCAmJiAoUm9ibG94LkNsaWVudC5faXNJREUgPSAhMSwgUm9ibG94LkNsaWVudC5faXNSb2Jsb3hCcm93c2VyID0gITEsIHdpbmRvdy5leHRlcm5hbCkpIHRyeSB7XG4gICAgICAgIHdpbmRvdy5leHRlcm5hbC5Jc1JvYmxveEFwcElERSAhPT0gdW5kZWZpbmVkICYmIChSb2Jsb3guQ2xpZW50Ll9pc0lERSA9IHdpbmRvdy5leHRlcm5hbC5Jc1JvYmxveEFwcElERSwgUm9ibG94LkNsaWVudC5faXNSb2Jsb3hCcm93c2VyID0gITApXG4gICAgfSBjYXRjaCAobikge31cbiAgICByZXR1cm4gUm9ibG94LkNsaWVudC5faXNJREVcbn0sIFJvYmxveC5DbGllbnQuaXNSb2Jsb3hCcm93c2VyID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIFJvYmxveC5DbGllbnQuaXNJREUoKSwgUm9ibG94LkNsaWVudC5faXNSb2Jsb3hCcm93c2VyXG59LCBSb2Jsb3guQ2xpZW50LnJvYmxveEJyb3dzZXJJbnN0YWxsSG9zdCA9IGZ1bmN0aW9uKCkge1xuICAgIGlmICh3aW5kb3cuZXh0ZXJuYWwpIHRyeSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuZXh0ZXJuYWwuSW5zdGFsbEhvc3RcbiAgICB9IGNhdGNoIChuKSB7fVxuICAgIHJldHVybiBcIlwiXG59LCBSb2Jsb3guQ2xpZW50LklzUm9ibG94UHJveHlJbnN0YWxsZWQgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgdCA9IFJvYmxveC5DbGllbnQuQ3JlYXRlTGF1bmNoZXIoITEpLFxuICAgICAgICBuID0gITE7XG4gICAgcmV0dXJuICh0ICE9IG51bGwgJiYgKG4gPSAhMCksIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyKHQsICExLCAhMSksIG4gfHwgUm9ibG94LkNsaWVudC5pc1JvYmxveEJyb3dzZXIoKSkgPyAhMCA6ICExXG59LCBSb2Jsb3guQ2xpZW50LklzUm9ibG94SW5zdGFsbGVkID0gZnVuY3Rpb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgICAgdmFyIHQgPSBSb2Jsb3guQ2xpZW50LkNyZWF0ZUxhdW5jaGVyKCExKSxcbiAgICAgICAgICAgIG4gPSBSb2Jsb3guQ2xpZW50LkdldEluc3RhbGxIb3N0KHQpO1xuICAgICAgICByZXR1cm4gUm9ibG94LkNsaWVudC5SZWxlYXNlTGF1bmNoZXIodCwgITEsICExKSwgbiA9PSBSb2Jsb3guQ2xpZW50Ll9pbnN0YWxsSG9zdFxuICAgIH0gY2F0Y2ggKGkpIHtcbiAgICAgICAgcmV0dXJuIFJvYmxveC5DbGllbnQuaXNSb2Jsb3hCcm93c2VyKCkgPyAobiA9IFJvYmxveC5DbGllbnQucm9ibG94QnJvd3Nlckluc3RhbGxIb3N0KCksIG4gPT0gUm9ibG94LkNsaWVudC5faW5zdGFsbEhvc3QpIDogITFcbiAgICB9XG59LCBSb2Jsb3guQ2xpZW50LlNldFN0YXJ0SW5IaWRkZW5Nb2RlID0gZnVuY3Rpb24obikge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciB0ID0gUm9ibG94LkNsaWVudC5DcmVhdGVMYXVuY2hlcighMSk7XG4gICAgICAgIGlmICh0ICE9PSBudWxsKSByZXR1cm4gdC5TZXRTdGFydEluSGlkZGVuTW9kZShuKSwgUm9ibG94LkNsaWVudC5faGlkZGVuTW9kZUVuYWJsZWQgPSBuLCAhMFxuICAgIH0gY2F0Y2ggKGkpIHt9XG4gICAgcmV0dXJuICExXG59LCBSb2Jsb3guQ2xpZW50LlVuaGlkZUFwcCA9IGZ1bmN0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGlmIChSb2Jsb3guQ2xpZW50Ll9oaWRkZW5Nb2RlRW5hYmxlZCkge1xuICAgICAgICAgICAgdmFyIG4gPSBSb2Jsb3guQ2xpZW50LkNyZWF0ZUxhdW5jaGVyKCExKTtcbiAgICAgICAgICAgIG4uVW5oaWRlQXBwKClcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKHQpIHt9XG59LCBSb2Jsb3guQ2xpZW50LlVwZGF0ZSA9IGZ1bmN0aW9uKCkge1xuICAgIHRyeSB7XG4gICAgICAgIHZhciBuID0gUm9ibG94LkNsaWVudC5DcmVhdGVMYXVuY2hlcighMSk7XG4gICAgICAgIG4uVXBkYXRlKCksIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyKG4sICExLCAhMSlcbiAgICB9IGNhdGNoICh0KSB7XG4gICAgICAgIGFsZXJ0KFwiRXJyb3IgdXBkYXRpbmc6IFwiICsgdClcbiAgICB9XG59LCBSb2Jsb3guQ2xpZW50LldhaXRGb3JSb2Jsb3ggPSBmdW5jdGlvbihuKSB7XG4gICAgaWYgKFJvYmxveC5DbGllbnQuX3NraXApIHJldHVybiB3aW5kb3cubG9jYXRpb24gPSBSb2Jsb3guQ2xpZW50Ll9za2lwLCAhMTtcbiAgICBpZiAoUm9ibG94LkNsaWVudC5fY29udGludWF0aW9uID0gbiwgUm9ibG94LkNsaWVudC5fY2FuY2VsbGVkID0gITEsICFSb2Jsb3guQ2xpZW50LklzUm9ibG94UHJveHlJbnN0YWxsZWQoKSAmJiBSb2Jsb3guQ2xpZW50LkltcGxlbWVudHNQcm94eSkge1xuICAgICAgICBSb2Jsb3guSW5zdGFsbGF0aW9uSW5zdHJ1Y3Rpb25zLnNob3coKSwgUm9ibG94LkNsaWVudC5ydW5JbnN0YWxsQUJUZXN0KCk7XG4gICAgICAgIHZhciB0ID0gXCJXaW5kb3dzXCI7XG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3IuYXBwVmVyc2lvbi5pbmRleE9mKFwiTWFjXCIpICE9IC0xICYmICh0ID0gXCJNYWNcIiksIHR5cGVvZiBfZ2FxICE9IHR5cGVvZiB1bmRlZmluZWQgJiYgKF9nYXEucHVzaChbXCJfdHJhY2tFdmVudFwiLCBcIkluc3RhbGwgQmVnaW5cIiwgdF0pLCBfZ2FxLnB1c2goW1wiYi5fdHJhY2tFdmVudFwiLCBcIkluc3RhbGwgQmVnaW5cIiwgdF0pKSwgUm9ibG94RXZlbnRNYW5hZ2VyLnRyaWdnZXJFdmVudChcInJieF9ldnRfaW5zdGFsbF9iZWdpblwiLCB7XG4gICAgICAgICAgICBvczogdFxuICAgICAgICB9KSwgd2luZG93LmNocm9tZSAmJiAod2luZG93LmxvY2F0aW9uLmhhc2ggPSBcIiNjaHJvbWVJbnN0YWxsXCIsICQuY29va2llKFwiY2hyb21lSW5zdGFsbFwiLCBuLnRvU3RyaW5nKCkucmVwbGFjZSgvcGxheV9wbGFjZUlkLywgcGxheV9wbGFjZUlkLnRvU3RyaW5nKCkpKSksIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgUm9ibG94LkNsaWVudC5fb250aW1lcigpXG4gICAgICAgIH0sIDFlMyksIHRyeVRvRG93bmxvYWQoKSwgITBcbiAgICB9XG4gICAgcmV0dXJuIFJvYmxveC5DbGllbnQuX2NvbnRpbnVhdGlvbigpLCAhMVxufSwgUm9ibG94LkNsaWVudC5SZXN1bWVUaW1lciA9IGZ1bmN0aW9uKG4pIHtcbiAgICBSb2Jsb3guQ2xpZW50Ll9jb250aW51YXRpb24gPSBuLCBSb2Jsb3guQ2xpZW50Ll9jYW5jZWxsZWQgPSAhMSwgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIFJvYmxveC5DbGllbnQuX29udGltZXIoKVxuICAgIH0sIDApXG59LCBSb2Jsb3guQ2xpZW50LlJlZnJlc2ggPSBmdW5jdGlvbigpIHtcbiAgICB0cnkge1xuICAgICAgICBuYXZpZ2F0b3IucGx1Z2lucy5yZWZyZXNoKCExKVxuICAgIH0gY2F0Y2ggKG4pIHt9XG59LCBSb2Jsb3guQ2xpZW50Ll9vbkNhbmNlbCA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBSb2Jsb3guSW5zdGFsbGF0aW9uSW5zdHJ1Y3Rpb25zLmhpZGUoKSwgUm9ibG94LkNsaWVudC5fY2FuY2VsbGVkID0gITAsICExXG59LCBSb2Jsb3guQ2xpZW50Ll9vbnRpbWVyID0gZnVuY3Rpb24oKSB7XG4gICAgUm9ibG94LkNsaWVudC5fY2FuY2VsbGVkIHx8IChSb2Jsb3guQ2xpZW50LlJlZnJlc2goKSwgUm9ibG94LkNsaWVudC5Jc1JvYmxveFByb3h5SW5zdGFsbGVkKCkgPyAoUm9ibG94Lkluc3RhbGxhdGlvbkluc3RydWN0aW9ucy5oaWRlKCksIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICB3aW5kb3cuY2hyb21lICYmIHdpbmRvdy5sb2NhdGlvbi5oYXNoID09IFwiI2Nocm9tZUluc3RhbGxcIiAmJiAod2luZG93LmxvY2F0aW9uLmhhc2ggPSBcIlwiLCAkLmNvb2tpZShcImNocm9tZUluc3RhbGxcIiwgbnVsbCkpXG4gICAgfSwgNWUzKSwgUm9ibG94LkNsaWVudC5fY29udGludWF0aW9uKCksIFJvYmxveC5DbGllbnQuX2luc3RhbGxTdWNjZXNzICYmIFJvYmxveC5DbGllbnQuX2luc3RhbGxTdWNjZXNzKCkpIDogd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgIFJvYmxveC5DbGllbnQuX29udGltZXIoKVxuICAgIH0sIDFlMykpXG59O1xuXG47IC8vLyBJbnN0YWxsYXRpb25JbnN0cnVjdGlvbnMuanNcbnR5cGVvZiBSb2Jsb3ggPT0gXCJ1bmRlZmluZWRcIiAmJiAoUm9ibG94ID0ge30pLCBSb2Jsb3guSW5zdGFsbGF0aW9uSW5zdHJ1Y3Rpb25zID0gZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gaSgpIHtcbiAgICAgICAgdmFyIHQsIGksIHI7XG4gICAgICAgIG4oKSwgdCA9IDAsIGkgPSAkKFwiLkluc3RhbGxJbnN0cnVjdGlvbnNJbWFnZVwiKSwgaSAmJiB0eXBlb2YgJChpKS5hdHRyKFwibW9kYWx3aWR0aFwiKSAhPSBcInVuZGVmaW5lZFwiICYmICh0ID0gJChcIi5JbnN0YWxsSW5zdHJ1Y3Rpb25zSW1hZ2VcIikuYXR0cihcIm1vZGFsd2lkdGhcIikpLCB0ID4gMCA/IChyID0gKCQod2luZG93KS53aWR0aCgpIC0gKHQgLSAxMCkpIC8gMiwgJChcIiNJbnN0YWxsYXRpb25JbnN0cnVjdGlvbnNcIikubW9kYWwoe1xuICAgICAgICAgICAgZXNjQ2xvc2U6ICEwLFxuICAgICAgICAgICAgb3BhY2l0eTogNTAsXG4gICAgICAgICAgICBtaW5XaWR0aDogdCxcbiAgICAgICAgICAgIG1heFdpZHRoOiB0LFxuICAgICAgICAgICAgb3ZlcmxheUNzczoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMDAwXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwb3NpdGlvbjogWzIwLCByXVxuICAgICAgICB9KSkgOiAkKFwiI0luc3RhbGxhdGlvbkluc3RydWN0aW9uc1wiKS5tb2RhbCh7XG4gICAgICAgICAgICBlc2NDbG9zZTogITAsXG4gICAgICAgICAgICBvcGFjaXR5OiA1MCxcbiAgICAgICAgICAgIG1heFdpZHRoOiAkKHdpbmRvdykud2lkdGgoKSAvIDIsXG4gICAgICAgICAgICBtaW5XaWR0aDogJCh3aW5kb3cpLndpZHRoKCkgLyAyLFxuICAgICAgICAgICAgb3ZlcmxheUNzczoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMDAwXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwb3NpdGlvbjogWzIwLCBcIjI1JVwiXVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICAgICQubW9kYWwuY2xvc2UoKVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIG4oKSB7XG4gICAgICAgIHZhciBuID0gJChcIi5JbnN0YWxsSW5zdHJ1Y3Rpb25zSW1hZ2VcIik7XG4gICAgICAgIG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL01hYyBPUyBYIDEwW198XFwuXTUvKSA/IG4gJiYgdHlwZW9mICQobikuYXR0cihcIm9sZG1hY2RlbGF5c3JjXCIpICE9IFwidW5kZWZpbmVkXCIgJiYgJChcIi5JbnN0YWxsSW5zdHJ1Y3Rpb25zSW1hZ2VcIikuYXR0cihcInNyY1wiLCAkKFwiLkluc3RhbGxJbnN0cnVjdGlvbnNJbWFnZVwiKS5hdHRyKFwib2xkbWFjZGVsYXlzcmNcIikpIDogbiAmJiB0eXBlb2YgJChuKS5hdHRyKFwiZGVsYXlzcmNcIikgIT0gXCJ1bmRlZmluZWRcIiAmJiAkKFwiLkluc3RhbGxJbnN0cnVjdGlvbnNJbWFnZVwiKS5hdHRyKFwic3JjXCIsICQoXCIuSW5zdGFsbEluc3RydWN0aW9uc0ltYWdlXCIpLmF0dHIoXCJkZWxheXNyY1wiKSlcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc2hvdzogaSxcbiAgICAgICAgaGlkZTogclxuICAgIH1cbn0oKTtcblxuOyAvLy8gTWFkU3RhdHVzLmpzXG5NYWRTdGF0dXMgPSB7XG4gICAgcnVubmluZzogITEsXG4gICAgaW5pdDogZnVuY3Rpb24obiwgdCwgaSwgcikge1xuICAgICAgICBNYWRTdGF0dXMucnVubmluZyAmJiBNYWRTdGF0dXMuc3RvcCgpLCBNYWRTdGF0dXMudXBkYXRlSW50ZXJ2YWwgPSBpID8gaSA6IDJlMywgTWFkU3RhdHVzLmZhZGVJbnRlcnZhbCA9IHIgPyByIDogMWUzLCBNYWRTdGF0dXMudGltZW91dCA9IG51bGwsIE1hZFN0YXR1cy5ydW5uaW5nID0gITAsIE1hZFN0YXR1cy5maWVsZCA9IG4sIE1hZFN0YXR1cy5iYWNrQnVmZmVyID0gdCwgTWFkU3RhdHVzLmZpZWxkLnNob3coKSwgTWFkU3RhdHVzLmJhY2tCdWZmZXIuaGlkZSgpXG4gICAgfSxcbiAgICBwYXJ0aWNpcGxlOiBbXCJBY2NlbGVyYXRpbmdcIiwgXCJBZ2dyZWdhdGluZ1wiLCBcIkFsbG9jYXRpbmdcIiwgXCJBcXVpcmluZ1wiLCBcIkF1dG9tYXRpbmdcIiwgXCJCYWNrdHJhY2luZ1wiLCBcIkJsb3h4aW5nXCIsIFwiQm9vdHN0cmFwaW5nXCIsIFwiQ2FsaWJyYXRpbmdcIiwgXCJDb3JyZWxhdGluZ1wiLCBcIkRlLW5vb2JpbmdcIiwgXCJEZS1pb25pemluZ1wiLCBcIkRlcml2aW5nXCIsIFwiRW5lcmdpemluZ1wiLCBcIkZpbHRlcmluZ1wiLCBcIkdlbmVyYXRpbmdcIiwgXCJJbmRleGluZ1wiLCBcIkxvYWRpbmdcIiwgXCJOb29iaW5nXCIsIFwiT3B0aW1pemluZ1wiLCBcIk94aWRpemluZ1wiLCBcIlF1ZXVlaW5nXCIsIFwiUGFyc2luZ1wiLCBcIlByb2Nlc3NpbmdcIiwgXCJSYXN0ZXJpemluZ1wiLCBcIlJlYWRpbmdcIiwgXCJSZWdpc3RlcmluZ1wiLCBcIlJlLXJvdXRpbmdcIiwgXCJSZXNvbHZpbmdcIiwgXCJTYW1wbGluZ1wiLCBcIlVwZGF0aW5nXCIsIFwiV3JpdGluZ1wiXSxcbiAgICBtb2RpZmllcjogW1wiQmxveFwiLCBcIkNvdW50IFplcm9cIiwgXCJDeWxvblwiLCBcIkRhdGFcIiwgXCJFY3RvcGxhc21cIiwgXCJFbmNyeXB0aW9uXCIsIFwiRXZlbnRcIiwgXCJGYXJuc3dvcnRoXCIsIFwiQmVib3BcIiwgXCJGbHV4IENhcGFjaXRvclwiLCBcIkZ1c2lvblwiLCBcIkdhbWVcIiwgXCJHaWJzb25cIiwgXCJIb3N0XCIsIFwiTWFpbmZyYW1lXCIsIFwiTWV0YXZlcnNlXCIsIFwiTmVyZiBIZXJkZXJcIiwgXCJOZXV0cm9uXCIsIFwiTm9vYlwiLCBcIlBob3RvblwiLCBcIlByb2ZpbGVcIiwgXCJTY3JpcHRcIiwgXCJTa3luZXRcIiwgXCJUQVJESVNcIiwgXCJWaXJ0dWFsXCJdLFxuICAgIHN1YmplY3Q6IFtcIkFuYWxvZ3NcIiwgXCJCbG9ja3NcIiwgXCJDYW5ub25cIiwgXCJDaGFubmVsc1wiLCBcIkNvcmVcIiwgXCJEYXRhYmFzZVwiLCBcIkRpbWVuc2lvbnNcIiwgXCJEaXJlY3RpdmVzXCIsIFwiRW5naW5lXCIsIFwiRmlsZXNcIiwgXCJHZWFyXCIsIFwiSW5kZXhcIiwgXCJMYXllclwiLCBcIk1hdHJpeFwiLCBcIlBhcmFkb3hcIiwgXCJQYXJhbWV0ZXJzXCIsIFwiUGFyc2Vjc1wiLCBcIlBpcGVsaW5lXCIsIFwiUGxheWVyc1wiLCBcIlBvcnRzXCIsIFwiUHJvdG9jb2xzXCIsIFwiUmVhY3RvcnNcIiwgXCJTcGhlcmVcIiwgXCJTcG9vbGVyXCIsIFwiU3RyZWFtXCIsIFwiU3dpdGNoZXNcIiwgXCJUYWJsZVwiLCBcIlRhcmdldHNcIiwgXCJUaHJvdHRsZVwiLCBcIlRva2Vuc1wiLCBcIlRvcnBlZG9lc1wiLCBcIlR1YmVzXCJdLFxuICAgIG5ld0xpYjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBsaWJTdHJpbmcgPSB0aGlzLnBhcnRpY2lwbGVbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5wYXJ0aWNpcGxlLmxlbmd0aCldICsgXCIgXCIgKyB0aGlzLm1vZGlmaWVyW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubW9kaWZpZXIubGVuZ3RoKV0gKyBcIiBcIiArIHRoaXMuc3ViamVjdFtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aGlzLnN1YmplY3QubGVuZ3RoKV0gKyBcIi4uLlwiXG4gICAgfSxcbiAgICBzdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICAgIE1hZFN0YXR1cy50aW1lb3V0ID09IG51bGwgJiYgKE1hZFN0YXR1cy50aW1lb3V0ID0gc2V0SW50ZXJ2YWwoXCJNYWRTdGF0dXMudXBkYXRlKClcIiwgTWFkU3RhdHVzLnVwZGF0ZUludGVydmFsKSwgTWFkU3RhdHVzLnJ1bm5pbmcgPSAhMClcbiAgICB9LFxuICAgIHN0b3A6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgY2xlYXJJbnRlcnZhbChNYWRTdGF0dXMudGltZW91dCksIE1hZFN0YXR1cy50aW1lb3V0ID0gbnVsbCwgTWFkU3RhdHVzLmZpZWxkWzBdLmlubmVySFRNTCA9IHR5cGVvZiBuICE9IHR5cGVvZiB1bmRlZmluZWQgPyBuIDogXCJcIiwgTWFkU3RhdHVzLnJ1bm5pbmcgPSAhMVxuICAgIH0sXG4gICAgbWFudWFsVXBkYXRlOiBmdW5jdGlvbihuLCB0LCBpKSB7XG4gICAgICAgIE1hZFN0YXR1cy50aW1lb3V0ICYmIE1hZFN0YXR1cy5zdG9wKCksIHRoaXMudXBkYXRlKG4sIGkpLCB0ICYmIHNldFRpbWVvdXQoXCJNYWRTdGF0dXMuc3RhcnQoKVwiLCAxZTMpXG4gICAgfSxcbiAgICB1cGRhdGU6IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgKE1hZFN0YXR1cy5iYWNrQnVmZmVyWzBdLmlubmVySFRNTCA9IHR5cGVvZiBuICE9IHR5cGVvZiB1bmRlZmluZWQgPyBuIDogdGhpcy5uZXdMaWIoKSwgdHlwZW9mIG5vQW5pbSA9PSB0eXBlb2YgdW5kZWZpbmVkIHx8IHQgIT0gITEpICYmICh0aGlzLmZpZWxkLmhpZGUoKSwgdGhpcy5iYWNrQnVmZmVyLmZhZGVJbih0aGlzLmZhZGVJbnRlcnZhbCArIDIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgTWFkU3RhdHVzLmZpZWxkWzBdLmlubmVySFRNTCA9IE1hZFN0YXR1cy5iYWNrQnVmZmVyWzBdLmlubmVySFRNTCwgTWFkU3RhdHVzLmZpZWxkLnNob3coKSwgTWFkU3RhdHVzLmJhY2tCdWZmZXIuaGlkZSgpXG4gICAgICAgIH0pKVxuICAgIH1cbn07XG5cbjsgLy8vIFBsYWNlTGF1bmNoZXIuanNcbnZhciBSQlggPSB7fSxcbiAgICBSb2Jsb3hMYXVuY2hTdGF0ZXMgPSB7XG4gICAgICAgIFN0YXJ0aW5nU2VydmVyOiBcIlN0YXJ0aW5nU2VydmVyXCIsXG4gICAgICAgIFN0YXJ0aW5nQ2xpZW50OiBcIlN0YXJ0aW5nQ2xpZW50XCIsXG4gICAgICAgIFVwZ3JhZGluZzogXCJVcGdyYWRpbmdcIixcbiAgICAgICAgTm9uZTogXCJOb25lXCJcbiAgICB9LFxuICAgIFJvYmxveExhdW5jaCA9IHtcbiAgICAgICAgbGF1bmNoR2FtZVBhZ2U6IG51bGwsXG4gICAgICAgIHRpbWVyOiBudWxsLFxuICAgICAgICBjbGllbnRNZXRyaWNUeXBlOiBudWxsLFxuICAgICAgICBsYXVuY2hlcjogbnVsbCxcbiAgICAgICAgZ29vZ2xlQW5hbHl0aWNzQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgUm9ibG94TGF1bmNoLl9Hb29nbGVBbmFseXRpY3NDYWxsYmFjayAmJiBSb2Jsb3hMYXVuY2guX0dvb2dsZUFuYWx5dGljc0NhbGxiYWNrKClcbiAgICAgICAgfSxcbiAgICAgICAgc3RhdGU6IFJvYmxveExhdW5jaFN0YXRlcy5Ob25lLFxuICAgICAgICBzZWN1cmVBdXRoZW50aWNhdGU6ICExXG4gICAgfSxcbiAgICBSb2Jsb3hQbGFjZUxhdW5jaGVyU2VydmljZSA9IHtcbiAgICAgICAgTG9nSm9pbkNsaWNrOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICQuZ2V0KFwiL0dhbWUvUGxhY2VsYXVuY2hlci5hc2h4XCIsIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0OiBcIkxvZ0pvaW5DbGlja1wiXG4gICAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBSZXF1ZXN0R2FtZTogZnVuY3Rpb24obiwgdCwgaSwgciwgdSwgZikge1xuICAgICAgICAgICAgaSA9IGkgIT09IG51bGwgJiYgaSAhPT0gdW5kZWZpbmVkID8gaSA6IFwiXCIsICQuZ2V0SlNPTihcIi9HYW1lL1BsYWNlTGF1bmNoZXIuYXNoeFwiLCB7XG4gICAgICAgICAgICAgICAgcmVxdWVzdDogXCJSZXF1ZXN0R2FtZVwiLFxuICAgICAgICAgICAgICAgIHBsYWNlSWQ6IG4sXG4gICAgICAgICAgICAgICAgaXNQYXJ0eUxlYWRlcjogdCxcbiAgICAgICAgICAgICAgICBnZW5kZXI6IGlcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBuLkVycm9yID8gdShuLkVycm9yLCBmKSA6IHIobiwgZilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIFJlcXVlc3RQbGF5V2l0aFBhcnR5OiBmdW5jdGlvbihuLCB0LCBpLCByLCB1LCBmKSB7XG4gICAgICAgICAgICAkLmdldEpTT04oXCIvR2FtZS9QbGFjZUxhdW5jaGVyLmFzaHhcIiwge1xuICAgICAgICAgICAgICAgIHJlcXVlc3Q6IFwiUmVxdWVzdFBsYXlXaXRoUGFydHlcIixcbiAgICAgICAgICAgICAgICBwbGFjZUlkOiBuLFxuICAgICAgICAgICAgICAgIHBhcnR5R3VpZDogdCxcbiAgICAgICAgICAgICAgICBnYW1lSWQ6IGlcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBuLkVycm9yID8gdShuLkVycm9yLCBmKSA6IHIobiwgZilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIFJlcXVlc3RHcm91cEJ1aWxkR2FtZTogZnVuY3Rpb24obiwgdCwgaSwgcikge1xuICAgICAgICAgICAgJC5nZXRKU09OKFwiL0dhbWUvUGxhY2VMYXVuY2hlci5hc2h4XCIsIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0OiBcIlJlcXVlc3RHcm91cEJ1aWxkR2FtZVwiLFxuICAgICAgICAgICAgICAgIHBsYWNlSWQ6IG5cbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBuLkVycm9yID8gaShuLkVycm9yLCByKSA6IHQobiwgcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIFJlcXVlc3RGb2xsb3dVc2VyOiBmdW5jdGlvbihuLCB0LCBpLCByKSB7XG4gICAgICAgICAgICAkLmdldEpTT04oXCIvR2FtZS9QbGFjZUxhdW5jaGVyLmFzaHhcIiwge1xuICAgICAgICAgICAgICAgIHJlcXVlc3Q6IFwiUmVxdWVzdEZvbGxvd1VzZXJcIixcbiAgICAgICAgICAgICAgICB1c2VySWQ6IG5cbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBuLkVycm9yID8gaShuLkVycm9yLCByKSA6IHQobiwgcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIFJlcXVlc3RHYW1lSm9iOiBmdW5jdGlvbihuLCB0LCBpLCByLCB1LCBmKSB7XG4gICAgICAgICAgICAkLmdldEpTT04oXCIvR2FtZS9QbGFjZUxhdW5jaGVyLmFzaHhcIiwge1xuICAgICAgICAgICAgICAgIHJlcXVlc3Q6IFwiUmVxdWVzdEdhbWVKb2JcIixcbiAgICAgICAgICAgICAgICBwbGFjZUlkOiBuLFxuICAgICAgICAgICAgICAgIGdhbWVJZDogdCxcbiAgICAgICAgICAgICAgICBnYW1lSm9iSWQ6IGlcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBuLkVycm9yID8gdShuLkVycm9yLCBmKSA6IHIobiwgZilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIENoZWNrR2FtZUpvYlN0YXR1czogZnVuY3Rpb24obiwgdCwgaSwgcikge1xuICAgICAgICAgICAgJC5nZXRKU09OKFwiL0dhbWUvUGxhY2VMYXVuY2hlci5hc2h4XCIsIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0OiBcIkNoZWNrR2FtZUpvYlN0YXR1c1wiLFxuICAgICAgICAgICAgICAgIGpvYklkOiBuXG4gICAgICAgICAgICB9LCBmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICAgICAgbi5FcnJvciA/IGkobi5FcnJvciwgcikgOiB0KG4sIHIpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfTtcblJvYmxveExhdW5jaC5SZXF1ZXN0UGxheVdpdGhQYXJ0eSA9IGZ1bmN0aW9uKG4sIHQsIGksIHIpIHtcbiAgICBSb2Jsb3hQbGFjZUxhdW5jaGVyU2VydmljZS5Mb2dKb2luQ2xpY2soKSwgUm9ibG94TGF1bmNoLnRpbWVyID0gbmV3IERhdGUsIFJvYmxveExhdW5jaC5zdGF0ZSA9IFJvYmxveExhdW5jaFN0YXRlcy5Ob25lLCBSb2Jsb3hMYXVuY2guY2xpZW50TWV0cmljVHlwZSA9IFwiV2ViUGxheVwiLCBjaGVja1JvYmxveEluc3RhbGwoKSAmJiAoUm9ibG94TGF1bmNoLmxhdW5jaGVyID09PSBudWxsICYmIChSb2Jsb3hMYXVuY2gubGF1bmNoZXIgPSBuZXcgUkJYLlBsYWNlTGF1bmNoZXIobikpLCBSb2Jsb3hMYXVuY2gubGF1bmNoZXIuUmVxdWVzdFBsYXlXaXRoUGFydHkodCwgaSwgcikpXG59LCBSb2Jsb3hMYXVuY2guUmVxdWVzdEdhbWUgPSBmdW5jdGlvbihuLCB0LCBpKSB7XG4gICAgUm9ibG94UGxhY2VMYXVuY2hlclNlcnZpY2UuTG9nSm9pbkNsaWNrKCksIFJvYmxveExhdW5jaC50aW1lciA9IG5ldyBEYXRlLCBSb2Jsb3hMYXVuY2guc3RhdGUgPSBSb2Jsb3hMYXVuY2hTdGF0ZXMuTm9uZSwgUm9ibG94TGF1bmNoLmNsaWVudE1ldHJpY1R5cGUgPSBcIldlYlBsYXlcIiwgY2hlY2tSb2Jsb3hJbnN0YWxsKCkgJiYgKFJvYmxveExhdW5jaC5sYXVuY2hlciA9PT0gbnVsbCAmJiAoUm9ibG94TGF1bmNoLmxhdW5jaGVyID0gbmV3IFJCWC5QbGFjZUxhdW5jaGVyKG4pKSwgUm9ibG94TGF1bmNoLmxhdW5jaGVyLlJlcXVlc3RHYW1lKHQsIGkpKVxufSwgUm9ibG94TGF1bmNoLlJlcXVlc3RHcm91cEJ1aWxkR2FtZSA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICBSb2Jsb3hQbGFjZUxhdW5jaGVyU2VydmljZS5Mb2dKb2luQ2xpY2soKSwgUm9ibG94TGF1bmNoLnRpbWVyID0gbmV3IERhdGUsIFJvYmxveExhdW5jaC5zdGF0ZSA9IFJvYmxveExhdW5jaFN0YXRlcy5Ob25lLCBSb2Jsb3hMYXVuY2guY2xpZW50TWV0cmljVHlwZSA9IFwiV2ViUGxheVwiLCBjaGVja1JvYmxveEluc3RhbGwoKSAmJiAoUm9ibG94TGF1bmNoLmxhdW5jaGVyID09PSBudWxsICYmIChSb2Jsb3hMYXVuY2gubGF1bmNoZXIgPSBuZXcgUkJYLlBsYWNlTGF1bmNoZXIobikpLCBSb2Jsb3hMYXVuY2gubGF1bmNoZXIuUmVxdWVzdEdyb3VwQnVpbGRHYW1lKHQpKVxufSwgUm9ibG94TGF1bmNoLlJlcXVlc3RHYW1lSm9iID0gZnVuY3Rpb24obiwgdCwgaSwgcikge1xuICAgIFJvYmxveFBsYWNlTGF1bmNoZXJTZXJ2aWNlLkxvZ0pvaW5DbGljaygpLCBSb2Jsb3hMYXVuY2gudGltZXIgPSBuZXcgRGF0ZSwgUm9ibG94TGF1bmNoLnN0YXRlID0gUm9ibG94TGF1bmNoU3RhdGVzLk5vbmUsIFJvYmxveExhdW5jaC5jbGllbnRNZXRyaWNUeXBlID0gXCJXZWJKb2luXCIsIGNoZWNrUm9ibG94SW5zdGFsbCgpICYmIChSb2Jsb3hMYXVuY2gubGF1bmNoZXIgPT09IG51bGwgJiYgKFJvYmxveExhdW5jaC5sYXVuY2hlciA9IG5ldyBSQlguUGxhY2VMYXVuY2hlcihuKSksIFJvYmxveExhdW5jaC5sYXVuY2hlci5SZXF1ZXN0R2FtZUpvYih0LCBpLCByKSlcbn0sIFJvYmxveExhdW5jaC5SZXF1ZXN0Rm9sbG93VXNlciA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICBSb2Jsb3hQbGFjZUxhdW5jaGVyU2VydmljZS5Mb2dKb2luQ2xpY2soKSwgUm9ibG94TGF1bmNoLnRpbWVyID0gbmV3IERhdGUsIFJvYmxveExhdW5jaC5zdGF0ZSA9IFJvYmxveExhdW5jaFN0YXRlcy5Ob25lLCBSb2Jsb3hMYXVuY2guY2xpZW50TWV0cmljVHlwZSA9IFwiV2ViRm9sbG93XCIsIGNoZWNrUm9ibG94SW5zdGFsbCgpICYmIChSb2Jsb3hMYXVuY2gubGF1bmNoZXIgPT09IG51bGwgJiYgKFJvYmxveExhdW5jaC5sYXVuY2hlciA9IG5ldyBSQlguUGxhY2VMYXVuY2hlcihuKSksIFJvYmxveExhdW5jaC5sYXVuY2hlci5SZXF1ZXN0Rm9sbG93VXNlcih0KSlcbn0sIFJvYmxveExhdW5jaC5TdGFydEdhbWUgPSBmdW5jdGlvbihuLCB0LCBpLCByLCB1KSB7XG4gICAgdmFyIG8sIGYsIGUsIHM7XG4gICAgUm9ibG94TGF1bmNoLnNlY3VyZUF1dGhlbnRpY2F0ZSAmJiAoaSA9IGkucmVwbGFjZShcImh0dHA6Ly9cIiwgXCJodHRwczovL1wiKSksIG4gPSB0eXBlb2YgUm9ibG94TGF1bmNoLlNlbGVuaXVtVGVzdE1vZGUgPT0gXCJ1bmRlZmluZWRcIiA/IG4gKyBcIiZ0ZXN0bW9kZT1mYWxzZVwiIDogbiArIFwiJnRlc3Rtb2RlPXRydWVcIiwgdHlwZW9mIHVyY2hpblRyYWNrZXIgIT0gXCJ1bmRlZmluZWRcIiAmJiB1cmNoaW5UcmFja2VyKFwiVmlzaXQvVHJ5L1wiICsgdCksIFJvYmxveExhdW5jaC5zdGF0ZSA9IFJvYmxveExhdW5jaFN0YXRlcy5TdGFydGluZ0NsaWVudCwgUm9ibG94TGF1bmNoLmdvb2dsZUFuYWx5dGljc0NhbGxiYWNrICE9PSBudWxsICYmIFJvYmxveExhdW5jaC5nb29nbGVBbmFseXRpY3NDYWxsYmFjaygpLCBvID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdy5leHRlcm5hbCAhPSBcInVuZGVmaW5lZFwiICYmIHdpbmRvdy5leHRlcm5hbC5Jc1JvYmxveEFCQXBwKSB3aW5kb3cuZXh0ZXJuYWwuU3RhcnRHYW1lKHIsIGksIG4pO1xuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygd2luZG93LmV4dGVybmFsICE9IFwidW5kZWZpbmVkXCIgJiYgd2luZG93LmV4dGVybmFsLklzUm9ibG94MkFwcCAmJiAobi5pbmRleE9mKFwidmlzaXRcIikgIT0gLTEgfHwgdSkpIHdpbmRvdy5leHRlcm5hbC5TdGFydEdhbWUociwgaSwgbik7XG4gICAgICAgIGVsc2UgaWYgKG8gPSBcIlJvYmxveFByb3h5L1wiLCBmID0gUm9ibG94LkNsaWVudC5DcmVhdGVMYXVuY2hlcighMCksIGYpIHtcbiAgICAgICAgICAgIG8gPSBcIlJvYmxveFByb3h5L1N0YXJ0R2FtZS9cIjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LkFjdGl2ZVhPYmplY3QgPyBmLkF1dGhlbnRpY2F0aW9uVGlja2V0ID0gciA6IGYuUHV0X0F1dGhlbnRpY2F0aW9uVGlja2V0KHIpLCB1ICYmIGYuU2V0RWRpdE1vZGUoKVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGEpIHt9XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFJvYmxveC5DbGllbnQuX3NpbGVudE1vZGVFbmFibGVkKSBmLlNldFNpbGVudE1vZGVFbmFibGVkKCEwKSwgUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0luaXRpYWxpemVkICYmIFJvYmxveC5WaWRlb1ByZVJvbGwuaXNQbGF5aW5nKCkgJiYgUm9ibG94LkNsaWVudC5TZXRTdGFydEluSGlkZGVuTW9kZSghMCksIGYuU3RhcnRHYW1lKGksIG4pLCBSb2Jsb3hMYXVuY2guQ2hlY2tHYW1lU3RhcnRlZChmKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aHJvdyBcInNpbGVudCBtb2RlIGlzIGRpc2FibGVkLCBmYWxsIGJhY2tcIjtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChhKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmLlN0YXJ0R2FtZShpLCBuKSwgUm9ibG94LkNsaWVudC5fYnJpbmdBcHBUb0Zyb250RW5hYmxlZCkgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGYuQnJpbmdBcHBUb0Zyb250KClcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoaCkge31cbiAgICAgICAgICAgICAgICAgICAgUm9ibG94LkNsaWVudC5SZWxlYXNlTGF1bmNoZXIoZiwgITAsICExKSwgJC5tb2RhbC5jbG9zZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoYSkge1xuICAgICAgICAgICAgICAgIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyKGYsICEwLCAhMSk7XG4gICAgICAgICAgICAgICAgdGhyb3cgYTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcGFyZW50LnBsYXlGcm9tVXJsKG4pO1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfSBjYXRjaCAobCkge31cbiAgICAgICAgICAgIGlmIChSb2Jsb3guQ2xpZW50LmlzUm9ibG94QnJvd3NlcigpKSB0cnkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5leHRlcm5hbC5TdGFydEdhbWUociwgaSwgbilcbiAgICAgICAgICAgIH0gY2F0Y2ggKGwpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBcIndpbmRvdy5leHRlcm5hbCBmYWxsYmFjayBmYWlsZWQsIFJvYmxveCBtdXN0IG5vdCBiZSBpbnN0YWxsZWQgb3IgSUUgY2Fubm90IGFjY2VzcyBBY3RpdmVYXCI7XG4gICAgICAgICAgICB9IGVsc2UgdGhyb3cgXCJsYXVuY2hlciBpcyBudWxsIG9yIHVuZGVmaW5lZCBhbmQgZXh0ZXJuYWwgaXMgbWlzc2luZ1wiO1xuICAgICAgICAgICAgUm9ibG94TGF1bmNoLnN0YXRlID0gUm9ibG94TGF1bmNoU3RhdGVzLk5vbmUsICQubW9kYWwuY2xvc2UoKVxuICAgICAgICB9XG4gICAgfSBjYXRjaCAoYSkge1xuICAgICAgICBpZiAoZSA9IGEubWVzc2FnZSwgZSA9PT0gXCJVc2VyIGNhbmNlbGxlZFwiICYmIHR5cGVvZiB1cmNoaW5UcmFja2VyICE9IFwidW5kZWZpbmVkXCIpIHJldHVybiB1cmNoaW5UcmFja2VyKFwiVmlzaXQvVXNlckNhbmNlbGxlZC9cIiArIHQpLCAhMTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHMgPSBuZXcgQWN0aXZlWE9iamVjdChcIk1pY3Jvc29mdC5YTUxIVFRQXCIpXG4gICAgICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgICAgICAgIGUgPSBcIkZhaWxlZFhNTEhUVFAvXCIgKyBlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFJvYmxveC5DbGllbnQuaXNSb2Jsb3hCcm93c2VyKCkgPyB0eXBlb2YgdXJjaGluVHJhY2tlciAhPSBcInVuZGVmaW5lZFwiICYmIHVyY2hpblRyYWNrZXIoXCJWaXNpdC9GYWlsL1wiICsgbyArIGVuY29kZVVSSUNvbXBvbmVudChlKSkgOiAodHlwZW9mIHVyY2hpblRyYWNrZXIgIT0gXCJ1bmRlZmluZWRcIiAmJiB1cmNoaW5UcmFja2VyKFwiVmlzaXQvUmVkaXJlY3QvXCIgKyBvICsgZW5jb2RlVVJJQ29tcG9uZW50KGUpKSwgd2luZG93LmxvY2F0aW9uID0gUm9ibG94TGF1bmNoLmxhdW5jaEdhbWVQYWdlKSwgITFcbiAgICB9XG4gICAgcmV0dXJuIHR5cGVvZiB1cmNoaW5UcmFja2VyICE9IFwidW5kZWZpbmVkXCIgJiYgdXJjaGluVHJhY2tlcihcIlZpc2l0L1N1Y2Nlc3MvXCIgKyB0KSwgITBcbn0sIFJvYmxveExhdW5jaC5DaGVja0dhbWVTdGFydGVkID0gZnVuY3Rpb24obikge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICAgIHZhciBlID0gITE7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoaSB8fCAoaSA9IHdpbmRvdy5BY3RpdmVYT2JqZWN0ID8gbi5Jc0dhbWVTdGFydGVkIDogbi5HZXRfR2FtZVN0YXJ0ZWQoKSksIGkgJiYgIVJvYmxveC5WaWRlb1ByZVJvbGwuaXNQbGF5aW5nKCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoTWFkU3RhdHVzLnN0b3AoXCJDb25uZWN0aW5nIHRvIFBsYXllcnMuLi5cIiksIFJvYmxveExhdW5jaC5zdGF0ZSA9IFJvYmxveExhdW5jaFN0YXRlcy5Ob25lLCAkLm1vZGFsLmNsb3NlKCksIHQuX2NhbmNlbGxlZCA9ICEwLCBSb2Jsb3guQ2xpZW50Ll9oaWRkZW5Nb2RlRW5hYmxlZCAmJiBSb2Jsb3guQ2xpZW50LlVuaGlkZUFwcCgpLCBSb2Jsb3guQ2xpZW50Ll9icmluZ0FwcFRvRnJvbnRFbmFibGVkKSB0cnkge1xuICAgICAgICAgICAgICAgICAgICBuLkJyaW5nQXBwVG9Gcm9udCgpXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZikge31cbiAgICAgICAgICAgICAgICBSb2Jsb3guQ2xpZW50LlJlbGVhc2VMYXVuY2hlcihuLCAhMCwgITEpXG4gICAgICAgICAgICB9IGVsc2UgdC5fY2FuY2VsbGVkIHx8IHNldFRpbWVvdXQociwgMWUzKVxuICAgICAgICB9IGNhdGNoICh1KSB7XG4gICAgICAgICAgICB0Ll9jYW5jZWxsZWQgfHwgc2V0VGltZW91dChyLCAxZTMpXG4gICAgICAgIH1cbiAgICB9XG4gICAgdmFyIHQgPSBSb2Jsb3hMYXVuY2gubGF1bmNoZXIsXG4gICAgICAgIGk7XG4gICAgdCA9PT0gbnVsbCAmJiAodCA9IG5ldyBSQlguUGxhY2VMYXVuY2hlcihcIlBsYWNlTGF1bmNoZXJTdGF0dXNQYW5lbFwiKSwgdC5fc2hvd0RpYWxvZygpLCB0Ll91cGRhdGVTdGF0dXMoMCkpLCBpID0gITEsIHIoKVxufSwgUm9ibG94TGF1bmNoLkNoZWNrUm9ibG94SW5zdGFsbCA9IGZ1bmN0aW9uKG4pIHtcbiAgICBpZiAoUm9ibG94LkNsaWVudC5Jc1JvYmxveEluc3RhbGxlZCgpKSByZXR1cm4gUm9ibG94LkNsaWVudC5VcGRhdGUoKSwgITA7XG4gICAgd2luZG93LmxvY2F0aW9uID0gblxufSwgUkJYLlBsYWNlTGF1bmNoZXIgPSBmdW5jdGlvbihuKSB7XG4gICAgdGhpcy5fY2FuY2VsbGVkID0gITEsIHRoaXMuX3BvcHVwSUQgPSBuLCB0aGlzLl9wb3B1cCA9ICQoXCIjXCIgKyBuKVxufSwgUkJYLlBsYWNlTGF1bmNoZXIucHJvdG90eXBlID0ge1xuICAgIF9zaG93RGlhbG9nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fY2FuY2VsbGVkID0gITEsIF9wb3B1cE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBlc2NDbG9zZTogITAsXG4gICAgICAgICAgICBvcGFjaXR5OiA4MCxcbiAgICAgICAgICAgIG92ZXJsYXlDc3M6IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IFwiIzAwMFwiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuX3BvcHVwSUQgPT0gXCJQbGFjZUxhdW5jaGVyU3RhdHVzUGFuZWxcIiAmJiAoUm9ibG94LlZpZGVvUHJlUm9sbCAmJiBSb2Jsb3guVmlkZW9QcmVSb2xsLnNob3dWaWRlb1ByZVJvbGwgJiYgIVJvYmxveC5WaWRlb1ByZVJvbGwuaXNFeGNsdWRlZCgpID8gKHRoaXMuX3BvcHVwID0gJChcIiN2aWRlb1ByZXJvbGxQYW5lbFwiKSwgX3BvcHVwT3B0aW9ucy5vblNob3cgPSBmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICBSb2Jsb3guVmlkZW9QcmVSb2xsLmNvcnJlY3RJRU1vZGFsUG9zaXRpb24obiksIFJvYmxveC5WaWRlb1ByZVJvbGwuc3RhcnQoKVxuICAgICAgICB9LCBfcG9wdXBPcHRpb25zLm9uQ2xvc2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIFJvYmxveC5WaWRlb1ByZVJvbGwuY2xvc2UoKVxuICAgICAgICB9LCBfcG9wdXBPcHRpb25zLmNsb3NlSFRNTCA9ICc8YSBocmVmPVwiI1wiIGNsYXNzPVwiSW1hZ2VCdXR0b24gY2xvc2VCdG5DaXJjbGVfMzVoIEFCQ2xvc2VDaXJjbGUgVnByQ2xvc2VCdXR0b25cIj48L2E+JykgOiAodGhpcy5fcG9wdXAgPSAkKFwiI1wiICsgdGhpcy5fcG9wdXBJRCksIF9wb3B1cE9wdGlvbnMub25DbG9zZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgUm9ibG94LlZpZGVvUHJlUm9sbC5sb2dWaWRlb1ByZVJvbGwoKSwgJC5tb2RhbC5jbG9zZSgpXG4gICAgICAgIH0pKSwgdGhpcy5fcG9wdXAubW9kYWwoX3BvcHVwT3B0aW9ucyk7XG4gICAgICAgIHZhciBuID0gdGhpcztcbiAgICAgICAgJChcIi5DYW5jZWxQbGFjZUxhdW5jaGVyQnV0dG9uXCIpLmNsaWNrKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbi5DYW5jZWxMYXVuY2goKVxuICAgICAgICB9KSwgJChcIi5DYW5jZWxQbGFjZUxhdW5jaGVyQnV0dG9uXCIpLnNob3coKVxuICAgIH0sXG4gICAgX3JlcG9ydER1cmF0aW9uOiBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgICQuYWpheCh7XG4gICAgICAgICAgICB0eXBlOiBcIkdFVFwiLFxuICAgICAgICAgICAgYXN5bmM6ICEwLFxuICAgICAgICAgICAgY2FjaGU6ICExLFxuICAgICAgICAgICAgdGltZW91dDogNWU0LFxuICAgICAgICAgICAgdXJsOiBcIi9HYW1lL0pvaW5SYXRlLmFzaHg/Yz1cIiArIFJvYmxveExhdW5jaC5jbGllbnRNZXRyaWNUeXBlICsgXCImcj1cIiArIHQgKyBcIiZkPVwiICsgbixcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkge31cbiAgICAgICAgfSlcbiAgICB9LFxuICAgIF9vbkdhbWVTdGF0dXM6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdmFyIHIsIGksIHQ7XG4gICAgICAgIGlmICh0aGlzLl9jYW5jZWxsZWQpIHtcbiAgICAgICAgICAgIHIgPSArbmV3IERhdGUgLSBSb2Jsb3hMYXVuY2gudGltZXIuZ2V0VGltZSgpLCB0aGlzLl9yZXBvcnREdXJhdGlvbihyLCBcIkNhbmNlbFwiKTtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl91cGRhdGVTdGF0dXMobi5zdGF0dXMpLCBuLnN0YXR1cyA9PT0gMikgUm9ibG94TGF1bmNoLlN0YXJ0R2FtZShuLmpvaW5TY3JpcHRVcmwsIFwiSm9pblwiLCBuLmF1dGhlbnRpY2F0aW9uVXJsLCBuLmF1dGhlbnRpY2F0aW9uVGlja2V0KSwgaSA9ICtuZXcgRGF0ZSAtIFJvYmxveExhdW5jaC50aW1lci5nZXRUaW1lKCksIHRoaXMuX3JlcG9ydER1cmF0aW9uKGksIFwiU3VjY2Vzc1wiKTtcbiAgICAgICAgZWxzZSBpZiAobi5zdGF0dXMgPCAyIHx8IG4uc3RhdHVzID09PSA2KSB7XG4gICAgICAgICAgICB2YXIgZiA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5fb25HYW1lU3RhdHVzKG4pXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlID0gZnVuY3Rpb24obiwgdCkge1xuICAgICAgICAgICAgICAgICAgICB0Ll9vbkdhbWVFcnJvcihuKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbyA9IHRoaXMsXG4gICAgICAgICAgICAgICAgdSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBSb2Jsb3hQbGFjZUxhdW5jaGVyU2VydmljZS5DaGVja0dhbWVKb2JTdGF0dXMobi5qb2JJZCwgZiwgZSwgbylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQodSwgMmUzKVxuICAgICAgICB9IGVsc2Ugbi5zdGF0dXMgPT09IDQgJiYgKHQgPSArbmV3IERhdGUgLSBSb2Jsb3hMYXVuY2gudGltZXIuZ2V0VGltZSgpLCB0aGlzLl9yZXBvcnREdXJhdGlvbih0LCBcIkZhaWx1cmVcIikpXG4gICAgfSxcbiAgICBfdXBkYXRlU3RhdHVzOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIE1hZFN0YXR1cy5ydW5uaW5nIHx8IChNYWRTdGF0dXMuaW5pdCgkKHRoaXMuX3BvcHVwKS5maW5kKFwiLk1hZFN0YXR1c0ZpZWxkXCIpLCAkKHRoaXMuX3BvcHVwKS5maW5kKFwiLk1hZFN0YXR1c0JhY2tCdWZmZXJcIiksIDJlMywgODAwKSwgTWFkU3RhdHVzLnN0YXJ0KCkpO1xuICAgICAgICBzd2l0Y2ggKG4pIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICBNYWRTdGF0dXMubWFudWFsVXBkYXRlKFwiQSBzZXJ2ZXIgaXMgbG9hZGluZyB0aGUgZ2FtZS4uLlwiLCAhMCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgICAgTWFkU3RhdHVzLm1hbnVhbFVwZGF0ZShcIlRoZSBzZXJ2ZXIgaXMgcmVhZHkuIEpvaW5pbmcgdGhlIGdhbWUuLi5cIiwgITApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICAgIE1hZFN0YXR1cy5tYW51YWxVcGRhdGUoXCJKb2luaW5nIGdhbWVzIGlzIHRlbXBvcmFyaWx5IGRpc2FibGVkIHdoaWxlIHdlIHVwZ3JhZGUuIFBsZWFzZSB0cnkgYWdhaW4gc29vbi5cIiwgITEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICAgIE1hZFN0YXR1cy5tYW51YWxVcGRhdGUoXCJBbiBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci5cIiwgITEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgIE1hZFN0YXR1cy5tYW51YWxVcGRhdGUoXCJUaGUgZ2FtZSB5b3UgcmVxdWVzdGVkIGhhcyBlbmRlZC5cIiwgITEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgICAgIE1hZFN0YXR1cy5tYW51YWxVcGRhdGUoXCJUaGUgZ2FtZSB5b3UgcmVxdWVzdGVkIGlzIGN1cnJlbnRseSBmdWxsLiBXYWl0aW5nIGZvciBhbiBvcGVuaW5nLi4uXCIsICEwLCAhMSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgICAgICAgTWFkU3RhdHVzLm1hbnVhbFVwZGF0ZShcIlJvYmxveCBpcyB1cGRhdGluZy4gUGxlYXNlIHdhaXQuLi5cIiwgITApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSA4OlxuICAgICAgICAgICAgICAgIE1hZFN0YXR1cy5tYW51YWxVcGRhdGUoXCJSZXF1ZXN0aW5nIGEgc2VydmVyXCIsICEwKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgTWFkU3RhdHVzLnN0b3AoXCJDb25uZWN0aW5nIHRvIFBsYXllcnMuLi5cIilcbiAgICAgICAgfVxuICAgICAgICAkKHRoaXMuX3BvcHVwKS5maW5kKFwiLk1hZFN0YXR1c1N0YXJ0aW5nXCIpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpLCAkKHRoaXMuX3BvcHVwKS5maW5kKFwiLk1hZFN0YXR1c1NwaW5uZXJcIikuY3NzKFwidmlzaWJpbGl0eVwiLCBuID09PSAzIHx8IG4gPT09IDQgfHwgbiA9PT0gNSA/IFwiaGlkZGVuXCIgOiBcInZpc2libGVcIilcbiAgICB9LFxuICAgIF9vbkdhbWVFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVN0YXR1cyg0KVxuICAgIH0sXG4gICAgX3N0YXJ0VXBkYXRlUG9sbGluZzogZnVuY3Rpb24obikge1xuICAgICAgICB2YXIgdCwgaTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChSb2Jsb3hMYXVuY2guc3RhdGUgPSBSb2Jsb3hMYXVuY2hTdGF0ZXMuVXBncmFkaW5nLCB0ID0gUm9ibG94LkNsaWVudC5DcmVhdGVMYXVuY2hlcighMCksIGkgPSB3aW5kb3cuQWN0aXZlWE9iamVjdCA/IHQuSXNVcFRvRGF0ZSA6IHQuR2V0X0lzVXBUb0RhdGUoKSwgaSB8fCBpID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0LlByZVN0YXJ0R2FtZSgpXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgICAgICBSb2Jsb3guQ2xpZW50LlJlbGVhc2VMYXVuY2hlcih0LCAhMCwgITEpLCBSb2Jsb3hMYXVuY2guc3RhdGUgPSBSb2Jsb3hMYXVuY2hTdGF0ZXMuU3RhcnRpbmdTZXJ2ZXIsIG4oKTtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhciBmID0gZnVuY3Rpb24odCwgaSwgcikge1xuICAgICAgICAgICAgICAgICAgICByLl9vblVwZGF0ZVN0YXR1cyh0LCBpLCBuKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdSA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdC5fb25VcGRhdGVFcnJvcihuKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgciA9IHRoaXM7XG4gICAgICAgICAgICB0aGlzLkNoZWNrVXBkYXRlU3RhdHVzKGYsIHUsIHQsIG4sIHIpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIFJvYmxveC5DbGllbnQuUmVsZWFzZUxhdW5jaGVyKHQsICEwLCAhMSksIG4oKVxuICAgICAgICB9XG4gICAgfSxcbiAgICBfb25VcGRhdGVTdGF0dXM6IGZ1bmN0aW9uKG4sIHQsIGkpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jYW5jZWxsZWQpXG4gICAgICAgICAgICBpZiAodGhpcy5fdXBkYXRlU3RhdHVzKG4pLCBuID09PSA4KSBSb2Jsb3guQ2xpZW50LlJlbGVhc2VMYXVuY2hlcih0LCAhMCwgITApLCBSb2Jsb3guQ2xpZW50LlJlZnJlc2goKSwgUm9ibG94TGF1bmNoLnN0YXRlID0gUm9ibG94TGF1bmNoU3RhdGVzLlN0YXJ0aW5nU2VydmVyLCBpKCk7XG4gICAgICAgICAgICBlbHNlIGlmIChuID09PSA3KSB7XG4gICAgICAgICAgICB2YXIgZiA9IGZ1bmN0aW9uKG4sIHQsIHIpIHtcbiAgICAgICAgICAgICAgICAgICAgci5fb25VcGRhdGVTdGF0dXMobiwgdCwgaSlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGUgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgICAgICAgICAgICAgIHQuX29uVXBkYXRlRXJyb3IobilcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHIgPSB0aGlzLFxuICAgICAgICAgICAgICAgIHUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgci5DaGVja1VwZGF0ZVN0YXR1cyhmLCBlLCB0LCBpLCByKVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dCh1LCAyZTMpXG4gICAgICAgIH0gZWxzZSBhbGVydChcIlVua25vd24gc3RhdHVzIGZyb20gQ2hlY2tVcGRhdGVTdGF0dXNcIilcbiAgICB9LFxuICAgIF9vblVwZGF0ZUVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU3RhdHVzKDIpXG4gICAgfSxcbiAgICBDaGVja1VwZGF0ZVN0YXR1czogZnVuY3Rpb24obiwgdCwgaSwgciwgdSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGkuUHJlU3RhcnRHYW1lKCksIHdpbmRvdy5BY3RpdmVYT2JqZWN0KSB2YXIgZiA9IGkuSXNVcFRvRGF0ZTtcbiAgICAgICAgICAgIGVsc2UgZiA9IGkuR2V0X0lzVXBUb0RhdGUoKTtcbiAgICAgICAgICAgIGYgfHwgZiA9PT0gdW5kZWZpbmVkID8gbig4LCBpLCB1KSA6IG4oNywgaSwgdSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbig4LCBpLCB1KVxuICAgICAgICB9XG4gICAgfSxcbiAgICBSZXF1ZXN0R2FtZTogZnVuY3Rpb24obiwgdCkge1xuICAgICAgICB2YXIgcjtcbiAgICAgICAgdGhpcy5fc2hvd0RpYWxvZygpO1xuICAgICAgICB2YXIgZiA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICB0Ll9vbkdhbWVTdGF0dXMobilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1ID0gZnVuY3Rpb24obiwgdCkge1xuICAgICAgICAgICAgICAgIHQuX29uR2FtZUVycm9yKG4pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZSA9IHRoaXMsXG4gICAgICAgICAgICBpID0gITE7XG4gICAgICAgIHJldHVybiB0eXBlb2YgUGFydHkgIT0gXCJ1bmRlZmluZWRcIiAmJiB0eXBlb2YgUGFydHkuQW1JTGVhZGVyID09IFwiZnVuY3Rpb25cIiAmJiAoaSA9IFBhcnR5LkFtSUxlYWRlcigpKSwgciA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgUm9ibG94UGxhY2VMYXVuY2hlclNlcnZpY2UuUmVxdWVzdEdhbWUobiwgaSwgdCwgZiwgdSwgZSlcbiAgICAgICAgfSwgdGhpcy5fc3RhcnRVcGRhdGVQb2xsaW5nKHIpLCAhMVxuICAgIH0sXG4gICAgUmVxdWVzdFBsYXlXaXRoUGFydHk6IGZ1bmN0aW9uKG4sIHQsIGkpIHtcbiAgICAgICAgdGhpcy5fc2hvd0RpYWxvZygpO1xuICAgICAgICB2YXIgZiA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICB0Ll9vbkdhbWVTdGF0dXMobilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlID0gZnVuY3Rpb24obiwgdCkge1xuICAgICAgICAgICAgICAgIHQuX29uR2FtZUVycm9yKG4pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgciA9IHRoaXMsXG4gICAgICAgICAgICB1ID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgUm9ibG94UGxhY2VMYXVuY2hlclNlcnZpY2UuUmVxdWVzdFBsYXlXaXRoUGFydHkobiwgdCwgaSwgZiwgZSwgcilcbiAgICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydFVwZGF0ZVBvbGxpbmcodSksICExXG4gICAgfSxcbiAgICBSZXF1ZXN0R3JvdXBCdWlsZEdhbWU6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgdGhpcy5fc2hvd0RpYWxvZygpO1xuICAgICAgICB2YXIgciA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICB0Ll9vbkdhbWVTdGF0dXMobiwgITApXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdSA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICB0Ll9vbkdhbWVFcnJvcihuKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHQgPSB0aGlzLFxuICAgICAgICAgICAgaSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIFJvYmxveFBsYWNlTGF1bmNoZXJTZXJ2aWNlLlJlcXVlc3RHcm91cEJ1aWxkR2FtZShuLCByLCB1LCB0KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0VXBkYXRlUG9sbGluZyhpKSwgITFcbiAgICB9LFxuICAgIFJlcXVlc3RGb2xsb3dVc2VyOiBmdW5jdGlvbihuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dEaWFsb2coKTtcbiAgICAgICAgdmFyIHIgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgICAgICAgICAgdC5fb25HYW1lU3RhdHVzKG4pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdSA9IGZ1bmN0aW9uKG4sIHQpIHtcbiAgICAgICAgICAgICAgICB0Ll9vbkVycm9yKG4pXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdCA9IHRoaXMsXG4gICAgICAgICAgICBpID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgUm9ibG94UGxhY2VMYXVuY2hlclNlcnZpY2UuUmVxdWVzdEZvbGxvd1VzZXIobiwgciwgdSwgdClcbiAgICAgICAgICAgIH07XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydFVwZGF0ZVBvbGxpbmcoaSksICExXG4gICAgfSxcbiAgICBSZXF1ZXN0R2FtZUpvYjogZnVuY3Rpb24obiwgdCwgaSkge1xuICAgICAgICB0aGlzLl9zaG93RGlhbG9nKCk7XG4gICAgICAgIHZhciBmID0gZnVuY3Rpb24obiwgdCkge1xuICAgICAgICAgICAgICAgIHQuX29uR2FtZVN0YXR1cyhuKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGUgPSBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgICAgICAgICAgdC5fb25HYW1lRXJyb3IobilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByID0gdGhpcyxcbiAgICAgICAgICAgIHUgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBSb2Jsb3hQbGFjZUxhdW5jaGVyU2VydmljZS5SZXF1ZXN0R2FtZUpvYihuLCB0LCBpLCBmLCBlLCByKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXJ0VXBkYXRlUG9sbGluZyh1KSwgITFcbiAgICB9LFxuICAgIENhbmNlbExhdW5jaDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYW5jZWxsZWQgPSAhMCwgJC5tb2RhbC5jbG9zZSgpLCAhMVxuICAgIH0sXG4gICAgZGlzcG9zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIFJCWC5QbGFjZUxhdW5jaGVyLmNhbGxCYXNlTWV0aG9kKHRoaXMsIFwiZGlzcG9zZVwiKVxuICAgIH1cbn07XG5cbjsgLy8vIFZpZGVvUHJlUm9sbC5qc1xuZnVuY3Rpb24gb3BlblZpZGVvUHJlcm9sbDIobikge1xuICAgIFJvYmxveC5WaWRlb1ByZVJvbGwudGVzdChuKVxufVxuXG5mdW5jdGlvbiBmbGFzaENoZWNrKG4pIHtcbiAgICB2YXIgaSA9ICExLFxuICAgICAgICB0LCByO1xuICAgIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgdHJ5IHtcbiAgICAgICAgdCA9IG5ldyBBY3RpdmVYT2JqZWN0KFwiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guXCIgKyBuKSwgaSA9ICEwXG4gICAgfSBjYXRjaCAodSkge30gZWxzZSBuYXZpZ2F0b3IucGx1Z2lucyAmJiBuYXZpZ2F0b3IubWltZVR5cGVzLmxlbmd0aCA+IDAgJiYgKHQgPSBuYXZpZ2F0b3IucGx1Z2luc1tcIlNob2Nrd2F2ZSBGbGFzaFwiXSwgdCAmJiAociA9IG5hdmlnYXRvci5wbHVnaW5zW1wiU2hvY2t3YXZlIEZsYXNoXCJdLmRlc2NyaXB0aW9uLnJlcGxhY2UoLy4qXFxzKFxcZCtcXC5cXGQrKS4qLywgXCIkMVwiKSwgciA+PSBuICYmIChpID0gITApKSk7XG4gICAgcmV0dXJuIGlcbn1cbnR5cGVvZiBSb2Jsb3ggPT0gXCJ1bmRlZmluZWRcIiAmJiAoUm9ibG94ID0ge30pLCBSb2Jsb3guVmlkZW9QcmVSb2xsID0ge1xuICAgIG5ld1ZhbHVlOiBcIlwiLFxuICAgIHNob3dWaWRlb1ByZVJvbGw6ICExLFxuICAgIHZpZGVvSW5pdGlhbGl6ZWQ6ICExLFxuICAgIHZpZGVvU3RhcnRlZDogITEsXG4gICAgdmlkZW9Db21wbGV0ZWQ6ICExLFxuICAgIHZpZGVvU2tpcHBlZDogITEsXG4gICAgdmlkZW9DYW5jZWxsZWQ6ICExLFxuICAgIHZpZGVvRXJyb3JlZDogITEsXG4gICAgdmlkZW9PcHRpb25zOiB7XG4gICAgICAgIGtleTogXCJpbnRlZ3JhdGlvbl90ZXN0XCIsXG4gICAgICAgIGNvbXBhbmlvbklkOiBcInZpZGVvUHJlcm9sbENvbXBhbmlvbkFkXCJcbiAgICB9LFxuICAgIG15dnBhaWRhZDogbnVsbCxcbiAgICBsb2FkaW5nQmFyTWF4VGltZTogM2U0LFxuICAgIGxvYWRpbmdCYXJDdXJyZW50VGltZTogMCxcbiAgICBsb2FkaW5nQmFySW50ZXJ2YWxJRDogMCxcbiAgICBsb2FkaW5nQmFySUQ6IFwidmlkZW9QcmVyb2xsTG9hZGluZ0JhclwiLFxuICAgIGxvYWRpbmdCYXJJbm5lcklEOiBcInZpZGVvUHJlcm9sbExvYWRpbmdCYXJDb21wbGV0ZWRcIixcbiAgICBsb2FkaW5nQmFyUGVyY2VudGFnZUlEOiBcInZpZGVvUHJlcm9sbExvYWRpbmdQZXJjZW50XCIsXG4gICAgdmlkZW9Mb2FkaW5nVGltZW91dDogN2UzLFxuICAgIHZpZGVvUGxheWluZ1RpbWVvdXQ6IDIzZTMsXG4gICAgdmlkZW9Mb2dOb3RlOiBcIlwiLFxuICAgIGxvZ3NFbmFibGVkOiAhMSxcbiAgICBleGNsdWRlZFBsYWNlSWRzOiBcIlwiLFxuICAgIHNwZWNpZmljQWRPblBsYWNlUGFnZUVuYWJsZWQ6ICExLFxuICAgIHNwZWNpZmljQWRPblBsYWNlUGFnZUlkOiAwLFxuICAgIHNwZWNpZmljQWRPblBsYWNlUGFnZUNhdGVnb3J5OiBcIlwiLFxuICAgIGNoZWNrRWxpZ2liaWxpdHk6IGZ1bmN0aW9uKCkge1xuICAgICAgICBSb2Jsb3guVmlkZW9QcmVSb2xsLnNob3dWaWRlb1ByZVJvbGwgJiYgKGZsYXNoQ2hlY2soOCkgPyB0eXBlb2YgX19hZGFwdHZfXyA9PSBcInVuZGVmaW5lZFwiID8gKFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2dOb3RlID0gXCJOb0FkYXBUdlwiLCBSb2Jsb3guVmlkZW9QcmVSb2xsLnNob3dWaWRlb1ByZVJvbGwgPSAhMSkgOiBSb2Jsb3guQ2xpZW50LklzUm9ibG94SW5zdGFsbGVkKCkgPyBSb2Jsb3guQ2xpZW50LmlzSURFKCkgPyAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0xvZ05vdGUgPSBcIlJvYmxveFN0dWRpb1wiLCBSb2Jsb3guVmlkZW9QcmVSb2xsLnNob3dWaWRlb1ByZVJvbGwgPSAhMSkgOiBSb2Jsb3guQ2xpZW50LmlzUm9ibG94QnJvd3NlcigpID8gKFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2dOb3RlID0gXCJSb2Jsb3hQbGF5ZXJcIiwgUm9ibG94LlZpZGVvUHJlUm9sbC5zaG93VmlkZW9QcmVSb2xsID0gITEpIDogd2luZG93LmNocm9tZSAmJiB3aW5kb3cubG9jYXRpb24uaGFzaCA9PSBcIiNjaHJvbWVJbnN0YWxsXCIgJiYgKFJvYmxveC5WaWRlb1ByZVJvbGwuc2hvd1ZpZGVvUHJlUm9sbCA9ICExKSA6IFJvYmxveC5WaWRlb1ByZVJvbGwuc2hvd1ZpZGVvUHJlUm9sbCA9ICExIDogKFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2dOb3RlID0gXCJOb0ZsYXNoXCIsIFJvYmxveC5WaWRlb1ByZVJvbGwuc2hvd1ZpZGVvUHJlUm9sbCA9ICExKSlcbiAgICB9LFxuICAgIGlzRXhjbHVkZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgdCwgbjtcbiAgICAgICAgaWYgKFJvYmxveC5WaWRlb1ByZVJvbGwuc2hvd1ZpZGVvUHJlUm9sbCAmJiBSb2Jsb3guVmlkZW9QcmVSb2xsLmV4Y2x1ZGVkUGxhY2VJZHMgIT09IFwiXCIgJiYgKHQgPSBSb2Jsb3guVmlkZW9QcmVSb2xsLmV4Y2x1ZGVkUGxhY2VJZHMuc3BsaXQoXCIsXCIpLCB0eXBlb2YgcGxheV9wbGFjZUlkICE9IFwidW5kZWZpbmVkXCIpKVxuICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IHQubGVuZ3RoOyBuKyspXG4gICAgICAgICAgICAgICAgaWYgKHBsYXlfcGxhY2VJZCA9PSB0W25dKSByZXR1cm4gUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0xvZ05vdGUgPSBcIkV4Y2x1ZGVkUGxhY2VcIiwgITA7XG4gICAgICAgIHJldHVybiAhMVxuICAgIH0sXG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgaSwgciwgdCwgbjtcbiAgICAgICAgdGhpcy52aWRlb0luaXRpYWxpemVkID0gITAsIHRoaXMudmlkZW9TdGFydGVkID0gITEsIHRoaXMudmlkZW9DYW5jZWxsZWQgPSAhMSwgdGhpcy52aWRlb0NvbXBsZXRlZCA9ICExLCB0aGlzLnZpZGVvU2tpcHBlZCA9ICExLCB0aGlzLmxvYWRpbmdCYXJDdXJyZW50VGltZSA9IDAsIHRoaXMudmlkZW9Mb2dOb3RlID0gXCJcIiwgUm9ibG94LlZpZGVvUHJlUm9sbC5zcGVjaWZpY0FkT25QbGFjZVBhZ2VFbmFibGVkICYmIHR5cGVvZiBwbGF5X3BsYWNlSWQgIT0gXCJ1bmRlZmluZWRcIiAmJiAoaSA9IFwiLFwiICsgUm9ibG94LlZpZGVvUHJlUm9sbC5zcGVjaWZpY0FkT25QbGFjZVBhZ2VDYXRlZ29yeSwgcGxheV9wbGFjZUlkID09IFJvYmxveC5WaWRlb1ByZVJvbGwuc3BlY2lmaWNBZE9uUGxhY2VQYWdlSWQgJiYgUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb09wdGlvbnMuY2F0ZWdvcmllcy5pbmRleE9mKGkpID09IC0xICYmIChSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvT3B0aW9ucy5jYXRlZ29yaWVzICs9IGkpKSwgciA9IF9fYWRhcHR2X18sIHRoaXMubXl2cGFpZGFkID0gbmV3IHIuYWRzLnZwYWlkLlZQQUlEQWQoXCJ2aWRlb1ByZXJvbGxNYWluRGl2XCIpLCB0ID0gMWUzLCBMb2FkaW5nQmFyLmluaXQodGhpcy5sb2FkaW5nQmFySUQsIHRoaXMubG9hZGluZ0JhcklubmVySUQsIHRoaXMubG9hZGluZ0JhclBlcmNlbnRhZ2VJRCksIHRoaXMubG9hZGluZ0JhckludGVydmFsSUQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIFJvYmxveC5WaWRlb1ByZVJvbGwubG9hZGluZ0JhckN1cnJlbnRUaW1lICs9IHQsIExvYWRpbmdCYXIudXBkYXRlKFJvYmxveC5WaWRlb1ByZVJvbGwubG9hZGluZ0JhcklELCBSb2Jsb3guVmlkZW9QcmVSb2xsLmxvYWRpbmdCYXJDdXJyZW50VGltZSAvIFJvYmxveC5WaWRlb1ByZVJvbGwubG9hZGluZ0Jhck1heFRpbWUpXG4gICAgICAgIH0sIHQpLCBuID0gci5hZHMudnBhaWQuVlBBSURFdmVudDtcbiAgICAgICAgdGhpcy5teXZwYWlkYWQub24obi5BZExvYWRlZCwgZnVuY3Rpb24obikge1xuICAgICAgICAgICAgUm9ibG94LlZpZGVvUHJlUm9sbC5fb25WaWRlb0xvYWRlZChuKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5teXZwYWlkYWQub24obi5BZFN0YXJ0ZWQsIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIFJvYmxveC5WaWRlb1ByZVJvbGwuX29uVmlkZW9TdGFydChuKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5teXZwYWlkYWQub24obi5BZFN0b3BwZWQsIGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgIFJvYmxveC5WaWRlb1ByZVJvbGwuX29uVmlkZW9Db21wbGV0ZShuKVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5teXZwYWlkYWQub24obi5BZEVycm9yLCBmdW5jdGlvbihuKSB7XG4gICAgICAgICAgICBSb2Jsb3guVmlkZW9QcmVSb2xsLl9vblZpZGVvRXJyb3IobilcbiAgICAgICAgfSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLm15dnBhaWRhZC5pbml0QWQoMzkxLCAzMTIsIHRoaXMudmlkZW9PcHRpb25zKVxuICAgICAgICB9IGNhdGNoICh1KSB7XG4gICAgICAgICAgICBmKClcbiAgICAgICAgfVxuICAgIH0sXG4gICAgZXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICBjbGVhckludGVydmFsKGxvYWRpbmdCYXJJbnRlcnZhbClcbiAgICB9LFxuICAgIGNhbmNlbDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMudmlkZW9DYW5jZWxsZWQgPSAhMCwgJC5tb2RhbC5jbG9zZSgpXG4gICAgfSxcbiAgICBza2lwOiBmdW5jdGlvbigpIHtcbiAgICAgICAgdGhpcy52aWRlb0NvbXBsZXRlZCA9ICEwLCB0aGlzLnZpZGVvU2tpcHBlZCA9ICEwLCB0aGlzLnNob3dWaWRlb1ByZVJvbGwgPSAhMVxuICAgIH0sXG4gICAgY2xvc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICBNYWRTdGF0dXMucnVubmluZyAmJiBNYWRTdGF0dXMuc3RvcChcIlwiKSwgUm9ibG94TGF1bmNoLmxhdW5jaGVyICYmIChSb2Jsb3hMYXVuY2gubGF1bmNoZXIuX2NhbmNlbGxlZCA9ICEwKSwgY2xlYXJJbnRlcnZhbCh0aGlzLmxvYWRpbmdCYXJJbnRlcnZhbElEKSwgTG9hZGluZ0Jhci5kaXNwb3NlKHRoaXMubG9hZGluZ0JhcklEKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubXl2cGFpZGFkLnN0b3BBZCgpXG4gICAgICAgIH0gY2F0Y2ggKG4pIHt9XG4gICAgICAgIHRoaXMuaXNQbGF5aW5nKCkgJiYgKHRoaXMudmlkZW9DYW5jZWxsZWQgPSAhMCksICQubW9kYWwuY2xvc2UoKSwgdGhpcy5sb2dWaWRlb1ByZVJvbGwoKVxuICAgIH0sXG4gICAgX29uVmlkZW9FcnJvcjogZnVuY3Rpb24gZigpIHtcbiAgICAgICAgdGhpcy52aWRlb0NvbXBsZXRlZCA9ICEwLCB0aGlzLnZpZGVvRXJyb3JlZCA9ICEwXG4gICAgfSxcbiAgICBfb25WaWRlb0xvYWRlZDogZnVuY3Rpb24obikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5teXZwYWlkYWQuc3RhcnRBZCgpXG4gICAgICAgIH0gY2F0Y2ggKHQpIHtcbiAgICAgICAgICAgIGYobilcbiAgICAgICAgfVxuICAgIH0sXG4gICAgX29uVmlkZW9TdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHRoaXMudmlkZW9TdGFydGVkID0gITBcbiAgICB9LFxuICAgIF9vblZpZGVvQ29tcGxldGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICB0aGlzLnZpZGVvU3RhcnRlZCAmJiB0aGlzLnZpZGVvQ2FuY2VsbGVkID09ICExICYmICh0aGlzLnZpZGVvQ29tcGxldGVkID0gITAsIHRoaXMuc2hvd1ZpZGVvUHJlUm9sbCA9ICExLCB0aGlzLm5ld1ZhbHVlICE9IFwiXCIgJiYgJC5jb29raWUoXCJSQlhWUFJcIiwgdGhpcy5uZXdWYWx1ZSwgMTgwKSlcbiAgICB9LFxuICAgIGxvZ1ZpZGVvUHJlUm9sbDogZnVuY3Rpb24oKSB7XG4gICAgICAgIGlmIChSb2Jsb3guVmlkZW9QcmVSb2xsLmxvZ3NFbmFibGVkKSB7XG4gICAgICAgICAgICB2YXIgbiA9IFwiXCI7XG4gICAgICAgICAgICBpZiAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0NvbXBsZXRlZCkgbiA9IFwiQ29tcGxldGVcIiwgUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0xvZ05vdGUgPT0gXCJcIiAmJiAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0xvZ05vdGUgPSBcIk5vVGltZW91dFwiKSwgUm9ibG94LlZpZGVvUHJlUm9sbC5sb2dzRW5hYmxlZCA9ICExO1xuICAgICAgICAgICAgZWxzZSBpZiAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0NhbmNlbGxlZCkgbiA9IFwiQ2FuY2VsbGVkXCIsIFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2dOb3RlID0gUm9ibG94TGF1bmNoLnN0YXRlO1xuICAgICAgICAgICAgZWxzZSBpZiAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0luaXRpYWxpemVkID09ICExICYmIFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2dOb3RlICE9IFwiXCIpIG4gPSBcIkZhaWxlZFwiLCBSb2Jsb3guVmlkZW9QcmVSb2xsLmxvZ3NFbmFibGVkID0gITE7XG4gICAgICAgICAgICBlbHNlIHJldHVybjtcbiAgICAgICAgICAgIEdvb2dsZUFuYWx5dGljc0V2ZW50cy5GaXJlRXZlbnQoW1wiUHJlUm9sbFwiLCBuLCBSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvTG9nTm90ZV0pXG4gICAgICAgIH1cbiAgICB9LFxuICAgIGlzUGxheWluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvSW5pdGlhbGl6ZWQgPyAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0luaXRpYWxpemVkICYmICFSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvU3RhcnRlZCAmJiBSb2Jsb3guVmlkZW9QcmVSb2xsLmxvYWRpbmdCYXJDdXJyZW50VGltZSA+IFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2FkaW5nVGltZW91dCAmJiAoUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb0NvbXBsZXRlZCA9ICEwLCBSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvTG9nTm90ZSA9IFwiTG9hZGluZ1RpbWVvdXRcIiksIFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9TdGFydGVkICYmICFSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvQ29tcGxldGVkICYmIFJvYmxveC5WaWRlb1ByZVJvbGwubG9hZGluZ0JhckN1cnJlbnRUaW1lID4gUm9ibG94LlZpZGVvUHJlUm9sbC52aWRlb1BsYXlpbmdUaW1lb3V0ICYmIChSb2Jsb3guVmlkZW9QcmVSb2xsLnZpZGVvQ29tcGxldGVkID0gITAsIFJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Mb2dOb3RlID0gXCJQbGF5aW5nVGltZW91dFwiKSwgIVJvYmxveC5WaWRlb1ByZVJvbGwudmlkZW9Db21wbGV0ZWQpIDogITFcbiAgICB9LFxuICAgIGNvcnJlY3RJRU1vZGFsUG9zaXRpb246IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgaWYgKG4uY29udGFpbmVyLmlubmVySGVpZ2h0KCkgPD0gMzApIHtcbiAgICAgICAgICAgIHZhciBpID0gJChcIiN2aWRlb1ByZXJvbGxQYW5lbFwiKSxcbiAgICAgICAgICAgICAgICB0ID0gLU1hdGguZmxvb3IoaS5pbm5lckhlaWdodCgpIC8gMik7XG4gICAgICAgICAgICBpLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgICAgICAgICAgICAgICB0b3A6IHQgKyBcInB4XCJcbiAgICAgICAgICAgIH0pLCBuLmNvbnRhaW5lci5maW5kKFwiLlZwckNsb3NlQnV0dG9uXCIpLmNzcyh7XG4gICAgICAgICAgICAgICAgdG9wOiB0IC0gMTAgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgXCJ6LWluZGV4XCI6IFwiMTAwM1wiXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfSxcbiAgICB0ZXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgX3BvcHVwT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGVzY0Nsb3NlOiAhMCxcbiAgICAgICAgICAgIG9wYWNpdHk6IDgwLFxuICAgICAgICAgICAgb3ZlcmxheUNzczoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogXCIjMDAwXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvblNob3c6IGZ1bmN0aW9uKG4pIHtcbiAgICAgICAgICAgICAgICBSb2Jsb3guVmlkZW9QcmVSb2xsLmNvcnJlY3RJRU1vZGFsUG9zaXRpb24obiksIFJvYmxveC5WaWRlb1ByZVJvbGwuc3RhcnQoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2xvc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIFJvYmxveC5WaWRlb1ByZVJvbGwuY2xvc2UoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNsb3NlSFRNTDogJzxhIGhyZWY9XCIjXCIgY2xhc3M9XCJJbWFnZUJ1dHRvbiBjbG9zZUJ0bkNpcmNsZV8zNWggQUJDbG9zZUNpcmNsZSBWcHJDbG9zZUJ1dHRvblwiPjwvYT4nXG4gICAgICAgIH0sICQoXCIjdmlkZW9QcmVyb2xsUGFuZWxcIikubW9kYWwoX3BvcHVwT3B0aW9ucyksIE1hZFN0YXR1cy5ydW5uaW5nIHx8IChNYWRTdGF0dXMuaW5pdCgkKFwiI3ZpZGVvUHJlcm9sbFBhbmVsXCIpLmZpbmQoXCIuTWFkU3RhdHVzRmllbGRcIiksICQoXCIjdmlkZW9QcmVyb2xsUGFuZWxcIikuZmluZChcIi5NYWRTdGF0dXNCYWNrQnVmZmVyXCIpLCAyZTMsIDgwMCksIE1hZFN0YXR1cy5zdGFydCgpKSwgJChcIiN2aWRlb1ByZXJvbGxQYW5lbFwiKS5maW5kKFwiLk1hZFN0YXR1c1N0YXJ0aW5nXCIpLmNzcyhcImRpc3BsYXlcIiwgXCJub25lXCIpLCAkKFwiI3ZpZGVvUHJlcm9sbFBhbmVsXCIpLmZpbmQoXCIuTWFkU3RhdHVzU3Bpbm5lclwiKS5jc3MoXCJ2aXNpYmlsaXR5XCIsIHN0YXR1cyA9PT0gMyB8fCBzdGF0dXMgPT09IDQgfHwgc3RhdHVzID09PSA1ID8gXCJoaWRkZW5cIiA6IFwidmlzaWJsZVwiKVxuICAgIH1cbn07XG52YXIgTG9hZGluZ0JhciA9IHtcbiAgICBiYXJzOiBbXSxcbiAgICBpbml0OiBmdW5jdGlvbihuLCB0LCBpLCByKSB7XG4gICAgICAgIHZhciB1ID0gdGhpcy5nZXQobik7XG4gICAgICAgIHUgPT0gbnVsbCAmJiAodSA9IHt9KSwgdS5iYXJJRCA9IG4sIHUuaW5uZXJCYXJJRCA9IHQsIHUucGVyY2VudGFnZUlEID0gaSwgdHlwZW9mIHIgPT0gXCJ1bmRlZmluZWRcIiAmJiAodS5wZXJjZW50Q29tcGxldGUgPSAwKSwgdGhpcy5iYXJzLnB1c2godSksIHRoaXMudXBkYXRlKG4sIHUucGVyY2VudENvbXBsZXRlKVxuICAgIH0sXG4gICAgZ2V0OiBmdW5jdGlvbihuKSB7XG4gICAgICAgIGZvciAodmFyIHQgPSAwOyB0IDwgdGhpcy5iYXJzLmxlbmd0aDsgdCsrKVxuICAgICAgICAgICAgaWYgKHRoaXMuYmFyc1t0XS5iYXJJRCA9PSBuKSByZXR1cm4gdGhpcy5iYXJzW3RdO1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgIH0sXG4gICAgZGlzcG9zZTogZnVuY3Rpb24obikge1xuICAgICAgICBmb3IgKHZhciB0ID0gMDsgdCA8IHRoaXMuYmFycy5sZW5ndGg7IHQrKykgdGhpcy5iYXJzW3RdLmJhcklEID09IG4gJiYgdGhpcy5iYXJzLnNwbGljZSh0LCAxKVxuICAgIH0sXG4gICAgdXBkYXRlOiBmdW5jdGlvbihuLCB0KSB7XG4gICAgICAgIHZhciBpID0gdGhpcy5nZXQobiksXG4gICAgICAgICAgICB1LCByO1xuICAgICAgICBpICYmICh0ID4gMSAmJiAodCA9IDEpLCB1ID0gJChcIiNcIiArIG4pLndpZHRoKCksIHIgPSBNYXRoLnJvdW5kKHUgKiB0KSwgJChcIiNcIiArIGkuaW5uZXJCYXJJRCkuYW5pbWF0ZSh7XG4gICAgICAgICAgICB3aWR0aDogclxuICAgICAgICB9LCAyMDAsIFwic3dpbmdcIiksIGkucGVyY2VudGFnZUlEICYmICQoXCIjXCIgKyBpLnBlcmNlbnRhZ2VJRCkubGVuZ3RoID4gMCAmJiAkKFwiI1wiICsgaS5wZXJjZW50YWdlSUQpLmh0bWwoTWF0aC5yb3VuZCh0ICogMTAwKSArIFwiJVwiKSwgaS5wZXJjZW50Q29tcGxldGUgPSB0KVxuICAgIH1cbn07XG4vLyBlbmQgcm9ibG94LmpzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/app.js\n"); - -/***/ }), - -/***/ "./resources/sass/app.scss": -/*!*********************************!*\ - !*** ./resources/sass/app.scss ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n// extracted by mini-css-extract-plugin\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9yZXNvdXJjZXMvc2Fzcy9hcHAuc2Nzcz80NzVmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSIsImZpbGUiOiIuL3Jlc291cmNlcy9zYXNzL2FwcC5zY3NzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQge307Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/sass/app.scss\n"); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ result = fn(); -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ "/js/app": 0, -/******/ "css/app": 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ __webpack_require__.O(undefined, ["css/app"], () => (__webpack_require__("./resources/js/app.js"))) -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["css/app"], () => (__webpack_require__("./resources/sass/app.scss"))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ -/******/ })() -; \ No newline at end of file diff --git a/public/js/servers.js b/public/js/servers.js deleted file mode 100644 index 0497a6e..0000000 --- a/public/js/servers.js +++ /dev/null @@ -1,25 +0,0 @@ -function joinServer(id) -{ - var button = document.getElementById('join-server-' + id); - $(button).removeClass("btn-success"); - $(button).addClass("btn-secondary"); - button.setAttribute("disabled", "disabled"); - button.innerHTML = " Joining..."; - $.get("/client/generate/" + id, function(data, status) - { - if (status == "success") - { - open("tadahlauncher:" + data, "_self") - } - else - { - alert("Failed to generate token. Try again later."); - } - }); - setTimeout(function() - { - $(button).removeClass("btn-secondary"); - $(button).addClass("btn-success"); - button.innerHTML = " Play"; - }, 5000); -} \ No newline at end of file diff --git a/public/mix-manifest.json b/public/mix-manifest.json deleted file mode 100644 index 2d60117..0000000 --- a/public/mix-manifest.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "/js/app.js": "/js/app.js", - "/css/app.css": "/css/app.css" -} diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index eb05362..0000000 --- a/public/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: diff --git a/public/web.config b/public/web.config deleted file mode 100644 index 323482f..0000000 --- a/public/web.config +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/css/app.css b/resources/css/app.css deleted file mode 100644 index e69de29..0000000 diff --git a/resources/js/app.js b/resources/js/app.js deleted file mode 100644 index 0e9b7a4..0000000 --- a/resources/js/app.js +++ /dev/null @@ -1,2097 +0,0 @@ -//require('./bootstrap'); - -; /// files: roblox.js, jquery.json-2.2.js, jquery.simplemodal-1.3.5.js, jquery.tipsy.js, AjaxAvatarThumbnail.js, extensions/string.js, StringTruncator.min.js, json2.min.js, webkit.js, GoogleAnalytics/GoogleAnalyticsEvents.js, MasterPageUI.js, jquery.cookie.js, jquery.jsoncookie.js, XsrfToken.js, RobloxEventManager.js, RobloxEventListener.js, KontagentEventListener.js, GoogleEventListener.js, MongoEventListener.js, SearchVisionListener.js, SiteTouchEvent.js, JSErrorTracker.js, Studio2Alert.js, ClientInstaller.js, InstallationInstructions.js, MadStatus.js, PlaceLauncher.js, VideoPreRoll.js - -; /// roblox.js -(function(n, t) { - function p(n, i) { - var r = i.split("."); - for (i = r.shift(); r.length > 0; n = n[i], i = r.shift()) - if (n[i] === t) return t; - return n[i] - } - - function k(n, i, r) { - var u = i.split("."); - for (i = u.shift(); u.length > 0; n = n[i], i = u.shift()) n[i] === t && (n[i] = {}); - n[i] = r - } - - function nt(n, t) { - var i = f.createElement("link"); - i.href = n, i.rel = "stylesheet", i.type = "text/css", u.parentNode.insertBefore(i, u), t() - } - - function g(n, t) { - var i = f.createElement("script"); - i.type = "text/javascript", i.src = n, i.onload = i.onreadystatechange = function() { - i.readyState && i.readyState != "loaded" && i.readyState != "complete" || (t(), i.onload = i.onreadystatechange = null) - }, u.parentNode.insertBefore(i, u) - } - - function d(n) { - return n.split(".").pop().split("?").shift() - } - - function o(n) { - return n.indexOf(".js") < 0 ? n : n.indexOf(r.modulePath) >= 0 ? n.split(r.modulePath).pop().split(".js").shift().replace("/", ".") : n - } - - function v(n) { - var t, i; - return t = n.indexOf(".js") >= 0 || n.indexOf(".css") >= 0 ? n : r.baseUrl + r.modulePath + n.replace(".", "/") + ".js", i = r.versions[t] || 1, t + "?v=" + i - } - - function s(n) { - for (var r, u = [], i = 0; i < n.length; i++) r = p(Roblox, o(n[i])), r !== t && u.push(r); - return u - } - - function e(n) { - var t = i[n]; - if (t.loaded && t.depsLoaded) - while (t.listeners.length > 0) t.listeners.shift()() - } - - function a(n, u) { - var f, s, h; - if (!b(n) || r.externalResources.toString().indexOf(n) >= 0) return u(); - f = o(n), i[f] === t ? (i[f] = { - loaded: !1, - depsLoaded: !0, - listeners: [] - }, i[f].listeners.push(u), s = v(f), h = d(s) == "css" ? nt : g, h(s, function() { - i[f].loaded = !0, e(f) - })) : (i[f].listeners.push(u), e(f)) - } - - function h(n, t) { - var r = n.shift(), - i = n.length == 0 ? t : function() { - h(n, t) - }; - a(r, i) - } - - function l(n, t) { - c(n) || (n = [n]); - var i = function() { - t.apply(null, s(n)) - }; - h(n.slice(0), i) - } - - function y(n, t, r) { - w(t) ? (r = t, t = []) : c(t) || (t = [t]), i[n] = i[n] || { - loaded: !0, - listeners: [] - }, i[n].depsLoaded = !1, i[n].listeners.unshift(function() { - k(Roblox, n, r.apply(null, s(t))) - }), l(t, function() { - i[n].depsLoaded = !0, e(n) - }) - } - var f = n.document, - u = f.getElementsByTagName("script")[0], - b = function(n) { - return typeof n == "string" - }, - c = function(n) { - return Object.prototype.toString.call(n) == "[object Array]" - }, - w = function(n) { - return Object.prototype.toString.call(n) == "[object Function]" - }, - i = {}, - r = { - baseUrl: "/", - modulePath: "js/modules/", - versions: {}, - externalResources: [] - }; - typeof Roblox == "undefined" && (Roblox = {}), Roblox.config = r, Roblox.require = l, Roblox.define = y -})(window); - -; /// jquery.json-2.2.js -(function(n) { - n.toJSON = function(t) { - var s, o, p, h, f, e, r, v, c, a, u, l, i, y; - if (typeof JSON == "object" && JSON.stringify) return JSON.stringify(t); - if (i = typeof t, t === null) return "null"; - if (i == "undefined") return undefined; - if (i == "number" || i == "boolean") return t + ""; - if (i == "string") return n.quoteString(t); - if (i == "object") { - if (typeof t.toJSON == "function") return n.toJSON(t.toJSON()); - if (t.constructor === Date) return s = t.getUTCMonth() + 1, s < 10 && (s = "0" + s), o = t.getUTCDate(), o < 10 && (o = "0" + o), p = t.getUTCFullYear(), h = t.getUTCHours(), h < 10 && (h = "0" + h), f = t.getUTCMinutes(), f < 10 && (f = "0" + f), e = t.getUTCSeconds(), e < 10 && (e = "0" + e), r = t.getUTCMilliseconds(), r < 100 && (r = "0" + r), r < 10 && (r = "0" + r), '"' + p + "-" + s + "-" + o + "T" + h + ":" + f + ":" + e + "." + r + 'Z"'; - if (t.constructor === Array) { - for (v = [], c = 0; c < t.length; c++) v.push(n.toJSON(t[c]) || "null"); - return "[" + v.join(",") + "]" - } - a = []; - for (u in t) { - if (i = typeof u, i == "number") l = '"' + u + '"'; - else if (i == "string") l = n.quoteString(u); - else continue; - typeof t[u] != "function" && (y = n.toJSON(t[u]), a.push(l + ":" + y)) - } - return "{" + a.join(", ") + "}" - } - }, n.evalJSON = function(n) { - return typeof JSON == "object" && JSON.parse ? JSON.parse(n) : eval("(" + n + ")") - }, n.secureEvalJSON = function(n) { - if (typeof JSON == "object" && JSON.parse) return JSON.parse(n); - var t = n; - if (t = t.replace(/\\["\\\/bfnrtu]/g, "@"), t = t.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]"), t = t.replace(/(?:^|:|,)(?:\s*\[)+/g, ""), /^[\],:{}\s]*$/.test(t)) return eval("(" + n + ")"); - throw new SyntaxError("Error parsing JSON, source is not valid."); - }, n.quoteString = function(n) { - return n.match(t) ? '"' + n.replace(t, function(n) { - var t = i[n]; - return typeof t == "string" ? t : (t = n.charCodeAt(), "\\u00" + Math.floor(t / 16).toString(16) + (t % 16).toString(16)) - }) + '"' : '"' + n + '"' - }; - var t = /["\\\x00-\x1f\x7f-\x9f]/g, - i = { - "\b": "\\b", - "\t": "\\t", - "\n": "\\n", - "\f": "\\f", - "\r": "\\r", - '"': '\\"', - "\\": "\\\\" - } -})(jQuery); - -; /// jquery.simplemodal-1.3.5.js -(function(n) { - var i = n.browser.msie && parseInt(n.browser.version) == 6 && typeof window.XMLHttpRequest != "object", - r = !1, - t = []; - n.modal = function(t, i) { - return n.modal.impl.init(t, i) - }, n.modal.close = function() { - n.modal.impl.close() - }, n.fn.modal = function(t) { - return n.modal.impl.init(this, t) - }, n.modal.defaults = { - appendTo: "body", - focus: !0, - opacity: 50, - overlayId: "simplemodal-overlay", - overlayCss: {}, - containerId: "simplemodal-container", - containerCss: {}, - dataId: "simplemodal-data", - dataCss: {}, - minHeight: null, - minWidth: null, - maxHeight: null, - maxWidth: null, - autoResize: !1, - autoPosition: !0, - zIndex: 1e3, - close: !0, - closeHTML: '', - closeClass: "simplemodal-close", - escClose: !0, - overlayClose: !1, - position: null, - persist: !1, - modal: !0, - onOpen: null, - onShow: null, - onClose: null - }, n.modal.impl = { - o: null, - d: {}, - init: function(t, i) { - var r = this; - if (r.d.data) return !1; - if (r.o = n.extend({}, n.modal.defaults, i), r.zIndex = r.o.zIndex, r.occb = !1, typeof t == "object") t = t instanceof jQuery ? t : n(t), r.d.placeholder = !1, t.parent().parent().size() > 0 && (t.before(n("").attr("id", "simplemodal-placeholder").css({ - display: "none" - })), r.d.placeholder = !0, r.display = t.css("display"), r.o.persist || (r.d.orig = t.clone(!0))); - else if (typeof t == "string" || typeof t == "number") t = n("
").html(t); - else return alert("SimpleModal Error: Unsupported data type: " + typeof t), r; - return r.create(t), t = null, r.open(), n.isFunction(r.o.onShow) && r.o.onShow.apply(r, [r.d]), r - }, - create: function(r) { - var u = this; - t = u.getDimensions(), u.o.modal && i && (u.d.iframe = n('').css(n.extend(u.o.iframeCss, { - display: "none", - opacity: 0, - position: "fixed", - height: t[0], - width: t[1], - zIndex: u.o.zIndex, - top: 0, - left: 0 - })).appendTo(u.o.appendTo)), u.d.overlay = n("
").attr("id", u.o.overlayId).addClass("simplemodal-overlay").css(n.extend(u.o.overlayCss, { - display: "none", - opacity: u.o.opacity / 100, - height: u.o.modal ? t[0] : 0, - width: u.o.modal ? t[1] : 0, - position: "fixed", - left: 0, - top: 0, - zIndex: u.o.zIndex + 1 - })).appendTo(u.o.appendTo), u.d.container = n("
").attr("id", u.o.containerId).addClass("simplemodal-container").css(n.extend(u.o.containerCss, { - display: "none", - position: "fixed", - zIndex: u.o.zIndex + 2 - })).append(u.o.close && u.o.closeHTML ? n(u.o.closeHTML).addClass(u.o.closeClass) : "").appendTo(u.o.appendTo), u.d.wrap = n("
").attr("tabIndex", -1).addClass("simplemodal-wrap").css({ - height: "100%", - outline: 0, - width: "100%", - overflow: "visible" - }).appendTo(u.d.container), u.d.data = r.attr("id", r.attr("id") || u.o.dataId).addClass("simplemodal-data").css(n.extend(u.o.dataCss, { - display: "none" - })).appendTo("body"), r = null, u.setContainerDimensions(), u.d.data.appendTo(u.d.wrap), i && u.fixIE() - }, - bindEvents: function() { - var r = this; - n("." + r.o.closeClass).bind("click.simplemodal", function(n) { - n.preventDefault(), r.close() - }), r.o.modal && r.o.close && r.o.overlayClose && r.d.overlay.bind("click.simplemodal", function(n) { - n.preventDefault(), r.close() - }), n(document).bind("keydown.simplemodal", function(n) { - r.o.modal && r.o.focus && n.keyCode == 9 ? r.watchTab(n) : r.o.close && r.o.escClose && n.keyCode == 27 && (n.preventDefault(), r.close()) - }), n(window).bind("resize.simplemodal", function() { - t = r.getDimensions(), r.setContainerDimensions(!0), i ? r.fixIE() : r.o.modal && (r.d.iframe && r.d.iframe.css({ - height: t[0], - width: t[1] - }), r.d.overlay.css({ - height: t[0], - width: t[1] - })) - }) - }, - unbindEvents: function() { - n("." + this.o.closeClass).unbind("click.simplemodal"), n(document).unbind("keydown.simplemodal"), n(window).unbind("resize.simplemodal"), this.d.overlay.unbind("click.simplemodal") - }, - fixIE: function() { - var i = this, - t = i.o.position; - n.each([i.d.iframe || null, i.o.modal ? i.d.overlay : null, i.d.container], function(n, i) { - var l, c, o, e; - if (i) { - var s = "document.body.clientHeight", - h = "document.body.clientWidth", - b = "document.body.scrollHeight", - a = "document.body.scrollLeft", - v = "document.body.scrollTop", - p = "document.body.scrollWidth", - y = "document.documentElement.clientHeight", - w = "document.documentElement.clientWidth", - u = "document.documentElement.scrollLeft", - f = "document.documentElement.scrollTop", - r = i[0].style; - r.position = "absolute", n < 2 ? (r.removeExpression("height"), r.removeExpression("width"), r.setExpression("height", "" + b + " > " + s + " ? " + b + " : " + s + ' + "px"'), r.setExpression("width", "" + p + " > " + h + " ? " + p + " : " + h + ' + "px"')) : (t && t.constructor == Array ? (o = t[0] ? typeof t[0] == "number" ? t[0].toString() : t[0].replace(/px/, "") : i.css("top").replace(/px/, ""), l = o.indexOf("%") == -1 ? o + " + (t = " + f + " ? " + f + " : " + v + ') + "px"' : parseInt(o.replace(/%/, "")) + " * ((" + y + " || " + s + ") / 100) + (t = " + f + " ? " + f + " : " + v + ') + "px"', t[1] && (e = typeof t[1] == "number" ? t[1].toString() : t[1].replace(/px/, ""), c = e.indexOf("%") == -1 ? e + " + (t = " + u + " ? " + u + " : " + a + ') + "px"' : parseInt(e.replace(/%/, "")) + " * ((" + w + " || " + h + ") / 100) + (t = " + u + " ? " + u + " : " + a + ') + "px"')) : (l = "(" + y + " || " + s + ") / 2 - (this.offsetHeight / 2) + (t = " + f + " ? " + f + " : " + v + ') + "px"', c = "(" + w + " || " + h + ") / 2 - (this.offsetWidth / 2) + (t = " + u + " ? " + u + " : " + a + ') + "px"'), r.removeExpression("top"), r.removeExpression("left"), r.setExpression("top", l), r.setExpression("left", c)) - } - }) - }, - focus: function(t) { - var r = this, - u = t || "first", - i = n(":input:enabled:visible:" + u, r.d.wrap); - i.length > 0 ? i.focus() : r.d.wrap.focus() - }, - getDimensions: function() { - var t = n(window), - i = n.browser.opera && n.browser.version > "9.5" && n.fn.jquery <= "1.2.6" ? document.documentElement.clientHeight : n.browser.opera && n.browser.version < "9.5" && n.fn.jquery > "1.2.6" ? window.innerHeight : t.height(); - return [i, t.width()] - }, - getVal: function(n) { - return n == "auto" ? 0 : n.indexOf("%") > 0 ? n : parseInt(n.replace(/px/, "")) - }, - setContainerDimensions: function(i) { - var r = this; - if (!i || i && r.o.autoResize) { - var f = n.browser.opera ? r.d.container.height() : r.getVal(r.d.container.css("height")), - u = n.browser.opera ? r.d.container.width() : r.getVal(r.d.container.css("width")), - s = r.d.data.outerHeight(!0), - h = r.d.data.outerWidth(!0), - e = r.o.maxHeight && r.o.maxHeight < t[0] ? r.o.maxHeight : t[0], - o = r.o.maxWidth && r.o.maxWidth < t[1] ? r.o.maxWidth : t[1]; - f = f ? f > e ? e : f : s ? s > e ? e : s < r.o.minHeight ? r.o.minHeight : s : r.o.minHeight, u = u ? u > o ? o : u : h ? h > o ? o : h < r.o.minWidth ? r.o.minWidth : h : r.o.minWidth, r.d.container.css({ - height: f, - width: u - }) - } - r.o.autoPosition && r.setPosition() - }, - setPosition: function() { - var n = this, - r, i, f = t[0] / 2 - n.d.container.outerHeight(!0) / 2, - u = t[1] / 2 - n.d.container.outerWidth(!0) / 2; - n.o.position && Object.prototype.toString.call(n.o.position) === "[object Array]" ? (r = n.o.position[0] || f, i = n.o.position[1] || u) : (r = f, i = u), n.d.container.css({ - left: i, - top: r - }) - }, - watchTab: function(t) { - var i = this, - r; - n(t.target).parents(".simplemodal-container").length > 0 ? (i.inputs = n(":input:enabled:visible:first, :input:enabled:visible:last", i.d.data[0]), (!t.shiftKey && t.target == i.inputs[i.inputs.length - 1] || t.shiftKey && t.target == i.inputs[0] || i.inputs.length == 0) && (t.preventDefault(), r = t.shiftKey ? "last" : "first", setTimeout(function() { - i.focus(r) - }, 10))) : (t.preventDefault(), setTimeout(function() { - i.focus() - }, 10)) - }, - open: function() { - var t = this; - t.d.iframe && t.d.iframe.show(), n.isFunction(t.o.onOpen) ? t.o.onOpen.apply(t, [t.d]) : (t.d.overlay.show(), t.d.container.show(), t.d.data.show()), t.focus(), t.bindEvents() - }, - close: function() { - var t = this, - i; - if (!t.d.data) return !1; - t.unbindEvents(), n.isFunction(t.o.onClose) && !t.occb ? (t.occb = !0, t.o.onClose.apply(t, [t.d])) : (t.d.placeholder ? (i = n("#simplemodal-placeholder"), t.o.persist ? i.replaceWith(t.d.data.removeClass("simplemodal-data").css("display", t.display)) : (t.d.data.hide().remove(), i.replaceWith(t.d.orig))) : t.d.data.hide().remove(), t.d.container.hide().remove(), t.d.overlay.hide().remove(), t.d.iframe && t.d.iframe.hide().remove(), t.d = {}) - } - } -})(jQuery); - -; /// jquery.tipsy.js -(function(n) { - n.fn.tipsy = function(t) { - return t = n.extend({}, n.fn.tipsy.defaults, t), this.each(function() { - var i = n.fn.tipsy.elementOptions(this, t); - n(this).hover(function() { - var t, e, r; - n.data(this, "cancel.tipsy", !0), t = n.data(this, "active.tipsy"), t || (t = n('
'), t.css({ - position: "absolute", - zIndex: 999999 - }), n.data(this, "active.tipsy", t)), (n(this).attr("title") || typeof n(this).attr("original-title") != "string") && n(this).attr("original-title", n(this).attr("title") || "").removeAttr("title"), typeof i.title == "string" ? e = n(this).attr(i.title == "title" ? "original-title" : i.title) : typeof i.title == "function" && (e = i.title.call(this)), t.find(".tipsy-inner")[i.html ? "html" : "text"](e || i.fallback), r = n.extend({}, n(this).offset(), { - width: this.offsetWidth, - height: this.offsetHeight - }), t.get(0).className = "tipsy", t.remove().css({ - top: 0, - left: 0, - visibility: "hidden", - display: "block" - }).appendTo(document.body); - var f = t[0].offsetWidth, - u = t[0].offsetHeight, - o = typeof i.gravity == "function" ? i.gravity.call(this) : i.gravity; - switch (o.charAt(0)) { - case "n": - t.css({ - top: r.top + r.height, - left: r.left + r.width / 2 - f / 2 - }).addClass("tipsy-north"); - break; - case "s": - t.css({ - top: r.top - u, - left: r.left + r.width / 2 - f / 2 - }).addClass("tipsy-south"); - break; - case "e": - t.css({ - top: r.top + r.height / 2 - u / 2, - left: r.left - f - }).addClass("tipsy-east"); - break; - case "w": - t.css({ - top: r.top + r.height / 2 - u / 2, - left: r.left + r.width - }).addClass("tipsy-west") - } - i.fade ? t.css({ - opacity: 0, - display: "block", - visibility: "visible" - }).animate({ - opacity: .8 - }) : t.css({ - visibility: "visible" - }) - }, function() { - n.data(this, "cancel.tipsy", !1); - var t = this; - setTimeout(function() { - if (!n.data(this, "cancel.tipsy")) { - var r = n.data(t, "active.tipsy"); - i.fade ? r.stop().fadeOut(function() { - n(this).remove() - }) : r.remove() - } - }, 100) - }) - }) - }, n.fn.tipsy.elementOptions = function(t, i) { - return n.metadata ? n.extend({}, i, n(t).metadata()) : i - }, n.fn.tipsy.defaults = { - fade: !1, - fallback: "", - gravity: "n", - html: !1, - title: "title" - }, n.fn.tipsy.autoNS = function() { - return n(this).offset().top > n(document).scrollTop() + n(window).height() / 2 ? "s" : "n" - }, n.fn.tipsy.autoWE = function() { - return n(this).offset().left > n(document).scrollLeft() + n(window).width() / 2 ? "e" : "w" - } -})(jQuery); - -; /// AjaxAvatarThumbnail.js -var RobloxThumbs = function() { - function n(t, i, r) { - $.get("/thumbs/rawavatar.ashx", { - UserID: i, - ThumbnailFormatID: r - }, function(u) { - u == "PENDING" ? window.setTimeout(function() { - n(t, i, r) - }, 3e3) : u.substring(5, 0) == "ERROR" || $("#" + t).attr("src", u) - }) - } - return { - GenerateAvatarThumb: function(t, i, r) { - $("#" + t).attr("src", "/images/spinners/waiting.gif"), n(t, i, r) - } - } -}(); - -; /// extensions/string.js -$.extend(String.prototype, function() { - function n() { - return this.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'") - } - return { - escapeHTML: n - } -}()); - -; /// StringTruncator.min.js -function InitStringTruncator() { - isInitialized || (fitStringSpan = document.createElement("span"), fitStringSpan.style.display = "inline", fitStringSpan.style.visibility = "hidden", fitStringSpan.style.padding = "0px", document.body.appendChild(fitStringSpan), isInitialized = !0) -} - -function fitStringToWidth(n, t, i) { - function f(n) { - return n.replace("<", "<").replace(">", ">") - } - if (isInitialized || InitStringTruncator(), i && (fitStringSpan.className = i), i = f(n), fitStringSpan.innerHTML = i, fitStringSpan.offsetWidth > t) { - for (var i = 0, r, u = n.length; r = u - i >> 1;) r = i + r, fitStringSpan.innerHTML = f(n.substring(0, r)) + "…", fitStringSpan.offsetWidth > t ? u = r : i = r; - i = n.substring(0, i) + "…" - } - return i -} - -function fitStringToWidthSafe(n, t, i) { - return n = fitStringToWidth(n, t, i), n.indexOf("…") != -1 && (t = n.lastIndexOf(" "), t != -1 && t + 10 <= n.length && (n = n.substring(0, t + 2) + "…")), n -} -var isInitialized = !1, - fitStringSpan = null; - -; /// json2.min.js -var JSON; -JSON || (JSON = {}), - function() { - "use strict"; - - function i(n) { - return n < 10 ? "0" + n : n - } - - function f(n) { - return o.lastIndex = 0, o.test(n) ? '"' + n.replace(o, function(n) { - var t = s[n]; - return typeof t == "string" ? t : "\\u" + ("0000" + n.charCodeAt(0).toString(16)).slice(-4) - }) + '"' : '"' + n + '"' - } - - function r(i, e) { - var c, l, h, a, v = n, - s, o = e[i]; - o && typeof o == "object" && typeof o.toJSON == "function" && (o = o.toJSON(i)), typeof t == "function" && (o = t.call(e, i, o)); - switch (typeof o) { - case "string": - return f(o); - case "number": - return isFinite(o) ? String(o) : "null"; - case "boolean": - case "null": - return String(o); - case "object": - if (!o) return "null"; - if (n += u, s = [], Object.prototype.toString.apply(o) === "[object Array]") { - for (a = o.length, c = 0; c < a; c += 1) s[c] = r(c, o) || "null"; - return h = s.length === 0 ? "[]" : n ? "[\n" + n + s.join(",\n" + n) + "\n" + v + "]" : "[" + s.join(",") + "]", n = v, h - } - if (t && typeof t == "object") - for (a = t.length, c = 0; c < a; c += 1) l = t[c], typeof l == "string" && (h = r(l, o), h && s.push(f(l) + (n ? ": " : ":") + h)); - else - for (l in o) Object.hasOwnProperty.call(o, l) && (h = r(l, o), h && s.push(f(l) + (n ? ": " : ":") + h)); - return h = s.length === 0 ? "{}" : n ? "{\n" + n + s.join(",\n" + n) + "\n" + v + "}" : "{" + s.join(",") + "}", n = v, h - } - } - typeof Date.prototype.toJSON != "function" && (Date.prototype.toJSON = function() { - return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + i(this.getUTCMonth() + 1) + "-" + i(this.getUTCDate()) + "T" + i(this.getUTCHours()) + ":" + i(this.getUTCMinutes()) + ":" + i(this.getUTCSeconds()) + "Z" : null - }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function() { - return this.valueOf() - }); - var e = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - o = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - n, u, s = { - "\b": "\\b", - "\t": "\\t", - "\n": "\\n", - "\f": "\\f", - "\r": "\\r", - '"': '\\"', - "\\": "\\\\" - }, - t; - typeof JSON.stringify != "function" && (JSON.stringify = function(i, f, e) { - var o; - if (n = "", u = "", typeof e == "number") - for (o = 0; o < e; o += 1) u += " "; - else typeof e == "string" && (u = e); - if (t = f, f && typeof f != "function" && (typeof f != "object" || typeof f.length != "number")) throw new Error("JSON.stringify"); - return r("", { - "": i - }) - }), typeof JSON.parse != "function" && (JSON.parse = function(n, t) { - function r(n, i) { - var f, e, u = n[i]; - if (u && typeof u == "object") - for (f in u) Object.hasOwnProperty.call(u, f) && (e = r(u, f), e !== undefined ? u[f] = e : delete u[f]); - return t.call(n, i, u) - } - var i; - if (n = String(n), e.lastIndex = 0, e.test(n) && (n = n.replace(e, function(n) { - return "\\u" + ("0000" + n.charCodeAt(0).toString(16)).slice(-4) - })), /^[\],:{}\s]*$/.test(n.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return i = eval("(" + n + ")"), typeof t == "function" ? r({ - "": i - }, "") : i; - throw new SyntaxError("JSON.parse"); - }) - }(); - -; /// webkit.js -typeof Sys.Browser.WebKit == "undefined" && (Sys.Browser.WebKit = {}), navigator.userAgent.indexOf("WebKit/") > -1 && (Sys.Browser.agent = Sys.Browser.WebKit, Sys.Browser.version = parseFloat(navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]), Sys.Browser.name = "WebKit"); - -; /// GoogleAnalytics/GoogleAnalyticsEvents.js -var GoogleAnalyticsEvents = new function() { - this.FireEvent = function(n) { - if (typeof _gaq != typeof undefined) { - var i = ["_trackEvent"], - t = ["b._trackEvent"]; - _gaq.push(i.concat(n)), _gaq.push(t.concat(n)) - } - } -}; - -; /// MasterPageUI.js -$(function() { - $(".tooltip").tipsy(), $(".tooltip-top").tipsy({ - gravity: "s" - }), $(".tooltip-right").tipsy({ - gravity: "w" - }), $(".tooltip-left").tipsy({ - gravity: "e" - }), $(".tooltip-bottom").tipsy({ - gravity: "n" - }) -}), typeof Roblox == "undefined" && (Roblox = {}), Roblox.FixedUI = function() { - function s() { - if (typeof pageYOffset != "undefined") return pageYOffset; - var t = document.body, - n = document.documentElement; - return n = n.clientHeight ? n : t, n.scrollTop - } - - function e() { - var n = s(); - t || (t = $("iframe.IframeAdHide")), t.each(function() { - var t = $(this).offset().top - 73; - !r.gutterAdsEnabled && n >= t ? $(this).css("visibility", "hidden") : $(this).css("visibility", "visible") - }) - } - - function i() { - $("#Nav").css("cssText", "position: static !important;width:970px !important"), $("#SmallHeaderContainer").css("cssText", "position: relative !important;height: 36px !important;width:970px !important"), $(".forceSpace").css("cssText", "width: 970px !important; height:9px !important;padding-top: 0px !important;background:white"), $("#Container").css("cssText", "width: 970px !important"), $(".mySubmenuFixed").css("cssText", "position: relative; top: 0px;"), $("#MasterContainer").css("cssText", "width: 970px !important"), $(".mySubmenuFixed").length == 1 && ($(".forceSpaceUnderSubmenu").hide(), $(".forceSpace").css("cssText", "width: 910px !important; height:7px !important;padding-top: 0px !important;")), $(window).unbind("scroll") - } - - function h() { - $("#Nav").css("cssText", "position: fixed !important;width:100% !important"), $("#SmallHeaderContainer").css("cssText", "position: fixed !important;height: 40px !important;width:100% !important"), $(".forceSpace").css("cssText", "width: 100% !important; height:15px !important;padding-top: 62px !important;"), $("#Container").css("cssText", "width: 100% !important"), $(".mySubmenuFixed").css("cssText", "position: fixed; top: 68px;"), $("#MasterContainer").css("cssText", "width: 100%"), $(".mySubmenuFixed").length == 1 && $(".forceSpaceUnderSubmenu").show(), $(window).scroll(e) - } - - function o() { - var n = 1024; - return document.body && document.body.offsetWidth && (n = document.body.offsetWidth), window.innerWidth && window.innerHeight && (n = window.innerWidth), n - } - - function u() { - o() < 978 ? i() : h() - } - var n = navigator.userAgent.toLowerCase(), - f = /mobile/i.test(n) || /ipad/i.test(n) || /iphone/i.test(n) || /android/i.test(n) || /playbook/i.test(n) || /blackberry/i.test(n), - t, r; - return $(function() { - f ? i() : $(window).load(u).resize(u) - }), t = null, r = { - isMobile: f, - gutterAdsEnabled: !1, - unfixHeader: i - } -}(); - -; /// jquery.cookie.js -jQuery.cookie = function(n, t, i) { - var o, r, f, e, u, s; - if (typeof t != "undefined") { - i = i || {}, t === null && (t = "", i.expires = -1), o = "", i.expires && (typeof i.expires == "number" || i.expires.toUTCString) && (typeof i.expires == "number" ? (r = new Date, r.setTime(r.getTime() + i.expires * 864e5)) : r = i.expires, o = "; expires=" + r.toUTCString()); - var h = i.path ? "; path=" + i.path : "", - c = i.domain ? "; domain=" + i.domain : "", - l = i.secure ? "; secure" : ""; - document.cookie = [n, "=", encodeURIComponent(t), o, h, c, l].join("") - } else { - if (f = null, document.cookie && document.cookie != "") - for (e = document.cookie.split(";"), u = 0; u < e.length; u++) - if (s = jQuery.trim(e[u]), s.substring(0, n.length + 1) == n + "=") { - f = decodeURIComponent(s.substring(n.length + 1)); - break - } return f - } -}; - -; /// jquery.jsoncookie.js -function RobloxJSONCookie(n) { - this._cookiename = n -}(function(n) { - var t = function(n) { - return typeof n == "object" && !(n instanceof Array) && n !== null - }; - n.extend({ - getJSONCookie: function(t, i) { - var r = n.cookie(t); - return i ? r : r ? JSON.parse(r) : {} - }, - setJSONCookie: function(i, r, u) { - var f = ""; - return u = n.extend({ - expires: 90, - path: "/" - }, u), f = t(r) ? JSON.stringify(r) : r, n.cookie(i, f, u) - }, - removeJSONCookie: function(t) { - return n.cookie(t, null) - }, - JSONCookie: function(t, i, r) { - return i && n.setJSONCookie(t, i, r), n.getJSONCookie(t) - } - }) -})(jQuery), RobloxJSONCookie.prototype = { - Delete: function() { - return $.removeJSONCookie(this._cookiename) - }, - SetObj: function(n, t) { - return t || (t = { - path: "/" - }), $.JSONCookie(this._cookiename, n, t) - }, - SetJSON: function(n, t) { - return t || (t = { - path: "/" - }), $.JSONCookie(this._cookiename, n, t) - }, - GetObj: function() { - var n = $.getJSONCookie(this._cookiename, !1); - return n == null ? {} : n - }, - GetJSON: function() { - return $.getJSONCookie(this._cookiename, !0) - } -}; - -; /// XsrfToken.js -typeof Roblox == "undefined" && (Roblox = {}), Roblox.XsrfToken = function() { - function f(n) { - var u, t; - if (i.allUrlsEnabled) return !0; - for (u = n.split("?")[0].toLowerCase(), t = 0; t < r.length; t++) - if (r[t] === u) return !0; - return !1 - } - - function e(n) { - r.push(n.toLowerCase()) - } - - function o(t) { - n = t - } - - function u() { - return n - } - var n = "", - t = /(^|\?|&)token=[^&]*/, - r = ["/chat/friendhandler.ashx", "/chat/party.ashx", "/chat/send.ashx", "/chat/utility.ashx", "/groups/rolesetupdater.ashx", "groups.aspx/exileuseranddeleteposts", "messageshandler.ashx", "emailupgrademe.ashx", "/services/usercheck.asmx/updatepersonalinfo", "/thumbs/assetmedia/placemediaitemsorthandler.ashx"], - i; - return $.ajaxPrefilter(function(i) { - var o, e; - i.dataType != "jsonp" && i.dataType != "script" && n != "" && f(i.url) && (o = $.param({ - token: n - }), t.test(i.url) || typeof i.data != "undefined" && t.test(i.data) || (i.url += /\?/.test(i.url) ? "&token=" + encodeURIComponent(n) : "?token=" + encodeURIComponent(n)), e = i.error, i.error = function(r, u, f) { - if (r.status == 420) { - var o = r.getResponseHeader("Token"); - if (o == null) { - typeof e == "function" && e(r, u, f); - throw new Error("Null token returned by Xsrf enabled handler"); - } - t.test(i.url) ? i.url = i.url.replace(t, "$1token=" + encodeURIComponent(o)) : i.data = i.data.replace(t, "$1token=" + encodeURIComponent(o)), $.ajax(i), n = o - } else typeof e == "function" && e(r, u, f) - }) - }), i = { - setToken: o, - getToken: u, - allUrlsEnabled: !1, - addEnabledUrl: e - } -}(); - -; /// RobloxEventManager.js -function RBXBaseEventListener() { - if (!(this instanceof RBXBaseEventListener)) return new RBXBaseEventListener; - this.init = function() { - for (eventKey in this.events) $(document).bind(this.events[eventKey], $.proxy(this.localCopy, this)) - }, this.events = [], this.localCopy = function(n, t) { - var r = $.extend(!0, {}, n), - i = $.extend(!0, {}, t); - this.handleEvent(r, i) - }, this.distillData = function() { - return console.log("RBXEventListener distillData - Please implement me"), !1 - }, this.handleEvent = function() { - return console.log("EventListener handleEvent - Please implement me"), !1 - }, this.fireEvent = function() { - return console.log("EventListener fireEvent - Please implement me"), !1 - } -} -RobloxEventManager = new function() { - function u(n) { - var i = new RegExp(n + "=([^;]*)"), - t = i.exec(document.cookie); - return t ? t[1] : null - } - - function t(n) { - for (var u = {}, r = n.split("&"), i, t = 0; t < r.length; t++) i = r[t].split("="), u[i[0]] = i[1]; - return u - } - - function i(n) { - var i = u(n); - return i ? t(i) : null - } - var n = [], - r = {}; - this.enabled = !1, this.initialized = !1, this.eventQueue = [], this.initialize = function(n) { - for (this.initialized = !0, this.enabled = n; this.eventQueue.length > 0;) { - var t = this.eventQueue.pop(); - this.triggerEvent(t.eventName, t.args) - } - }, this.getMarketingGuid = function() { - var n = i("RBXEventTracker"); - return n != null ? n.browserid : -1 - }, this.triggerEvent = function(n, t) { - this.initialized ? this.enabled && (typeof t == "undefined" && (t = {}), t.guid = this.getMarketingGuid(), t.guid != -1 && $(document).trigger(n, [t])) : this.eventQueue.push({ - eventName: n, - args: t - }) - }, this.registerCookieStoreEvent = function(t) { - n.push(t) - }, this.insertDataStoreKeyValuePair = function(n, t) { - r[n] = t - }, this.monitorCookieStore = function() { - var i, u, f, t, r; - try { - if (typeof Roblox == "undefined" || typeof Roblox.Client == "undefined" || window.location.protocol == "https:") return; - if (i = Roblox.Client.CreateLauncher(!1), i == null) return; - for (u = 0; u < n.length; u++) try { - f = n[u], t = i.GetKeyValue(f), t != "" && t != "-1" && t != "RBX_NOT_VALID" && (r = eval("(" + t + ")"), r.userType = r.userId > 0 ? "user" : "guest", RobloxEventManager.triggerEvent(f, r), i.SetKeyValue(f, "RBX_NOT_VALID")) - } catch (e) {} - Roblox.Client.ReleaseLauncher(i, !1, !1) - } catch (e) {} - } -}; - -; /// RobloxEventListener.js -RobloxListener = new RBXBaseEventListener, RobloxListener.handleEvent = function(n, t) { - var r, u, i; - switch (n.type) { - case "rbx_evt_install_begin": - i = { - guid: "guid", - userId: "userid" - }, r = n.type; - break; - case "rbx_evt_initial_install_start": - i = { - guid: "guid", - userId: "userid" - }, r = n.type; - break; - case "rbx_evt_ftp": - i = { - guid: "guid", - userId: "userid" - }, r = n.type; - break; - case "rbx_evt_initial_install_success": - i = { - guid: "guid", - userId: "userid" - }, r = n.type; - break; - case "rbx_evt_fmp": - i = { - guid: "guid", - userId: "userid" - }, r = n.type; - break; - default: - return console.log("RobloxEventListener - Event registered without handling instructions: " + n.type), !1 - } - return u = this.distillData(t, i), this.fireEvent(this.eventToString(r, u)), !0 -}, RobloxListener.distillData = function(n, t) { - var i = {}; - for (dataKey in t) typeof n[dataKey] != typeof undefined && (i[t[dataKey]] = encodeURIComponent(n[dataKey])); - return i -}, RobloxListener.eventToString = function(n, t) { - var i = RobloxListener.restUrl; - if (i += "?event=" + n + "&", t != null) - for (arg in t) typeof arg != typeof undefined && t.hasOwnProperty(arg) && (i += arg + "=" + t[arg] + "&"); - return i = i.slice(0, i.length - 1) -}, RobloxListener.fireEvent = function(n) { - var t = $('') -}, RobloxListener.events = ["rbx_evt_install_begin", "rbx_evt_initial_install_start", "rbx_evt_ftp", "rbx_evt_initial_install_success", "rbx_evt_fmp"]; - -; /// KontagentEventListener.js -KontagentListener = new RBXBaseEventListener, KontagentListener.restUrl = "", KontagentListener.APIKey = "", KontagentListener.StagingAPIKey = "", KontagentListener.StagingEvents = [], KontagentListener.handleEvent = function(n, t) { - function f(n) { - return n = n.toLowerCase(), n == "win32" ? n = "Windows" : n == "osx" && (n = "Mac"), n - } - var r, u, i, o, e; - r = "evt"; - switch (n.type) { - case "rbx_evt_pageview": - i = { - guid: "s", - path: "u", - ts: "ts", - user_ip: "ip" - }, r = "pgr"; - break; - case "rbx_evt_userinfo": - i = { - guid: "s", - age: "b", - gender: "g" - }, r = "cpu"; - break; - case "rbx_evt_ecomm_item": - t.total = Math.round(t.total * 100), t.productName = t.productName.replace(/\s/g, "").replace("Outrageous", "O").replace("Turbo", "T").replace("Builders", "B").replace("Club", "C"), i = { - guid: "s", - total: "v", - provider: "st1", - category: "st2", - productName: "st3", - type: "tu" - }, r = "mtu"; - break; - case "rbx_evt_ftp": - t.tracking = "", t.shorttracking = "", i = { - guid: "s", - trackingtag: "u", - shorttracking: "su" - }, u = this.distillData(t, i), r = "apa", this.fireEvent(this.eventToString(n.type, r, u)), t.eventName = "Install Success Funnel", t.eventType = "Install Success Funnel", t.os = f(t.os), i = { - guid: "s", - eventType: "st1", - os: "st2", - userType: "st3", - eventName: "n" - }, u = this.distillData(t, i), r = "evt", this.fireEvent(this.eventToString(n.type, r, u)), t.eventType = "Install Success Place", i = { - guid: "s", - eventType: "st1", - os: "st2", - userType: "st3", - placeId: "n" - }; - break; - case "rbx_evt_initial_install_success": - t.tracking = "", t.shorttracking = "", i = { - guid: "s", - trackingtag: "u", - shorttracking: "su" - }, u = this.distillData(t, i), r = "apa", this.fireEvent(this.eventToString(n.type, r, u)), t.eventName = "Bootstrapper Install Success Funnel", t.eventType = "Bootstrapper Install Success Funnel", t.os = f(t.os), i = { - guid: "s", - eventType: "st1", - os: "st2", - userType: "st3", - eventName: "n" - }, u = this.distillData(t, i), r = "evt", this.fireEvent(this.eventToString(n.type, r, u)), t.eventType = "Bootstrapper Install Success Place", i = { - guid: "s", - eventType: "st1", - os: "st2", - userType: "st3", - placeId: "n" - }; - break; - case "rbx_evt_install_begin": - t.eventName = "Install Begin", t.eventType = "Install Begin", i = { - guid: "s", - eventType: "st1", - os: "st2", - eventName: "n" - }; - break; - case "rbx_evt_initial_install_start": - t.eventName = "Bootstrapper Install Begin", t.eventType = "Bootstrapper Install Begin", i = { - guid: "s", - eventType: "st1", - os: "st2", - eventName: "n" - }; - break; - case "rbx_evt_fmp": - t.eventName = "Five Minute Play Funnel", t.eventType = "Five Minute Play Funnel", t.os = f(t.os), i = { - guid: "s", - eventType: "st1", - os: "st2", - userType: "st3", - eventName: "n" - }, u = this.distillData(t, i), this.fireEvent(this.eventToString(n.type, r, u)), t.eventType = "Five Minute Play Place", i = { - guid: "s", - eventType: "st1", - os: "st2", - userType: "st3", - placeId: "n" - }; - break; - case "rbx_evt_play_user": - t.eventName = "Play User", t.eventType = "Play User", t.gender = t.gender, i = { - guid: "s", - eventType: "st1", - gender: "st2", - age: "st3", - placeId: "l", - eventName: "n" - }; - break; - case "rbx_evt_play_guest": - t.eventName = "Play Guest", t.eventType = "Play Guest", t.gender = t.gender, i = { - guid: "s", - eventType: "st1", - gender: "st2", - placeId: "l", - eventName: "n" - }; - break; - case "rbx_evt_signup": - t.eventName = "Sign Up Funnel", t.eventType = "Sign Up Funnel", i = { - guid: "s", - eventType: "st1", - eventName: "n" - }, u = this.distillData(t, i), r = "evt", this.fireEvent(this.eventToString(n.type, r, u)), t.eventName = "Sign Up", t.eventType = "Sign Up", t.gender = t.gender, i = { - guid: "s", - eventType: "st1", - gender: "st2", - age: "st3", - eventName: "n" - }; - break; - case "rbx_evt_ecomm_custom": - t.eventType = "Purchase", t.productName = t.productName.replace(/\s/g, "").replace("Outrageous", "O").replace("Turbo", "T").replace("Builders", "B").replace("Club", "C"), i = { - guid: "s", - eventType: "st1", - provider: "st2", - category: "st3", - productName: "n" - }; - break; - case "rbx_evt_abtest": - i = { - guid: "s", - experiment: "st1", - variation: "n" - }; - break; - case "rbx_evt_pageview_custom": - t.eventName = t.page, i = typeof t.userType == "undefined" ? { - guid: "s", - page: "st1", - eventName: "n" - } : { - guid: "s", - page: "st1", - userType: "st2", - eventName: "n" - }; - break; - case "rbx_evt_generic": - t.eventName = t.type, i = { - guid: "s", - type: "st1", - eventName: "n" - }, typeof t.opt1 != "undefined" && (i.opt1 = "st2"), typeof t.opt2 != "undefined" && typeof t.opt1 != "undefined" && (i.opt2 = "st3"); - break; - case "rbx_evt_source_tracking": - t.installed = 0, t.sourceType = "ad", i = { - guid: "s", - sourceType: "tu", - installed: "i", - source: "st1", - campaign: "st2", - medium: "st3" - }, r = "ucc"; - break; - case "rbx_evt_card_redemption": - t.eventType = "CardRedemption", t.eventName = "CardRedemption", i = { - guid: "s", - eventType: "st1", - merchant: "st2", - cardValue: "st3", - eventName: "n" - }; - break; - case "rbx_evt_popup_action": - t.eventType = "GuestPlayPopupAction", t.eventName = "GuestPlayPopupAction", i = { - guid: "s", - eventType: "st1", - action: "st2", - eventName: "n" - }; - break; - default: - return console.log("KontagentListener - Event registered without handling instructions: " + n.type), !1 - } - return u = this.distillData(t, i), this.fireEvent(this.eventToString(n.type, r, u)), !0 -}, KontagentListener.distillData = function(n, t) { - var i = {}; - for (dataKey in t) typeof n[dataKey] != typeof undefined && (i[t[dataKey]] = encodeURIComponent(n[dataKey])); - return i -}, KontagentListener.eventToString = function(n, t, i) { - var r = KontagentListener.restUrl, - u = this.isStagingEvent(n, i) ? KontagentListener.StagingAPIKey : KontagentListener.APIKey; - if (r += u + "/" + t + "/?", i != null) - for (arg in i) typeof arg != typeof undefined && i.hasOwnProperty(arg) && (r += arg + "=" + i[arg] + "&"); - return r = r.slice(0, r.length - 1) -}, KontagentListener.isStagingEvent = function(n, t) { - var r, i; - staging = !1; - try { - for (r in this.StagingEvents) - if (i = this.StagingEvents[r], typeof i == "string") { - if (n == i) { - staging = !0; - break - } - } else if (typeof i == "object" && typeof i[n] != "undefined" && i[n] == t.st1) { - staging = !0; - break - } - } catch (u) {} - return staging -}, KontagentListener.fireEvent = function(n) { - var t = $('') -}, KontagentListener.events = ["rbx_evt_pageview", "rbx_evt_install_begin", "rbx_evt_initial_install_start", "rbx_evt_ftp", "rbx_evt_initial_install_success", "rbx_evt_fmp", "rbx_evt_play_user", "rbx_evt_play_guest", "rbx_evt_signup", "rbx_evt_ecomm_item", "rbx_evt_ecomm_custom", "rbx_evt_userinfo", "rbx_evt_abtest", "rbx_evt_pageview_custom", "rbx_evt_generic", "rbx_evt_source_tracking", "rbx_evt_card_redemption", "rbx_evt_popup_action"]; - -; /// GoogleEventListener.js -GoogleListener = new RBXBaseEventListener, GoogleListener.handleEvent = function(n, t) { - function r(n) { - return n = n.toLowerCase(), n == "win32" ? n = "Windows" : n == "osx" && (n = "Mac"), n - } - var f, u, i; - switch (n.type) { - case "rbx_evt_initial_install_begin": - t.os = r(t.os), t.category = "Bootstrapper Install Begin", i = { - os: "action" - }; - break; - case "rbx_evt_ftp": - t.os = r(t.os), t.category = "Install Success", i = { - os: "action" - }; - break; - case "rbx_evt_initial_install_success": - t.os = r(t.os), t.category = "Bootstrapper Install Success", i = { - os: "action" - }; - break; - case "rbx_evt_fmp": - t.os = r(t.os), t.category = "Five Minute Play", i = { - os: "action" - }; - break; - case "rbx_evt_abtest": - i = { - experiment: "category", - variation: "action", - version: "opt_label" - }; - break; - case "rbx_evt_card_redemption": - t.category = "CardRedemption", i = { - merchant: "action", - cardValue: "opt_label" - }; - break; - default: - return console.log("GoogleListener - Event registered without handling instructions: " + n.type), !1 - } - return i.category = "category", u = this.distillData(t, i), this.fireEvent(u), !0 -}, GoogleListener.distillData = function(n, t) { - var i = {}, - r; - for (dataKey in t) typeof n[dataKey] != typeof undefined && (i[t[dataKey]] = n[dataKey]); - return r = [i.category, i.action], i.opt_label != null && (r = r.concat(i.opt_label)), i.opt_value != null && (r = r.concat(i.opt_value)), r -}, GoogleListener.fireEvent = function(n) { - if (typeof _gaq != typeof undefined) { - var i = ["_trackEvent"], - t = ["b._trackEvent"]; - _gaq.push(i.concat(n)), _gaq.push(t.concat(n)) - } -}, GoogleListener.events = ["rbx_evt_initial_install_begin", "rbx_evt_ftp", "rbx_evt_initial_install_success", "rbx_evt_fmp", "rbx_evt_abtest", "rbx_evt_card_redemption"]; - -; /// MongoEventListener.js -MongoListener = new RBXBaseEventListener, MongoListener.handleEvent = function(n, t) { - var i; - return i = typeof t.shard == "undefined" ? this.defaultShard : t.shard, typeof t.eventName == "undefined" && (t.eventName = n.type), t.eventName === "JavascriptExceptionLoggingEvent" ? dataMap = { - category: "category", - url: "url", - msg: "msg", - line: "line", - ua: "UA" - } : (typeof t.category == "undefined" && (t.category = MongoListener.getCategoryFromEventName(t.eventName)), t.userId = MongoListener.userId, t.ip = MongoListener.clientIpAddress, dataMap = { - guid: "guid", - category: "category", - userId: "userid", - ip: "ip" - }), this.fireEvent(i, this.distillData(t, dataMap)), !0 -}, MongoListener.getCategoryFromEventName = function(n) { - switch (n) { - case "rbx_evt_sitetouch": - return "SiteTouch"; - case "rbx_evt_fmp": - return "FiveMinutePlay"; - case "rbx_evt_play_user": - case "rbx_evt_play_guest": - return "Play"; - default: - return n - } -}, MongoListener.distillData = function(n, t) { - var i = {}; - for (dataKey in t) typeof n[dataKey] != typeof undefined && (i[t[dataKey]] = encodeURIComponent(n[dataKey])); - return i -}, MongoListener.fireEvent = function(n, t) { - $.ajax({ - url: MongoListener.loggingURI + n, - dataType: "jsonp", - jsonpCallback: "MongoListener.callback", - data: t - }) -}, MongoListener.callback = function() {}, MongoListener.events = ["JavascriptExceptionLoggingEvent"]; - -; /// SearchVisionListener.js -SearchVisionListener = new RBXBaseEventListener, SearchVisionListener.handleEvent = function(n, t) { - var i = null; - switch (n.type) { - case "rbx_evt_fmp": - i = { - esvtk_v: "1", - esvtk_esvid: "A40125", - event: "five_minute_play" - }; - break; - case "rbx_evt_ftp": - i = { - esvtk_v: "1", - esvtk_esvid: "A40125", - event: "first_play" - }; - break; - case "rbx_evt_install_begin": - i = { - esvtk_v: "1", - esvtk_esvid: "A40125", - event: "download" - }; - break; - case "rbx_evt_signup": - i = { - esvtk_v: "1", - esvtk_esvid: "A40125", - event: "esv_signup" - }; - break; - case "rbx_evt_generic": - t.type === "OneDayReturn" && (i = { - esvtk_v: "1", - esvtk_esvid: "A40125", - event: "return" - }) - } - return i !== null && (i.orderid = t.guid, this.fireEvent(i)), !0 -}, SearchVisionListener.fireEvent = function(n) { - typeof esvtk_track != "undefined" ? esvtk_track(n) : setTimeout(function() { - SearchVisionListener.fireEvent(n) - }, 500) -}, SearchVisionListener.events = ["rbx_evt_fmp", "rbx_evt_ftp", "rbx_evt_install_begin", "rbx_evt_signup", "rbx_evt_generic"]; - -; /// SiteTouchEvent.js -typeof Roblox == "undefined" && (Roblox = {}), Roblox.SiteTouchEvent = function() { - function r() { - var t, i; - return typeof localStorage != "undefined" && (t = localStorage.getItem(n)), (typeof t == "undefined" || t === null) && (t = $.cookie(n)), i = Date.parse(t), t && !isNaN(i) ? new Date(i) : new Date(0) - } - - function i(i) { - typeof i == "undefined" && (i = new Date), typeof localStorage != "undefined" && (t.useLocalStorage ? $.cookie(n, null) : localStorage.removeItem(n)), t.useLocalStorage && typeof localStorage != "undefined" ? localStorage.setItem(n, i) : $.cookie(n, i, { - expires: 100 - }) - } - - function u() { - var n = r(); - Math.floor((new Date - n) / 36e5) >= t.dateDiffThresholdInHours && RobloxEventManager.triggerEvent("rbx_evt_sitetouch"), i() - } - var n = "LastActivity", - t = { - updateLastActivityAndFireEvent: u, - getLastActivity: r, - setLastActivity: i, - dateDiffThresholdInHours: 3, - useLocalStorage: !1 - }; - return t -}(); - -; /// JSErrorTracker.js -typeof Roblox == "undefined" && (Roblox = {}), Roblox.JSErrorTracker = { - showAlert: !1, - defaultPixel: "GA", - internalEventListenerPixelEnabled: !1, - javascriptStackTraceEnabled: !1, - data: { - category: "Javascript Errors" - }, - initialize: function(n) { - typeof n != "undefined" && (typeof n.showAlert != "undefined" && (this.showAlert = n.showAlert), typeof n.internalEventListenerPixelEnabled != "undefined" && (this.internalEventListenerPixelEnabled = n.internalEventListenerPixelEnabled)), this.addOnErrorEventHandler(this.errorHandler) - }, - errorHandler: function(n, t, i) { - try { - Roblox.JSErrorTracker.data.msg = n, Roblox.JSErrorTracker.data.url = t, Roblox.JSErrorTracker.data.line = i, Roblox.JSErrorTracker.data.ua = window.navigator.userAgent, Roblox.JSErrorTracker.logException(Roblox.JSErrorTracker.data) - } catch (r) {} - return !0 - }, - addOnErrorEventHandler: function(n) { - var t = window.onerror; - window.onerror = typeof window.onerror == "function" ? function(i, r, u) { - t(i, r, u), n(i, r, u) - } : n - }, - processException: function(n, t) { - if (typeof n != "undefined") { - typeof n.category == "undefined" && (n.category = Roblox.JSErrorTracker.data.category); - switch (t) { - case "GA": - var i = { - category: "category", - url: "action", - msg: "opt_label", - line: "opt_value" - }; - Roblox.JSErrorTracker.fireGAPixel(Roblox.JSErrorTracker.distillGAData(n, i)); - break; - case "Diag": - Roblox.JSErrorTracker.internalEventListenerPixelEnabled && (n.category = "JavascriptExceptions", n.shard = "WebMetrics", n.eventName = "JavascriptExceptionLoggingEvent", RobloxEventManager.triggerEvent("JavascriptExceptionLoggingEvent", n)); - break; - default: - console.log("Roblox JSErrorTracker received an unknown pixel to fire") - } - return !0 - } - }, - logException: function(n) { - Roblox.JSErrorTracker.processException(n, Roblox.JSErrorTracker.defaultPixel), Roblox.JSErrorTracker.internalEventListenerPixelEnabled && Roblox.JSErrorTracker.processException(n, "Diag"), Roblox.JSErrorTracker.showErrorMessage(n.msg) - }, - distillData: function(n, t) { - var r = {}, - i; - for (i in t) typeof n[i] != "undefined" && (r[t[i]] = encodeURIComponent(n[i])); - return r - }, - distillGAData: function(n, t) { - var r = Roblox.JSErrorTracker.distillData(n, t), - i = [decodeURIComponent([r.category])]; - return typeof r.action != typeof undefined ? (i = i.concat(decodeURIComponent(r.action)), typeof r.opt_label != typeof undefined && (i = i.concat(decodeURIComponent(r.opt_label)), typeof r.opt_value != typeof undefined && (i = i.concat(parseInt(decodeURIComponent(r.opt_value)))))) : Roblox.JSErrorTracker.showAlert && alert("Missing a required parameter for GA"), i - }, - createURL: function(n, t, i) { - var r = n, - f = Roblox.JSErrorTracker.distillData(t, i), - u; - if (r += "?", f != null) - for (u in f) typeof u != typeof undefined && t.hasOwnProperty(u) && (r += u + "=" + f[u] + "&"); - return r = r.slice(0, r.length - 1) - }, - fireGAPixel: function(n) { - typeof _gaq != "undefined" && _gaq.push(["c._trackEvent"].concat(n)) - }, - showErrorMessage: function(n) { - Roblox.JSErrorTracker.showAlert && (n !== null ? alert(n) : alert("An error occured")) - } -}; - -; /// Studio2Alert.js -var studio2AlertModal = { - showPrompt: !1, - userId: 0, - updateStudioAlertUserPreference: function() { - $.ajax({ - type: "GET", - url: "/WebHandlers/Studio2Alert.ashx?uId=" + studio2AlertModal.userId - }) - }, - close: function() { - studio2AlertModal.updateStudioAlertUserPreference(), $.modal.close("#Studio2AlertModal") - }, - init: function() { - studio2AlertModal.showPrompt = $("#Studio2AlertModal").data("showprompt"), studio2AlertModal.userId = $("#Studio2AlertModal").data("userid"); - var n = { - escClose: !0, - opacity: 80, - overlayCss: { - backgroundColor: "#000" - } - }; - studio2AlertModal.showPrompt && Roblox.Client.isIDE() && (studio2AlertModal.updateStudioAlertUserPreference(), $("#Studio2AlertModal").modal(n)) - } -}; -$("#closeStudio2Alert").click(function() { - studio2AlertModal.close() -}), $(function() { - studio2AlertModal.init() -}); - -; /// ClientInstaller.js -function tryToDownload() { - oIFrm = document.getElementById("downloadInstallerIFrame"), oIFrm.src = "/install/setup.ashx" -} - -function logStatistics(n) { - $.get("/install/VisitButtonHandler.ashx?reqtype=" + n, function() {}) -} -Type.registerNamespace("Roblox.Client"), Roblox.Client._installHost = null, Roblox.Client._installSuccess = null, Roblox.Client._CLSID = null, Roblox.Client._continuation = null, Roblox.Client._skip = null, Roblox.Client._isIDE = null, Roblox.Client._isRobloxBrowser = null, Roblox.Client._isPlaceLaunch = !1, Roblox.Client._silentModeEnabled = !1, Roblox.Client._bringAppToFrontEnabled = !1, Roblox.Client._numLocks = 0, Roblox.Client._logTiming = !1, Roblox.Client._logStartTime = null, Roblox.Client._logEndTime = null, Roblox.Client._hiddenModeEnabled = !1, Roblox.Client._runInstallABTest = function() {}, Roblox.Client.ReleaseLauncher = function(n, t, i) { - if (t && Roblox.Client._numLocks--, (i || Roblox.Client._numLocks <= 0) && (n != null && (document.getElementById("pluginObjDiv").innerHTML = "", n = null), Roblox.Client._numLocks = 0), Roblox.Client._logTiming) { - Roblox.Client._logEndTime = new Date; - var r = Roblox.Client._logEndTime.getTime() - Roblox.Client._logStartTime.getTime(); - console && console.log && console.log("Roblox.Client: " + r + "ms from Create to Release.") - } -}, Roblox.Client.GetInstallHost = function(n) { - if (window.ActiveXObject) return n.InstallHost; - var t = n.Get_InstallHost(); - return t.match(/roblox.com$/) ? t : t.substring(0, t.length - 1) -}, Roblox.Client.CreateLauncher = function(n) { - var i, u, t, r; - Roblox.Client._logTiming && (Roblox.Client._logStartTime = new Date), n && Roblox.Client._numLocks++, (Roblox.Client._installHost == null || Roblox.Client._CLSID == null) && typeof initClientProps == "function" && initClientProps(), i = document.getElementById("robloxpluginobj"), u = $("#pluginObjDiv"), i || (Roblox.Client._hiddenModeEnabled = !1, window.ActiveXObject ? (t = 'Failed to INIT Plugin', $(u).append(t)) : (t = '', t += "

You need Our Plugin for this. Get the latest version from", t += 'here.

', $(u).append(t)), i = document.getElementById("robloxpluginobj")); - try { - if (i || (typeof console.log == "undefined" ? alert("Plugin installation failed!") : console.log("Plugin installation failed!")), i.Hello(), r = Roblox.Client.GetInstallHost(i), !r || r != Roblox.Client._installHost) throw "wrong InstallHost: (plugins): " + r + " (servers): " + Roblox.Client._installHost; - return i - } catch (f) { - return Roblox.Client.ReleaseLauncher(i, n, !1), null - } -}, Roblox.Client.isIDE = function() { - if (Roblox.Client._isIDE == null && (Roblox.Client._isIDE = !1, Roblox.Client._isRobloxBrowser = !1, window.external)) try { - window.external.IsRobloxAppIDE !== undefined && (Roblox.Client._isIDE = window.external.IsRobloxAppIDE, Roblox.Client._isRobloxBrowser = !0) - } catch (n) {} - return Roblox.Client._isIDE -}, Roblox.Client.isRobloxBrowser = function() { - return Roblox.Client.isIDE(), Roblox.Client._isRobloxBrowser -}, Roblox.Client.robloxBrowserInstallHost = function() { - if (window.external) try { - return window.external.InstallHost - } catch (n) {} - return "" -}, Roblox.Client.IsRobloxProxyInstalled = function() { - var t = Roblox.Client.CreateLauncher(!1), - n = !1; - return (t != null && (n = !0), Roblox.Client.ReleaseLauncher(t, !1, !1), n || Roblox.Client.isRobloxBrowser()) ? !0 : !1 -}, Roblox.Client.IsRobloxInstalled = function() { - try { - var t = Roblox.Client.CreateLauncher(!1), - n = Roblox.Client.GetInstallHost(t); - return Roblox.Client.ReleaseLauncher(t, !1, !1), n == Roblox.Client._installHost - } catch (i) { - return Roblox.Client.isRobloxBrowser() ? (n = Roblox.Client.robloxBrowserInstallHost(), n == Roblox.Client._installHost) : !1 - } -}, Roblox.Client.SetStartInHiddenMode = function(n) { - try { - var t = Roblox.Client.CreateLauncher(!1); - if (t !== null) return t.SetStartInHiddenMode(n), Roblox.Client._hiddenModeEnabled = n, !0 - } catch (i) {} - return !1 -}, Roblox.Client.UnhideApp = function() { - try { - if (Roblox.Client._hiddenModeEnabled) { - var n = Roblox.Client.CreateLauncher(!1); - n.UnhideApp() - } - } catch (t) {} -}, Roblox.Client.Update = function() { - try { - var n = Roblox.Client.CreateLauncher(!1); - n.Update(), Roblox.Client.ReleaseLauncher(n, !1, !1) - } catch (t) { - alert("Error updating: " + t) - } -}, Roblox.Client.WaitForRoblox = function(n) { - if (Roblox.Client._skip) return window.location = Roblox.Client._skip, !1; - if (Roblox.Client._continuation = n, Roblox.Client._cancelled = !1, !Roblox.Client.IsRobloxProxyInstalled() && Roblox.Client.ImplementsProxy) { - Roblox.InstallationInstructions.show(), Roblox.Client.runInstallABTest(); - var t = "Windows"; - return navigator.appVersion.indexOf("Mac") != -1 && (t = "Mac"), typeof _gaq != typeof undefined && (_gaq.push(["_trackEvent", "Install Begin", t]), _gaq.push(["b._trackEvent", "Install Begin", t])), RobloxEventManager.triggerEvent("rbx_evt_install_begin", { - os: t - }), window.chrome && (window.location.hash = "#chromeInstall", $.cookie("chromeInstall", n.toString().replace(/play_placeId/, play_placeId.toString()))), window.setTimeout(function() { - Roblox.Client._ontimer() - }, 1e3), tryToDownload(), !0 - } - return Roblox.Client._continuation(), !1 -}, Roblox.Client.ResumeTimer = function(n) { - Roblox.Client._continuation = n, Roblox.Client._cancelled = !1, window.setTimeout(function() { - Roblox.Client._ontimer() - }, 0) -}, Roblox.Client.Refresh = function() { - try { - navigator.plugins.refresh(!1) - } catch (n) {} -}, Roblox.Client._onCancel = function() { - return Roblox.InstallationInstructions.hide(), Roblox.Client._cancelled = !0, !1 -}, Roblox.Client._ontimer = function() { - Roblox.Client._cancelled || (Roblox.Client.Refresh(), Roblox.Client.IsRobloxProxyInstalled() ? (Roblox.InstallationInstructions.hide(), window.setTimeout(function() { - window.chrome && window.location.hash == "#chromeInstall" && (window.location.hash = "", $.cookie("chromeInstall", null)) - }, 5e3), Roblox.Client._continuation(), Roblox.Client._installSuccess && Roblox.Client._installSuccess()) : window.setTimeout(function() { - Roblox.Client._ontimer() - }, 1e3)) -}; - -; /// InstallationInstructions.js -typeof Roblox == "undefined" && (Roblox = {}), Roblox.InstallationInstructions = function() { - function i() { - var t, i, r; - n(), t = 0, i = $(".InstallInstructionsImage"), i && typeof $(i).attr("modalwidth") != "undefined" && (t = $(".InstallInstructionsImage").attr("modalwidth")), t > 0 ? (r = ($(window).width() - (t - 10)) / 2, $("#InstallationInstructions").modal({ - escClose: !0, - opacity: 50, - minWidth: t, - maxWidth: t, - overlayCss: { - backgroundColor: "#000" - }, - position: [20, r] - })) : $("#InstallationInstructions").modal({ - escClose: !0, - opacity: 50, - maxWidth: $(window).width() / 2, - minWidth: $(window).width() / 2, - overlayCss: { - backgroundColor: "#000" - }, - position: [20, "25%"] - }) - } - - function r() { - $.modal.close() - } - - function n() { - var n = $(".InstallInstructionsImage"); - navigator.userAgent.match(/Mac OS X 10[_|\.]5/) ? n && typeof $(n).attr("oldmacdelaysrc") != "undefined" && $(".InstallInstructionsImage").attr("src", $(".InstallInstructionsImage").attr("oldmacdelaysrc")) : n && typeof $(n).attr("delaysrc") != "undefined" && $(".InstallInstructionsImage").attr("src", $(".InstallInstructionsImage").attr("delaysrc")) - } - return { - show: i, - hide: r - } -}(); - -; /// MadStatus.js -MadStatus = { - running: !1, - init: function(n, t, i, r) { - MadStatus.running && MadStatus.stop(), MadStatus.updateInterval = i ? i : 2e3, MadStatus.fadeInterval = r ? r : 1e3, MadStatus.timeout = null, MadStatus.running = !0, MadStatus.field = n, MadStatus.backBuffer = t, MadStatus.field.show(), MadStatus.backBuffer.hide() - }, - participle: ["Accelerating", "Aggregating", "Allocating", "Aquiring", "Automating", "Backtracing", "Bloxxing", "Bootstraping", "Calibrating", "Correlating", "De-noobing", "De-ionizing", "Deriving", "Energizing", "Filtering", "Generating", "Indexing", "Loading", "Noobing", "Optimizing", "Oxidizing", "Queueing", "Parsing", "Processing", "Rasterizing", "Reading", "Registering", "Re-routing", "Resolving", "Sampling", "Updating", "Writing"], - modifier: ["Blox", "Count Zero", "Cylon", "Data", "Ectoplasm", "Encryption", "Event", "Farnsworth", "Bebop", "Flux Capacitor", "Fusion", "Game", "Gibson", "Host", "Mainframe", "Metaverse", "Nerf Herder", "Neutron", "Noob", "Photon", "Profile", "Script", "Skynet", "TARDIS", "Virtual"], - subject: ["Analogs", "Blocks", "Cannon", "Channels", "Core", "Database", "Dimensions", "Directives", "Engine", "Files", "Gear", "Index", "Layer", "Matrix", "Paradox", "Parameters", "Parsecs", "Pipeline", "Players", "Ports", "Protocols", "Reactors", "Sphere", "Spooler", "Stream", "Switches", "Table", "Targets", "Throttle", "Tokens", "Torpedoes", "Tubes"], - newLib: function() { - return libString = this.participle[Math.floor(Math.random() * this.participle.length)] + " " + this.modifier[Math.floor(Math.random() * this.modifier.length)] + " " + this.subject[Math.floor(Math.random() * this.subject.length)] + "..." - }, - start: function() { - MadStatus.timeout == null && (MadStatus.timeout = setInterval("MadStatus.update()", MadStatus.updateInterval), MadStatus.running = !0) - }, - stop: function(n) { - clearInterval(MadStatus.timeout), MadStatus.timeout = null, MadStatus.field[0].innerHTML = typeof n != typeof undefined ? n : "", MadStatus.running = !1 - }, - manualUpdate: function(n, t, i) { - MadStatus.timeout && MadStatus.stop(), this.update(n, i), t && setTimeout("MadStatus.start()", 1e3) - }, - update: function(n, t) { - (MadStatus.backBuffer[0].innerHTML = typeof n != typeof undefined ? n : this.newLib(), typeof noAnim == typeof undefined || t != !1) && (this.field.hide(), this.backBuffer.fadeIn(this.fadeInterval + 2, function() { - MadStatus.field[0].innerHTML = MadStatus.backBuffer[0].innerHTML, MadStatus.field.show(), MadStatus.backBuffer.hide() - })) - } -}; - -; /// PlaceLauncher.js -var RBX = {}, - RobloxLaunchStates = { - StartingServer: "StartingServer", - StartingClient: "StartingClient", - Upgrading: "Upgrading", - None: "None" - }, - RobloxLaunch = { - launchGamePage: null, - timer: null, - clientMetricType: null, - launcher: null, - googleAnalyticsCallback: function() { - RobloxLaunch._GoogleAnalyticsCallback && RobloxLaunch._GoogleAnalyticsCallback() - }, - state: RobloxLaunchStates.None, - secureAuthenticate: !1 - }, - RobloxPlaceLauncherService = { - LogJoinClick: function() { - $.get("/Game/Placelauncher.ashx", { - request: "LogJoinClick" - }) - }, - RequestGame: function(n, t, i, r, u, f) { - i = i !== null && i !== undefined ? i : "", $.getJSON("/Game/PlaceLauncher.ashx", { - request: "RequestGame", - placeId: n, - isPartyLeader: t, - gender: i - }, function(n) { - n.Error ? u(n.Error, f) : r(n, f) - }) - }, - RequestPlayWithParty: function(n, t, i, r, u, f) { - $.getJSON("/Game/PlaceLauncher.ashx", { - request: "RequestPlayWithParty", - placeId: n, - partyGuid: t, - gameId: i - }, function(n) { - n.Error ? u(n.Error, f) : r(n, f) - }) - }, - RequestGroupBuildGame: function(n, t, i, r) { - $.getJSON("/Game/PlaceLauncher.ashx", { - request: "RequestGroupBuildGame", - placeId: n - }, function(n) { - n.Error ? i(n.Error, r) : t(n, r) - }) - }, - RequestFollowUser: function(n, t, i, r) { - $.getJSON("/Game/PlaceLauncher.ashx", { - request: "RequestFollowUser", - userId: n - }, function(n) { - n.Error ? i(n.Error, r) : t(n, r) - }) - }, - RequestGameJob: function(n, t, i, r, u, f) { - $.getJSON("/Game/PlaceLauncher.ashx", { - request: "RequestGameJob", - placeId: n, - gameId: t, - gameJobId: i - }, function(n) { - n.Error ? u(n.Error, f) : r(n, f) - }) - }, - CheckGameJobStatus: function(n, t, i, r) { - $.getJSON("/Game/PlaceLauncher.ashx", { - request: "CheckGameJobStatus", - jobId: n - }, function(n) { - n.Error ? i(n.Error, r) : t(n, r) - }) - } - }; -RobloxLaunch.RequestPlayWithParty = function(n, t, i, r) { - RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date, RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = "WebPlay", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestPlayWithParty(t, i, r)) -}, RobloxLaunch.RequestGame = function(n, t, i) { - RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date, RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = "WebPlay", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestGame(t, i)) -}, RobloxLaunch.RequestGroupBuildGame = function(n, t) { - RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date, RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = "WebPlay", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestGroupBuildGame(t)) -}, RobloxLaunch.RequestGameJob = function(n, t, i, r) { - RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date, RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = "WebJoin", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestGameJob(t, i, r)) -}, RobloxLaunch.RequestFollowUser = function(n, t) { - RobloxPlaceLauncherService.LogJoinClick(), RobloxLaunch.timer = new Date, RobloxLaunch.state = RobloxLaunchStates.None, RobloxLaunch.clientMetricType = "WebFollow", checkRobloxInstall() && (RobloxLaunch.launcher === null && (RobloxLaunch.launcher = new RBX.PlaceLauncher(n)), RobloxLaunch.launcher.RequestFollowUser(t)) -}, RobloxLaunch.StartGame = function(n, t, i, r, u) { - var o, f, e, s; - RobloxLaunch.secureAuthenticate && (i = i.replace("http://", "https://")), n = typeof RobloxLaunch.SeleniumTestMode == "undefined" ? n + "&testmode=false" : n + "&testmode=true", typeof urchinTracker != "undefined" && urchinTracker("Visit/Try/" + t), RobloxLaunch.state = RobloxLaunchStates.StartingClient, RobloxLaunch.googleAnalyticsCallback !== null && RobloxLaunch.googleAnalyticsCallback(), o = null; - try { - if (typeof window.external != "undefined" && window.external.IsRobloxABApp) window.external.StartGame(r, i, n); - else if (typeof window.external != "undefined" && window.external.IsRoblox2App && (n.indexOf("visit") != -1 || u)) window.external.StartGame(r, i, n); - else if (o = "RobloxProxy/", f = Roblox.Client.CreateLauncher(!0), f) { - o = "RobloxProxy/StartGame/"; - try { - try { - window.ActiveXObject ? f.AuthenticationTicket = r : f.Put_AuthenticationTicket(r), u && f.SetEditMode() - } catch (a) {} - try { - if (Roblox.Client._silentModeEnabled) f.SetSilentModeEnabled(!0), Roblox.VideoPreRoll.videoInitialized && Roblox.VideoPreRoll.isPlaying() && Roblox.Client.SetStartInHiddenMode(!0), f.StartGame(i, n), RobloxLaunch.CheckGameStarted(f); - else throw "silent mode is disabled, fall back"; - } catch (a) { - if (f.StartGame(i, n), Roblox.Client._bringAppToFrontEnabled) try { - f.BringAppToFront() - } catch (h) {} - Roblox.Client.ReleaseLauncher(f, !0, !1), $.modal.close() - } - } catch (a) { - Roblox.Client.ReleaseLauncher(f, !0, !1); - throw a; - } - } else { - try { - parent.playFromUrl(n); - return - } catch (l) {} - if (Roblox.Client.isRobloxBrowser()) try { - window.external.StartGame(r, i, n) - } catch (l) { - throw "window.external fallback failed, Roblox must not be installed or IE cannot access ActiveX"; - } else throw "launcher is null or undefined and external is missing"; - RobloxLaunch.state = RobloxLaunchStates.None, $.modal.close() - } - } catch (a) { - if (e = a.message, e === "User cancelled" && typeof urchinTracker != "undefined") return urchinTracker("Visit/UserCancelled/" + t), !1; - try { - s = new ActiveXObject("Microsoft.XMLHTTP") - } catch (c) { - e = "FailedXMLHTTP/" + e - } - return Roblox.Client.isRobloxBrowser() ? typeof urchinTracker != "undefined" && urchinTracker("Visit/Fail/" + o + encodeURIComponent(e)) : (typeof urchinTracker != "undefined" && urchinTracker("Visit/Redirect/" + o + encodeURIComponent(e)), window.location = RobloxLaunch.launchGamePage), !1 - } - return typeof urchinTracker != "undefined" && urchinTracker("Visit/Success/" + t), !0 -}, RobloxLaunch.CheckGameStarted = function(n) { - function r() { - var e = !1; - try { - if (i || (i = window.ActiveXObject ? n.IsGameStarted : n.Get_GameStarted()), i && !Roblox.VideoPreRoll.isPlaying()) { - if (MadStatus.stop("Connecting to Players..."), RobloxLaunch.state = RobloxLaunchStates.None, $.modal.close(), t._cancelled = !0, Roblox.Client._hiddenModeEnabled && Roblox.Client.UnhideApp(), Roblox.Client._bringAppToFrontEnabled) try { - n.BringAppToFront() - } catch (f) {} - Roblox.Client.ReleaseLauncher(n, !0, !1) - } else t._cancelled || setTimeout(r, 1e3) - } catch (u) { - t._cancelled || setTimeout(r, 1e3) - } - } - var t = RobloxLaunch.launcher, - i; - t === null && (t = new RBX.PlaceLauncher("PlaceLauncherStatusPanel"), t._showDialog(), t._updateStatus(0)), i = !1, r() -}, RobloxLaunch.CheckRobloxInstall = function(n) { - if (Roblox.Client.IsRobloxInstalled()) return Roblox.Client.Update(), !0; - window.location = n -}, RBX.PlaceLauncher = function(n) { - this._cancelled = !1, this._popupID = n, this._popup = $("#" + n) -}, RBX.PlaceLauncher.prototype = { - _showDialog: function() { - this._cancelled = !1, _popupOptions = { - escClose: !0, - opacity: 80, - overlayCss: { - backgroundColor: "#000" - } - }, this._popupID == "PlaceLauncherStatusPanel" && (Roblox.VideoPreRoll && Roblox.VideoPreRoll.showVideoPreRoll && !Roblox.VideoPreRoll.isExcluded() ? (this._popup = $("#videoPrerollPanel"), _popupOptions.onShow = function(n) { - Roblox.VideoPreRoll.correctIEModalPosition(n), Roblox.VideoPreRoll.start() - }, _popupOptions.onClose = function() { - Roblox.VideoPreRoll.close() - }, _popupOptions.closeHTML = '') : (this._popup = $("#" + this._popupID), _popupOptions.onClose = function() { - Roblox.VideoPreRoll.logVideoPreRoll(), $.modal.close() - })), this._popup.modal(_popupOptions); - var n = this; - $(".CancelPlaceLauncherButton").click(function() { - n.CancelLaunch() - }), $(".CancelPlaceLauncherButton").show() - }, - _reportDuration: function(n, t) { - $.ajax({ - type: "GET", - async: !0, - cache: !1, - timeout: 5e4, - url: "/Game/JoinRate.ashx?c=" + RobloxLaunch.clientMetricType + "&r=" + t + "&d=" + n, - success: function() {} - }) - }, - _onGameStatus: function(n) { - var r, i, t; - if (this._cancelled) { - r = +new Date - RobloxLaunch.timer.getTime(), this._reportDuration(r, "Cancel"); - return - } - if (this._updateStatus(n.status), n.status === 2) RobloxLaunch.StartGame(n.joinScriptUrl, "Join", n.authenticationUrl, n.authenticationTicket), i = +new Date - RobloxLaunch.timer.getTime(), this._reportDuration(i, "Success"); - else if (n.status < 2 || n.status === 6) { - var f = function(n, t) { - t._onGameStatus(n) - }, - e = function(n, t) { - t._onGameError(n) - }, - o = this, - u = function() { - RobloxPlaceLauncherService.CheckGameJobStatus(n.jobId, f, e, o) - }; - window.setTimeout(u, 2e3) - } else n.status === 4 && (t = +new Date - RobloxLaunch.timer.getTime(), this._reportDuration(t, "Failure")) - }, - _updateStatus: function(n) { - MadStatus.running || (MadStatus.init($(this._popup).find(".MadStatusField"), $(this._popup).find(".MadStatusBackBuffer"), 2e3, 800), MadStatus.start()); - switch (n) { - case 0: - break; - case 1: - MadStatus.manualUpdate("A server is loading the game...", !0); - break; - case 2: - MadStatus.manualUpdate("The server is ready. Joining the game...", !0); - break; - case 3: - MadStatus.manualUpdate("Joining games is temporarily disabled while we upgrade. Please try again soon.", !1); - break; - case 4: - MadStatus.manualUpdate("An error occurred. Please try again later.", !1); - break; - case 5: - MadStatus.manualUpdate("The game you requested has ended.", !1); - break; - case 6: - MadStatus.manualUpdate("The game you requested is currently full. Waiting for an opening...", !0, !1); - break; - case 7: - MadStatus.manualUpdate("Roblox is updating. Please wait...", !0); - break; - case 8: - MadStatus.manualUpdate("Requesting a server", !0); - break; - default: - MadStatus.stop("Connecting to Players...") - } - $(this._popup).find(".MadStatusStarting").css("display", "none"), $(this._popup).find(".MadStatusSpinner").css("visibility", n === 3 || n === 4 || n === 5 ? "hidden" : "visible") - }, - _onGameError: function() { - this._updateStatus(4) - }, - _startUpdatePolling: function(n) { - var t, i; - try { - if (RobloxLaunch.state = RobloxLaunchStates.Upgrading, t = Roblox.Client.CreateLauncher(!0), i = window.ActiveXObject ? t.IsUpToDate : t.Get_IsUpToDate(), i || i === undefined) { - try { - t.PreStartGame() - } catch (e) {} - Roblox.Client.ReleaseLauncher(t, !0, !1), RobloxLaunch.state = RobloxLaunchStates.StartingServer, n(); - return - } - var f = function(t, i, r) { - r._onUpdateStatus(t, i, n) - }, - u = function(n, t) { - t._onUpdateError(n) - }, - r = this; - this.CheckUpdateStatus(f, u, t, n, r) - } catch (e) { - Roblox.Client.ReleaseLauncher(t, !0, !1), n() - } - }, - _onUpdateStatus: function(n, t, i) { - if (!this._cancelled) - if (this._updateStatus(n), n === 8) Roblox.Client.ReleaseLauncher(t, !0, !0), Roblox.Client.Refresh(), RobloxLaunch.state = RobloxLaunchStates.StartingServer, i(); - else if (n === 7) { - var f = function(n, t, r) { - r._onUpdateStatus(n, t, i) - }, - e = function(n, t) { - t._onUpdateError(n) - }, - r = this, - u = function() { - r.CheckUpdateStatus(f, e, t, i, r) - }; - window.setTimeout(u, 2e3) - } else alert("Unknown status from CheckUpdateStatus") - }, - _onUpdateError: function() { - this._updateStatus(2) - }, - CheckUpdateStatus: function(n, t, i, r, u) { - try { - if (i.PreStartGame(), window.ActiveXObject) var f = i.IsUpToDate; - else f = i.Get_IsUpToDate(); - f || f === undefined ? n(8, i, u) : n(7, i, u) - } catch (e) { - n(8, i, u) - } - }, - RequestGame: function(n, t) { - var r; - this._showDialog(); - var f = function(n, t) { - t._onGameStatus(n) - }, - u = function(n, t) { - t._onGameError(n) - }, - e = this, - i = !1; - return typeof Party != "undefined" && typeof Party.AmILeader == "function" && (i = Party.AmILeader()), r = function() { - RobloxPlaceLauncherService.RequestGame(n, i, t, f, u, e) - }, this._startUpdatePolling(r), !1 - }, - RequestPlayWithParty: function(n, t, i) { - this._showDialog(); - var f = function(n, t) { - t._onGameStatus(n) - }, - e = function(n, t) { - t._onGameError(n) - }, - r = this, - u = function() { - RobloxPlaceLauncherService.RequestPlayWithParty(n, t, i, f, e, r) - }; - return this._startUpdatePolling(u), !1 - }, - RequestGroupBuildGame: function(n) { - this._showDialog(); - var r = function(n, t) { - t._onGameStatus(n, !0) - }, - u = function(n, t) { - t._onGameError(n) - }, - t = this, - i = function() { - RobloxPlaceLauncherService.RequestGroupBuildGame(n, r, u, t) - }; - return this._startUpdatePolling(i), !1 - }, - RequestFollowUser: function(n) { - this._showDialog(); - var r = function(n, t) { - t._onGameStatus(n) - }, - u = function(n, t) { - t._onError(n) - }, - t = this, - i = function() { - RobloxPlaceLauncherService.RequestFollowUser(n, r, u, t) - }; - return this._startUpdatePolling(i), !1 - }, - RequestGameJob: function(n, t, i) { - this._showDialog(); - var f = function(n, t) { - t._onGameStatus(n) - }, - e = function(n, t) { - t._onGameError(n) - }, - r = this, - u = function() { - RobloxPlaceLauncherService.RequestGameJob(n, t, i, f, e, r) - }; - return this._startUpdatePolling(u), !1 - }, - CancelLaunch: function() { - return this._cancelled = !0, $.modal.close(), !1 - }, - dispose: function() { - RBX.PlaceLauncher.callBaseMethod(this, "dispose") - } -}; - -; /// VideoPreRoll.js -function openVideoPreroll2(n) { - Roblox.VideoPreRoll.test(n) -} - -function flashCheck(n) { - var i = !1, - t, r; - if (window.ActiveXObject) try { - t = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + n), i = !0 - } catch (u) {} else navigator.plugins && navigator.mimeTypes.length > 0 && (t = navigator.plugins["Shockwave Flash"], t && (r = navigator.plugins["Shockwave Flash"].description.replace(/.*\s(\d+\.\d+).*/, "$1"), r >= n && (i = !0))); - return i -} -typeof Roblox == "undefined" && (Roblox = {}), Roblox.VideoPreRoll = { - newValue: "", - showVideoPreRoll: !1, - videoInitialized: !1, - videoStarted: !1, - videoCompleted: !1, - videoSkipped: !1, - videoCancelled: !1, - videoErrored: !1, - videoOptions: { - key: "integration_test", - companionId: "videoPrerollCompanionAd" - }, - myvpaidad: null, - loadingBarMaxTime: 3e4, - loadingBarCurrentTime: 0, - loadingBarIntervalID: 0, - loadingBarID: "videoPrerollLoadingBar", - loadingBarInnerID: "videoPrerollLoadingBarCompleted", - loadingBarPercentageID: "videoPrerollLoadingPercent", - videoLoadingTimeout: 7e3, - videoPlayingTimeout: 23e3, - videoLogNote: "", - logsEnabled: !1, - excludedPlaceIds: "", - specificAdOnPlacePageEnabled: !1, - specificAdOnPlacePageId: 0, - specificAdOnPlacePageCategory: "", - checkEligibility: function() { - Roblox.VideoPreRoll.showVideoPreRoll && (flashCheck(8) ? typeof __adaptv__ == "undefined" ? (Roblox.VideoPreRoll.videoLogNote = "NoAdapTv", Roblox.VideoPreRoll.showVideoPreRoll = !1) : Roblox.Client.IsRobloxInstalled() ? Roblox.Client.isIDE() ? (Roblox.VideoPreRoll.videoLogNote = "RobloxStudio", Roblox.VideoPreRoll.showVideoPreRoll = !1) : Roblox.Client.isRobloxBrowser() ? (Roblox.VideoPreRoll.videoLogNote = "RobloxPlayer", Roblox.VideoPreRoll.showVideoPreRoll = !1) : window.chrome && window.location.hash == "#chromeInstall" && (Roblox.VideoPreRoll.showVideoPreRoll = !1) : Roblox.VideoPreRoll.showVideoPreRoll = !1 : (Roblox.VideoPreRoll.videoLogNote = "NoFlash", Roblox.VideoPreRoll.showVideoPreRoll = !1)) - }, - isExcluded: function() { - var t, n; - if (Roblox.VideoPreRoll.showVideoPreRoll && Roblox.VideoPreRoll.excludedPlaceIds !== "" && (t = Roblox.VideoPreRoll.excludedPlaceIds.split(","), typeof play_placeId != "undefined")) - for (n = 0; n < t.length; n++) - if (play_placeId == t[n]) return Roblox.VideoPreRoll.videoLogNote = "ExcludedPlace", !0; - return !1 - }, - start: function() { - var i, r, t, n; - this.videoInitialized = !0, this.videoStarted = !1, this.videoCancelled = !1, this.videoCompleted = !1, this.videoSkipped = !1, this.loadingBarCurrentTime = 0, this.videoLogNote = "", Roblox.VideoPreRoll.specificAdOnPlacePageEnabled && typeof play_placeId != "undefined" && (i = "," + Roblox.VideoPreRoll.specificAdOnPlacePageCategory, play_placeId == Roblox.VideoPreRoll.specificAdOnPlacePageId && Roblox.VideoPreRoll.videoOptions.categories.indexOf(i) == -1 && (Roblox.VideoPreRoll.videoOptions.categories += i)), r = __adaptv__, this.myvpaidad = new r.ads.vpaid.VPAIDAd("videoPrerollMainDiv"), t = 1e3, LoadingBar.init(this.loadingBarID, this.loadingBarInnerID, this.loadingBarPercentageID), this.loadingBarIntervalID = setInterval(function() { - Roblox.VideoPreRoll.loadingBarCurrentTime += t, LoadingBar.update(Roblox.VideoPreRoll.loadingBarID, Roblox.VideoPreRoll.loadingBarCurrentTime / Roblox.VideoPreRoll.loadingBarMaxTime) - }, t), n = r.ads.vpaid.VPAIDEvent; - this.myvpaidad.on(n.AdLoaded, function(n) { - Roblox.VideoPreRoll._onVideoLoaded(n) - }); - this.myvpaidad.on(n.AdStarted, function(n) { - Roblox.VideoPreRoll._onVideoStart(n) - }); - this.myvpaidad.on(n.AdStopped, function(n) { - Roblox.VideoPreRoll._onVideoComplete(n) - }); - this.myvpaidad.on(n.AdError, function(n) { - Roblox.VideoPreRoll._onVideoError(n) - }); - try { - this.myvpaidad.initAd(391, 312, this.videoOptions) - } catch (u) { - f() - } - }, - error: function() { - clearInterval(loadingBarInterval) - }, - cancel: function() { - this.videoCancelled = !0, $.modal.close() - }, - skip: function() { - this.videoCompleted = !0, this.videoSkipped = !0, this.showVideoPreRoll = !1 - }, - close: function() { - MadStatus.running && MadStatus.stop(""), RobloxLaunch.launcher && (RobloxLaunch.launcher._cancelled = !0), clearInterval(this.loadingBarIntervalID), LoadingBar.dispose(this.loadingBarID); - try { - this.myvpaidad.stopAd() - } catch (n) {} - this.isPlaying() && (this.videoCancelled = !0), $.modal.close(), this.logVideoPreRoll() - }, - _onVideoError: function f() { - this.videoCompleted = !0, this.videoErrored = !0 - }, - _onVideoLoaded: function(n) { - try { - this.myvpaidad.startAd() - } catch (t) { - f(n) - } - }, - _onVideoStart: function() { - this.videoStarted = !0 - }, - _onVideoComplete: function() { - this.videoStarted && this.videoCancelled == !1 && (this.videoCompleted = !0, this.showVideoPreRoll = !1, this.newValue != "" && $.cookie("RBXVPR", this.newValue, 180)) - }, - logVideoPreRoll: function() { - if (Roblox.VideoPreRoll.logsEnabled) { - var n = ""; - if (Roblox.VideoPreRoll.videoCompleted) n = "Complete", Roblox.VideoPreRoll.videoLogNote == "" && (Roblox.VideoPreRoll.videoLogNote = "NoTimeout"), Roblox.VideoPreRoll.logsEnabled = !1; - else if (Roblox.VideoPreRoll.videoCancelled) n = "Cancelled", Roblox.VideoPreRoll.videoLogNote = RobloxLaunch.state; - else if (Roblox.VideoPreRoll.videoInitialized == !1 && Roblox.VideoPreRoll.videoLogNote != "") n = "Failed", Roblox.VideoPreRoll.logsEnabled = !1; - else return; - GoogleAnalyticsEvents.FireEvent(["PreRoll", n, Roblox.VideoPreRoll.videoLogNote]) - } - }, - isPlaying: function() { - return Roblox.VideoPreRoll.videoInitialized ? (Roblox.VideoPreRoll.videoInitialized && !Roblox.VideoPreRoll.videoStarted && Roblox.VideoPreRoll.loadingBarCurrentTime > Roblox.VideoPreRoll.videoLoadingTimeout && (Roblox.VideoPreRoll.videoCompleted = !0, Roblox.VideoPreRoll.videoLogNote = "LoadingTimeout"), Roblox.VideoPreRoll.videoStarted && !Roblox.VideoPreRoll.videoCompleted && Roblox.VideoPreRoll.loadingBarCurrentTime > Roblox.VideoPreRoll.videoPlayingTimeout && (Roblox.VideoPreRoll.videoCompleted = !0, Roblox.VideoPreRoll.videoLogNote = "PlayingTimeout"), !Roblox.VideoPreRoll.videoCompleted) : !1 - }, - correctIEModalPosition: function(n) { - if (n.container.innerHeight() <= 30) { - var i = $("#videoPrerollPanel"), - t = -Math.floor(i.innerHeight() / 2); - i.css({ - position: "relative", - top: t + "px" - }), n.container.find(".VprCloseButton").css({ - top: t - 10 + "px", - "z-index": "1003" - }) - } - }, - test: function() { - _popupOptions = { - escClose: !0, - opacity: 80, - overlayCss: { - backgroundColor: "#000" - }, - onShow: function(n) { - Roblox.VideoPreRoll.correctIEModalPosition(n), Roblox.VideoPreRoll.start() - }, - onClose: function() { - Roblox.VideoPreRoll.close() - }, - closeHTML: '' - }, $("#videoPrerollPanel").modal(_popupOptions), MadStatus.running || (MadStatus.init($("#videoPrerollPanel").find(".MadStatusField"), $("#videoPrerollPanel").find(".MadStatusBackBuffer"), 2e3, 800), MadStatus.start()), $("#videoPrerollPanel").find(".MadStatusStarting").css("display", "none"), $("#videoPrerollPanel").find(".MadStatusSpinner").css("visibility", status === 3 || status === 4 || status === 5 ? "hidden" : "visible") - } -}; -var LoadingBar = { - bars: [], - init: function(n, t, i, r) { - var u = this.get(n); - u == null && (u = {}), u.barID = n, u.innerBarID = t, u.percentageID = i, typeof r == "undefined" && (u.percentComplete = 0), this.bars.push(u), this.update(n, u.percentComplete) - }, - get: function(n) { - for (var t = 0; t < this.bars.length; t++) - if (this.bars[t].barID == n) return this.bars[t]; - return null - }, - dispose: function(n) { - for (var t = 0; t < this.bars.length; t++) this.bars[t].barID == n && this.bars.splice(t, 1) - }, - update: function(n, t) { - var i = this.get(n), - u, r; - i && (t > 1 && (t = 1), u = $("#" + n).width(), r = Math.round(u * t), $("#" + i.innerBarID).animate({ - width: r - }, 200, "swing"), i.percentageID && $("#" + i.percentageID).length > 0 && $("#" + i.percentageID).html(Math.round(t * 100) + "%"), i.percentComplete = t) - } -}; -// end roblox.js \ No newline at end of file diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js deleted file mode 100644 index 63605fa..0000000 --- a/resources/js/bootstrap.js +++ /dev/null @@ -1,41 +0,0 @@ -window._ = require('lodash'); - -/** - * We'll load jQuery and the Bootstrap jQuery plugin which provides support - * for JavaScript based Bootstrap features such as modals and tabs. This - * code may be modified to fit the specific needs of your application. - */ - -try { - window.Popper = require('popper.js').default; - window.$ = window.jQuery = require('jquery'); - - require('bootstrap'); -} catch (e) {} - -/** - * We'll load the axios HTTP library which allows us to easily issue requests - * to our Laravel back-end. This library automatically handles sending the - * CSRF token as a header based on the value of the "XSRF" token cookie. - */ - -window.axios = require('axios'); - -window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; - -/** - * Echo exposes an expressive API for subscribing to channels and listening - * for events that are broadcast by Laravel. Echo and event broadcasting - * allows your team to easily build robust real-time web applications. - */ - -// import Echo from 'laravel-echo'; - -// window.Pusher = require('pusher-js'); - -// window.Echo = new Echo({ -// broadcaster: 'pusher', -// key: process.env.MIX_PUSHER_APP_KEY, -// cluster: process.env.MIX_PUSHER_APP_CLUSTER, -// forceTLS: true -// }); diff --git a/resources/lang/en/auth.php b/resources/lang/en/auth.php deleted file mode 100644 index 6598e2c..0000000 --- a/resources/lang/en/auth.php +++ /dev/null @@ -1,20 +0,0 @@ - 'These credentials do not match our records.', - 'password' => 'The provided password is incorrect.', - 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', - -]; diff --git a/resources/lang/en/pagination.php b/resources/lang/en/pagination.php deleted file mode 100644 index d481411..0000000 --- a/resources/lang/en/pagination.php +++ /dev/null @@ -1,19 +0,0 @@ - '« Previous', - 'next' => 'Next »', - -]; diff --git a/resources/lang/en/passwords.php b/resources/lang/en/passwords.php deleted file mode 100644 index 2345a56..0000000 --- a/resources/lang/en/passwords.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Your password has been reset!', - 'sent' => 'We have emailed your password reset link!', - 'throttled' => 'Please wait before retrying.', - 'token' => 'This password reset token is invalid.', - 'user' => "We can't find a user with that email address.", - -]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php deleted file mode 100644 index 49e3388..0000000 --- a/resources/lang/en/validation.php +++ /dev/null @@ -1,155 +0,0 @@ - 'The :attribute must be accepted.', - 'active_url' => 'The :attribute is not a valid URL.', - 'after' => 'The :attribute must be a date after :date.', - 'after_or_equal' => 'The :attribute must be a date after or equal to :date.', - 'alpha' => 'The :attribute must only contain letters.', - 'alpha_dash' => 'The :attribute must only contain letters, numbers, dashes and underscores.', - 'alpha_num' => 'The :attribute must only contain letters and numbers.', - 'array' => 'The :attribute must be an array.', - 'before' => 'The :attribute must be a date before :date.', - 'before_or_equal' => 'The :attribute must be a date before or equal to :date.', - 'between' => [ - 'numeric' => 'The :attribute must be between :min and :max.', - 'file' => 'The :attribute must be between :min and :max kilobytes.', - 'string' => 'The :attribute must be between :min and :max characters.', - 'array' => 'The :attribute must have between :min and :max items.', - ], - 'boolean' => 'The :attribute field must be true or false.', - 'confirmed' => 'The :attribute confirmation does not match.', - 'date' => 'The :attribute is not a valid date.', - 'date_equals' => 'The :attribute must be a date equal to :date.', - 'date_format' => 'The :attribute does not match the format :format.', - 'different' => 'The :attribute and :other must be different.', - 'digits' => 'The :attribute must be :digits digits.', - 'digits_between' => 'The :attribute must be between :min and :max digits.', - 'dimensions' => 'The :attribute has invalid image dimensions.', - 'distinct' => 'The :attribute field has a duplicate value.', - 'email' => 'The :attribute must be a valid email address.', - 'ends_with' => 'The :attribute must end with one of the following: :values.', - 'exists' => 'The selected :attribute is invalid.', - 'file' => 'The :attribute must be a file.', - 'filled' => 'The :attribute field must have a value.', - 'gt' => [ - 'numeric' => 'The :attribute must be greater than :value.', - 'file' => 'The :attribute must be greater than :value kilobytes.', - 'string' => 'The :attribute must be greater than :value characters.', - 'array' => 'The :attribute must have more than :value items.', - ], - 'gte' => [ - 'numeric' => 'The :attribute must be greater than or equal :value.', - 'file' => 'The :attribute must be greater than or equal :value kilobytes.', - 'string' => 'The :attribute must be greater than or equal :value characters.', - 'array' => 'The :attribute must have :value items or more.', - ], - 'image' => 'The :attribute must be an image.', - 'in' => 'The selected :attribute is invalid.', - 'in_array' => 'The :attribute field does not exist in :other.', - 'integer' => 'The :attribute must be an integer.', - 'ip' => 'The :attribute must be a valid IP address.', - 'ipv4' => 'The :attribute must be a valid IPv4 address.', - 'ipv6' => 'The :attribute must be a valid IPv6 address.', - 'json' => 'The :attribute must be a valid JSON string.', - 'lt' => [ - 'numeric' => 'The :attribute must be less than :value.', - 'file' => 'The :attribute must be less than :value kilobytes.', - 'string' => 'The :attribute must be less than :value characters.', - 'array' => 'The :attribute must have less than :value items.', - ], - 'lte' => [ - 'numeric' => 'The :attribute must be less than or equal :value.', - 'file' => 'The :attribute must be less than or equal :value kilobytes.', - 'string' => 'The :attribute must be less than or equal :value characters.', - 'array' => 'The :attribute must not have more than :value items.', - ], - 'max' => [ - 'numeric' => 'The :attribute must not be greater than :max.', - 'file' => 'The :attribute must not be greater than :max kilobytes.', - 'string' => 'The :attribute must not be greater than :max characters.', - 'array' => 'The :attribute must not have more than :max items.', - ], - 'mimes' => 'The :attribute must be a file of type: :values.', - 'mimetypes' => 'The :attribute must be a file of type: :values.', - 'min' => [ - 'numeric' => 'The :attribute must be at least :min.', - 'file' => 'The :attribute must be at least :min kilobytes.', - 'string' => 'The :attribute must be at least :min characters.', - 'array' => 'The :attribute must have at least :min items.', - ], - 'multiple_of' => 'The :attribute must be a multiple of :value.', - 'not_in' => 'The selected :attribute is invalid.', - 'not_regex' => 'The :attribute format is invalid.', - 'numeric' => 'The :attribute must be a number.', - 'password' => 'The password is incorrect.', - 'present' => 'The :attribute field must be present.', - 'regex' => 'The :attribute format is invalid.', - 'required' => 'The :attribute field is required.', - 'required_if' => 'The :attribute field is required when :other is :value.', - 'required_unless' => 'The :attribute field is required unless :other is in :values.', - 'required_with' => 'The :attribute field is required when :values is present.', - 'required_with_all' => 'The :attribute field is required when :values are present.', - 'required_without' => 'The :attribute field is required when :values is not present.', - 'required_without_all' => 'The :attribute field is required when none of :values are present.', - 'prohibited' => 'The :attribute field is prohibited.', - 'prohibited_if' => 'The :attribute field is prohibited when :other is :value.', - 'prohibited_unless' => 'The :attribute field is prohibited unless :other is in :values.', - 'same' => 'The :attribute and :other must match.', - 'size' => [ - 'numeric' => 'The :attribute must be :size.', - 'file' => 'The :attribute must be :size kilobytes.', - 'string' => 'The :attribute must be :size characters.', - 'array' => 'The :attribute must contain :size items.', - ], - 'starts_with' => 'The :attribute must start with one of the following: :values.', - 'string' => 'The :attribute must be a string.', - 'timezone' => 'The :attribute must be a valid zone.', - 'unique' => 'The :attribute has already been taken.', - 'uploaded' => 'The :attribute failed to upload.', - 'url' => 'The :attribute format is invalid.', - 'uuid' => 'The :attribute must be a valid UUID.', - - /* - |-------------------------------------------------------------------------- - | Custom Validation Language Lines - |-------------------------------------------------------------------------- - | - | Here you may specify custom validation messages for attributes using the - | convention "attribute.rule" to name the lines. This makes it quick to - | specify a specific custom language line for a given attribute rule. - | - */ - - 'custom' => [ - 'attribute-name' => [ - 'rule-name' => 'custom-message', - ], - ], - - /* - |-------------------------------------------------------------------------- - | Custom Validation Attributes - |-------------------------------------------------------------------------- - | - | The following language lines are used to swap our attribute placeholder - | with something more reader friendly such as "E-Mail Address" instead - | of "email". This simply helps us make our message more expressive. - | - */ - - 'attributes' => [], - -]; diff --git a/resources/sass/_footer.scss b/resources/sass/_footer.scss deleted file mode 100644 index e69de29..0000000 diff --git a/resources/sass/_variables.scss b/resources/sass/_variables.scss deleted file mode 100644 index 3e3a95e..0000000 --- a/resources/sass/_variables.scss +++ /dev/null @@ -1,19 +0,0 @@ -// Body -$body-bg: #f8fafc; - -// Typography -$font-family-sans-serif: 'Roboto', sans-serif; -$font-size-base: 0.9rem; -$line-height-base: 1.6; - -// Colors -$blue: #3490dc; -$indigo: #6574cd; -$purple: #9561e2; -$pink: #f66d9b; -$red: #e3342f; -$orange: #f6993f; -$yellow: #ffed4a; -$green: #38c172; -$teal: #4dc0b5; -$cyan: #6cb2eb; diff --git a/resources/sass/app.scss b/resources/sass/app.scss deleted file mode 100644 index 6daad09..0000000 --- a/resources/sass/app.scss +++ /dev/null @@ -1,11082 +0,0 @@ -// Fonts -//@import url('https://fonts.googleapis.com/css?family=Roboto'); - -// Variables -@import 'variables'; - -// Bootstrap -//@import '~bootstrap/scss/bootstrap'; - -// FontAwesome -@import '~@fortawesome/fontawesome-free/scss/fontawesome'; -@import '~@fortawesome/fontawesome-free/scss/regular'; -@import '~@fortawesome/fontawesome-free/scss/solid'; -@import '~@fortawesome/fontawesome-free/scss/brands'; - -// Footer -@import 'footer'; - -// hacked by ray!!! -.-mb-2 { - margin-bottom: -0.5rem !important; -} - -.-mx-2, .-m-2 { - margin-left: -0.5rem !important; - margin-right: -0.5rem !important; -} - -.-my-2, .-m-2 { - margin-top: -0.5rem !important; - margin-bottom: -0.5rem !important; -} - -// Roblox CSS below -body { - font: normal 8pt/normal Verdana, sans-serif; - margin: 0; - text-transform: none; - text-decoration: none; - background: #F8FCFF url(/images/bg_gradient.jpg) repeat-x; -} - -a { - text-decoration: none; -} - -a img { - border: none; -} - -a:link, -a:visited, -a:active { - color: #00F; -} - -a:hover { - text-decoration: underline; -} - -abbr, -acronym { - cursor: help; - border-bottom: 1px dotted #000; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin: 0; - padding: 0; - font-size: 100%; - font-weight: inherit; - display: inline-block; - *display: inline; -} - -pre { - white-space: pre-wrap; - white-space: -moz-pre-wrap!important; - white-space: -pre-wrap; - white-space: -o-pre-wrap; - word-wrap: break-word; -} - -input.Text { - border-color: #777; - border-style: dashed; -} - -.AdminPanel { - border-color: Orange; - border-style: dotted; - padding: 10px; -} - -.ImageButton { - cursor: pointer; - padding: 0; - border: 0; - text-decoration: none; - margin: 0; - display: inline-block; -} - -.Button { - cursor: pointer; - background-color: #fff; - border: solid 1px #333; - color: #333; - font-family: Verdana, Sans-Serif; - font-size: .9em; - padding: 3px 10px 3px 10px; - text-decoration: none; -} - -.Button:link, -.Button:visited { - border: solid 1px #777; - color: #777; -} - -.Button:hover, -.Button:active { - background-color: #6e99c9; - border: solid 1px #000; - color: #fff; -} - -.Bullet { - float: left; - margin-right: 10px; - margin-bottom: 4px; -} - -.Ads_RightSidebar { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -.Legalese { - font-size: 7pt; -} - -#Container { - margin: 0 auto; - padding: 0 10px; - border-left: 5px solid #DDD; - border-right: 5px solid #DDD; - width: 900px; - background: #e5f1fd; -} - -#Header { - margin: 0 auto; - color: White; - font: normal 12px/normal Verdana, sans-serif; - font-weight: bold; - width: 900px; - text-align: center; -} - -#Header a, -#Header a:visited, -#Header a:active { - text-decoration: none; -} - -#Header a:hover { - text-decoration: underline; -} - -#Banner { - background-image: url(/images/WoodBanner.png); - background-repeat: no-repeat; - height: 72px; - text-align: center; -} - -#Banner #Options { - float: left; - height: 72px; - position: relative; - overflow: hidden; - width: 200px; -} - -#Banner #Authentication { - top: 0; - left: 0; - padding: 4px; - position: absolute; - background: #6E99C9; -} - -#Banner #Options #Settings { - bottom: 0; - left: 0; - padding: 4px; - position: absolute; -} - -#Banner #Logo { - float: left; - margin: 7px 0; - text-align: center; - width: 293px; - height: 58px; -} - -#Banner #Alerts { - float: right; - border: 1px solid #6E99C9; - background: #FFF; - width: 203px; -} - -#Header .Navigation { - clear: both; - background-color: #6e99c9; - color: #fff; - font-family: Arial, Helvetica, sans-serif; - font-size: 12pt; - font-weight: normal; - line-height: 2em; - text-decoration: none; -} - -#AdvertisingLeaderboard { - margin: 0 auto; - margin-bottom: 5px; - text-align: center; - width: 898px; -} - -#AdvertisingSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 120px; -} - -#RobloxLargeRectangleAd { - padding: 10px 0 10px 0; -} - -#MasterContainer { - background: transparent url(/images/bg_clouds.jpg) no-repeat scroll center top; - width: 100%; - overflow: auto; -} - -#Body { - width: 900px; -} - -#Footer { - font: normal 8px/normal Verdana, sans-serif; - padding: 3em 20px; - width: 860px; - text-align: center; - font-size: 13px; - margin: 0; -} - -#Footer .SEOGenreLinks { - padding: 1em 0 2em 0; - font-size: 11px; -} - -#Footer .Legalese { - color: #555; - font-size: 10px; - margin-bottom: 1em; -} - -.AdmiPanel { - border: solid 1px #000; - bottom: 20px; - height: 200px; - overflow: hidden; - right: 10px; - padding-top: 15px; - position: fixed; - width: 200px; -} - -.AdmiPanel h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - margin: 0; - text-align: center; -} - -.AdmiPanelExpandCollapse { - color: green; - cursor: pointer; - font-weight: bolder; - position: absolute; - right: 2px; - top: 2px; -} - -.Panel { - border: solid 1px #000; -} - -.Panel h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - margin: 0; - text-align: center; -} - -.MultilineTextBox { - border: dashed 2px Gray; - font-family: Verdana, Sans-Serif; - font-size: 1.2em; - line-height: 1.5em; - padding: 5px 5px; -} - -.TextBox { - border: 1px solid #ccc; - font-family: Verdana, Sans-Serif; - font-size: 1.2em; - padding: 5px; -} - -.Label { - font-weight: bold; -} - -.BigButton { - background-color: #F5CD2F; - color: #000; - height: 2.5em; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 20px; - font-weight: bold; -} - -.ErrorReporting, -.ErrorReportingThanks { - width: 500px; - margin: 16px auto 16px auto; - padding: 10px; -} - -.YesNoButtons { - text-align: right; -} - -.YesButton, -.NoButton { - background-color: #F5CD2F; - color: #000; - margin-left: 10px; -} - -.popupControl { - background-color: #fff; - border: 1px outset #fff; - position: absolute; - visibility: hidden; -} - -.ColorPickerItem { - border-color: #fff; - border-style: solid; - border-width: 2px; -} - -.ColorPickerItem:hover { - border-color: Blue; - border-style: solid; - border-width: 2px; -} - -.modalBackground { - background-color: Gray; - filter: alpha(opacity=30); - opacity: .3; -} - -.modalPopup { - background-color: #ffd; - border-width: 3px; - border-style: solid; - border-color: Gray; - padding: 3px; -} - -.newModalPopup { - padding: 3px; -} - -.GuestModePromptText { - font-size: 14px; - color: #333; - margin-left: 30px; -} - -.GuestModePromptText li { - font-weight: bolder; -} - -.PopupMenu { - background-color: #fff; - border: solid 1px #666; - padding: 10px; - z-index: 1; -} - -.PopupMenu .Button { - line-height: 2.5em; -} - -.PopupMenu .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -.Attention { - color: Red; -} - -.OKCancelButton { - width: 80px; -} - -.MenuItem { - color: White; - font-size: 18px; - line-height: 2em; -} - -a.MenuItem:link, -a.MenuItem:visited, -a.MenuItem:active { - color: White; - text-decoration: none; -} - -a.MenuItem:hover { - text-decoration: underline; -} - -.Toolbox { - background-color: ButtonFace; - padding: 2px; -} - -.ToolboxItem { - border-color: Window; - border-style: solid; - border-width: 2px; - width: 52px; - height: 52px; -} - -.Grid { - background-color: White; - border-color: #CCC; - border-width: 1px; - border-style: solid; -} - -.GridHeader { - color: White; - background-color: #6E99C9; -} - -.GridItem { - color: #006; -} - -.GridItemAlt { - color: #006; - background: #EEE; -} - -.GridItem:hover { - background-color: #DDD; -} - -.GridItemAlt:hover { - background-color: #DDD; -} - -.GridFooter { - color: White; - background-color: #6E99C9; -} - -.GridPager { - color: White; - background-color: #6E99C9; - text-align: center; - font-weight: bold; -} - -.Title { - font-size: 18px; -} - -a.Title:link, -a.Title:visited, -a.Title:active { - text-decoration: none; -} - -a.Title:hover { - text-decoration: underline; -} - -.Header { - font-size: 14px; -} - -.Banner { - padding: 8px; -} - -.BannerText { - font-weight: bold; - color: white; -} - -a.BannerText:link, -a.BannerText:visited, -a.BannerText:active { - text-decoration: none; - color: white; -} - -a.BannerText:hover { - text-decoration: underline; - color: white; -} - -.PageSelector { - font-family: Verdana, Sans-Serif; - margin: 0 0 0 10px; -} - -.PageSelector label { - font-weight: bold; -} - -.DisplayFilters { - margin-right: 3px; - min-width: 0; - position: relative; -} - -.SearchBar { - background-color: #eee; - border: solid 1px #bbb; - height: 30px; - margin: -5px 0 5px 0; - padding: 0; - text-align: center; -} - -.SearchBar .SearchBox, -.SearchBar .SearchButton { - height: 30px; - margin: 0; - padding: 0; -} - -.SearchBar .TextBox { - border: solid 1px #000; - height: 19px; - margin: 2px 0 0 0; - padding: 2px 3px 0 3px; - width: 250px; -} - -.SearchLinks { - display: inline; - font-family: Verdana, Sans-Serif; - z-index: 9; -} - -.SearchLinks a span { - display: none; -} - -.SearchLinks a:hover { - border: none; - text-decoration: none; -} - -.SearchLinks a:hover span { - background-color: #6e99c9; - border-color: Gray; - border-style: ridge; - border-width: 1px; - color: white; - display: block; - font: 11px Verdana, sans-serif; - left: 15%; - line-height: 1.4em; - margin: 5px; - padding: 5px; - position: absolute; - text-align: center; - text-decoration: none; - top: 20px; - width: 60%; - z-index: 10; -} - -.SearchError { - clear: both; - margin: 2px; - float: none; - padding: 2px; - text-align: center; - color: Red; -} - -.SystemAlert { - background-color: #FFF; - text-align: center; - color: #FFF; - border: 2px solid #000; - padding: 1px; -} - -.SystemAlertText { - font-size: 16px; - font-weight: bold; - background-color: #F00; - padding: 2px; -} - -.SystemAlert a { - color: White; -} - -.Exclamation { - background: url(/images/Icons/exclamation.png) no-repeat; - height: 16px; - width: 16px; - float: left; -} - -.EmailTemplateTable { - border-collapse: collapse; -} - -.EmailTemplateH1 { - font-size: 18px; - color: #6E99C9; -} - -.EmailTemplateLogoRow { - padding: 3px; - margin-bottom: 5px; -} - -.EmailTemplateRow { - padding: 3px; - margin-bottom: 3px; - font-size: 14px; - font-family: Verdana, Helvetica, Sans-Serif; -} - -.EmailTemplateRow input { - font-size: 14px; - padding: 2px; - border: 1px solid #CCC; -} - -.EmailTemplateRow input:hover { - font-size: 14px; - padding: 2px; - border: 1px solid #CCC; - background: #6E99C9; -} - -.subMenu { - background: #A3514F; - background-repeat: repeat-x; - color: White; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - height: 26px; - position: relative; - border-left: solid 3px #6E99C9; - border-right: solid 3px #6E99C9; - border-bottom: solid 3px #6E99C9; - z-index: 5; -} - -.subMenu ul { - padding: 0; - margin: 0; - list-style-type: none; -} - -.subMenu li { - float: left; - position: relative; -} - -.subMenu a, -.subMenu a:visited { - display: block; - padding: 5px; - border-right: 1px solid #FFF; - font-size: 14px; - color: #FFF; -} - -.subMenu .subMenuItemselected { - display: block; - padding: 5px; - border-right: 1px solid #FFF; - font-size: 14px; - color: #FFF; - font-weight: bold; - text-decoration: none; -} - -.subMenu ul ul a.subMenudrop, -.menu ul ul a.subMenudrop:visited { - font-weight: bold; - text-decoration: underline; -} - -.subMenu ul ul ul a, -.subMenu ul ul ul a:visited { - background: #A3514F; -} - -.subMenu ul ul ul a:hover { - text-decoration: underline; -} - -.subMenu ul ul { - visibility: hidden; - position: absolute; - height: 0; - left: 0; -} - -.subMenu ul ul ul { - left: 141px; - top: 0; - width: 149px; -} - -.subMenu ul ul ul.left { - left: -149px; -} - -.subMenu ul ul a, -.subMenu ul ul a:visited { - background: #A3514F; - color: #FFF; - height: auto; - padding: 4px 6px; - line-height: 1em; - width: 148px; - margin-left: -1px; - border-left: 1px solid #FFF; - border-right: none; -} - -.subMenu a:hover, -.subMenu ul ul a:hover { - text-decoration: underline; - background: #573333; -} - -.subMenu :hover>a, -.subMenu ul ul :hover>a { - text-decoration: underline; -} - -.subMenu ul li:hover ul, -.subMenu ul a:hover ul { - visibility: visible; -} - -.subMenu ul :hover ul ul { - visibility: hidden; -} - -.subMenu ul :hover ul :hover ul { - visibility: visible; -} - -.subMenu table { - position: absolute; - top: 0; - margin-top: 15px; - left: 0; - border-collapse: collapse; - background: #A3514F; - display: none; -} - -.subMenu table a, -.subMenu table a:visited { - border: none; - width: 148px; - padding-top: 8px; -} - -#LeftGutterAdContainer { - position: fixed; - top: 0; - left: 50%; - margin-left: -850px; -} - -#RightGutterAdContainer { - position: fixed; - top: 0; - left: 50%; - margin-left: 450px; -} - -.partnerLogo { - margin-right: 30px; - vertical-align: middle; -} - -.errorMsg { - font-weight: bold; - text-align: center; - display: block; - font-size: 1.5em; - margin: .83em 0; - letter-spacing: 1px; -} - -.facepile { - min-height: 0; -} - -body { - margin: 0; - padding: 0; - background: url(/images/css/bkg.jpg) top center repeat-x #000444; - font-family: Arial, Helvetica, sans-serif; - color: black; - font-size: 12px; -} - -a { - text-decoration: none; - color: #00f; -} - -a:hover, -a:active { - text-decoration: underline; -} - -a.green { - color: #080; -} - -a.green:hover { - color: #0c0; -} - -a img { - border: none; -} - -#Header a:hover { - text-decoration: none; -} - -#MasterContainer { - background-image: none; -} - -#Container { - background: Transparent; - border: none; -} - -#HeaderContainer { - position: relative; - margin: 0; - padding: 0; - width: 900px; - height: 225px; - background: url(/images/css/head_03.png) repeat scroll 0 0 transparent; - background-position: 0 0; - background-repeat: no-repeat; - z-index: 6; -} - -#Banner { - height: 100px; - background: none; - position: relative; - bottom: 0; -} - -#Banner #Logo { - height: 70px; - left: 275px; - position: absolute; - top: 10px; - width: 350px; - margin: 0; - float: none; -} - -#Header .headLink { - position: absolute; - top: 4px; - left: 278px; - width: 348px; - height: 88px; -} - -#Banner #Authentication { - position: relative; - top: 0; - margin: 0; - height: 28px; - font-family: Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: normal; - color: Black; - float: left; - background: url(/images/css/head_bkg_t1.png) no-repeat left top; - padding: 0 0 0 2px; -} - -#Banner #Authentication #AuthenticationBannerSpan { - background: url(/images/css/head_bkg_t2.png) no-repeat scroll right top transparent; - display: block; - height: 28px; - padding: 6px 10px 0; -} - -#Banner #Authentication a { - height: 18px; - background: url(/images/css/btn_blue18h.png) repeat-x; - background-position: 0 0; - margin: 0 5px; - font-weight: bold; - font-size: 10px; - padding: 2px 5px; -} - -#Banner #Authentication a:hover { - background-position: 0 -18px; -} - -#Banner #Alerts { - background: Transparent; - border: none; - position: absolute; - width: 147px; - height: 81px; - bottom: 0; - right: 3px; - float: none; -} - -#Body { - margin: 0; - padding: 5px; - width: 890px; - background: url(/images/css/containerBkg_01.png); - _overflow: hidden; -} - -.favorited, -.notFavorited { - background: url(/images/css/favoriteStar_20h.png) no-repeat 0 -20px; - width: 21px; - height: 20px; - margin: 0; - display: inline-block; - position: relative; - top: 3px; - *display: inline; - *zoom: 1; -} - -.notFavorited { - background-position: 0 0; -} - -#Footer { - background: #e6e6e6; - text-align: center; - font-size: 13px; - color: #aaa; - margin: 0; - padding: 3em 20px; - width: 860px; -} - -#Footer .FooterNav { - color: #bbb; -} - -#Footer .SEOGenreLinks { - padding: 1em 0 2em 0; - font-size: 11px; -} - -#Footer .Legalese { - font-size: 10px; - margin-bottom: 1em; -} - -#Footer .Legalese p { - margin: 0; - padding: 0; -} - -.blueAndWhite { - border: 2px solid #6e99c9; - background-color: #fff; - color: #000; -} - -.blueAndWhite .titleBar { - background-color: #000; - color: #FFF; - font-weight: bold; - padding: 2px 2px 2px 2px; - margin-bottom: 5px; - font-size: 13px; -} - -#ResetPassword, -#ResetPassword input { - font-size: 16px; -} - -#ResetPassword #ResetPasswordTable td { - padding: 5px; -} - -.ParentsLearningContent { - font-size: 14px; -} - -.ParentsLearningContent .ParentsLearningHeader { - text-decoration: none; -} - -.StandardBoxLight { - float: inherit; - border: 1px solid #3B526B; - padding: 10px 10px 10px 10px; - margin-bottom: 10px; - display: block; -} - -.StandardBoxLightHeader { - float: inherit; - background-color: #3B526B; - text-align: center; - color: #FFF; - text-align: left; - font-size: 16px; - font-weight: bold; - padding: 5px 10px 5px 20px; - display: block; -} - -.ParentsLearningContent .StandardBoxLightHeader { - margin: 10px 0; -} - -.LoginParentAccount { - text-align: left; -} - -.ParentsControlPanel, -.ParentsControlPanel input { - font-size: 14px; -} - -.ParentsControlPanelTable table { - border-collapse: collapse; - border-spacing: 0; -} - -.ParentsControlPanelTable table td, -.ParentsControlPanelTable table th { - border: 1px solid #EEE; - padding: 5px; -} - -.ParentsControlPanelTable table tr:first-child td, -.ParentsControlPanelTable table tr:first-child th { - border-top: 0; -} - -.ParentsControlPanelTable table tr:last-child td { - border-bottom: 0; -} - -.ParentsControlPanelTable table tr td:first-child, -.ParentsControlPanelTable table tr th:first-child { - border-left: 0; -} - -.ParentsControlPanelTable table tr td:last-child, -.ParentsControlPanelTable table tr th:last-child { - border-right: 0; -} - -.ContinueButtonFix { - text-align: center; -} - -.ParentCenterAlignedTable table { - margin: 0 auto; -} - -.JustWhiteBox { - float: inherit; - background-color: White; - margin-bottom: 10px; - display: block; -} - -.MediumButton { - background-color: #F5CD2F; - color: #000; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 15px; - font-weight: bold; - padding: 5px; - display: inline-block; - border: 1px solid #6E99C9; - text-align: center; - cursor: pointer; -} - -.MediumButton:hover { - background-color: #FF9D2F; -} - -.MediumButtonSignup { - background-color: #8CE16F; - color: #000; - height: 2.5em; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 15px; - font-weight: bold; -} - -.catalog_nav { - color: White; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - position: relative; - z-index: 5; - float: right; -} - -.catalog_nav ul { - padding: 0; - margin: 0; - list-style-type: none; -} - -.catalog_nav li { - float: left; - position: relative; - text-align: center; -} - -.catalog_nav a, -.catalog_nav a:visited { - background: #b9cee5 url(/images/tabmiddle.png) repeat-x; - display: block; - padding: 5px; - margin-right: 4px; - font-size: 14px; - color: #FFF; - height: 18px; - cursor: pointer; -} - -.catalog_nav .catalog_navselected { - display: block; - background: #6E99C9 url(/images/tabmiddleselected.png) repeat-x; - padding: 5px 10px; - margin-right: 4px; - font-size: 14px; - color: #FFF; - font-weight: bold; - text-decoration: none; - height: 18px; -} - -.catalog_nav ul ul a.catalog_navdrop, -t.menu ul ul a.catalog_navdrop:visited { - font-weight: bold; - text-decoration: none; -} - -.catalog_nav ul ul ul a:hover { - text-decoration: underline; -} - -.catalog_nav ul ul { - visibility: hidden; - position: absolute; - height: 0; - left: 0; - z-index: 20; -} - -.catalog_nav ul ul ul { - left: 141px; - top: 0; - width: 89px; -} - -.catalog_nav ul ul ul.left { - left: -149px; -} - -.catalog_nav ul ul a, -.catalog_nav ul ul a:visited { - color: #FFF; - background: #6E99C9; - height: auto; - padding: 4px 6px; - line-height: 1em; - width: 78px; - margin-right: 4px; - z-index: 20; - height: 18px; -} - -.catalog_nav img { - border: 0; - margin-right: 3px; - vertical-align: middle; -} - -.catalog_nav a:hover { - text-decoration: none; - background: #6E99C9 url(/images/tabmiddleselected.png) repeat-x; -} - -.catalog_nav ul ul a:hover { - text-decoration: none; - background: #517194; -} - -.catalog_nav :hover>a, -.catalog_nav ul ul :hover>a { - text-decoration: none; -} - -.catalog_nav ul li:hover ul, -.catalog_nav ul a:hover ul { - visibility: visible; -} - -.catalog_nav ul :hover ul ul { - visibility: hidden; -} - -.catalog_nav ul :hover ul :hover ul { - visibility: visible; -} - -.catalog_nav table { - position: absolute; - top: 0; - margin-top: 15px; - left: 0; - border-collapse: collapse; - background: #6E99C9; - display: none; -} - -.catalog_nav table a, -.catalog_nav table a:visited { - border: none; - width: 78px; - padding-top: 8px; -} - -.Step1 { - float: left; - font-size: 16px; - font-weight: bold; - background: url(/images/step1.png) no-repeat 0; - line-height: 32px; - padding-left: 32px; -} - -.Step2 { - float: left; - font-size: 16px; - font-weight: bold; - background: url(/images/step2.png) no-repeat 0; - line-height: 32px; - padding-left: 32px; -} - -.Step3 { - float: left; - font-size: 16px; - font-weight: bold; - background: url(/images/step3.png) no-repeat 0; - line-height: 32px; - padding-left: 32px; -} - -.CatalogOptions { - float: left; - padding: 20px; - background: #8bc2ff url(/images/catalog_options_back.png) repeat-x; - border: 0; - margin-bottom: 0; - display: none; - width: 176px; - overflow: hidden; -} - -#ApplyFilters input { - font-size: 17px; - cursor: pointer; -} - -.CatalogOptionsSections { - float: left; - margin: 5px 20px 0 5px; -} - -.CatalogOptionsHelp { - margin-top: -5px; - float: left; -} - -.CatalogOptionsHelp ul { - list-style: none; -} - -.CatalogOptionsHelp ul li { - margin-top: 3px; -} - -.CatalogOptionsHelp ul li a { - background: url(/images/smallmetallicbutton.png) repeat-x; - border: 2px solid transparent; - padding: 3px; - font-size: 12px; - cursor: pointer; - text-decoration: none; - display: block; - width: 120px; - text-align: center; -} - -.CatalogOptionsHelp ul li a:hover { - border-color: #333; -} - -.bc_iconset, -#BuildersClubContainer div.icons { - background-image: url(/images/bc_page_icon_sprites.png); - background-repeat: no-repeat; - width: 32px; - display: inline-block; - text-align: center; -} - -#BuildersClubContainer div.maps_icon { - background-position: 0 1px; - height: 30px; -} - -#BuildersClubContainer div.money_icon { - background-position: 0 -28px; - height: 28px; -} - -#BuildersClubContainer div.shirt_icon { - background-position: 0 -55px; - height: 30px; -} - -#BuildersClubContainer div.ads_icon { - background-position: 0 -85px; - height: 30px; -} - -.bc_icon, -#BuildersClubContainer div.bc_icon { - background-position: 0 -115px; - height: 31px; -} - -#BuildersClubContainer div.gear_icon { - background-position: 0 -146px; - height: 30px; -} - -#BuildersClubContainer div.groups_icon { - background-position: 0 -173px; - height: 23px; -} - -#BuildersClubContainer div.badges_icon { - background-position: 0 -196px; - height: 30px; -} - -#BuildersClubContainer div.beta_icon { - background-position: 0 -228px; - height: 31px; -} - -#BuildersClubContainer div.tbc_icon { - background-position: 0 -263px; - height: 31px; -} - -#BuildersClubContainer div.obc_icon { - background-position: 0 -297px; - height: 31px; -} - -#BuildersClubContainer div.upgrades_enabled { - background-image: url(/images/buybc/bc_sprites_math_enabled.png); - background-repeat: no-repeat; - display: inline-block; - height: 95px; - width: 128px; -} - -#BuildersClubContainer div.upgrades_disabled { - background-image: url(/images/buybc/bc_sprites_math_disabled.png); - background-repeat: no-repeat; - display: inline-block; - height: 95px; - width: 128px; -} - -#BuildersClubContainer div.bcmonthly { - background-position: 0 0; -} - -#BuildersClubContainer div.bc6 { - background-position: -128px 0; -} - -#BuildersClubContainer div.bc12 { - background-position: -256px 0; -} - -#BuildersClubContainer div.bclife { - background-position: -384px 0; -} - -#BuildersClubContainer div.tbcmonthly { - background-position: 0 -95px; -} - -#BuildersClubContainer div.tbc6 { - background-position: -128px -95px; -} - -#BuildersClubContainer div.tbc12 { - background-position: -256px -95px; -} - -#BuildersClubContainer div.tbclife { - background-position: -384px -95px; -} - -#BuildersClubContainer div.obcmonthly { - background-position: 0 -191px; -} - -#BuildersClubContainer div.obc6 { - background-position: -128px -191px; -} - -#BuildersClubContainer div.obc12 { - background-position: -256px -191px; -} - -#BuildersClubContainer div.obclife { - background-position: -384px -191px; -} - -#BuildersClubContainer .bctotbcconversion { - background-image: url(/images/BuyBC/bc_lifetime_tbc_lifetime_discount.png); - background-repeat: no-repeat; - height: 95px; - width: 128px; -} - -#BuildersClubContainer .bctoobcconversion { - background-image: url(/images/BuyBC/bc_lifetime_obc_lifetime_discount.png); - background-repeat: no-repeat; - height: 95px; - width: 128px; -} - -#BuildersClubContainer .tbctoobcconversion { - background-image: url(/images/BuyBC/tbc_lifetime_obc_lifetime_discount.png); - background-repeat: no-repeat; - height: 95px; - width: 128px; -} - -#BuildersClubContainer upgrade_button { - cursor: pointer; -} - -.OBCSellSheet ul { - list-style: armenian; - width: 500px; -} - -.OBCSellSheet ul li { - padding: 10px; - border-bottom: 1px solid #abc; - position: relative; -} - -.OBCSellSheet ul li em { - -moz-background-clip: border; - -moz-background-inline-policy: continuous; - -moz-background-origin: padding; - background: transparent url(/images/obctip.png) no-repeat scroll 0 0; - display: none; - font-style: normal; - height: 45px; - left: -10px; - padding: 15px 0; - position: absolute; - text-align: center; - top: -40px; - width: 300px; - z-index: 2; - color: #FFF; -} - -.hoverover { - cursor: pointer; -} - -.AlertSpace { - color: #6e99c9; - margin: 0 auto; -} - -div.icons, -a.icons { - background-image: url(/images/master_page_image_sprites.png?v=1202010); - background-repeat: no-repeat; - display: inline-block; - vertical-align: middle; -} - -div.message_icon { - background-position: -65px 0; - height: 11px; - width: 13px; - margin: 3px; - float: left; -} - -div.robux_icon { - background-position: -33px 0; - height: 12px; - width: 16px; - margin: 3px; - float: left; -} - -div.tickets_icon { - background-position: -49px 0; - height: 16px; - width: 16px; - margin: 3px; - float: left; -} - -div.friends_icon { - background-position: -78px 0; - height: 14px; - width: 12px; - margin: 3px; - float: left; -} - -a.rss_icon { - background-position: 0 0; - height: 14px; - width: 14px; -} - -a.twitter_icon { - background-position: -14px 0; - height: 16px; - width: 19px; -} - -div.MessageAlert { - height: 17px; - vertical-align: middle; - width: 49%; - float: left; - height: 32px; - overflow: hidden; - background: #FFF; -} - -div.MessageAlert a:hover { - color: #1874CD; -} - -div.RobuxAlert { - padding-top: 2px; - vertical-align: middle; - width: 49%; - float: left; - overflow: hidden; - border-top: 1px solid #6E99C9; - background: #FFF; - height: 29px; -} - -div.RobuxAlert a { - color: Green; - vertical-align: middle; -} - -div.RobuxAlert a:hover { - color: #49b745; -} - -div.TicketsAlert { - padding-top: 2px; - vertical-align: middle; - width: 49%; - float: left; - overflow: hidden; - border-left: 1px solid #6E99C9; - border-top: 1px solid #6E99C9; - background: #FFF; - height: 29px; -} - -div.TicketsAlert a:hover { - color: #FF3000; -} - -div.FriendsAlert { - color: #883000; - height: 20px; - vertical-align: middle; - width: 49%; - float: left; - height: 32px; - overflow: hidden; - border-left: 1px solid #6E99C9; - background: #FFF; -} - -div.FriendsAlert a { - color: #883000; - vertical-align: middle; -} - -div.FriendsAlert a:hover { - color: #00D; -} - -a.MessageAlertCaption { - color: #6e99c9; - vertical-align: middle; - font-weight: bold; -} - -a.RobuxAlertCaption { - color: Green; - vertical-align: middle; - font-weight: bold; -} - -a.TicketsAlertCaption { - color: #fbb117; - vertical-align: middle; - font-weight: bold; -} - -a.FriendsAlertCaption { - color: #883000; - vertical-align: middle; - font-weight: bold; -} - -#Authentication span a { - color: #FFF; -} - -.MySetsDisplayInfo { - padding: 10px 20px 10px 20px; - background: #8bc2ff url(/images/catalog_options_back.png) repeat-x; - border: 0; - margin-bottom: 0; - overflow: hidden; - height: 125px; -} - -.MySetsDisplayInfo h1 { - margin: 0; - padding: 0; - text-align: center; - color: White; - font-size: 16px; - font-weight: bold; -} - -.MySetsDisplayInfo h1>a { - cursor: pointer; - color: Blue; - font-size: 12px; - font-style: italic; - margin-left: 5px; -} - -.CreateSetButton { - cursor: pointer; - text-decoration: none; -} - -.SetAddButton { - margin-bottom: 3px; - cursor: pointer; - height: 16px; - display: block; - font-size: 12px; - overflow: hidden; - width: 100px; -} - -.CreateSetButton:hover, -.SetAddButton:hover { - background-color: Gray; -} - -.SetAddButtonAlreadyContainsItem { - margin-bottom: 3px; - height: 16px; - display: block; - width: 100%; - cursor: default; - color: #ddd; - font-style: italic; - font-size: 12px; - background: url(/images/accept.png) no-repeat center left; - background-position: 1px 0; - padding-left: 18px; - width: 92px; - overflow: hidden; -} - -.CantAddToSetLabel { - float: left; - width: 75px; -} - -.CantAddToSetHelpImg { - float: left; - vertical-align: text-top; - cursor: pointer; -} - -.SetDescription { - float: left; - overflow-y: auto scroll; - overflow-x: hidden; -} - -.SetList { - z-index: 10; - height: 0; - float: left; - width: 0; -} - -.friendBarDropDown { - position: absolute; - margin-top: 0; - margin-left: 28px; - z-index: 10; -} - -.SetList>img { - position: relative; - float: left; - z-index: 10; - width: 20px; - cursor: pointer; - top: 5px; - left: 5px; -} - -.CantAddToSetLabel, -.SetListDropDownList { - float: left; - position: relative; - top: -18px; - left: 20px; - z-index: 11; - display: block; -} - -.CantAddToSetLabel, -.SetListDropDownList { - background: #6e99c9; - width: 100px; - border: 3px solid #C6D9FD; - padding: 3px; -} - -.SetListDropDown, -.friendBarDropDownList { - display: none; - float: left; - z-index: 10; - height: 0; -} - -.friendBarDropDownList { - position: relative; - height: 100%; - width: 120px; - border: 1px solid black; -} - -.friendBarDropDownList>ul { - list-style: none outside none; - margin: 0; - padding-left: 0; -} - -.friendBarDropDownList li { - background-color: White; - color: Black; - cursor: default; - float: left; - position: relative; - list-style: none; - display: block; - z-index: 11; - height: 18px; -} - -.friendBarDropDownList li>div { - margin: 2px; - width: 116px; -} - -.friendBarDropDownList li:hover { - background-color: Black; - color: White; -} - -.friend_dropdownbutton20 { - background: url(/images/friendsbar/friend_dropdownBtn20h.jpg); - float: left; - cursor: pointer; - height: 20px; - width: 20px; - background-position: top left; -} - -.friend_dropdownbutton20:hover { - background-position: bottom left; -} - -.ContestButton { - float: left; - font-size: 20px; - padding: 4px 10px; - background: url(/images/Contests/contestbutton.png) repeat-x; - color: #FFF; - border: 2px solid #193441; - cursor: pointer; - text-align: center; -} - -.ContestButton:hover { - background: #5d90a6; -} - -.ContestButtonSkip { - font-size: 20px; - padding: 4px 10px; - background-color: #283d47; - color: #FFF; - border: 2px solid #193441; - cursor: pointer; - text-align: center; -} - -.ContestButtonSkip:hover { - background: #5d90a6; -} - -ul.ContestPrizes { - list-style: none; - margin: 0; - padding: 0; -} - -a.slider_next { - color: #444; - font-size: 20px; - font-weight: bold; -} - -a.slider_prev { - color: #444; - font-size: 20px; - font-weight: bold; -} - -a.contesttab { - float: left; - background: #B2C1D2; - padding: 3px 5px; - color: #FFF; - margin-right: 4px; - text-decoration: none; - display: block; - font-size: 14px; - font-weight: bold; -} - -a.contesttab:hover { - background: #6E99C9; -} - -a.contesttabselected { - float: left; - background: #6E99C9; - padding: 3px 5px; - color: #FFF; - margin-right: 4px; - text-decoration: none; - display: block; - font-size: 14px; - font-weight: bold; -} - -div.ContestBox { - border: 2px solid #6E99C9; - background: url(/images/Contests/contestback.png?v=2) repeat-x; - background-color: #c5d3e3; - float: left; - margin-bottom: 10px; - padding: 10px; -} - -.Contests { - float: left; - width: 900px; - margin: 10px auto 0 auto; -} - -.Contests h1 { - margin: 0; - color: #6E99C9; - float: left; - width: 100%; -} - -.FullSubmissions { - width: 300px; - padding: 5px; - float: left; - margin-left: 3px; - margin-bottom: 1px; - border-bottom: 1px solid #FFF; - color: #000; -} - -.ContestShowcase { - width: 90%; - padding: 2px; - border: 2px solid transparent; - cursor: pointer; - margin: 2px auto; - background: #d5dec2; -} - -.ContestShowcase:hover { - border: 2px solid #AAA; -} - -.VibModalBack { - z-index: 665; - position: fixed; - width: 100%; - height: 100%; - background: gray; - opacity: .5; - filter: alpha(opacity=50); - background-repeat: repeat; - top: 0; - left: 0; -} - -.VibModal { - z-index: 666; - position: fixed; - width: 100%; - height: 100%; - top: 0; - left: 0; -} - -.VibModalBox { - z-index: 667; - width: 500px; - margin: 7% auto; - background: #FFF; - border: 5px solid #6E99C9; -} - -.VibModalContents { - padding: 10px; -} - -.VibModalHeader { - width: 96%; - padding: 1% 2%; - font-size: 20px; - font-weight: bold; - background: #6E99C9; - text-align: center; - color: #FFF; -} - -.VibModalClose { - font-size: 25px; - color: #F00; - font-weight: bold; - float: right; - line-height: 17px; - cursor: pointer; -} - -div.cannot_vote { - height: 30px; - width: 30px; - background: url(/images/Contests/not_checked_box.png); - vertical-align: text-top; - margin-right: 7px; - float: left; -} - -div.can_vote { - height: 30px; - width: 30px; - background: url(/images/Contests/checked_box.png); - vertical-align: text-top; - margin-right: 7px; - float: left; -} - -div.vote_text { - font-size: 18px; - float: left; - color: #0F0; -} - -div.no_vote_text { - font-size: 18px; - float: left; - color: #F00; -} - -.Contests .StatCounters { - position: absolute; - font-size: 30px; - font-weight: bold; - color: #444; - text-align: left; - margin-left: 10px; - z-index: 4000; -} - -.Contests .StatType { - font-size: 14px; - margin-left: 4px; - margin-top: -7px; - display: block; -} - -.Contests .PlaceOpaqueName { - width: 148px; - font-weight: bold; - text-align: center; - padding: 3px 6px; - font-size: 10px; - color: #444; - background: #FFF; - opacity: .6; - filter: alpha(opacity=60); - margin: 1px auto 7px auto; - height: 24px; - overflow: hidden; - word-wrap: none; -} - -.Contests .FifthPlaceHolder { - float: left; - width: 20%; - margin-top: 5px; - margin: 0 auto; - text-align: center; -} - -div.friend_dock_chatbox { - float: left; - background-color: #E5E3E4; - width: 200px; - margin-right: 10px; - border: solid 1px #7F7F7F; - padding-bottom: 10px; -} - -div.friend_dock_chatsettings { - color: Black; - background-color: #E5E5E5; - border: solid 1px black; - width: 150px; - margin-right: 10px; - position: fixed; - bottom: 105px; - font-size: 11px; - z-index: 1200; - right: 30px; -} - -div.chat_settings_group_header { - font-weight: bold; - margin-bottom: 5px; -} - -div#friend_dock_chatholder { - position: fixed; - bottom: 106px; - z-index: 1022; -} - -div#friend_dock_container { - position: fixed; - bottom: 0; - width: 100%; - font-size: 10px; - font-family: Verdana; - z-index: 1022; -} - -div#friend_dock_titlebar ul { - padding: 0; - margin: 0; - list-style-type: none; -} - -div#friend_dock_thumb_container { - border: solid 1px #7F7F7F; - background-color: White; - height: 74px; - padding: 5px; - width: 100%; - overflow: hidden; -} - -div#friend_dock_thumbnails { - float: left; -} - -div#friend_dock_titlebar { - height: 18px; - position: relative; -} - -div#friend_dock_titlebar a { - color: Black; -} - -div#friend_dock_minimized_container { - width: 100%; - position: fixed; - bottom: 0; - z-index: 1022; -} - -div#friend_dock_friendzone, -div#friend_dock_chatzone { - float: left; - height: 65px; - margin-top: 5px; - margin-right: 10px; - margin-left: 10px; -} - -div.friend_dock_chatbox_closebutton { - float: right; - padding-right: 5px; - font-weight: bold; - font-size: 14px; -} - -div.friend_dock_chatbox_closebutton a.hover { - color: #fff; - text-decoration: none; -} - -div.blinkoffheader, -div.blinkonheader { - background-repeat: repeat-x; - border: none; - height: 16px; - padding: 2px; -} - -div.blinkoffheader { - background-image: url('/images/chat/HeaderBarRepeat1x1.jpg'); -} - -div.blinkonheader { - background-image: url('/images/chat/HeaderBarRepeat1x1_orange.jpg'); -} - -div.friend_dock_chatbox_username { - width: 150px; - float: left; - font-size: 14px; - color: White; -} - -div.friend_dock_chatbox_chat { - background-color: White; - border: solid 1px black; - margin-left: 10px; - margin-top: 5px; - margin-bottom: 10px; - width: 176px; - padding: 2px; - height: 196px; - overflow: auto; -} - -textarea.friend_dock_chatbox_entry { - margin-left: 10px; - width: 176px; - padding: 2px; - overflow: auto; - overflow-x: hidden; -} - -span.friend_dock_onlinestatus { - position: absolute; - margin-left: 16px; - width: 16px; - height: 16px; - background-image: url(/images/online.png); - background-repeat: no-repeat; -} - -span.friend_dock_offlinestatus { - position: absolute; - margin-left: 16px; - width: 16px; - height: 16px; - background-image: url(/images/offline.png); - background-repeat: no-repeat; -} - -div.friend_dock_onlinestatus { - position: absolute; - margin-top: 5px; - margin-left: 5px; - width: 16px; - height: 16px; - background-image: url(/images/online.png); - background-repeat: no-repeat; -} - -div.friend_dock_offlinestatus { - position: absolute; - margin-top: 5px; - margin-left: 5px; - width: 16px; - height: 16px; - background-image: url(/images/offline.png); - background-repeat: no-repeat; -} - -div.friend_dock_newmessage { - position: absolute; - margin-top: -5px; - margin-left: 42px; - width: 16px; - height: 16px; - background-image: url(/images/newmessage.png); - background-repeat: no-repeat; -} - -div.friend_dock_friend { - width: 50px; - height: 70px; - overflow: hidden; - margin-right: 10px; - margin-bottom: 10px; - float: left; -} - -div.friend_dock_pager { - width: 16px; - height: 16px; - margin-left: 0; - margin-right: 10px; - margin-bottom: 10px; - margin-top: 25px; -} - -.Navigation { - height: 35px; - z-index: 1022; -} - -.Navigation ul { - list-style: none; - margin: 0; - padding: 0; - width: 890px; - margin: 0 auto; -} - -.Navigation ul li { - float: left; - position: relative; -} - -.Navigation ul li a, -.Navigation ul li a:visited { - display: inline-block; - color: #FFF; - padding: 0 9px; - border-left: 1px solid #FFF; - font-size: 18px; -} - -.Navigation ul li a h1, -.Navigation ul li a h2 { - cursor: pointer; -} - -.Navigation ul li:first-child a { - border-left: none; -} - -.Navigation .dropdownnavcontainer { - display: none; - position: absolute; - margin-left: 126px; - margin-top: 27px; - z-index: 1024; -} - -.Navigation .dropdownmainnav { - display: block; - background: #6E99C9; - border-left: 1px solid #FFF; - border-right: 1px solid #FFF; - border-bottom: 1px solid #FFF; - padding: 10px; - width: 250px; - float: left; - z-index: 1024; - height: 225px; -} - -.Navigation .dropdownmainnav a { - color: White; -} - -.Navigation .dropdownmainnav a:hover { - text-decoration: underline; -} - -.friend_dock_username { - height: 15px; - overflow: hidden; - float: left; - width: 55px; -} - -.friend_dock_username_href { - color: Black!important; - font-size: 10px; - font-family: Verdana; -} - -div#chatbar { - position: fixed; - bottom: 0; - left: 0; - height: 0; - font-size: 11px; - font-family: Verdana; - margin: 0 1%; - z-index: 1022; -} - -div#statusbar { - position: fixed; - bottom: 0; - left: 0; - height: 30px; - background: url(/CSS/Base/CSS/chatbarback.jpg); - border-left: 3px solid #E5E5E5; - border-right: 3px solid #E5E5E5; - font-size: 11px; - font-family: Verdana; - margin: 0 1%; - z-index: 1022; -} - -#chat { - float: left; -} - -.chat_box { - border-left: 2px solid #6E99C9; - border-right: 2px solid #6E99C9; - width: 217px; - float: left; - height: 280px; - overflow-y: scroll; - overflow-x: none; - background: #eee; - font-size: 11px; - font-family: Verdana; -} - -.chat_text { - width: 80%; - padding: 4px; - float: left; - font-size: 11px; - font-family: Verdana; -} - -.chat_name { - color: #88a9bf; - border-bottom: 1px solid #CCC; - font-weight: bold; - padding: 3px; - float: left; - font-size: 11px; - font-family: Verdana; - width: 75%; -} - -.chat_header { - width: 211px; - float: left; - color: #03C; - background: #6E99C9; - color: #000; - font-weight: bold; - font-size: 12px; - margin: 0; - padding: 5px; - font-family: Verdana; -} - -.chat_options { - width: 219px; - float: left; - color: #03C; - background: #6E99C9; - color: #000; - font-weight: bold; - font-size: 12px; - margin: 0; - padding: 1px; - font-family: Verdana; -} - -#chat_close { - background: url(/CSS/Base/CSS/close.png); - height: 10px; - width: 10px; - float: right; - cursor: pointer; - margin-right: 1px; -} - -#chat_mini { - background: url(/CSS/Base/CSS/mini.png); - height: 10px; - width: 10px; - float: right; - cursor: pointer; - margin-right: 5px; -} - -.chat_abuse { - color: #FFF; - background: yellow; - color: #000; - font-weight: bold; - padding: 1px; - cursor: pointer; - font-family: Verdana; - font-size: 7px; - float: left; -} - -.chat_abuse:hover { - color: #FFF; - background: red; - color: #000; - font-weight: bold; - padding: 1px; - cursor: pointer; - font-family: Verdana; - font-size: 7px; - float: left; -} - -.chat_wrapper { - width: 221px; - background: #eee; - position: absolute; - bottom: 0; - float: left; - z-index: 1022; - margin-left: 3px; -} - -#chatfix { - position: fixed; - bottom: 0; - left: 176px; - z-index: 1337; -} - -.chat_input { - float: left; - background: #eee; - border-right: 2px solid #6E99C9; - border-left: 2px solid #6E99C9; - border-bottom: 2px solid #6E99C9; - border-top: 1px solid #6E99C9; - width: 217px; -} - -.chat_contents { - bottom: 27px; - display: none; -} - -.roster_box { - border-bottom: 2px solid #bcbcbc; - float: left; - cursor: pointer; - padding: 4px; - width: 125px; -} - -.roster_box:hover { - border-bottom: 2px solid #bcbcbc; - float: left; - cursor: pointer; - background: #eee; - padding: 4px; - width: 125px; -} - -.roster_name { - margin-left: 5px; -} - -.roster_alert { - margin: 1px; - padding: 1px; - font-size: 11px; - font-family: Verdana; -} - -#roster { - float: left; - font-size: 11px; - font-family: Verdana; - display: none; - height: 331px; - overflow-y: scroll; - background: #d8e0e9; - margin: 5px; - width: 150px; - position: absolute; - left: 0; - bottom: 25px; - z-index: 1022; -} - -#roster-wrapper { - float: left; - height: 1px; - width: 170px; -} - -#chat_friends { - float: left; - height: 20px; - color: #000; - font-weight: bold; - padding-left: 33px; - padding-top: 7px; - width: 119px; - cursor: pointer; -} - -#chat_friends:hover { - float: left; - height: 20px; - background: #d8e0e9; - color: #000; - font-weight: bold; - padding-left: 33px; - padding-top: 7px; - width: 119px; - cursor: pointer; -} - -#statusbar_wrapper { - padding-top: 3px; - float: left; -} - -#long-wrapper { - float: left; -} - -#chatlog { - float: left; - padding: 3px; - color: Green; -} - -.chat-unavailable { - background: url(/CSS/Base/CSS/unavailable.png); - height: 15px; - width: 15px; - float: left; -} - -.chat-available { - background: url(/CSS/Base/CSS/available.png); - height: 15px; - width: 15px; - float: left; -} - -.chat-default { - height: 15px; - width: 15px; - float: left; -} - -.chat_send_button { - background: #eee; - border: 0 solid #FFF; - float: left; - line-height: 17px; - height: 18px; - border-left: 2px solid #CCC; - border-bottom: 0; - border-right: 0; - border-top: 0; - padding: 3px; - cursor: pointer; -} - -.chat_send_button:hover { - background: #D8E0E9; - border: 0 solid #FFF; - float: left; - line-height: 17px; - height: 18px; - border-left: 2px solid #CCC; - border-bottom: 0; - border-right: 0; - border-top: 0; - padding: 3px; - cursor: pointer; -} - -.chat_send_input { - border: 0 solid #FFF; - float: left; - height: 22px; - font-size: 12px; - padding: 2px; -} - -.chat_close { - cursor: pointer; - color: #FFF; - font-size: 16px; - line-height: 11px; - padding-right: 8px; - float: left; - padding-top: 6px; -} - -.chat_close:hover { - cursor: pointer; - color: #000; - font-size: 16px; - line-height: 11px; - padding-right: 8px; - float: left; - padding-top: 6px; -} - -.chat_entry_click { - cursor: pointer; - padding-right: 10px; - padding-top: 7px; - padding-left: 10px; - padding-bottom: 7px; - padding-top: 6px; -} - -.chat_entry { - float: left; - background: #d8e0e9; - height: 27px; - color: #000; - font-weight: bold; - cursor: pointer; - width: 221px; -} - -#chat_login { - margin-top: 1px; - margin-left: 2px; - float: left; -} - -#chat_logout { - margin-top: 1px; -} - -#chat-availability { - float: left; -} - -#partycontainer { - position: fixed; - bottom: 91px; - z-index: 1022; -} - -.ActiveChatThumb { - z-index: 10; - cursor: pointer; -} - -.RemoveActiveChat { - position: absolute; - z-index: 10; - cursor: pointer; - margin-left: 40px; -} - -.clear { - overflow: hidden; - width: 100%; -} - -.followme_green19h { - background-image: url('/images/Buttons/followme_19h.png'); - background-repeat: no-repeat; - background-position: left top; - height: 19px; - cursor: pointer; - width: 65px; - float: left; - text-align: center; -} - -.followme_green19h:hover { - background-position: left bottom; -} - -.followme_gray19h { - background-image: url('/images/Buttons/followme_19h-gray.png'); - background-repeat: no-repeat; - background-position: left top; - height: 19px; - cursor: pointer; - width: 65px; - float: left; - text-align: center; -} - -.followme_gray19h:hover { - background-position: left bottom; -} - -.tab_white19h, -.tab_white19hselected { - background: transparent url('/images/friendsbar/tab_white19h_l2.gif') no-repeat left top; - color: #444; - display: block; - float: left; - font: normal 12px verdana, sans-serif; - text-decoration: none; - padding-left: 2px; - height: 19px; - outline: none; - cursor: pointer; -} - -.tab_white19h span, -.tab_white19hselected span { - background: transparent url('/images/friendsbar/tab_white19h_r2.gif') no-repeat right top; - display: block; - height: 15px; - padding: 2px 15px 2px 7px; - text-decoration: none; -} - -.tab_white19h:hover, -.tab_white19hselected { - background-position: left bottom; - color: #000; - outline: none; - text-decoration: none; -} - -.tab_white19h a, -.tab_white19hselected a { - text-decoration: none; - outline: none; -} - -.tab_white19h:hover span, -.tab_white19hselected span { - background-position: right bottom; - padding: 3px 15px 1px 7px; - text-decoration: none; -} - -.tab_white19h_flash { - background: transparent url('/images/friendsbar/tab_blue19h_l.gif') no-repeat left top; -} - -.tab_white19h_flash span { - background: transparent url('/images/friendsbar/tab_blue19h_r.gif') no-repeat right top; - color: White; -} - -.bold { - font-weight: bold; -} - -.clear { - clear: both; -} - -.alignCenter { - text-align: center; -} - -.InGamePopup { - background: url(/images/css/containerBkg_01.png); - _overflow: hidden; -} - -.voteYes { - background: url(/images/css/button_vote.jpg); - width: 24px; - height: 23px; - background-position: top left; -} - -.voteYes:hover { - background-position: bottom left; -} - -.voteNo { - background: url(/images/css/button_vote.jpg); - width: 24px; - height: 23px; - background-position: top right; -} - -.voteNo:hover { - background-position: bottom right; -} - -#MyAccountBalanceContainer { - font-family: Verdana, Helvetica, Sans-Serif; -} - -#MyAccountBalanceContainer h2 { - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - letter-spacing: .4em; - line-height: 1em; - margin: 10px 0 0 -2px; - padding: 0; -} - -#MyAccountBalanceContainer h3 { - background-color: #ccc; - border-bottom: solid 1px #000; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: 1.7em; - font-weight: normal; - letter-spacing: .1em; - line-height: 1em; - margin: 0; - padding: 5px; - text-align: center; -} - -#MyAccountBalanceContainer h4 { - font-family: Verdana, Sans-Serif; - font-size: 13px; - font-weight: bold; - margin: 5px 0; - padding: 5px 5px 5px 15px; - color: #900; -} - -#MyAccountBalanceContainer #AboutRobux { - border-bottom: solid 1px #000; - border-left: solid 1px #000; - border-right: solid 1px #000; - float: right; - margin-top: 20px; - width: 275px; -} - -#MyAccountBalanceContainer #AboutRobux h3 { - border-top: solid 1px #000; -} - -#MyAccountBalanceContainer #AboutRobux p { - margin: 0; - padding: 10px 15px; -} - -#MyAccountBalanceContainer #Earnings { - border: solid 1px #000; - margin-top: 20px; - padding-bottom: 10px; - width: 600px; -} - -#MyAccountBalanceContainer .Earnings_Period { - margin-bottom: 20px; -} - -#MyAccountBalanceContainer .Earnings_LoginAward, -#MyAccountBalanceContainer .Earnings_PlaceTrafficAward, -#MyAccountBalanceContainer .Earnings_Ambassador { - padding: 0 0 0 50px; - height: 16px; - background-color: #eee; -} - -#MyAccountBalanceContainer .Earnings_SaleOfGoods, -#MyAccountBalanceContainer .Earnings_PeriodTotal, -#MyAccountBalanceContainer .Earnings_LoginAwardBC, -#MyAccountBalanceContainer .Earnings_Currency { - padding: 0 0 0 50px; - height: 16px; -} - -#MyAccountBalanceContainer .Earnings_LoginAward .Label, -#MyAccountBalanceContainer .Earnings_LoginAwardBC .Label, -#MyAccountBalanceContainer .Earnings_PlaceTrafficAward .Label, -#MyAccountBalanceContainer .Earnings_SaleOfGoods .Label, -#MyAccountBalanceContainer .Earnings_Ambassador .Label, -#MyAccountBalanceContainer .Earnings_Currency .Label { - float: left; - width: 380px; -} - -#MyAccountBalanceContainer .Earnings_PeriodTotal .Label { - float: left; - padding-right: 10px; - text-align: right; - width: 370px; -} - -#MyAccountBalanceContainer .Earnings_PeriodTotal .Field { - color: Blue; - font-weight: bold; -} - -#MyAccountBalanceContainer .Field { - float: right; - width: 75px; -} - -#MyAccountBalanceContainer .Zebra { - background-color: #eee; -} - -table.stats { - text-align: center; - font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; - font-weight: normal; - font-size: 11px; - color: #fff; - width: 280px; - background-color: #666; - border: 0; - border-collapse: collapse; - border-spacing: 0; -} - -table.stats td { - background-color: #CCC; - color: #000; - padding: 4px; - text-align: left; - border: 1px #fff solid; -} - -table.stats td.hed { - background-color: #666; - color: #fff; - padding: 4px; - text-align: left; - border-bottom: 2px #fff solid; - font-size: 12px; - font-weight: bold; -} - -#AssetContainer { - margin: 0 auto; - width: 620px; -} - -#AssetContainer h2 { - color: #333; - font-size: x-large; - margin-bottom: 5px; -} - -#AssetContainer #Asset { - background-color: #eee; - border: solid 1px #000; - color: #555; -} - -#BadgesContainer { - border: solid 1px #000; -} - -#BadgesContainer .Legend .BadgesList { - color: #666; - float: left; - list-style: none; - margin: 0; - padding: 0; -} - -#BadgesContainer .Legend .BadgesList li { - background-color: #fff; - background-position: 0 5px; - background-repeat: no-repeat; - margin: 10px 0 20px 0; - padding: 0 0 7px 80px; - border: solid 1px #000; -} - -#CommunityBadges .Legend, -#FriendshipBadges .Legend, -#CombatBadges .Legend, -#VisitsBadges .Legend { - float: left; - padding: 5px 15px 5px 5px; - width: 500px; -} - -#StatisticsRankingsPane_Friendship, -#StatisticsRankingsPane_Combat, -#StatisticsRankingsPane_Visits, -#FeaturedBadge_Community { - float: right; - margin: 15px; - width: 300px; -} - -#FeaturedBadge_Community { - border: solid 1px #000; - margin-top: 20px; - width: 325px; - background-color: White; -} - -#TurboBuildersClubBadge_Community { - border: solid 1px #000; - margin: 15px 15px 15px 15px; - background-color: White; - float: left; -} - -#OutrageousBuildersClubBadge_Community { - border: solid 1px #000; - margin: 15px 15px 15px 15px; - background-color: White; - float: left; -} - -#FeaturedBadge_Community h4, -#OutrageousBuildersClubBadge_Community h4 { - background-color: #6e99c9; - border-bottom: solid 1px #000; - color: #fff; - font-size: 1.4em; - font-weight: bold; - letter-spacing: .2em; - margin: 0; - padding: 3px; - text-align: center; -} - -#OutrageousBuildersClubBadge_Community h4 { - background-color: #000; - color: #FFF; - border-bottom: solid 1px #000; -} - -#OutrageousBuildersClubBadge_Community h4 .OutrageousSpan { - color: White; -} - -.FeaturedOBCContent .FeaturedOBCDescription { - color: #222; - margin: 10px 10px 10px 10px; - font-size: 14px; -} - -.FeaturedOBCIcon { - margin: 10px 10px 10px 10px; - float: left; - vertical-align: text-top; - width: 150px; -} - -#OutrageousBuildersClubBadge_Community { - margin: 10px 10px 10px; -} - -#FeaturedBadge_Community h4, -#TurboBuildersClubBadge_Community h4 { - background-color: #6e99c9; - border-bottom: solid 1px #000; - color: #fff; - font-size: 1.4em; - font-weight: bold; - letter-spacing: .2em; - margin: 0; - padding: 3px; - text-align: center; -} - -#TurboBuildersClubBadge_Community h4 { - background-color: #B94542; - color: #6e99FF; - border-bottom: solid 1px #000; -} - -#TurboBuildersClubBadge_Community h4 .TurboSpan { - color: White; -} - -.BadgeHint { - border: dashed 1px #000; - padding: 5px 5px 5px 5px; - background-color: #E8EDFF; -} - -.FeaturedBadgeContent { - margin: 0; - padding: 0 15px 10px 15px; -} - -.FeaturedBadgeContent p { - color: #222; - font-family: Verdana, Sans-Serif; - margin-top: 10px; -} - -.FeaturedBadgeIcon { - float: left; - margin: auto 10px auto 10px; - vertical-align: text-top; - width: 125px; -} - -.FeaturedTBCContent .FeaturedTBCDescription { - color: #222; - font-size: 14px; - margin: 10px 10px 10px 10px; -} - -.FeaturedTBCIcon { - margin: 10px 10px 10px 10px; - float: left; - vertical-align: text-top; - width: 150px; -} - -#TurboBuildersClubBadge_Community { - margin: 10px 10px 10px; -} - -#StatisticsRankingsPane_Community { - border: none; -} - -#BadgesContainer .Legend h4 { - background-color: #fff; - font-size: 1.4em; - font-weight: bold; - margin: 5px 0 5px 0; -} - -#BadgesContainer #CommunityBadges .Legend #Administrator { - background-image: url(/images/Badges/Administrator-75x75.png?v=2); -} - -#BadgesContainer #CommunityBadges .Legend #ForumModerator { - background-image: url(/images/Badges/ForumModerator-75x75.png?v=2); -} - -#BadgesContainer #CommunityBadges .Legend #ImageModerator { - background-image: url(/images/Badges/ImageModerator-75x75.png?v=2); -} - -#BadgesContainer #FriendshipBadges .Legend #Friendship { - background-image: url(/images/Badges/Friendship-75x75.png?v=2); -} - -#BadgesContainer #FriendshipBadges .Legend #Inviter { - background-image: url(/images/Badges/Inviter-75x75.png?v=2); -} - -#BadgesContainer #CombatBadges .Legend #CombatInitiation { - background-image: url(/images/Badges/CombatInitiation-75x75.png?v=2); -} - -#BadgesContainer #CombatBadges .Legend #Warrior { - background-image: url(/images/Badges/Warrior-75x75.png?v=2); -} - -#BadgesContainer #CombatBadges .Legend #Bloxxer { - background-image: url(/images/Badges/Bloxxer-75x75.png?v=2); -} - -#BadgesContainer #VisitsBadges .Legend #Homestead { - background-image: url(/images/Badges/Homestead-70x75.png?v=2); -} - -#BadgesContainer #VisitsBadges .Legend #Bricksmith { - background-image: url(/images/Badges/Bricksmith-54x75.png?v=2); -} - -#BadgesContainer .AccordionHeader, -#BadgesContainer .TopAccordionHeader, -#BadgesContainer .BottomAccordionHeader { - background-color: #ccc; - cursor: pointer; - font-size: 1.4em; - margin: 0 0 1px 0; - padding: 5px; - text-align: center; -} - -#BadgesContainer .AccordionHeader, -#BadgesContainer .BottomAccordionHeader { - border-bottom: solid 1px #000; - border-top: solid 1px #000; -} - -#BadgesContainer .TopAccordionHeader { - border-bottom: solid 1px #000; - border-top: none; -} - -#BadgesContainer .AccordionHeader:hover, -#BadgesContainer .TopAccordionHeader:hover, -#BadgesContainer .BottomAccordionHeader:hover { - background-color: #6e99c9; - color: #fff; -} - -.StatisticsRankings { - background-color: #eee; -} - -.StatisticsRankings h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: 1.2em; - margin: 0; - text-align: center; -} - -.StatisticsRankingsHeader_Rank, -.StatisticsRankingsHeader_Item, -.StatisticsRankingsHeader_Score { - border: solid 1px #000; - float: left; - font-weight: bold; - padding: 2px 0 2px 0; - text-align: center; -} - -.StatisticsRankingsHeader_Rank { - margin-right: 1px; - width: 45px; -} - -.StatisticsRankingsHeader_Item { - margin-right: 1px; - width: 150px; -} - -.StatisticsRankingsHeader_Score { - width: 95px; -} - -.StatisticsRanking, -.StatisticsRanking_AlternatingRow, -.StatisticsRanking_UserCentric, -.StatisticsRanking_UserCentric_AlternatingRow { - font: normal .9em/normal Verdana, sans-serif; -} - -.StatisticsRanking_UserCentric a, -.StatisticsRanking_UserCentric a:link, -.StatisticsRanking_UserCentric a:visited, -.StatisticsRanking_UserCentric a:active, -.StatisticsRanking_UserCentric_AlternatingRow a, -.StatisticsRanking_UserCentric_AlternatingRow a:link, -.StatisticsRanking_UserCentric_AlternatingRow a:visited, -.StatisticsRanking_UserCentric_AlternatingRow a:active { - color: #fff; -} - -.StatisticsRanking .StatisticsRanking_Rank, -.StatisticsRanking .StatisticsRanking_Item, -.StatisticsRanking .StatisticsRanking_Score, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Rank, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Item, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Score { - border: solid 1px #000; - float: left; - padding: 2px 0 2px 0; - text-align: center; -} - -.StatisticsRanking .StatisticsRanking_Rank, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Rank { - margin-right: 1px; - width: 45px; -} - -.StatisticsRanking .StatisticsRanking_Item, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Item { - margin-right: 1px; - width: 150px; -} - -.StatisticsRanking .StatisticsRanking_Score, -.StatisticsRanking_AlternatingRow .StatisticsRanking_Score { - width: 95px; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Rank, -.StatisticsRanking_UserCentric .StatisticsRanking_Item, -.StatisticsRanking_UserCentric .StatisticsRanking_Score, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Rank, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Item, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Score { - background-color: #6e99c9; - border: solid 1px #000; - color: #fff; - float: left; - font-weight: bold; - padding: 2px 0 2px 0; - text-align: center; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Rank, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Rank { - margin-right: 1px; - width: 45px; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Item, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Item { - margin-right: 1px; - width: 150px; -} - -.StatisticsRanking_UserCentric .StatisticsRanking_Score, -.StatisticsRanking_UserCentric_AlternatingRow .StatisticsRanking_Score { - width: 95px; -} - -.StatisticsRankingsFooter { - border-top: solid 1px #000; - padding: 2px 1px 2px 1px; -} - -.RankingsPeriodSelector { - font-family: Verdana, Sans-Serif; - font-size: xx-small; - width: 100%; -} - -.TileBadges { - float: left; - margin: 10px 10px; - text-align: center; -} - -#CatalogContainer { - font-family: Verdana, Sans-Serif; - min-width: 0; - position: relative; -} - -#CatalogContainer h2 { - font-family: Verdana, Sans-Serif; - font-weight: normal; - letter-spacing: .1em; - line-height: 24px; - padding: 0; - color: #555; - font-size: 14px; - margin-left: 10px; -} - -#BrowseMode ul li h3 a { - font-weight: normal; - font-size: 14px; -} - -#CatalogContainer ul { - font-family: Verdana, Sans-Serif; - list-style: none; - margin: 0 0 20px 0; - padding-left: 0; -} - -#CatalogContainer ul li { - margin: 5px 0 5px 10px; - font-family: Arial, Helvetica, sans-serif; - padding-left: 20px; - font-size: 14px; -} - -#CatalogContainer .Selected { - background: url('/images/gamesPage_filterArrow.png') no-repeat scroll 0 1px transparent; -} - -#CatalogContainer .DisplayFilters { - width: 185px; - background-color: White; - border: solid 2px #6e99c9; -} - -#CatalogContainer .Assets { - float: left; - min-width: 0; - overflow: hidden; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - position: relative; - width: 680px; -} - -#CatalogContainer .SearchBar { - background-color: #eee; - border: solid 1px #bbb; - height: 30px; - margin: -5px 0 5px 0; - padding: 0; - text-align: center; -} - -#CatalogContainer .SearchBar .SearchBox, -#CatalogContainer .SearchBar .SearchButton { - height: 30px; - margin: 0; - padding: 0; -} - -#CatalogContainer .SearchBar .TextBox { - border: solid 1px #000; - height: 19px; - margin: 2px 0 0 0; - padding: 2px 3px 0 3px; - width: 250px; -} - -#CatalogContainer .SearchLinks { - z-index: 9; - display: inline; -} - -#CatalogContainer .SearchLinks a span { - display: none; -} - -#CatalogContainer .SearchLinks a:hover { - text-decoration: none; - border: none; -} - -#CatalogContainer .SearchLinks a:hover span { - display: block; - position: absolute; - top: 20px; - left: 15%; - width: 60%; - padding: 5px; - margin: 5px; - z-index: 10; - color: white; - background-color: #6e99c9; - border-width: 1px; - border-color: Gray; - border-style: ridge; - text-decoration: none; - line-height: 1.4em; - font: 11px Verdana, sans-serif; - text-align: center; -} - -#CatalogContainer .SearchError { - clear: both; - margin: 2px; - float: none; - padding: 2px; - text-align: center; - color: Red; -} - -#CatalogContainer .Assets .HeaderPager, -#CatalogContainer .Assets .FooterPager { - padding: 2px 0; - text-align: right; -} - -#CatalogContainer .Assets .HeaderPager { - margin-bottom: 10px; -} - -#CatalogContainer .Assets .HeaderPager .Label, -#CatalogContainer .Assets .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#CatalogContainer .Asset { - margin: -1px 0 15px -1px; - vertical-align: top; - width: 122px; -} - -#CatalogContainer .Asset .AssetThumbnail { - border: solid 1px #EEE; - height: 110px; - text-align: center; - width: 110px; - background-color: #FFF; -} - -#CatalogContainer .Asset .AssetDetails { - font-family: Verdana, Sans-Serif; - overflow: hidden; - padding: 2px 0 6px 0; - width: 110px; -} - -#CatalogContainer .AssetName a { - font-size: .9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.AssetsBullet { - padding-right: 3px; -} - -#CatalogContainer .Label, -#CatalogContainer .Detail, -#CatalogContainer .DetailHighlighted, -#CatalogContainer .PriceInRobux, -#CatalogContainer .PriceInTickets { - font-size: .8em; -} - -#CatalogContainer .PriceInRobux { - color: Green; - font-weight: bold; -} - -#CatalogContainer .PriceInTickets { - color: #fbb117; - font-weight: bold; -} - -#CatalogContainer .AssetsDisplaySet { - float: left; - font-family: Comic Sans MS, Arial, Sans-Serif; - font-size: 1.5em; -} - -.Assets .StandardBoxHeader { - width: 660px; -} - -.Assets .StandardBox { - width: 660px; -} - -.CustomizeCharacterContainer { - font-family: Verdana, Sans-Serif; - margin: 0; -} - -.CustomizeCharacterContainer h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Verdana, Sans-Serif; - margin: 0; - text-align: center; -} - -.CustomizeCharacterContainer .NoResults { - padding: 15px; - text-align: center; -} - -.CustomizeCharacterContainer .TileGroup { - clear: left; - text-align: center; -} - -.CustomizeCharacterContainer .Asset { - float: left; - margin: 5px 7px 5px 0; - text-align: left; - vertical-align: top; - width: 112px; -} - -.CustomizeCharacterContainer .Asset .AssetThumbnail { - height: 110px; - position: relative; - text-align: center; - width: 110px; -} - -.CustomizeCharacterContainer .Asset .AssetDetails { - overflow: hidden; - padding: 2px 0 6px 0; - text-align: left; - width: 110px; -} - -.CustomizeCharacterContainer .AssetName a { - font-size: .9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.CustomizeCharacterContainer .Label, -.CustomizeCharacterContainer .Detail, -.CustomizeCharacterContainer .DetailHighlighted { - font-size: .8em; -} - -.CustomizeCharacterContainer .FooterPager { - border-top: solid 1px #000; - clear: left; - margin: 10px 0 0 0; - padding: 3px 0; - text-align: center; -} - -.AttireChooser { - border: solid 1px #000; - float: left; - margin: 0; - min-width: 0; - padding: 0; - position: relative; - text-align: left; - width: 530px; -} - -.Accoutrements { - border: solid 1px #000; - clear: left; - margin-top: 10px; - min-width: 0; - padding: 0; - position: relative; - text-align: left; - width: 530px; -} - -.AttireChooser .AttireCategory { - border-bottom: solid 1px #000; - margin: 0 0 10px 0; - padding: 3px 0; - text-align: center; -} - -.AttireChooser .AttireOptions { - margin: 5px; -} - -.AttireCategory .AttireCategorySelector_Selected { - font-weight: bold; -} - -.AttireChooser .HeaderPager, -.AttireChooser .HeaderPager { - margin-bottom: 10px; -} - -.AttireChooser .HeaderPager .Label, -.AttireChooser .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -.CharacterViewer { - border: solid 1px #000; - float: right; - width: 354px; -} - -.CharacterViewer .ReDrawAvatar { - font-size: 1em; - vertical-align: bottom; - text-align: center; -} - -.Mannequin { - clear: right; - margin-top: 10px; - text-align: center; - width: 354px; -} - -.Mannequin .ColorChooserFrame { - margin: 0 auto; -} - -.TeeShirtBuilder { - border: solid 1px #000; - clear: both; - margin-top: 10px; -} - -div.AspNet-DetailsView-Data ul { - margin: 0; - padding: 0; -} - -div.AspNet-DetailsView-Data li { - margin: 0; - padding: 0; - list-style-type: none; - position: relative; -} - -ul.AspNet-Menu { - position: relative; -} - -ul.AspNet-Menu, -ul.AspNet-Menu ul { - margin: 0; - padding: 0; - display: block; -} - -ul.AspNet-Menu li { - position: relative; - list-style: none; -} - -ul.AspNet-Menu li a, -ul.AspNet-Menu li span { - display: block; - text-decoration: none; -} - -ul.AspNet-Menu ul { - position: absolute; - display: none; -} - -ul.AspNet-Menu li:hover ul ul, -ul.AspNet-Menu li:hover ul ul ul, -ul.AspNet-Menu li.AspNet-Menu-Hover ul ul, -ul.AspNet-Menu li.AspNet-Menu-Hover ul ul ul { - display: none; -} - -ul.AspNet-Menu li:hover ul, -ul.AspNet-Menu li li:hover ul, -ul.AspNet-Menu li li li:hover ul, -ul.AspNet-Menu li.AspNet-Menu-Hover ul, -ul.AspNet-Menu li li.AspNet-Menu-Hover ul, -ul.AspNet-Menu li li li.AspNet-Menu-Hover ul { - display: block; -} - -.AspNet-Menu-Horizontal ul.AspNet-Menu li { - float: left; -} - -.AspNet-Menu-Horizontal ul.AspNet-Menu li li { - float: none; -} - -div.AspNet-TreeView { - margin: 0; - padding: 0; -} - -div.AspNet-TreeView ul { - list-style: none; - margin: 0; - padding: 0; -} - -.AspNet-TreeView-Hide { - display: none; -} - -#ContentBuilderContainer { - margin-top: 10px; -} - -#ContentBuilderContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#ContentBuilderContainer h3 { - background-color: #ccc; - font-size: 16px; - font-weight: bold; - padding: 5px; - text-align: center; -} - -#ContentBuilderContainer blockquote { - margin: 0 auto; -} - -#ContentBuilderContainer .UploaderPanel, -#ContentBuilderContainer .UpsellPanel { - text-align: center; -} - -#ContentBuilderContainer .SelectorArea { - margin: 0 auto; - margin-bottom: 20px; - margin-top: 20px; - text-align: center; -} - -#ContentBuilderContainer .DisclaimerLink { - z-index: 9; - display: inline; - font-size: 1.2em; -} - -#ContentBuilderContainer .DisclaimerLink a span { - display: none; -} - -#ContentBuilderContainer .DisclaimerLink a:hover { - text-decoration: none; - border: none; -} - -#ContentBuilderContainer .DisclaimerLink a:hover span { - display: block; - position: absolute; - top: 50%; - left: 12%; - width: 75%; - padding: 5px; - margin: 5px; - z-index: 10; - color: white; - background-color: #6e99c9; - border-width: 1px; - border-color: Gray; - border-style: ridge; - text-decoration: none; - line-height: 1.4em; - font: 12px Verdana, sans-serif; - text-align: left; -} - -#TradeCurrencyContainer { - margin-top: 10px; -} - -#TradeCurrencyContainer .TradeBox { - width: 100px; -} - -#TradeCurrencyContainer h2 { - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0 0 15px 0; - padding: 0; - text-align: center; -} - -#TradeCurrencyContainer .LeftColumn { - float: left; - width: 230px; -} - -#TradeCurrencyContainer .CenterColumn { - float: left; - width: 410px; -} - -#TradeCurrencyContainer .RightColumn { - float: left; - width: 230px; -} - -#TradeCurrencyContainer h4 { - border-bottom: solid 1px #000; - font-size: 1em; - font-weight: bold; - margin: 0; - padding: 5px; - text-align: center; - display: block; -} - -#TradeCurrencyContainer .AccordionHeader { - background-color: #ccc; - border: solid 1px #000; - cursor: pointer; - font-size: 1em; - font-weight: bold; - letter-spacing: .1em; - margin: 1px 0; - padding: 1px 1em; - text-align: center; -} - -#TradeCurrencyContainer .AccordionHeader:hover { - background-color: #6e99c9; - color: #fff; -} - -#CurrencyOffersPane { - float: right; -} - -.TradingDashboard { - margin-bottom: 10px; -} - -.CurrencyQuote, -.CurrencyTrade, -.CurrencyOffers, -.CurrencyBids, -.TradingDashboard { - width: 350px; -} - -.CurrencyQuote, -.CurrencyTrade, -.CurrencyOffers, -.CurrencyBids, -.OpenBids, -.OpenOffers, -.TradeHistory { - border: solid 1px #000; - padding: 0; -} - -.CurrencyQuote, -.CurrencyTrade, -.TradingDashboard, -.OpenBids, -.OpenOffers, -.TradeHistory, -.TradingDashboard .FooterPager { - margin: 0 auto; -} - -.CurrencyTrade, -.TradingDashboard { - margin-top: 20px; -} - -.CurrencyTradeDetails { - padding: 5px; -} - -.CurrencyTradeDetail, -.TradingDashboard .FooterPager { - padding-top: 5px; - text-align: center; -} - -.CurrencyOffers, -.CurrencyBids { - width: 200px; -} - -.CurrencyOffer, -.AlternatingCurrencyOffer, -.CurrencyBid, -.AlternatingCurrencyBid { - padding: 5px; - text-align: center; -} - -.CurrencyQuote .TableHeader, -.CurrencyOffers .TableHeader, -.CurrencyBids .TableHeader { - font-weight: bold; -} - -.CurrencyQuote .TableRow, -.CurrencyOffers .TableRow, -.CurrencyBids .TableRow { - border-top: solid 1px #000; -} - -.CurrencyQuote .Pair, -.CurrencyQuote .Rate, -.CurrencyQuote .Spread, -.CurrencyQuote .HighLow { - float: left; - padding: 5px; - text-align: center; - width: 77px; -} - -.DarkGradientBox { - background: url(/images/DarkGradientW150.png) repeat-y top left; - width: 150px; - color: White; - position: relative; - border: solid 2px #7DADE0; -} - -.DarkGradientBox .DGB_Header { - font-size: 14px; - font-weight: bold; - text-align: center; - padding-top: 5px; - padding-bottom: 0; - border-bottom: solid 2px #6e99c9; -} - -.DarkGradientBox .DGB_TextBox { - border: solid 2px #6e99c9; -} - -.DarkGradientBox .DGB_Label { - color: White; - font-size: 10px; - font-weight: bold; - text-align: left; -} - -.DarkGradientBox .DGB_Button { - cursor: pointer; - background-color: #435D77; - color: White; - text-decoration: none; - border: solid 1px #777; - padding: 6px 10px 6px 10px; - font-family: Verdana, Sans-Serif; - font-size: 12px; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.DarkGradientBox .DGB_Button:link, -.DarkGradientBox .DGB_Button:visited { - background-color: #435D77; - color: White; - text-decoration: none; -} - -.DarkGradientBox .DGB_Button:hover, -.DarkGradientBox .DGB_Button:active { - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; -} - -#FriendliestFolkPane { - border-color: #000; - border-style: solid; - border-width: 1px; - height: 184px; - margin-top: 10px; - overflow: auto; - width: 770px; -} - -#FriendliestFolk h4 { - font-size: 10pt; - font-weight: bold; - line-height: 1em; - margin-bottom: 5px; - margin-top: 5px; -} - -#GamesContainer { - font-family: Verdana, Sans-Serif; -} - -#GamesContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#GamesContainer h4 { - font-family: Verdana, Sans-Serif; - font-size: 1.3em; - font-weight: normal; - letter-spacing: .1em; - line-height: 1em; - margin: 15px 0; - padding: 0; -} - -#GamesContainer ul { - font-family: Verdana, Sans-Serif; - list-style: none; - margin: 10px 0 30px 0; - padding-left: 0; -} - -#GamesContainer ul li { - font-family: Verdana, Sans-Serif; - margin-bottom: .5em; -} - -#GamesContainer ul a { - font-size: 1.1em; -} - -#GamesContainer .DisplayFilters { - width: 170px; -} - -#GamesContainer #Games { - float: left; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - width: 720px; - overflow: visible; -} - -.GameList { - overflow: visible; -} - -#GamesContainer .Ads_WideSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -#GamesContainer #Games .FooterPager { - margin: 20px 24px 0 0; - padding: 2px 0; - text-align: right; -} - -#GamesContainer #Games .HeaderPager { - margin: 0 24px 0 100px; - padding: 30px 0; - text-align: left; -} - -#GamesContainer #Games .HeaderPager .Label, -#GamesContainer #Games .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#GamesContainer .Game { - margin: 0 10px 15px 10px; - vertical-align: top; - width: 162px; -} - -#GamesContainer .Game .GameThumbnail { - border: solid 1px #000; - width: 160px; - height: 100px; - text-align: center; -} - -#GamesContainer .Game .GameDetails { - font-family: Verdana, Sans-Serif; - overflow: hidden; - padding: 2px 0 6px 0; - width: 152px; -} - -.GameDetails12>GameName { - font-weight: bold; -} - -.GameName { - font-weight: bold; - font-size: 12px; -} - -#GamesContainer .GameName a { - font-size: .9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.GamesBullet { - padding-right: 3px; -} - -#GamesContainer .Label, -#GamesContainer .Detail, -#GamesContainer .DetailHighlighted { - font-size: .8em; -} - -#GamesContainer .DetailHighlighted { - color: Red; - font-weight: bold; -} - -#GamesContainer .GamesDisplaySet { - float: left; - font-family: Comic Sans MS, Arial, Sans-Serif; - font-size: 1.5em; -} - -.GamesInfoIcon, -.GenreIcon, -.GearIcon { - margin-top: 1px; - margin-right: 1px; - position: relative; - top: 3px; -} - -.SearchBoxBack .StandardBox { - background: #6e99c9; -} - -.GameFilter { - color: #555; - margin-left: 10px; - font-size: 14px; -} - -.GameFilter ul { - list-style-type: none; - padding-left: 0; - margin: 0; -} - -.GameFilter ul li { - margin: 5px 0; -} - -.GameFilter .SelectedFilter, -.GameFilter .SelectedGenre { - background: url(/images/gamesPage_filterArrow.png) no-repeat 0 1px; - cursor: pointer; - padding-left: 20px; - font-weight: normal; -} - -.GameFilter .GamesFilter, -.GameFilter .GamesGenre { - padding-left: 20px; - display: inline-block; -} - -.GamesGenre h3 { - display: inline-block; - cursor: pointer; - font-weight: normal; -} - -#PlayTabs a { - text-decoration: none; -} - -.SelectedFilter, -.SelectedGenre { - font-weight: normal; -} - -a.DisabledFilter, -a.DisabledFilter:hover { - color: gray; - text-decoration: none; - cursor: default; -} - -a.GamesGenre.DisabledFilter h3, -a.GamesGenre.DisabledFilter:hover h3 { - cursor: default; -} - -#BCOnlyPlaces { - position: relative; - width: 410px; - text-align: center; - float: left; - margin-top: 8px; - margin-bottom: 6px; -} - -#BCOnlyPlaces .StandardBoxHeaderGray { - width: 410px; - height: 27px; - padding: 9px 2px 0 2px; - *padding: 5px 2px 0 2px; -} - -#BCOnlyPlaces .StandardBox { - height: 188px; - padding: 2px 0; -} - -#BCOnlyPlacesTitle { - display: inline; - font-weight: bold; - font-size: 19px; - position: relative; - *margin-left: 5px; -} - -#BCOnlyGamesContent { - width: 370px; - margin: 0 auto; -} - -#BCOnlyGamesContentPrevNavButton { - position: absolute; - top: 105px; - left: 10px; - visibility: hidden; -} - -#BCOnlyGamesContentNextNavButton { - position: absolute; - top: 105px; - right: 10px; -} - -#GenreDescriptionPanel { - float: left; - width: 695px; - font-size: .9em; - padding: 10px; - border-top: 1px solid #AAA; -} - -.SearchIconButton { - background: url(/images/searchIcon.png) no-repeat; - cursor: pointer; - width: 16px; - height: 16px; - position: absolute; - top: 5px; - right: 4px; -} - -.GameItem { - padding: 6px; - margin-left: 8px; - margin-bottom: 8px; - position: relative; - text-align: left; -} - -.GameItem:hover { - display: block; - z-index: 99; -} - -.GameItem .AlwaysShown { - position: relative; - width: 160px; - height: 130px; -} - -.GameItem:hover .AlwaysShown { - z-index: 999; -} - -.GameItem .HoverShown { - display: none; - position: absolute; - width: 160px; - padding: 158px 15px 15px; - top: -10px; - left: -10px; - border: solid 1px #888; - background: #fff; - font-size: 11px; - text-align: left; - color: #888; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; -} - -.GameItem .CreatorName { - position: relative; - top: -5px; - font-size: 11px; - color: #888; -} - -.GameItem .BCOverlay { - position: absolute; - top: 81px; - left: 0; -} - -.GameItem .GenreIcon, -.GameItem .GearIcon { - position: static; - top: 0; - margin-top: 0; - margin-right: 0; -} - -#GamesLeftColumn { - width: 136px; -} - -.groupEmblemThumbnail { - margin-top: 10px; - margin-bottom: 10px; - margin-left: 8px; - margin-right: 8px; - text-align: center; - width: 105px; - overflow: hidden; -} - -#GroupThumbnails { - text-align: center; - margin-bottom: 10px; -} - -.GroupDescriptionThumbnail { - float: left; - clear: none; - margin: 0 10px 10px 0; -} - -.GroupMembers { - width: 100%; -} - -.GroupMembers tr { - padding-bottom: 10px; -} - -.GroupMembers td { - padding: 0 5px 10px 5px; - text-align: center; -} - -.IncompleteFormField { - color: red; -} - -.GroupWallPostButton { - width: 69px; - height: 53px; - margin: 3px 0 4px 0; - float: right; -} - -.GroupWallPostText { - width: 375px; - height: 53px; - float: left; -} - -.GroupDescriptionEdit { - border: none; - border-style: none; -} - -.EmblemAdminImage { - margin: 0x; -} - -.CreateNewGroup { - padding-bottom: 10px; - margin-bottom: 10px; - display: block; - text-align: center; - font-size: 12px; - cursor: pointer; -} - -.CreateNewGroupError { - color: Red; -} - -.GroupMembersAdminTable tr { - text-align: left; -} - -.GroupMembersAdminTable td { - width: 85px; - margin: 2px; -} - -#GroupSearchResults thead tr { - background-color: #B0C4DE; - color: Black; -} - -#GroupSearchResults .GroupEmblemImg { - border: solid 2px #B0C4DE; - padding: 2px; -} - -.selectedSmallThumb { - border: solid 2px #FFE390; -} - -.nonSelectedSmallThumb { - border: solid 2px transparent; -} - -#Help { - border-style: ridge; - border-color: #ddd; - border-width: 5px; - background-color: #eee; - height: 600px; - padding: 1px; -} - -#Help h1 { - text-indent: 10px; -} - -#Help .salesForce, -#Help .salesForce iframe { - margin-left: 5px; - margin-bottom: 10px; - float: left; - width: 625px; - height: 500px; -} - -#Help .avatar { - text-align: center; - display: block; - float: right; - clear: right; - margin-right: auto; - margin-left: auto; - padding-left: 0; - padding-right: 0; -} - -#Help .descriptionPanels { - background-color: Transparent; - background-image: url('/images/Speech Bubble 225.gif'); - width: 225px; - height: 235px; - background-repeat: no-repeat; - margin-top: 40px; -} - -#Help .descriptionPanels p { - font-family: Comic Sans MS; - padding-top: 20px; - padding-right: 40px; - padding-left: 25px; - text-align: left; - color: Navy; - font-size: 9pt; -} - -#Help .navigation { - clear: left; - color: #6e99c9; - border: none; - background-color: Transparent; - font-family: 'Comic Sans MS', Verdana, sans-serif; - font-size: 10pt; - font-weight: normal; - text-decoration: none; - text-align: center; -} - -#Help .navigation .MenuItem { - color: #6e99c9; - font-size: 16px; - line-height: 2em; -} - -#Help .navigation a.MenuItem:link, -#Help .navigation a.MenuItem:visited, -#Help .navigation a.MenuItem:active { - color: #6e99c9; - text-decoration: none; -} - -#Help .navigation a.MenuItem:hover { - text-decoration: underline; -} - -#Help .forumLinks { - font-family: Sans-Serif; - border-width: 3px; - border-color: #ddd; - border-style: groove; - visibility: hidden; - display: none; - filter: alpha(opacity=93); - opacity: .93; - background-color: #eee; - background-image: url('/images/help_gradient.png'); - background-repeat: repeat-y; - background-position: left top; - width: 150px; - font-size: 10pt; - text-align: center; - padding: 5px; - line-height: 2em; -} - -#InboxContainer { - margin-top: 10px; -} - -#InboxContainer #InboxPane { - float: left; - position: relative; - top: -2px; - width: 700px; -} - -.InboxDateField { - text-align: right; -} - -#InboxContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - letter-spacing: .5em; - line-height: 1em; - margin: 0 0 10px 0; - padding: 0; -} - -#InboxContainer .Ads_WideSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -#InboxContainer #Inbox { - border: solid 1px #000; -} - -#InboxContainer .Buttons { - margin: 10px 0; - text-align: center; -} - -#InboxContainer .InboxHeader { - background: url(/images/topNav_black.png); - border: none; - color: #fff; - font: 1.2em/normal Verdana, sans-serif; - font-weight: lighter; - letter-spacing: .15em; - text-align: center; -} - -#InboxContainer .InboxRow { - cursor: pointer; - font: normal 1em/normal Verdana, sans-serif; -} - -#InboxContainer .InboxRow_Unread { - cursor: pointer; - font: bold 1em/normal Verdana, sans-serif; -} - -#InboxContainer .InboxRow:hover, -#InboxContainer .InboxRow_Unread:hover, -#InboxContainer .SystemAlertMessage:hover { - background-color: #6e99c9; - color: #fff; -} - -#InboxContainer .InboxHeader a, -#InboxContainer .InboxPager a, -#InboxContainer .InboxRow:hover a, -#InboxContainer .InboxRow_Unread:hover a, -#InboxContainer .SystemAlertMessage:hover a { - color: #fff; -} - -#InboxContainer .InboxPager { - background-color: #999; - font: bold 1.2em/normal Verdana, sans-serif; - letter-spacing: .15em; - text-align: center; -} - -#InboxContainer .SystemAlertMessage { - cursor: pointer; - font: normal 1em/normal Verdana, sans-serif; - color: #F00; -} - -#InboxContainer .SystemAlertMessage a { - color: #F00; -} - -#InfoContainer { - background-color: #eee; - border: solid 1px #000; - color: #555; - margin: 0 auto; - width: 620px; -} - -#InfoContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -#InfoContainer #Content { - font: normal 1em/normal Verdana, sans-serif; - line-height: 1.5em; - padding: 10px 20px 10px 20px; -} - -#AlreadyInstalled { - font-size: large; - margin: 44px 44px 44px 44px; -} - -#AlreadyInstalled a { - text-decoration: underline; -} - -#ItemContainer { - margin-top: 10px; -} - -#ItemContainer h2 { - background-color: #036; - border-bottom: solid 1px #555; - color: #fff; - font-family: Verdana, Helvetica, Sans-Serif; - font-size: x-large; - margin: 0; - text-align: center; -} - -#ItemContainer h3 { - font-size: 1.5em; - font-weight: normal; - letter-spacing: .15em; - line-height: 1em; - margin: 0 0 .5em 0; - padding: 0; -} - -#ItemContainer #Item { - color: #555; - float: left; - font-family: Verdana, Sans-Serif; - width: 705px; -} - -#ItemContainer #Details { - margin: 10px; -} - -#ItemContainer #Thumbnail, -#ItemContainer #Thumbnail_Place { - border: solid 1px #eee; - padding: 0; - text-align: left; - min-width: 0; -} - -#ItemContainer #Thumbnail { - height: 420px; - width: 420px; -} - -#ItemContainer #Thumbnail_Place { - height: 230px; - width: 420px; -} - -#ItemContainer #Actions, -#ItemContainer #Actions_Place { - width: 408px; - background-color: #fff; - padding: 5px; - text-align: left; - min-width: 0; - overflow: hidden; - top: 420px; -} - -.AddRemoveFavorite { - background: url(/images/css/favoriteStar_20h.png) no-repeat 0 -20px; - margin: 0; - display: inline-block; - position: relative; - top: 3px; - *display: inline; - *zoom: 1; - padding-top: 4px; - padding-left: 25px; - width: 200px; - height: 18px; -} - -.AddRemoveFavorite:hover { - background-position: 0 0; -} - -#ItemContainer #Summary { - background-color: #fff; - border: dashed 1px #555; - display: inline; - float: right; - padding: 7px; - width: 235px; -} - -#ItemContainer #Summary #Creator { - clear: left; -} - -#ItemContainer #Summary #DescriptionLabel { - margin-bottom: .4em; - margin-top: .7em; -} - -.label { - margin-bottom: .5em; -} - -#ItemContainer #Summary .Description { - border: solid 1px #555; - font: normal 1em/normal Verdana, sans-serif; - max-height: 136px; - line-height: 1.5em; - padding: 4px; - overflow: auto; - text-align: left; -} - -#ItemContainer #Summary #ReportAbuse { - margin: 0 auto; - padding: 4px; - text-align: center; -} - -#ItemContainer #Summary #PublicDomainPurchase { - float: left; -} - -#ItemContainer #Summary #PublicDomainPurchase #PricePublicDomain { - color: Blue; - float: left; - font-weight: bold; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #PublicDomainPurchase #BuyForFree { - float: left; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #PublicDomainPurchase #BuyForFree .Button:hover { - background-color: #6e99c9; - border: solid 1px #000; -} - -#ItemContainer #Summary #PublicDomainPurchase #BuyForFree a:hover { - color: #fff; -} - -#ItemContainer #Summary #RobuxPurchase #PriceInRobux { - color: Green; - float: left; - font-weight: bold; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #RobuxPurchase #BuyWithRobux { - float: left; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #RobuxPurchase #BuyWithRobux .Button:hover { - background-color: #49b745; - border: solid 1px #000; -} - -#ItemContainer #Summary #RobuxPurchase #BuyWithRobux a:hover { - color: #fff; -} - -#ItemContainer #Summary #TicketsPurchase { - clear: left; -} - -#ItemContainer #Summary #TicketsPurchase #PriceInTickets { - color: #fbb117; - float: left; - font-weight: bold; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #TicketsPurchase #BuyWithTickets { - float: left; - line-height: 2em; - width: 100px; -} - -#ItemContainer #Summary #TicketsPurchase #BuyWithTickets .Button:hover { - background-color: #fdd017; - border: solid 1px #000; -} - -#ItemContainer #Summary #TicketsPurchase #BuyWithTickets a:hover { - color: #fff; -} - -#ItemContainer #Configuration { - background-color: #fff; - border-bottom: dashed 1px #555; - border-left: dashed 1px #555; - border-right: dashed 1px #555; - clear: right; - float: right; - margin-left: 10px; - margin-top: -10px; - padding: 5px 10px; - text-align: center; - width: 249px; -} - -.ItemVerb { - background-color: #fff; - border: dashed 1px #555; - text-align: center; - height: 20px; - margin-top: 5px; -} - -#ItemContainer .Ownership { - background-color: #ccc; - border: dashed 1px #f00; - clear: right; - color: #f00; - float: right; - margin-left: 10px; - margin-top: 0; - padding: 10px 10px; - text-align: center; - width: 230px; -} - -#ItemContainer .PlayGames { - background-color: #ccc; - border: dashed 1px Green; - color: Green; - margin-top: 10px; - padding: 10px 5px; - text-align: center; - width: 408px; -} - -#ItemContainer .BadgeStats { - width: 408px; - padding: 10px 5px; -} - -#ItemContainer .RunningGames { - background-color: #ccc; - border: dashed 1px #555; - color: #555; - margin-top: 10px; - padding: 10px 5px; - text-align: center; - width: 408px; -} - -#ItemContainer .GameInstances { - background-color: #fff; - border: solid 1px #000; - color: #555; - width: 408px; -} - -#ItemContainer .RefreshRunningGames { - margin: 10px 0; - text-align: center; -} - -#ItemContainer #Ownership .Button, -#ItemContainer .PlayGames .Button { - background-color: #fff; -} - -#ItemContainer #Ownership .Button:Hover { - background-color: #fff; - border: solid 1px #f00; - color: #f00; -} - -#ItemContainer .PlayGames .Button:Hover { - background-color: #fff; - border: solid 1px Green; - color: Green; -} - -#ItemContainer .CommentsContainer, -#ItemContainer .TabbedInfoContainer { - margin: 10px; - margin-top: 0; - width: 665px; -} - -#ItemContainer .TabbedInfoContainer h3 { - padding: 5px; -} - -#ItemContainer .CommentsContainer .HeaderPager, -#ItemContainer .CommentsContainer .FooterPager { - padding: 5px 0; - text-align: right; -} - -#ItemContainer .CommentsContainer .Comments { - border: dashed 1px #555; - overflow: hidden; - width: 663px; -} - -#ItemContainer .CommentsContainer .Comment, -#ItemContainer .CommentsContainer .AlternateComment { - padding: 7px 10px; -} - -#ItemContainer .CommentsContainer .Comment { - background-color: #fff; -} - -#ItemContainer .CommentsContainer .AlternateComment { - background-color: #eee; -} - -#ItemContainer .CommentsContainer .Commenter { - float: left; - width: 110px; -} - -#ItemContainer .CommentsContainer .Avatar { - border: solid 1px #555; - height: 100px; - width: 100px; -} - -.Avatar { - padding: 0 0 8px 0; -} - -#ItemContainer .CommentsContainer .Post { - float: left; - width: 80%; -} - -#ItemContainer .CommentsContainer .Content { - margin: 10px 0; - overflow: hidden; -} - -#ItemContainer .CommentsContainer .PostAComment { - margin: 10px 0 0 0; -} - -#ItemContainer .CommentsContainer .PostAComment .Buttons { - margin: 10px 0 0 0; -} - -#ItemContainer .CommentsContainer .MultilineTextBox, -#ItemContainer .CommentsContainer textarea { - min-height: 0; - width: 400px; -} - -#EditItem { - color: #555; - float: left; - font-family: Verdana, Sans-Serif; - margin: 0; -} - -#EditItemContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Sans-Serif; - font-size: x-large; - margin: 0; - text-align: center; -} - -#EditItemContainer fieldset { - font-size: 1.2em; - margin: 0; - color: #000; -} - -#EditItemContainer #Confirmation { - border: dashed 1px #f00; - background-color: #ccc; - color: #f00; - margin: 0 auto; - margin-top: 10px; - padding: 10px 5px; - width: 410px; -} - -#EditItemContainer #ItemName { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#EditItemContainer #ItemThumbnail { - border: solid 1px #555; - height: 230px; - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#EditItemContainer #ItemDescription { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#EditItemContainer #Comments, -#EditItemContainer #PlaceAccess, -#EditItemContainer #PlaceCopyProtection, -#EditItemContainer #AllowGear, -#EditItemContainer #SetGenres, -#EditItemContainer #VersionHistory, -#EditItemContainer #PublicDomain, -#EditItemContainer #SellThisItem, -#EditItemContainer #PlaceReset, -#EditItemContainer #PlaceBuildAccess, -.MyItemOptions { - margin: 0 auto; - margin-top: 10px; - width: 420px; -} - -#EditItemContainer #SellThisItem #Pricing { - background-color: #fff; - border: dashed 1px #000; - margin: 15px 5px 5px 5px; - padding: 5px; -} - -#EditItemContainer #SellThisItem #Price { - margin-top: 10px; -} - -#EditItemContainer #SellThisItem #Price .TextBox { - padding: 2px 4px; - width: 75px; -} - -#EditItemContainer .CopyProtectionRow, -#EditItemContainer .EnableCommentsRow, -#EditItemContainer .PlaceAccessRow, -#EditItemContainer .PublicDomainRow, -#EditItemContainer .SellThisItemRow, -#EditItemContainer .ResetPlaceRow { - font-size: .9em; - margin: 10px 0; - text-align: center; -} - -#EditItemContainer .PlaceAccessRow { - margin: 10px 0 10px 100px; - text-align: left; -} - -#ConfigurePlaceContainer .ResetPlaceRow .Button { - margin: 0 auto; -} - -#EditItemContainer .PricingLabel { - float: left; - font-weight: bold; - margin-right: 5px; - text-align: right; - width: 155px; -} - -#EditItemContainer .PricingField_Robux { - float: left; - margin-left: 5px; - text-align: left; - width: 110px; -} - -#EditItemContainer .PricingField_Tickets { - float: left; - margin-left: 5px; - text-align: left; - width: 110px; -} - -#EditItemContainer .Buttons { - margin: 0 auto; - margin-top: 10px; - margin-bottom: 10px; - text-align: center; -} - -#EditItemContainer .Button { - border-color: #555; - color: #555; - cursor: pointer; -} - -#EditItemContainer .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -#EditItemContainer .Label { - font-size: 1.2em; - margin: 0; - padding: 0; -} - -#EditItemContainer .TextBox { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#EditItemContainer .Multiline { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#EditItemContainer .Suggestion { - font: normal .8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -#ItemContainer .Ads_WideSkyscraper, -#EditItemContainer .Ads_WideSkyscraper { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -.GroupBuildRunningGameItem { - border: solid 2px #50F; -} - -.MultiplayerVisit { - background: url(/images/Play.png); - width: 250px; - height: 48px; -} - -.SoloVisit { - background: url(/images/PlaySolo.png); - width: 143px; - height: 48px; -} - -.SoloVisitText { - display: none; -} - -.BuildSolo { - background: url(/images/BuildSolo2.png); - width: 143px; - height: 48px; -} - -.EditButton { - background: url(/images/EditMode2.png); - width: 143px; - height: 48px; -} - -.PlaceInfoIcons { - text-align: center; - margin: 1em 5px; -} - -.iPublic { - background: url(/images/public.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.iLocked { - background: url(/images/locked.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.iUnlocked { - background: url(/images/unlocked.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.SharedIcon { - background: url(/images/Shared.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.CopyLockedIcon { - background: url(/images/CopyLocked.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.AllGearIcon { - background: url(/images/Suitcase16x16.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.GenreGearIcon { - background: url(/images/GenreSuitcase16x16.png); - display: inline-block; - width: 16px; - height: 16px; -} - -.NoGearIcon { - background: url(/images/NoSuitcase16x16.png); - display: inline-block; - width: 16px; - height: 16px; -} - -#BadgeStatsHeader { - width: 388px; -} - -.item-header h1 { - margin: 0; - padding: 0; - font-size: 16px; - font-style: inherit; - display: inline; -} - -.section { - padding: 8px 0 0 0; -} - -.expires-div { - margin: 16px 0 8px 0; -} - -#timer { - color: Red; - margin: 8px 0; -} - -.item-detail div, -.creator-name { - line-height: 1.5em; -} - -#assetContainer, -#placeContainer { - float: left; - width: 420px; - overflow: hidden; -} - -.updateSetsDiv { - float: right; - width: 248px; - border: 2px dashed maroon; - margin-top: 5px; -} - -.newVersionMsg { - padding: 5px 0 5px 0; - text-align: center; - color: Yellow; - background-color: Maroon; - float: right; - width: 100%; -} - -#updateSetContainer { - padding: 5px; - float: right; - width: 100%; -} - -#updateSetContainer p { - cursor: pointer; - font-size: 12px; - float: right; - width: 100%; -} - -.resaleError { - padding: 5px; - background-color: #F00; -} - -.resaleConfirmation { - padding: 5px; - background-color: #0F0; -} - -.sellCollectibleMsg { - font-family: Verdana, Helvetica, sans-serif; - font-weight: bold; - font-size: 14px; -} - -.groupBuildingGameText { - font-size: 16px; - font-weight: bold; - font-style: italic; - line-height: 24px; -} - -#ProcessPurchase_Free, -#ProcessPurchase_Robux, -#ProcessPurchase_Tickets, -#ProcessRenew_Free, -#ProcessRenew_Robux, -#ProcessRenew_Tickets, -#ProcessROBLOXPurchase { - margin: 2.5em auto; - display: none; -} - -#Processing_Free, -#Processing_Robux, -#Processing_Tickets, -#Processing_FreeRenew, -#Processing_RobuxRenew, -#Processing_TicketsRenew, -.processingMsg { - margin: 0 auto; - text-align: center; - vertical-align: middle; -} - -.createSetPanelPopup { - width: 400px; - height: 100%; - padding: 0; - float: left; - display: none; -} - -.GetAFreeAccount:hover { - background-position: 0 56px; -} - -.GetAFreeAccount { - width: 316px; - height: 56px; - background: url(/images/Buttons/getAFreeAccount.png); -} - -.PlayAsGuest:hover { - background-position: 0 56px; -} - -.PlayAsGuest { - width: 316px; - height: 56px; - background: url(/images/Buttons/playAsGuest.png); -} - -.closeBtnCircle_35h:hover { - background-position: 0 35px; -} - -.closeBtnCircle_35h { - width: 35px; - height: 35px; - background: url(/images/Buttons/closeBtnCircle_35h.png); -} - -.fblike { - display: inline-block; - float: left; - background-color: White; -} - -.LinkCountContainer { - width: 200px; - margin: 0; - padding: 5px; -} - -.LinkStatusImage { - float: left; -} - -#ManageAccountButton img, -#CancelButtonImg, -#ChangeCreditCardInfoImg { - border: none; -} - -#ManageAccountButton { - text-align: center; -} - -#GoTurboPopupPanel, -#TurnOffTurboPopupPanel { - width: 550px; - text-align: center; -} - -#CurrentAccountUpgrades { - width: 90%; - margin: auto; - text-align: center; -} - -#CurrentAccountUpgrades table { - border-collapse: collapse; - margin-bottom: 15px; - text-align: center; - background-color: #d0d6e0; - width: 225px; - margin-left: auto; - margin-right: auto; -} - -#CurrentAccountUpgrades th { - border-bottom: solid 1px #999; - text-align: center; -} - -.rightCellWall { - border: 1px solid #999; -} - -.CancelBuildersClubMembership, -.ChangeCreditCardInfo { - text-align: center; - margin-top: 5px; -} - -#BCCompareModal { - background-color: White; - border: solid 2px #6e99c9; - margin: 5px; - padding: 10px; -} - -#BuyBCComparePanelTopInfo { - text-align: center; - padding: 10px 40px 10px 40px; - width: 340px; -} - -.BuyBCComparePanelTable { - font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; - font-size: 12px; - background: #fff; - width: 340px; - margin: 0 40px 0 40px; - border-collapse: collapse; - margin-bottom: 15px; -} - -.BCCompareHeaderRow { - color: #2163A5; - padding: 10px 8px; - border-bottom: 1px solid #D3D3D3; - text-align: left; -} - -.BuyBCComparePanelTable tr:hover td, -.BuyBCComparePanelTable tr:hover td { - color: Maroon; -} - -.BCCompareRowOdd td, -.BCCompareRowEven td { - color: #2163A5; - padding-top: 10px; - padding-left: 10px; - padding-bottom: 10px; -} - -.BCCompareRowOdd { - background: #e8edff; -} - -#BCCompareButtons { - text-align: center; - width: 340px; - margin: 0 40px 0 40px; -} - -#upgrades-membership-options .leftBorder { - border-left: 1px solid #D3D3D3; -} - -#upgrades-membership-options .odd #upgrades-membership-options .LeftText { - text-align: left; -} - -.daysConversion { - color: Red; -} - -.AspNet-Login input { - font-size: 1em; -} - -.AspNet-Login label em { - text-decoration: underline; - font-style: normal; -} - -.AspNet-Login .AspNet-Login-FailurePanel { - color: #F00; -} - -.AspNet-Login .AspNet-Login-UserPanel, -.AspNet-Login .AspNet-Login-PasswordPanel, -.AspNet-Login .AspNet-Login-RememberMePanel, -.AspNet-Login .AspNet-Login-SubmitPanel { - padding: .25em .1em 0 0; -} - -.AspNet-Login .AspNet-Login-UserPanel, -.AspNet-Login .AspNet-Login-PasswordPanel, -.AspNet-Login .AspNet-Login-SubmitPanel { - text-align: left; -} - -.AspNet-Login .AspNet-Login-UserPanel label, -.AspNet-Login .AspNet-Login-PasswordPanel label, -#PaneLogin .TextboxLabel { - font-weight: bold; -} - -.AspNet-Login .AspNet-Login-UserPanel input, -.AspNet-Login .AspNet-Login-PasswordPanel input { - width: 9em; -} - -#PaneNewUser { - float: right; - width: 170px; - background-color: #dcdcdc; - padding: 0 22px 22px; -} - -#PaneLogin { - width: 18em; - padding: 0; -} - -#PaneLogin .AspNet-Login div { - margin: 10px; -} - -#LoginView { - border: solid 1px Black; - width: 150px; - height: 250px; -} - -#LoginView h5 { - background-color: #ccc; - border-bottom: solid 1px #000; - margin: 0; -} - -#LoginView #AlreadySignedIn { - background-color: #eee; -} - -#LoginView .Label { - font-weight: bold; -} - -#LoginView .Text { - width: 133px; -} - -#LoginView .AspNet-Login { - height: 225px; - background-color: #eee; -} - -#LoginView .AspNet-Login .AspNet-Login-InstructionPanel, -#LoginView .AspNet-Login .AspNet-Login-HelpPanel, -#LoginView .AspNet-Login .AspNet-Login-UserPanel, -#LoginView .AspNet-Login .AspNet-Login-PasswordPanel, -#LoginView .AspNet-Login .AspNet-Login-RememberMePanel { - padding: 3px 5px 3px 5px; - text-align: left; -} - -#LoginView .AspNet-Login .AspNet-Login-SubmitPanel, -#LoginView .AspNet-Login .AspNet-Create-Account { - padding: 10px 5px 5px 10px; - text-align: center; -} - -#LoginView .AspNet-Login .AspNet-Login-PasswordRecoveryPanel { - padding: 5px 5px 5px 5px; - text-align: center; -} - -#LoginView .AspNet-Login .AspNet-Login-PasswordRecoveryPanel a { - color: #999; - font: normal 9px/normal Verdana, sans-serif; - padding: 5px 5px 5px 5px; - text-align: center; -} - -#LoginView .AspNet-Login .AspNet-Login-PasswordRecoveryPanel a:hover { - color: Blue; -} - -#Sidebars { - float: right; - width: 250px; -} - -#AlreadyRegistered, -#TermsAndConditions { - background-color: #eee; - border: solid 1px #000; - color: #555; - font: normal 12px/normal Verdana, sans-serif; - margin-top: 10px; - padding: 0 20px 10px 20px; -} - -#AlreadyRegistered h3, -#TermsAndConditions h3 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-weight: bold; - margin: 0 -20px 0 -20px; - padding: 4px; - text-align: center; -} - -#TermsAndConditions { - margin-top: 20px; -} - -.Registration { - background-color: #eee; - border: solid 1px #000; - color: #555; - float: left; - margin-top: 10px; - width: 620px; -} - -.Registration h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -.Registration h3 { - margin: 10px 0 0 0; - text-align: center; -} - -.Registration fieldset { - font-size: 1.2em; - margin: 15px 0 0 0; -} - -.Registration .TextBox { - vertical-align: middle; - width: 150px; -} - -.Registration .Label { - vertical-align: middle; -} - -.Registration #EnterUsername, -.Registration #EnterPassword, -.Registration #EnterEmail, -.Registration #EnterAgeGroup, -.Registration #EnterChatMode { - margin: 0 auto; - width: 60%; -} - -.Registration .UsernameRow, -.Registration .PasswordRow, -.Registration .ConfirmPasswordRow, -.Registration .EmailRow { - height: 5em; - line-height: 5em; - padding: 3px; - text-align: right; -} - -.Registration .PasswordRow, -.Registration .ConfirmPasswordRow { - height: 3em; - line-height: 3em; -} - -.Registration .AgeGroupRow, -.Registration .ChatModeRow { - font-size: .9em; - margin: 10px 0 10px 100px; -} - -.Registration .Confirm { - margin: 20px 0 20px 0; - text-align: center; -} - -.Registration .Validators { - margin-left: 9px; -} - -.Registration .Legend { - color: Blue; - margin-left: 9px; -} - -.Registration .Suggestion { - font: normal .8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -.Registration label { - margin-right: 5px; -} - -.Registration input { - width: 9em; -} - -.AgeOptions { - margin: 0 auto; - margin-top: 20px; - width: 490px; -} - -.AgeOptions #Under13, -.AgeOptions #Over12 { - margin: 0; - padding: 0 20px; - width: 200px; - text-align: center; -} - -.AgeOptions #ParentAccount { - margin: 0; - padding: 0 0 0 40px; - width: 400px; - text-align: center; -} - -#AgeOptions .Label { - text-align: center; -} - -.MessageContainer .MultilineTextBox { - min-height: 50px; -} - -.MessageContainer #AdsPane { - border: solid 1px #000; - float: left; - width: 160px; -} - -.MessageContainer #MessagePane { - float: left; - margin: 0 0 0 60px; - width: 650px; -} - -.MessageContainer h3 { - text-align: left; - width: 622px; -} - -.MessageContainer #MessagePane .Buttons { - width: 622px; -} - -.MessageContainer #MessagePane .Buttons .Button { - margin: 10px 0 0 10px; -} - -.MessageContainer .Label { - font-weight: bold; - padding: 6px 0 3px 0; -} - -.MessageContainer .MessageReaderContainer { - border: solid 1px #000; - padding: 10px; - width: 95%; -} - -.MessageReaderContainer #Message { - text-align: left; -} - -#Message #DateSent { - text-align: left; -} - -#Message #Author { - margin: 0; - text-align: left; -} - -#Message #Subject { - display: inline-block; - *display: inline; - font-weight: bold; - margin: 0; - text-align: center; - width: 350px; - *zoom: 1; -} - -#Message .Body { - text-align: left; - vertical-align: top; -} - -#MessageEditorContainer { - border: solid 1px #000; - padding: 10px; - width: 95%; -} - -.EmptyInbox { - text-align: center; - margin: 20px 0; -} - -.MessageEditor { - text-align: left; -} - -.MessageEditor #From { - text-align: left; - width: 39%; -} - -.MessageEditor #To { - margin: 5px 0 0 0; - text-align: left; - width: 39%; -} - -.MessageEditor .CannedResponsesPanel { - background-color: #eee; - border: solid 1px #000; - margin: 30px 0; - width: 200px; -} - -.MessageEditor .CannedResponsesPanel h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - font-size: 1.3em; - margin: 0; - text-align: center; - display: block; -} - -.MessageEditor #CannedResponses { - margin: 0; - padding: 5px 0; - width: 200px; -} - -.MessageEditor .CannedResponse { - margin: 0; - padding: 7px 5px; - text-align: center; - width: 190px; -} - -.MessageEditor #CannedResponses .Button { - padding: 3px 5px; -} - -.MessageEditor .Body { - text-align: left; - vertical-align: top; -} - -.MessageContainer #Confirmation h3 { - text-align: left; - width: 422px; -} - -.MessageContainer #Confirmation .Buttons { - width: 422px; -} - -.MessageContainer #Confirmation #Message { - border: solid 1px #000; - padding: 10px; - width: 95%; -} - -#InvitationContainer #AdsPane { - border: solid 1px #000; - float: left; - width: 160px; -} - -#InvitationContainer #InvitationPane { - float: left; - margin: 0 0 0 60px; - width: 650px; -} - -#InvitationContainer h3 { - text-align: left; - width: 622px; -} - -#InvitationContainer .Buttons { - width: 622px; -} - -#InvitationContainer .Button { - float: right; - font-family: Verdana, Sans-Serif; - padding: 3px 10px 3px 10px; - text-decoration: none; -} - -#InvitationContainer .TextBox { - border-color: Gray; - border-style: dashed; - padding: 5px; - width: 98%; -} - -#InvitationContainer .Label { - font-weight: bold; -} - -#InvitationContainer .MessageReaderContainer { - border-style: solid; - border-width: 1px; - border-color: #000; - padding: 10px; - width: 95%; -} - -.MessageReaderContainer #Message { - float: left; - text-align: left; -} - -#InvitationContainer #MessageEditorContainer .MessageEditor .CannedResponsesPanel { - display: none; -} - -#InvitationContainer #Confirmation h3 { - text-align: left; - width: 422px; -} - -#InvitationContainer #Confirmation .Buttons { - width: 422px; -} - -#InvitationContainer #Confirmation #Message { - border: solid 1px #000; - margin: 10px; - padding: 10px; - width: 95%; -} - -.ReportAbuse { - position: relative; - text-align: left; -} - -.ReportAbuse .AbuseButton a { - color: #F99; - background: none; - padding-left: 16px; - padding-bottom: 2px; -} - -.ReportAbuse .AbuseButton a:hover { - background: url("/images/css/abuse.png") no-repeat scroll 0 2px transparent; - color: #F00; -} - -.ReportAbuse img { - display: none; -} - -#ParentsContainer #BreadcrumbsContainer { - margin-bottom: 20px; -} - -#ParentsContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0 0 20px 0; -} - -#ParentsContainer #LeftColumn { - float: left; - padding: 0 15px 0 0; - width: 400px; -} - -#ParentsContainer #RightColumn { - float: right; - padding: 0 0 0 15px; - width: 400px; -} - -#ParentsContainer .ParentsSection { - background-color: #fff; - border: solid 1px #ccc; - height: 120px; - margin-bottom: 20px; - padding: 15px 15px; - width: 370px; -} - -#ParentsContainer h3, -dt { - color: Blue; - font-family: Verdana, Sans-Serif; - font-size: 1.3em; - font-weight: normal; - letter-spacing: .1em; - line-height: 1em; -} - -#ParentsContainer .SectionIcon { - float: left; - margin-right: 20px; -} - -#ParentsContainer .PageImage { - float: right; -} - -#partycontainer { - bottom: 110px; - right: 10px; -} - -.partyWindow { - color: #666; - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - width: 250px; -} - -.partyWindow .title { - background: transparent url('/images/friendsbar/tab_blue19h_l.gif') no-repeat left top; - display: block; - text-decoration: none; - padding-left: 2px; - height: 19px; - width: 248px; - cursor: pointer; -} - -.partyWindow .title span { - background: transparent url('/images/friendsbar/tab_blue19h_r.gif') no-repeat right top; - display: block; - height: 15px; - padding: 2px 15px 2px 7px; - text-decoration: none; - color: #fff; -} - -.partyWindow .title_flash { - background: transparent url('/images/friendsbar/tab_white19h_l2.gif') no-repeat left top; -} - -.partyWindow .title_flash span { - background: transparent url('/images/friendsbar/tab_white19h_r2.gif') no-repeat right top; - color: #444; -} - -.partyWindow .title strong { - display: block; - padding: 2px 15px 4px 6px; - background: url("/images/chat/tab_blue21h_r.png") no-repeat right top; - color: #fff; - width: 227px; - font-weight: bold; -} - -.partyWindow .closeparty { - width: 10px; - height: 9px; - margin: 5px 9px 0 0; - cursor: pointer; - position: absolute; - right: 0; - top: 0; - color: #fff; - font-weight: bold; - font-size: 14px; -} - -.partyWindow .main { - clear: both; - width: 248px; - height: auto; - margin: 0; - background: #f2f2f2; - border: 1px solid #a6a6a6; - border-top: 0 none; - overflow: auto; -} - -.partyWindow .kickuser { - float: right; - padding-right: 5px; - color: Red; - cursor: pointer; -} - -#new_party p { - text-align: center; - padding: 40px 0 0 0; -} - -#party_none .main .btn_green21h { - margin: 15px 0 0 77px; -} - -.clear { - clear: both; -} - -.main #new_party_clear { - padding: 40px 0 0 0; -} - -.btn_green21h { - float: left; - background: url("/images/chat/btn_green21h_l.png") no-repeat left top; - padding: 0 0 0 2px; -} - -.btn_green21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_green21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_green21h:hover { - background: url("/images/chat/btn_green21h_over_l.png") no-repeat left top; -} - -.btn_green21h:hover a { - background: url("/images/chat/btn_green21h_over_r.png") no-repeat right top; -} - -.btn_red21h { - float: left; - background: url("/images/chat/btn_red21h_l.png") no-repeat left top; - padding: 0 0 0 2px; -} - -.btn_red21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_red21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_red21h:hover { - background: url("/images/chat/btn_red21h_over_l.png") no-repeat left top; -} - -.btn_red21h:hover a { - background: url("/images/chat/btn_red21h_over_r.png") no-repeat right top; -} - -.btn_black21h { - float: left; - background: url("/images/chat/btn_black21h_l.png") no-repeat left top; - padding: 0 0 0 2px; - color: White; -} - -.btn_black21h a { - display: block; - padding: 2px 14px 4px 10px; - background: url("/images/chat/btn_black21h_r.png") no-repeat right top; - color: #FFF; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} - -.btn_black21h:hover { - background: url("/images/chat/btn_black21h_over_l.png") no-repeat left top; -} - -.btn_black21h:hover a { - background: url("/images/chat/btn_black21h_over_r.png") no-repeat right top; -} - -.main h1 { - padding: 15px 20px 15px 20px; - font-size: 130%; - text-align: center; -} - -.main #invite_status { - padding: 10px 0 10px 0; -} - -.main p { - padding: 0 0 7px 0; -} - -.main .btn_green21h { - float: left; - margin: 0 0 0 35px; -} - -.main .btn_black21h { - float: right; - margin: 0 35px 0 0; -} - -.main #invite_clear { - padding: 15px 0 0 0; -} - -dt { - float: left; -} - -dd { - margin-left: 30px; -} - -.grey9 { - color: gray; - font-size: 9px; -} - -.status { - color: gray; - font-size: 11px; -} - -.name_me { - font-weight: bold; - color: #06c; -} - -.name_other { - font-weight: bold; - color: #007b00; -} - -.name_status { - font-weight: bold; -} - -.partyWindow { - color: black; - font-size: 11px; - height: auto; -} - -.members dl { - padding: 0 0 0 5px; -} - -.members dt { - padding: 4px 0 0 0; -} - -.members dd { - padding: 4px 0 1px 0; -} - -.main p { - padding: 10px 0 5px 0; - text-align: center; -} - -#chat_messages { - padding: 0 3px 3px 3px; - margin: 5px 5px 0 5px; - height: 217px; - overflow: auto; - background-color: white; - border-style: solid; - border-width: 1px; - border-color: #aaa; -} - -#chat_messages li { - padding: 6px 0 0 0; - list-style-type: none; -} - -#party_game_thumb { - width: 75px; - margin-right: 5px; - float: left; -} - -#party_current_game { - margin: 5px; -} - -#party_game_name { - width: 140px; - float: left; -} - -#party_game_follow_me { - margin-top: 5px; -} - -#chat_input { - margin: 5px 5px 0 5px; - padding-right: 2px; -} - -#chat_input input { - border: 1px solid #ccc; - width: 236px; - height: 40px; -} - -#chat_input textarea { - border: 1px solid #aaa; - overflow: auto; - width: 100%; - height: 50px; -} - -.main #leader_clear { - padding: 15px 0 0 0; -} - -#party_my .main .btn_black21h { - margin: 15px 70px 0 0; -} - -.GuestPlayAvatarImage { - border: solid 3px green; -} - -.GuestPlayAvatarImage:Hover { - border: solid 3px #0C0; -} - -#ConfigurePlaceContainer { - background-color: #eee; - border: solid 1px #000; - color: #555; - margin: 0 auto; - width: 620px; -} - -#ConfigurePlaceContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -#ConfigurePlaceContainer fieldset { - font-size: 1.2em; - margin: 0; -} - -#ConfigurePlaceContainer #PlaceName { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#ConfigurePlaceContainer #PlaceThumbnail { - border: solid 1px #555; - height: 230px; - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#ConfigurePlaceContainer #PlaceDescription { - margin: 0 auto; - margin-top: 10px; - padding: 0; - text-align: left; - width: 420px; -} - -#ConfigurePlaceContainer #PlaceAccess, -#ConfigurePlaceContainer #PlaceCopyProtection, -#ConfigurePlaceContainer #Comments, -#ConfigurePlaceContainer #PlaceIsDefault, -#ConfigurePlaceContainer #PlaceReset, -#ConfigurePlaceContainer #AllowGear, -#ConfigurePlaceContainer #SetGenres, -#ConfigurePlaceContainer #PlaceBuildAccess { - margin: 0 auto; - margin-top: 10px; - width: 420px; -} - -#ConfigurePlaceContainer .PlaceAccessRow, -#ConfigurePlaceContainer .CopyProtectionRow, -#ConfigurePlaceContainer .EnableCommentsRow, -#ConfigurePlaceContainer .PlaceIsDefaultRow, -.MyItemIndentedOption { - font-size: .9em; - margin: 10px 0 10px 100px; -} - -#ConfigurePlaceContainer .ResetPlaceRow { - font-size: .9em; - margin: 10px 0; - text-align: center; -} - -#ConfigurePlaceContainer .ResetPlaceRow .Button { - margin: 0 auto; -} - -#ConfigurePlaceContainer .Buttons { - margin: 0 auto; - margin-top: 10px; - margin-bottom: 10px; - text-align: center; -} - -#ConfigurePlaceContainer .Button { - border-color: #555; - color: #555; - cursor: pointer; -} - -#ConfigurePlaceContainer .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -#ConfigurePlaceContainer .Label { - font-size: 1.2em; - margin: 0; - padding: 0; -} - -#ConfigurePlaceContainer .TextBox { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#ConfigurePlaceContainer .MultilineTextBox { - border: dashed 1px #555; - margin: 0; - padding: 5px 10px; - width: 400px; -} - -#ConfigurePlaceContainer .Suggestion { - font: normal .8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -#ConfigurePlaceContainer .popupControl { - border-color: #000; -} - -#ConfigurePlaceContainer .PopUpOption { - font: normal .8em/normal Verdana, sans-serif; - padding: 4px; -} - -#ConfigurePlaceContainer .PopUpInstruction { - font: normal 1.1em/normal Verdana, sans-serif; - padding: 4px; - text-align: center; -} - -#Place_PlacePanel { - float: left; - width: 490px; - margin-right: 10px; -} - -#Place_AuthorPanel { - float: left; - width: 200px; -} - -#Place_GamesPanel { - margin-top: 10px; - width: 700px; - clear: left; -} - -#ConfigureShowcase { - font-family: Verdana, sans-serif; -} - -#ConfigureShowcase h2 { - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#ConfigureShowcase .CallbackStyle { - border: thin blue inset; -} - -#ConfigureShowcase .DragHandle { - width: 161px; - height: 101px; - cursor: move; - border: outset 1px white; -} - -#ConfigureShowcase .ItemArea { - float: left; - font-size: 1.2em; - height: 82px; - padding: 10px; - text-align: left; - width: 500px; -} - -#ConfigureShowcase .ActionsArea { - float: left; - font-weight: bold; - height: 82px; - padding: 10px; - text-align: right; - width: 155px; -} - -#ConfigureShowcase .ReorderCue { - border: dashed thin black; - width: 100%; - height: 101px; -} - -#ConfigureShowcase ul, -#ConfigureShowcase ol { - margin: 0; -} - -#ConfigureShowcase li { - background: #EEE; - border: solid 1px #000; - color: #000; - list-style: none; - margin: 3px 0; - width: 100%; -} - -#ConfigureShowcase blockquote li { - border-style: none; - list-style-type: circle; - margin-left: 20px; -} - -.PlaceLauncherStatus { - color: #333; - display: none; - font-size: 16px; - font-weight: bolder; - line-height: 19px; -} - -.PlaceLauncherStatusBackBuffer { - position: relative; - display: none; -} - -.CancelPlaceLauncherButton { - background-color: White; - border: none; - color: Blue; - cursor: pointer; - font-size: 12px; -} - -.CancelPlaceLauncherButton:Hover, -.CancelPlaceLauncherButton:Active { - background-color: White; - border: none; - color: Blue; - cursor: pointer; - text-decoration: underline; -} - -.PlaceLauncherModal { - border: none; - color: Black; - height: 125px; - margin: 1.5em; - padding: 10px; - text-align: center; - width: 360px; -} - -#FeaturedGameButtonContainer { - border: none; - width: 330px; - height: 267px; -} - -.FeaturedGameButton { - cursor: pointer; - position: absolute; - right: 60px; - top: 28px; -} - -.VisitButtonsGuestCharacter { - display: inline-block; - *display: inline; - padding: 10px 5px; -} - -legend span { - color: #777; - line-height: 6px; -} - -#EditProfileContainer { - background-color: #eee; - border: solid 1px #000; - color: #555; - margin: 0 auto; - width: 620px; -} - -#EditProfileContainer h2 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-size: x-large; - margin: 0; - text-align: center; -} - -#EditProfileContainer h3 { - text-align: center; -} - -#EditProfileContainer fieldset { - font-size: 1.2em; - margin: 15px 0 0 0; -} - -#EditProfileContainer .MultilineTextBox { - width: 250px; -} - -#EditProfileContainer .TextBox { - vertical-align: middle; - width: 150px; -} - -#EditProfileContainer .Label { - vertical-align: middle; -} - -#EditProfileContainer #Confirmation { - border: dashed 1px #f00; - background-color: #ccc; - color: #f00; - font-family: Verdana, Sans-Serif; - margin: 0 auto; - margin-top: 10px; - padding: 10px 5px; - text-align: center; - width: 410px; -} - -#EditProfileContainer #AgeGroup, -#EditProfileContainer #ChatMode, -#EditProfileContainer #PrivacyMode, -#EditProfileContainer #ResetPassword, -#EditProfileContainer #Blurb { - margin: 0 auto; - width: 60%; -} - -#EditProfileContainer #EnterEmail { - margin: 0 auto; - width: 60%; - text-align: left; -} - -#EditProfileContainer .Buttons { - margin: 20px 0 20px 0; - text-align: center; -} - -#EditProfileContainer .AgeGroupRow, -#EditProfileContainer .ChatModeRow { - font-size: .9em; - margin: 10px 0 10px 100px; -} - -#EditProfileContainer .ResetPasswordRow { - margin: 10px 0; - text-align: center; -} - -#EditProfileContainer .BlurbRow { - padding: 10px 4px 10px 4px; - text-align: right; -} - -#EditProfileContainer .Legend { - color: Blue; - margin-left: 9px; -} - -#EditProfileContainer .Suggestion { - font: normal .8em/normal Verdana, sans-serif; - padding-left: 9px; -} - -#EditProfileContainer .Validators { - margin-left: 9px; -} - -.FrontPagePanel { - float: left; - border: solid 1px black; - margin: 5px; - background-color: White; -} - -#SignInPane { - border: none; - margin-left: 0; - width: 152px; - height: 250px; -} - -#Movie { - width: 424px; - height: 250px; -} - -#FrontPageRectangleAd { - margin: 5px 0 5px 5px; - width: 300px; - height: 250px; - background-color: Transparent; -} - -#SalesPitch { - margin-left: 0; - width: 586px; - height: 90px; -} - -#WhatsNew { - margin-left: 0; - width: 586px; - height: 280px; -} - -#RandomFacts { - float: right; - margin-right: 0; - width: 300px; - height: 150px; -} - -.RandomFactoid { - text-align: center; - height: 32px; - width: 290px; - padding: 2px; - overflow: hidden; -} - -#marqueecontainer { - position: relative; - width: 300px; - height: 100px; - background-color: white; - overflow: hidden; -} - -.RandomFactoid img { - float: left; -} - -#ParentsCorner { - margin-right: 0; - width: 300px; - height: 220px; - _height: 240px; -} - -#ParentsCorner #Inside { - padding: 10px; -} - -.ShieldImage { - float: left; - padding: 5px; -} - -.TrusteeSeal { - float: left; - width: 140px; - padding: 5px; -} - -#NewsFeeder { - margin-right: 0; - width: 158px; -} - -#FrontPageBannerAd { - margin-left: 0; - width: 728px; - height: 90px; - background-color: Transparent; -} - -.BadAdButton { - background-color: Transparent; - border: 0; - font-size: .8em; - font-family: Verdana; - padding: 0; - position: relative; - text-align: center; - height: 8px; - top: -2px; - right: 0; -} - -.BadAdButton:hover { - background-color: #fff; - border: solid 1px #000; - text-decoration: none; -} - -.Centered { - margin-left: auto; - margin-right: auto; -} - -.ShadowedStandardBox { - position: relative; - z-index: 0; - _padding-bottom: 6px; - _overflow-y: hidden; - margin-bottom: 10px; -} - -.ShadowedStandardBox .Header { - background: url(/images/HeaderGradientW800.png) repeat-y top left; - text-align: center; - color: White; - height: 20px; - line-height: 20px; - font-size: 15px; - font-weight: bold; - display: block; - position: relative; - z-index: 0; - white-space: nowrap; -} - -.ShadowedStandardBox .Content { - position: relative; - z-index: 0; - border: 2px solid #6e99c9; - background-color: White; - height: 100%; - _height: 3000px; - padding: 10px 10px 10px 10px; -} - -.Shadow { - display: block; - background: url(/images/ShadowAlpha.png) no-repeat bottom right!important; - background: #D3DEFF; - height: 100%; - _height: 3000px; - width: 100%; - position: absolute; - top: 6px; - left: 6px; - z-index: -1; -} - -.ShadowedStandardBox .Button { - cursor: pointer; - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; - border: solid 1px #ccc; - padding: 3px 10px 3px 10px; - font-family: Verdana; - font-size: 10px; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.ShadowedStandardBox .Button:link, -.ShadowedStandardBox .Button:visited { - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; -} - -.ShadowedStandardBox .Button:hover, -.ShadowedStandardBox .Button:active { - background-color: #5F84A8; - color: White; - text-decoration: none; -} - -.OutlineBox { - z-index: 0; - position: relative; - margin-top: 16px; - padding-top: 14px; - margin-bottom: 10px; - border: solid 2px #B6CCE4; -} - -.OutlineBox .OB_HeaderPositioner { - z-index: 1; - position: absolute; - top: -16px; - left: 0; - width: 100%; -} - -.OutlineBox .OB_Header { - z-index: 1; - display: block; - width: 90%; - margin-left: auto; - margin-right: auto; - background-color: White; - border: solid 2px #B6CCE4; - text-align: center; - font-size: 18px; - font-weight: bold; - padding: 2px 2px 2px 2px; -} - -.OutlineBox .OB_Content { - padding-top: 5px; -} - -#InviteAFriendContainer { - margin-top: 10px; -} - -#InviteAFriendContainer h3 { - margin: 0 auto; - padding: 0 0 10px 0; - text-align: left; - width: 700px; -} - -#InviteAFriendContainer #Exposition { - margin: 0 auto; - padding: 0 0 10px 0; - width: 700px; -} - -#InviteAFriendContainer .Button { - border: solid 1px #000; - color: #000; - font-family: Verdana, Sans-Serif; - margin: 0 0 0 10px; - padding: 3px 10px 3px 10px; - text-decoration: none; -} - -#InviteAFriendContainer .MultilineTextBox { - border: 2px solid #CCC; - font-family: Arial, Sans-Serif; - line-height: 1.5em; - padding: 5px 5px 5px 5px; - width: 92%; -} - -#InviteAFriendContainer .TextBox { - border: 2px solid #CCC; - font-family: Arial, Sans-Serif; - padding: 5px 5px 5px 5px; - width: 92%; -} - -#InviteAFriendContainer .Label { - font-weight: bold; -} - -#InviteAFriendContainer #InvitationElements { - margin: 0 auto; - padding: 5px 5px 5px 5px; - width: 688px; -} - -#InviteAFriendContainer #Name, -#InviteAFriendContainer #Recipients, -#InviteAFriendContainer #Message { - margin: 15px 0 0 0; -} - -#InviteAFriendContainer .FormLabel { - float: left; - width: 94px; -} - -#InviteAFriendContainer .FormField { - float: left; - width: 317px; -} - -#InviteAFriendContainer .FormNotes { - float: right; - font-family: Verdana; - font-size: xx-small; - width: 277px; - text-align: left; -} - -#InviteAFriendContainer #Confirmation h3 { - margin: 0 auto; - text-align: left; - width: 400px; -} - -#InviteAFriendContainer #Confirmation #Message { - border: solid 1px #000; - margin: 0 auto; - padding: 10px 10px 10px 10px; - width: 380px; -} - -#InviteAFriendContainer #Confirmation .Buttons { - margin: 0 auto; - width: 400px; -} - -#ShareRobloxRibbon { - margin: 15px 0; - padding: 3px; - text-align: center; -} - -#ShareRobloxRibbon a { - text-decoration: none; - color: #000; -} - -.ShareRobloxButton { - padding: 4px; - margin: 4px 6px; - border: 3px solid #B2C1D2; - background: #A5D0FF; - color: #000; - cursor: pointer; - font-size: 16px; -} - -.ShareRobloxButtonCurrent { - padding: 4px; - margin: 4px 6px; - border: 3px solid #B2C1D2; - background: #527396; - color: #FFF; - cursor: pointer; - font-size: 16px; - text-decoration: none; -} - -.ShareRobloxButton:hover { - background: #527396; - color: #FFF; -} - -.clearing { - clear: both; -} - -#PleaseUpgradeMeContainer { - margin-top: 10px; -} - -#StoreContainer { - font-family: Verdana, Sans-Serif; -} - -#StoreContainer h2 { - font-family: Verdana, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - letter-spacing: .5em; - line-height: 1em; - margin: 0; - padding: 0; -} - -#StoreContainer h3 { - font-family: Verdana, Sans-Serif; - font-size: 1.5em; - font-weight: normal; - letter-spacing: .1em; - line-height: 1em; - margin: 5px 0; - padding: 0; -} - -#StoreContainer ul { - list-style: none; - margin: 10px 0 30px 0; -} - -#StoreContainer ul li { - margin-bottom: .5em; -} - -#StoreContainer ul a { - font-size: 1.1em; -} - -#StoreContainer .DisplayFilters { - width: 150px; -} - -#StoreContainer #Products { - float: left; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - width: 585px; -} - -#StoreContainer #Products #HeaderPager, -#StoreContainer #Products #FooterPager { - margin: 0 24px 0 10px; - padding: 2px 0; - text-align: right; -} - -#StoreContainer #Products #HeaderPager { - margin-bottom: 10px; -} - -#StoreContainer #Products #HeaderPager .Label, -#StoreContainer #Products #FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#StoreContainer #Products #AdditionalPlace { - margin: 0 auto; - width: 420px; -} - -#StoreContainer #AdsPane { - border: solid 1px #000; - float: right; - text-align: right; - width: 160px; -} - -#StoreContainer .Label, -#StoreContainer .Detail, -#StoreContainer .DetailHighlighted { - font-size: .8em; -} - -#StoreContainer .DetailHighlighted { - color: Red; - font-weight: bold; -} - -#StoreContainer .Thumbnail { - border: solid 1px #000; - height: 230px; - width: 420px; -} - -#StoreContainer .Price { - font-weight: bold; - margin: 5px 0; -} - -#StoreContainer .InsufficientFunds { - color: Red; -} - -.tipsy { - padding: 5px; - font-size: 10px; - opacity: .8; - filter: alpha(opacity=80); - background-repeat: no-repeat; - background-image: url(/images/css/tipsy.gif); -} - -.tipsy-inner { - padding: 5px 8px 4px 8px; - background-color: black; - color: white; - max-width: 200px; - text-align: center; -} - -.tipsy-inner { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; -} - -.tipsy-north { - background-position: top center; -} - -.tipsy-south { - background-position: bottom center; -} - -.tipsy-east { - background-position: right center; -} - -.tipsy-west { - background-position: left center; -} - -#CancelBuildersClubContainer, -#PaymentMethodsContainer, -#PaymentContainer, -#PayPalContainer, -#CashContainer { - background-color: #fff; - font-family: Arial, Sans-Serif; - margin: 0 auto; - padding: 20px 80px; -} - -#UpgradeCompleteContainer, -#CancelAccountUpgradeContainer, -#ManageAccountUpgradesContainer, -#AccountUpgradesConfirmationContainer { - background-color: #fff; - font-family: Arial, Sans-Serif; - margin: 0 auto; -} - -#AccountUpgradesConfirmationContainer, -#CancelAccountUpgradeContainer { - border: solid 2px #6e99c9; - padding: 10px 10px 20px 10px; -} - -#CancelBuildersClubContainer h2, -#PaymentMethodsContainer h2, -#PaymentContainer h2, -#PayPalContainer h2, -#CashContainer h2, -#UpgradeCompleteContainer h2, -#ManageAccountUpgradesContainer h2, -#CancelAccountUpgradeContainer h2, -#AccountUpgradesConfirmationContainer h2 { - font-family: Arial, Sans-Serif; - font-size: 2.5em; - font-weight: normal; - line-height: 1em; - margin: 0; - padding: 0; -} - -#UpgradeCompleteContainer h2, -#CancelAccountUpgradeContainer h2, -#ManageAccountUpgradesContainer h2, -#AccountUpgradesConfirmationContainer h2 { - font-size: 2em; - letter-spacing: .1em; - line-height: 1.5em; - margin: 0 auto; - margin-top: 10px; - width: 600px; -} - -#UpgradeCompleteContainer p, -#ManageAccountUpgradesContainer p, -#AccountUpgradesConfirmationContainer p { - line-height: 1.6em; -} - -#RobloxCentralBank { - border-bottom: solid 1px #000; -} - -#MembershipOptions .Label, -#SpecialMembershipOption .Label { - text-align: center; -} - -#WhyJoin { - display: inline; - float: left; - margin: 30px 10px 20px 90px; - padding: 0; - width: 375px; -} - -#WhyJoin h3 { - font-size: 15pt; - font-weight: normal; - letter-spacing: .2em; - margin: 0 0 15px 0; - padding: 0; -} - -#WhyJoin #MembershipBenefits { - list-style: none; - margin: 0; - padding: 0; -} - -#WhyJoin #MembershipBenefits li { - background-position: 0 0; - background-repeat: no-repeat; - font-family: Arial, Sans-Serif; - font-size: 11pt; - margin: 0 0 10px 10px; - min-height: 32px; - padding: 0 0 0 40px; -} - -#WhyJoin .MembershipBenefits { - list-style: none; - margin: 0; - padding: 0; -} - -#WhyJoin .MembershipBenefits li { - background-position: 0 0; - background-repeat: no-repeat; - font-family: Arial, Sans-Serif; - font-size: 11pt; - margin: 0 0 10px 10px; - min-height: 32px; - padding: 0 0 0 40px; -} - -#WhyJoin .MembershipBenefits .Benefit_MultiplePlaces { - background-image: url(/images/MultiplePlacesBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_RobuxAllowance { - background-image: url(/images/AllowanceBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_SellContent { - background-image: url(/images/SellBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_SuppressAds { - background-image: url(/images/AdSuppressionBullet.png); -} - -#WhyJoin .MembershipBenefits .Benefit_ExclusiveHat { - background-image: url(/images/HardHatBullet.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_OwnPlace { - background-image: url(/images/JoinBulletHouse.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_GetTix { - background-image: url(/images/JoinBulletTreasure.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_BuyStuff { - background-image: url(/images/JoinBulletShoppingBag.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_CustomizeGuy { - background-image: url(/images/JoinBulletWizardHat.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Username { - background-image: url(/images/JoinBulletStar.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Forums { - background-image: url(/images/JoinBulletScript.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Stats { - background-image: url(/images/JoinBulletStats.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Comments { - background-image: url(/images/JoinBulletPencil.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Badges { - background-image: url(/images/JoinBulletBadges.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_Friends { - background-image: url(/images/JoinBulletFriends.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_WeRock { - background-image: url(/images/JoinBulletCreative.png); -} - -#WhyJoin #MembershipBenefits #SignupBenefit_OhYeahItsFree { - background-image: url(/images/JoinBulletHappy.png); -} - -#SpecialMembershipOption { - display: inline; - float: right; - margin: 30px 69px 0 10px; - padding: 0; - width: 254px; -} - -#PaymentMethodsContainer .PaymentMethods { - border: none; - margin: 20px auto; - padding: 10px; - width: 600px; -} - -#PaymentMethodsHeader { - margin: 0 auto; - padding-left: 60px; - width: 600px; -} - -.PaymentMethodRow { - font-family: Arial, Helvetica, Sans-Serif; - background-color: transparent; - color: #090; -} - -.PaymentMethodRow:hover { - background-color: #f2f2f2; - cursor: pointer; - color: #00d900; -} - -.PaymentMethodRowUnavailable a { - color: #090; -} - -.PaymentMethodRow td, -.PaymentMethodRowUnavailable td { - border: none; - padding: 20px; -} - -#PaymentMethodsContainer .PaymentMethodName { - color: #333; - font-weight: bold; - font-size: medium; -} - -#Legend { - margin-top: 10px; -} - -#CurrentBalance { - color: #333; -} - -#PaymentContainer #Account, -#PaymentContainer #BillingInfo, -#PaymentContainer #ProductAndPricing, -#PaymentContainer #ProductAndPricing1, -#PaymentContainer #CreditCard, -#PayPalContainer #ConfirmDetails, -#CashContainer #ConfirmDetails, -#PayPalContainer #Notes, -#CashContainer #Notes { - margin-bottom: 20px; -} - -#PaymentContainer #Pay, -#PayPalContainer #Continue { - margin: 0 auto; - text-align: center; -} - -.PaymentDropDownList { - padding: 5px; - width: 95%; -} - -#PaymentContainer .Label, -#PayPalContainer .Label, -#CashContainer .Label { - float: left; - font-size: 1.25em; - height: 40px; - line-height: 40px; - padding: 0 10px; - vertical-align: middle; - width: 250px; -} - -#ConfirmDetails .Detail { - background-color: #EEE; - border-bottom: solid 1px #CCC; - border-top: solid 1px #CCC; - height: 40px; - line-height: 40px; -} - -#PaymentContainer .Field, -#PayPalContainer .Field, -#CashContainer .Field { - float: left; - height: 40px; - line-height: 40px; - padding: 0 10px; - vertical-align: middle; - width: 400px; -} - -#PaymentContainer .Button, -#PayPalContainer .Button { - font-size: 16px; - margin: 0 3px; -} - -#PaymentMethodsContainer .ExistingSubscription { - font-size: 16px; - color: Blue; - width: 50%; - text-align: center; -} - -#PayPalContainer .PayPalDisallowedMessage { - font-size: 16px; - padding-bottom: 12px; - color: Blue; - width: 90%; -} - -#ProductAndPricing, -#ProductAndPricing1 { - float: left; - width: 865px; -} - -#ProductAndPricing .TotalRowName, -#ProductAndPricing .TotalRowPrice { - font-size: 14px; - font-weight: bold; - padding-top: 10px; -} - -.TotalRowName, -.TotalRowPrice, -.ProductName, -.SuperchargeProductName, -.ProductPrice, -.SuperchargeProductPrice { - float: left; - font-weight: bold; -} - -.ProductName, -.TotalRowName, -.SuperchargeProductName { - width: 600px; -} - -.ProductPrice, -.TotalRowPrice, -.SuperchargeProductPrice { - width: 200px; -} - -.SuperchargeProductName, -.SuperchargeProductPrice { - color: #E6B800; -} - -#PaymentDetails #Account .Field, -#PaymentDetails #ProductAndPricing .Field, -#PayPalContainer #ConfirmDetails .Field, -#CashContainer #ConfirmDetails .Field { - font-size: 1.25em; - font-weight: bold; -} - -#PaymentDetailsTable { - width: 400px; -} - -#UpgradeCompleteContainer #Message, -#CancelAccountUpgradeContainer #Message, -#ManageAccountUpgradesContainer #CurrentAccountUpgrades, -#AccountUpgradesConfirmationContainer #Message { - background-color: #eee; - border: solid 1px #ccc; - margin: 0 auto; - margin-top: 15px; - padding: 10px; - width: 580px; -} - -#ManageAccountUpgradesContainer #CurrentAccountUpgrades { - margin-top: 25px; - font-family: Arial, Helvetica, Sans-Serif; -} - -.ExtensionNote { - margin: 10px 0; -} - -.UpgradeStatus { - font-weight: bold; - margin: 20px; - text-align: center; -} - -#BuildersClubContainer { - font-family: Arial, Sans-Serif; - margin: 0 auto; - width: 900px; -} - -#BuildersClubContainer #LeftColumn { - background-color: #fff; - width: 575px; - float: left; - margin-top: 10px; -} - -#BuildersClubContainer #LeftColumn #MembershipOptions { - margin-bottom: 50px; - padding: 10px 10px 0 10px; -} - -#BuildersClubContainer #LeftColumn #MembershipOptions .MembershipButton { - margin: 0 4px 0 4px; - float: left; - width: 130px; -} - -#BuildersClubContainer #LeftColumn #MembershipOptions .BCButtonLabel { - color: #6e99c9; - margin-top: 4px; - text-align: center; -} - -#BuildersClubContainer #LeftColumn h1 { - font-size: 20px; - color: #6e99c9; - font-style: italic; - font-weight: bold; -} - -#MembershipOptionsTable { - width: 500px; - margin: auto; -} - -#MembershipOptionsTable tr { - text-align: center; -} - -#MembershipOptionsTable td { - width: 100px; - margin: 38px; -} - -#MembershipOptionsTable td .BCButton { - padding-left: 35px; - padding-right: 0; -} - -#MembershipOptionsTable .BCText { - padding-right: 20px; - width: 150px; - text-align: left; -} - -.TurboSpan { - color: #72942E; -} - -#upgrades-membership-options { - font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif; - font-size: 13px; - background: #fff; - padding-top: 10px; - clear: left; - width: 100%; - border-collapse: collapse; - text-align: center; -} - -#upgrades-membership-options th { - font-size: 15px; - font-weight: normal; - color: #2163A5; - padding: 5px 8px; - border-bottom: 1px solid #D3D3D3; - line-height: 32px; -} - -#upgrades-membership-options th img { - float: left; -} - -#upgrades-membership-options td { - color: #2163A5; - padding: 5px 10px; -} - -#upgrades-membership-options tbody tr:hover td { - color: Maroon; -} - -#upgrades-membership-options .leftBorder { - border-left: 1px solid #D3D3D3; - width: 150px; -} - -#upgrades-membership-options .odd { - background: #e8edff; -} - -#upgrades-membership-options .LeftText { - text-align: left; -} - -#BuildersClubContainer #LeftColumn #WindowsOnlyWarning { - padding-left: 10px; - padding-bottom: 1px; -} - -#BuildersClubContainer #RightColumn { - margin: 10px 0 10px 5px; - width: 290px; - float: right; -} - -.RightColumnBox, -#UpgradeCompleteContainer { - border: 2px solid #6e99c9; - margin-bottom: 20px; - padding: 10px; - background-color: #fff; -} - -.RightColumnBox a { - text-decoration: underline; -} - -.RightColumnBox h2 { - float: left; - font-size: 14px; - color: Maroon; -} - -.RightColumnBox h3 { - text-align: left; - font-size: 11px; - clear: both; -} - -.RightColumnBox h1 { - float: left; - font-size: 16px; - color: Maroon; - padding-left: 10px; - font-weight: bold; -} - -.RightColumnManageAccount { - border-left: 2px solid #6e99c9; - border-bottom: 2px solid #6e99c9; - border-right: 2px solid #6e99c9; - background-color: #fff; - margin-bottom: 20px; -} - -#CancelMembership { - padding-top: 10px; - padding-bottom: 10px; - text-align: center; -} - -#RightColumn #ManageAccountBody { - padding: 10px; -} - -#RightColumn #ManageAccount #CancelMembershipButton, -#RedirectToLoginLink { - text-align: center; -} - -.OBCSellButton { - border: 0; - cursor: pointer; - top: 218px; - position: absolute; -} - -.BuyRobuxBtn { - display: inline-block; - width: 205px; - height: 44px; - background: url(/images/buildersClubPage_buyRobux_44px.png) no-repeat; -} - -.BuyRobuxBtn:hover { - background-position: 0 -44px; - cursor: pointer; -} - -.cardPanelLeft { - margin-left: 12px; - margin-top: 25px; - float: left; -} - -.cardPanelRight { - margin-right: 12px; - margin-top: 10px; - float: right; -} - -.centeredImage { - margin-bottom: 10px; -} - -#GameCardButtonContainer { - clear: both; - margin: 15px 0; -} - -.WhereToBuyTableCell, -WhereToBuyTableCellRight { - width: 320px; - padding: 10px 0; -} - -.WhereToBuyTableCellRight { - text-align: left; -} - -.AwardAssetDisplayList { - display: inline-block; - *display: inline; - *zoom: 1; - vertical-align: top; - width: 100px; - height: 100px; -} - -.PaymentTextBox { - padding: 5px; - width: 90%; -} - -.PaymentLabel { - width: 120px; - font-weight: bold; -} - -.PaymentPadding { - padding: 5px; -} - -.AutoRecurText { - color: Red; - display: none; -} - -#post-image-main, -#upload-video-main { - font-size: 16pt; - font-weight: bold; - text-align: center; -} - -#post-image-main a, -#post-image-main a:hover, -#upload-video-main a, -#upload-video-main a:hover { - text-decoration: none; -} - -#post-image-ul, -#upload-video-ul { - text-align: left; - font-weight: normal; - font-size: 12pt; -} - -#post-image-small, -#upload-video-small { - font-weight: normal; - font-size: 12pt; -} - -#post-image-footer, -#upload-video-footer { - text-align: right; -} - -#post-image-footer a, -#upload-video-footer a { - font-size: 12pt; - font-weight: bold; - text-decoration: none; -} - -#post-image-footer a:hover, -#upload-video-footer a:hover { - text-decoration: none; -} - -#UserContainer { - font-family: Verdana, Sans-Serif; -} - -#UserContainer #LeftBank { - float: left; - text-align: center; - width: 444px; -} - -#UserContainer #RightBank { - float: right; - text-align: center; - width: 444px; -} - -#UserContainer #LeftBank #UserPageLargeRectangleAd { - border: none; -} - -#UserPlacesPane { - clear: both; - background-color: #FFF; -} - -#UserPlacesPane { - clear: both; - background-color: #FFF; -} - -.FriendRequestsPane, -#UserModelsContainer, -#UserAssetsPane { - clear: both; - margin: 10px 0 0 0; - text-align: center; -} - -#UserBadgesPane, -#UserStatisticsPane { - margin: 10px 0 0 0; -} - -#UserStatisticsPane { - text-align: left; -} - -#FriendsPane, -#FavoritesPane { - clear: right; - margin: 10px 0 0 0; -} - -#UserAssetsPane { - margin-bottom: 10px; -} - -#UserBadgesPane #UserBadges { - background-color: #fff; - text-align: center; -} - -#ProfilePane h4 { - background-color: #ccc; - border-top: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Verdana, Sans-Serif; - font-size: 1.3em; - margin: 0; - text-align: center; -} - -#ProfilePane p { - margin: .9em 0; - line-height: 1.6em; -} - -#UserAssetsPane #UserAssets h4, -#UserBadgesPane #UserBadges h4, -#UserPlacesPane #UserPlaces h4, -#UserStatisticsPane #UserStatistics h4, -#FavoritesPane #Favorites h4 { - background-color: #ccc; - border-bottom: solid 1px #000; - color: #333; - font-family: Comic Sans MS, Verdana, Sans-Serif; - margin: 0; - text-align: center; -} - -#UserPlacesPane #UserPlaces h4 { - background-color: #6e99c9; - color: #fff; - font-family: Verdana, Sans-Serif; - font-size: 1.4em; - font-weight: normal; - letter-spacing: .1em; - line-height: 1.5em; -} - -#UserStatisticsPane #UserStatistics { - background-color: #eee; - padding-bottom: 10px; -} - -#UserStatisticsPane #UserStatistics h4 { - margin-bottom: 5px; -} - -#UserStatisticsPane #UserStatistics .Statistic { - line-height: 1.8em; - margin: 0 auto; - width: 385px; -} - -#UserStatisticsPane #UserStatistics .Label { - float: left; - text-align: right; - width: 178px; -} - -#UserStatisticsPane #UserStatistics .Value { - float: right; - width: 177px; -} - -#UserModelsContainer { - text-align: left; -} - -#Friends { - margin-top: 10px; -} - -#Friends h4, -#FriendRequests h4 { - font-size: 10pt; - font-weight: bold; - line-height: 1em; - margin-bottom: 5px; - margin-top: 5px; -} - -.NoResults { - line-height: 1.3em; - padding: 10px; - text-align: center; -} - -.Badge { - margin: 10px 10px; - text-align: center; -} - -.Friend { - margin: 10px; -} - -.Friend .Avatar { - text-align: center; -} - -.Friend .Summary, -.Friend .Options { - margin-top: 5px; - text-align: center; -} - -#UserContainer .CollapsiblePanelHint { - color: #999; - padding: 5px; - text-align: center; -} - -#UserContainer #AssetsMenu { - float: left; - width: 158px; -} - -#UserContainer #AssetSearchOption { - float: left; -} - -#UserContainer #AssetUploadOption { - float: right; -} - -#UserContainer #AssetsList { - clear: both; -} - -#UserAssetsPane .AssetsMenuItem { - border: solid 1px #777; - margin: 15px; - padding: 3px 10px; - width: 100px; -} - -#UserAssetsPane .AssetsMenuItem:hover { - border: solid 1px #000; - cursor: pointer; - margin: 15px; - width: 100px; -} - -#UserAssetsPane .AssetsMenuItem_Selected { - background-color: #6e99c9; - border: solid 1px #000; - margin: 15px; - padding: 3px 10px; - width: 100px; -} - -#UserAssetsPane .AssetsMenuButton { - color: #777; - font: normal 14px/normal Verdana, sans-serif; -} - -#UserAssetsPane .AssetsMenuButton:hover { - color: #000; - text-decoration: none; -} - -#UserAssetsPane .AssetsMenuButton_Selected { - color: #fff; - font: normal 14px/normal Verdana, sans-serif; - text-decoration: none; -} - -#UserPlaces .PanelFooter, -#GroupPlaces .PanelFooter, -#Favorites .PanelFooter { - background-color: #fff; - color: #333; - font-family: Verdana, Sans-Serif; - margin: 0; - padding: 3px; - text-align: center; -} - -#UserPlaces .AccordionHeader { - background-color: #ccc; - border: solid 1px #000; - cursor: pointer; - font: bold 1em/normal Verdana, sans-serif; - letter-spacing: .1em; - margin: 1px 0; - padding: 1px 1em; - text-align: left; -} - -#UserPlaces .AccordionHeader:hover { - background-color: #6e99c9; - color: #fff; -} - -#UserPlaces .Place .PlayStatus { - margin: 5px 0 0 0; - display: inline; -} - -#UserPlaces .Place .PlayOptions { - margin: 5px 0 0 0; - display: inline; -} - -#UserPlaces .Place .PlayOptions .Button { - border-color: #333; - color: #333; - margin: 0 3px; -} - -#UserPlaces .Place .PlayOptions .Button:hover { - background-color: #6e99c9; - color: #fff; -} - -#UserPlaces .Place .Statistics { - border-top: dashed 1px #555; - border-left: dashed 1px #555; - border-right: dashed 1px #555; - color: #555; - font: normal 1em/normal Verdana, sans-serif; - letter-spacing: .1em; - line-height: 1.7em; - margin: 0; - margin-top: 10px; -} - -#UserPlaces .Place .Thumbnail { - border: solid 1px #555; - margin: 0; -} - -#UserPlaces .Place .Description { - border: dashed 1px #555; - color: #555; - font: normal 1em/normal Verdana, sans-serif; - max-height: 75px; - line-height: 1.7em; - margin: 5px 0 0 0; - padding: 5px 10px; - overflow: auto; - text-align: left; -} - -#UserPlaces .Place .Configuration { - border-bottom: dashed 1px #555; - border-left: dashed 1px #555; - border-right: dashed 1px #555; - font: normal 1em/normal Verdana, sans-serif; - line-height: 1.7em; - padding: 5px 10px; -} - -#UserContainer #AssetsContent { - float: left; - font-family: Verdana, Sans-Serif; - margin: 0 auto; - margin-left: 28px; - margin-right: 28px; - min-width: 0; - padding-bottom: 10px; - padding-left: 0; - padding-right: 0; - position: relative; - text-align: left; - width: 662px; -} - -#UserContainer #AssetsContent .HeaderPager, -#UserContainer #FavoritesContent .HeaderPager, -#UserContainer #AssetsContent .FooterPager, -#UserContainer #FavoritesContent .FooterPager { - clear: both; - margin: 0 12px 0 10px; - padding: 2px 0; - text-align: center; -} - -#UserContainer #AssetsContent .HeaderPager, -#UserContainer #FavoritesContent .HeaderPager { - margin-bottom: 10px; -} - -#UserContainer #AssetsContent .HeaderPager .Label, -#UserContainer #FavoritesContent .HeaderPager .Label, -#UserContainer #AssetsContent .FooterPager .Label, -#UserContainer #FavoritesContent .FooterPager .Label { - font-size: 1em; - vertical-align: middle; -} - -#UserContainer .Asset { - margin: 0 10px 15px 10px; - vertical-align: top; - width: 112px; -} - -#UserContainer .Asset .AssetThumbnail { - border: solid 1px #000; - height: 110px; - position: relative; - text-align: center; - width: 110px; -} - -#UserContainer .Asset .AssetDetails { - overflow: hidden; - padding: 2px 0 6px 0; - text-align: left; - width: 110px; -} - -#UserContainer .AssetName a { - font-size: .9em; - font-weight: bold; - line-height: 1.5em; - vertical-align: top; -} - -.AssetsBullet { - padding-right: 3px; -} - -#UserContainer .Label, -#UserContainer .Detail, -#UserContainer .DetailHighlighted, -#UserContainer .PriceInRobux, -#UserContainer .PriceInTickets { - font-size: .8em; -} - -#UserContainer .DetailHighlighted { - color: Red; - font-weight: bold; -} - -#UserContainer .PriceInRobux { - color: Green; - font-weight: bold; -} - -#UserContainer .PriceInTickets { - color: #fbb117; - font-weight: bold; -} - -.UserOnlineMessage { - font-family: Verdana; - font-size: 8pt; - color: Red; -} - -.UserOfflineMessage { - font-family: Verdana; - font-size: 8pt; - color: Gray; -} - -.AdPanel { - position: relative; - margin: 0 auto; -} - -.BanishButtonOverlay { - background-color: #eee; - border: solid 1px #444; - font-size: .8em; - padding: 1px 3px 2px 3px; - position: absolute; - text-align: center; - top: 0; - right: 0; -} - -.BanishButtonOverlay:hover { - background-color: #fff; - border: solid 1px #000; - text-decoration: none; -} - -.DeleteButtonOverlay { - background-color: #eee; - border: solid 1px #444; - font-size: .8em; - padding: 1px 3px 2px 3px; - position: absolute; - right: 2px; - text-align: center; - top: 2px; -} - -.DeleteFavoriteOverlay { - background-color: #eee; - border: solid 1px #444; - font-size: .8em; - padding: 1px 3px 2px 3px; - position: relative; - left: -57px; - text-align: center; - top: -97px; -} - -.DeleteButtonOverlay:hover { - background-color: #fff; - border: solid 1px #000; - text-decoration: none; -} - -.PlaceAccessIndicator { - color: #000; -} - -.SubscriptionStatusPanel { - width: 348px; - font-weight: bold; - margin-top: 5px; - padding: 5px 5px 5px 5px; - border: solid 1px black; - background-color: #ccc; -} - -.ProfileAlertPanel { - width: 348px; - padding: 5px 5px 5px 5px; - background-color: #FFF; - border: solid 1px black; - height: 64px; -} - -.UserBlurb { - overflow: hidden; - width: 348px; - padding: 5px 5px 5px 5px; - line-height: 20px; - background-color: #FFF; - border: solid 1px #000; -} - -#AccountSettingsForm { - font-size: 11px; - line-height: 18px; -} - -#AccountSettingsForm fieldset { - border: 1px solid #ddd; - padding: 5px 5px 5px 5px; -} - -.MyRobloxContainer { - font-family: Verdana, Sans-Serif; - margin: 0 auto; - width: 900px; -} - -.ThemeStandardColorBackground { - background: #6e99c9; -} - -.StandardBox, -.StandardBoxWhite, -.StandardBoxGray { - float: none; - border: 2px solid #6e99c9; - background-color: White; - padding: 10px 10px 10px 10px; - margin-bottom: 10px; - display: block; -} - -.StandardBoxWhite { - *zoom: 1; -} - -.StandardBoxGrey { - float: inherit; - border: 2px solid #6e99c9; - background-color: #A6A6A6; - padding: 10px 10px 10px 10px; - margin-bottom: 10px; - display: block; -} - -.StandardBoxHeader, -.StandardBoxHeaderGray, -.StandardTabWhite, -.StandardTabGray, -.StandardTabGrayActive { - float: none; - background-color: #6e99c9; - text-align: center; - color: White; - font-size: 16px; - font-weight: bold; - padding: 5px 12px 5px 12px; - display: block; - *display: inline; - *zoom: 1; - cursor: pointer; -} - -.StandardBoxHeaderGray { - background-color: #A6A6A6; -} - -.StandardTabWhite, -.StandardTabGrayActive, -.StandardTabGray { - display: inline-block; - height: 26px; - z-index: 2; - position: relative; - *display: inline; - *zoom: 1; -} - -.StandardTabWhite span { - *padding-right: 14px; -} - -.StandardTabGray { - background-color: #b4cde9; - margin-right: 4px; -} - -.StandardTabGrayActive { - margin-right: 4px; -} - -.StandardTabGray a, -.StandardTabGrayActive a { - color: White; -} - -.StandardTabGray:hover, -.StandardTabGrayActive { - background-color: #6c98cb; - color: White; -} - -.Column1a { - width: 290px; - float: left; - margin-top: 10px; -} - -.Column2a { - margin-top: 10px; - width: 600px; - float: right; -} - -.Column1a .StandardBox { - width: 266px; -} - -.Column1a .StandardBoxHeader, -.Column1a .StandardBoxHeaderGray { - width: 266px; -} - -.Column2a .StandardBox { - width: 576px; -} - -.Column2a .StandardBoxHeader, -.Column2a .StandardBoxHeaderGray { - width: 576px; -} - -.Column1b { - margin-top: 10px; - width: 190px; - float: left; - margin-right: 15px; -} - -.Column2b { - margin-top: 10px; - width: 490px; - float: left; -} - -.Column3b { - margin-top: 10px; - width: 190px; - float: right; -} - -.Column1b .StandardBox { - width: 166px; -} - -.Column1b .StandardBoxHeader, -.Column1b .StandardBoxHeaderGray { - width: 166px; -} - -.Column2b .StandardBox { - width: 466px; -} - -.Column2b .StandardBoxHeader, -.Column2b .StandardBoxHeaderGray { - width: 466px; -} - -.Column3b .StandardBox { - width: 166px; -} - -.Column3b .StandardBoxHeader, -.Column3b .StandardBoxHeaderGray { - width: 166px; -} - -.Column1c { - margin-top: 10px; - width: 590px; - float: left; -} - -.Column2c { - margin-top: 10px; - width: 290px; - float: right; -} - -.Column1c .StandardBox { - width: 556px; -} - -.Column1c .StandardBoxHeader, -.Column1c .StandardBoxHeaderGray { - width: 556px; -} - -.Column2c .StandardBox { - width: 266px; -} - -.Column2c .StandardBoxHeader, -.Column2c .StandardBoxHeaderGray { - width: 266px; -} - -.Column1d { - margin-top: 10px; - width: 440px; - float: left; -} - -.Column2d { - margin-top: 10px; - width: 440px; - float: right; -} - -.Column1d .StandardBox, -.Column1d .StandardBoxWhite { - width: 416px; -} - -.Column1d .StandardBoxHeader, -.Column1d .StandardBoxHeaderGray, -.Column1d .StandardTabWhite { - width: 416px; -} - -.Column2d .StandardBox, -.Column2d .StandardBoxWhite { - width: 416px; -} - -.Column2d .StandardBoxHeader, -.Column2d .StandardBoxHeaderGray, -.Column2d .StandardTabWhite { - width: 416px; -} - -.Column1e { - margin-top: 10px; - width: 150px; - float: left; -} - -.Column2e { - margin-top: 10px; - width: 740px; - margin-left: 10px; - float: left; -} - -.Column1e .StandardBox { - width: 136px; -} - -.Column1e .StandardBoxHeader, -.Column1e .StandardBoxHeaderGray { - width: 126px; -} - -.Column2e .StandardBoxGray { - width: 726px; - padding: 5px; -} - -.Column2e .StandardBoxHeader, -.Column2e .StandardBoxHeaderGray { - width: 356px; -} - -.Column1f { - margin-top: 10px; - width: 380px; - float: left; -} - -.Column2f { - margin-top: 10px; - width: 500px; - float: right; -} - -.Column1f .StandardBox { - width: 356px; -} - -.Column1f .StandardBoxHeader, -.Column1f .StandardBoxHeaderGray { - width: 356px; -} - -.Column2f .StandardBox { - width: 476px; -} - -.Column2f .StandardBoxHeader, -.Column2f .StandardBoxHeaderGray { - width: 476px; -} - -.Repeater { - border: 0; - width: 100%; -} - -.Repeater .AlternatingItemTemplateOdd { - background-color: #eee; - padding: 5px 5px 5px 5px; -} - -.Repeater .AlternatingItemTemplateEven { - background-color: #fff; - padding: 5px 5px 5px 5px; -} - -.Repeater .RepeaterImage { - float: left; - vertical-align: top; - margin: 5px 5px 5px 5px; -} - -.Repeater .RepeaterText { - float: left; - vertical-align: top; - margin: 5px 5px 5px 5px; -} - -.Repeater .RepeaterImageNoFloat { - text-align: left; - vertical-align: middle; - padding-left: 5px; -} - -.Repeater .RepeaterTextNoFloat { - text-align: left; - vertical-align: top; - padding: 5px; -} - -.Repeater thead { - font-size: 15px; - font-weight: normal; - color: #2163A5; - border-bottom: 1px solid #D3D3D3; -} - -.Column2b .Repeater .AlternatingItemTemplateOdd, -.Column2b .Repeater .AlternatingItemTemplateEven { - width: 466; - height: 50px; -} - -.GreySearchBar { - background-color: #7F7F7F; - border-color: #385D8A; - width: 150px; - color: White; - cursor: default; -} - -.GreySearchButton { - background-color: #7F7F7F; - border-color: #385D8A; - width: 50px; - color: White; -} - -.DescriptionText { - font-size: 14px; - padding: 10px; - background: #D2E3F7; -} - -.tab_white_31h_container .ajax__tab_header { - font-family: verdana, tahoma, helvetica; - font-size: 11px; - background: url(/images/tab-line.gif) repeat-x bottom; -} - -.tab_white_31h_container .ajax__tab_outer { - margin: 0; - background: url(/images/tab-right.gif) no-repeat right; - height: 21px; -} - -.tab_white_31h_container .ajax__tab_inner { - padding-left: 3px; - background: url(/images/tab-left.gif) no-repeat; -} - -.tab_white_31h_container .ajax__tab_tab { - height: 13px; - padding: 4px; - margin: 0; - background: url(/images/tab.gif) repeat-x; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_outer { - background: url(/images/tab-hover-right.gif) no-repeat right; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_inner { - background: url(/images/tab-hover-left.gif) no-repeat; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_tab { - background: url(/images/tab-hover.gif) repeat-x; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_outer { - background: url(/images/tab-active-right.gif) no-repeat right; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_inner { - background: url(/images/tab-active-left.gif) no-repeat; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_tab { - background: url(/images/tab-active.gif) repeat-x; -} - -.tab_white_31h_container .ajax__tab_body { - font-family: verdana, tahoma, helvetica; - font-size: 10pt; - border: 1px solid #999; - border-top: 0; - padding: 8px; - background-color: #fff; -} - -.rbx2only { - display: none; -} - -.GreenButton { - height: 30px; - background: url(/images/btn_green_30h_t1.png) no-repeat; - display: inline-block; - font-family: Arial, Helvetica, Sans-Serif; - font-weight: bold; - font-size: 14px; - cursor: pointer; - *display: inline; - *zoom: 1; -} - -.GreenButton span { - height: 23px; - background: url(/images/btn_green_30h_t2.png) no-repeat top right; - margin: 0 0 0 4px; - display: block; - padding: 7px 12px 0 5px; - cursor: pointer; - color: White; -} - -.GreenButton span a { - color: White; - text-decoration: none; -} - -.GreenButton:hover { - background-position: 0 -30px; - cursor: pointer; - text-decoration: none; -} - -.GreenButton span:hover { - background-position: right -30px; - cursor: pointer; -} - -.RedButton { - height: 30px; - background: url(/images/btn_red_30h_t1.png) no-repeat; - display: inline-block; - font-family: Arial, Helvetica, Sans-Serif; - font-weight: bold; - font-size: 14px; - cursor: pointer; - *display: inline; - *zoom: 1; -} - -.RedButton span { - height: 23px; - background: url(/images/btn_red_30h_t2.png) no-repeat top right; - margin: 0 0 0 4px; - display: block; - padding: 7px 12px 0 5px; - cursor: pointer; - color: White; -} - -.RedButton span a { - color: White; - text-decoration: none; -} - -.RedButton:hover { - background-position: 0 -30px; - cursor: pointer; - text-decoration: none; -} - -.RedButton span:hover { - background-position: right -30px; - cursor: pointer; -} - -.Money { - color: #090; -} - -.SuccessBox { - border: solid 2px #a6dba6; - color: #090; - font-weight: bold; - padding: 5px; - margin: 20px 0; -} - -.ErrorBox, -.MessageBox { - border: solid 2px #ffa6a6; - color: #f00; - font-weight: bold; - padding: 5px; - margin: 20px 0; -} - -.MessageBox { - height: 65px; -} - -.GameCardMessageBox { - border: solid 2px #ffa6a6; - color: #f00; - font-weight: bold; - height: 56px; - padding: 5px; - *height: 66px; - margin: 20px 0; -} - -.GameCardSpecialOffer { - left: 73px; - position: relative; - top: -45px; -} - -.GameCardMessage { - color: #333; - left: 73px; - position: relative; - top: -44px; -} - -.BoxTextAligned { - margin-left: 10px; - position: relative; - top: -20px; -} - -#RedeemContainer { - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - color: Black; -} - -#RedeemContainer a { - color: #00f; -} - -#RedeemContainer a:hover { - text-decoration: none; -} - -#RedeemContainer #pin { - height: 21px; - font-size: 12px; -} - -.BigLinks { - font-size: 16px; - font-weight: bold; -} - -.SkinnyRightArrow { - cursor: pointer; - background: url(/images/arrow_skinny55h_right.png) no-repeat; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.SkinnyRightArrow:hover { - background-position: 0 -55px; -} - -.SkinnyRightArrowDisabled { - background: url(/images/arrow_skinny55h_right.png) no-repeat 0 -110px; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.SkinnyLeftArrow { - cursor: pointer; - background: url(/images/arrow_skinny55h_left.png) no-repeat; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.SkinnyLeftArrow:hover { - background-position: 0 -55px; -} - -.SkinnyLeftArrowDisabled { - background: url(/images/arrow_skinny55h_left.png) no-repeat 0 -110px; - width: 12px; - height: 55px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.BlueLeftArrow { - cursor: pointer; - background: url(/images/arrow_36px_left.png) no-repeat; - width: 36px; - height: 36px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.BlueLeftArrow:hover { - background: url(/images/arrow36px_leftOn.png) no-repeat; -} - -.BlueRightArrow { - cursor: pointer; - background: url(/images/arrow_36px_right.png) no-repeat; - width: 36px; - height: 36px; - display: inline-block; - *display: inline; - *zoom: 1; -} - -.BlueRightArrow:hover { - background: url(/images/arrow36px_rightOn.png) no-repeat; -} - -.BCHat { - background: url(/images/Games/gamesPage_bcHelmet.png) no-repeat; - width: 35px; - height: 29px; - display: inline-block; - margin-top: 3px; - *display: inline; - *zoom: 1; -} - -.notificationBox { - display: inline-block; - background-color: #f00; - color: #fff; - height: 16px; - min-width: 18px; - width: auto; - font-size: 14px; - font-weight: bold; - margin: 2px 2px 4px 2px; - padding: 0 2px; - line-height: 1.1em; - text-align: center; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; -} - -.notificationBoxIE { - display: inline-block; - color: #fff; - background-image: url(/images/bg-notifications.png); - background-repeat: repeat-x; - background-position: left top; - min-width: 24px; - width: auto; - height: 16px; - text-align: center; - font-size: 14px; - font-weight: bold; - *display: inline; - *zoom: 1; -} - -#BuildersClubContainer { - margin-left: -5px; -} - -#CatalogContainer>.StandardBox { - padding: 3px 6px 8px 5px; -} - -.Assets .StandardBoxHeader { - width: 660px; -} - -.Assets .StandardBox { - width: 660px; -} - -.Contests { - margin-left: -5px; -} - -.DarkGradientBox { - background: none; - width: 150px; - color: Black; - position: relative; - border: none; -} - -.DarkGradientBox .DGB_Header { - font-size: 14px; - font-weight: bold; - text-align: center; - padding-top: 5px; - padding-bottom: 5px; - border-bottom: none; -} - -.DarkGradientBox .DGB_TextBox { - border: solid 1px #888; -} - -.DarkGradientBox .DGB_Label { - color: Black; - font-size: 10px; - font-weight: bold; - text-align: left; -} - -.DarkGradientBox .DGB_Button { - cursor: pointer; - background-color: #435D77; - color: White; - text-decoration: none; - border: solid 1px #777; - padding: 6px 10px 6px 10px; - font-family: Verdana, Sans-Serif; - font-size: 12px; - font-weight: bold; - text-align: center; - white-space: nowrap; -} - -.DarkGradientBox .DGB_Button:link, -.DarkGradientBox .DGB_Button:visited { - background-color: #435D77; - color: White; - text-decoration: none; -} - -.DarkGradientBox .DGB_Button:hover, -.DarkGradientBox .DGB_Button:active { - background-color: #B6CCE4; - color: #435D77; - text-decoration: none; -} - -#GamesContainer .DisplayFilters { - width: 126px; -} - -.WaitCursor, -.WaitCursor * { - cursor: wait!important; -} - -.PlayButton, -.BuildButton, -.PlayButtonSelected, -.BuildButtonSelected { - height: 54px; - width: 123px; - display: block; - cursor: pointer; -} - -.PlayButton { - background-image: url('/images/games/playBtn_off.png'); - background-repeat: no-repeat; -} - -.BuildButton { - background-image: url('/images/games/buildBtn_off.png'); - background-repeat: no-repeat; -} - -.PlayButton:hover, -.PlayButtonSelected { - background-image: url('/images/games/playBtn_on.png'); - background-repeat: no-repeat; -} - -.BuildButton:hover, -.BuildButtonSelected { - background-image: url('/images/games/buildBtn_on.png'); - background-repeat: no-repeat; -} - -#BCOnlyPlaces { - width: 416px; -} - -#BCOnlyPlaces .StandardBoxHeaderGray { - width: 399px; - height: 33px; - padding: 0 7px 0 16px; -} - -#BCOnlyPlaces .StandardBox { - padding: 5px; -} - -#GamesLeftColumn { - width: 126px; -} - -#InboxTabs { - position: relative; - top: 2px; -} - -#ItemContainer #Summary { - background-color: Transparent; - border: none; - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - color: Black; -} - -#ItemContainer #Summary .label { - color: #888; -} - -#ItemContainer #Summary .box .head { - color: Black; -} - -#ItemContainer #Summary .box .body { - border: 1px solid #CCC; - padding: 4px 8px 8px; - color: #000; -} - -#ItemContainer h3 { - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - color: #888; - letter-spacing: normal; -} - -.ReportAbuse { - text-align: right; -} - -.ReportAbuse .AbuseButton a { - color: #F99; - background: none; - padding-left: 16px; - padding-bottom: 2px; -} - -.ReportAbuse .AbuseButton a:hover { - background: url("/images/css/abuse.png") no-repeat scroll 0 2px transparent; - color: #F00; -} - -.ReportAbuse img { - display: none; -} - -.MultiplayerVisit:hover { - background-position: 0 54px; -} - -.MultiplayerVisit { - width: 212px; - height: 54px; - background: url(/images/css/btn_play_54h.png); -} - -.SoloVisit:hover { - color: #0C0; -} - -.SoloVisit { - background: none; - color: #080; - font-size: 14px; - position: relative; - top: -20px; - left: 28px; - width: auto; - height: auto; -} - -.SoloVisitText { - display: inline; -} - -#ItemContainer .PlayGames { - background-color: Transparent; - border: none; - padding: 0; - width: 100%; - margin: 4px 0 16px 0; -} - -.PlaceInfoIcons { - margin: 4px 0 0 1px; - text-align: right; -} - -.iPublic, -.iUnlocked { - background: url(/images/css/icon_public.png); - width: 20px; - height: 20px; -} - -.iLocked { - background: url(/images/css/icon_public.png); - width: 20px; - height: 20px; - background-position: -20px; -} - -.SharedIcon { - background: url(/images/css/icon_locked.png); - width: 20px; - height: 20px; - background-position: -20px; -} - -.CopyLockedIcon { - background: url(/images/css/icon_locked.png); - width: 20px; - height: 20px; -} - -.AllGearIcon { - background: url(/images/css/icon_gear.png); - width: 20px; - height: 20px; -} - -.GenreGearIcon { - background: url(/images/css/icon_gear.png); - background-position: 0 -20px; - width: 20px; - height: 20px; -} - -.NoGearIcon { - background: url(/images/css/icon_gear.png); - background-position: 0 -40px; - width: 20px; - height: 20px; -} - -#ItemContainer .ajax_tab_label { - color: #333; - font-size: 16px; - font-weight: bold; - font-family: Arial, Helvetica, sans-serif; - letter-spacing: normal; -} - -#ItemContainer #Thumbnail, -#ItemContainer #Thumbnail_Place { - border: none; -} - -#ItemContainer .CommentsContainer .Comments { - border: 0 none; -} - -#ItemContainer .CommentsContainer .Comment { - background: none; -} - -#ItemContainer .CommentsContainer .Avatar { - border: 0 none; -} - -#ItemContainer .CommentsContainer .Post .Audit { - color: #888; -} - -#BadgeStatsHeader { - width: auto; -} - -.sbMini { - margin-top: 5px; - font-family: Verdana, Sans-Serif; - font-size: 16px; - margin-right: 7px; -} - -.ProfileAlertPanel { - border: none; -} - -#UserPlaces .Place .Statistics, -#UserPlaces .Place .Configuration { - border: none; -} - -#GroupTitle { - width: 888px; -} - -.Column2b .StandardBoxGrey { - width: 454px; -} - -.subMenu { - background: url(/images/topNav_black.png); - width: 900px; - height: 30px; - border: none; - text-align: center; - margin-top: -5px; - margin-left: -5px; -} - -.subMenu ul { - margin: 0 0 0 27px; -} - -.subMenu>ul>li { - height: 30px; - margin: 0 2px; -} - -.subMenu ul ul { - left: -27px; -} - -.subMenu ul ul a, -.subMenu ul ul a:visited { - background: #444; - border: none; -} - -.subMenu ul ul a:hover { - background: #777; -} - -.subMenu>ul>li:hover { - background: url(/images/topNav_black.png); - background-position: 0 30px; -} - -.subMenu :hover>a, -.subMenu ul ul :hover>a { - text-decoration: none; -} - -.subMenu a:hover { - background: none; - text-decoration: none; -} - -.subMenu a, -.subMenu a:visited { - border: none; -} - -.subMenu .subMenuItemselected { - border: none; -} - -#CancelBuildersClubContainer h2, -#PaymentMethodsContainer h2, -#PaymentContainer h2, -#PayPalContainer h2, -#CashContainer h2, -#UpgradeCompleteContainer h2, -#ManageAccountUpgradesContainer h2, -#CancelAccountUpgradeContainer h2, -#AccountUpgradesConfirmationContainer h2 { - font-family: Arial, Helvetica, Sans-Serif; - color: #444; - font-size: 32px; - font-weight: bold; - letter-spacing: 0; -} - -#BuildersClubContainer #LeftColumn { - margin-left: 5px; -} - -#BuildersClubContainer #RightColumn { - margin-right: 5px; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - color: #000; - width: 285px; -} - -#BuildersClubContainer #RightColumn .StandardBox { - width: 273px; -} - -#BuildersClubContainer #RightColumn .StrongRed { - font-family: Arial, Helvetica, Sans-Serif; - font-size: 14px; - font-weight: bold; - color: #f00; -} - -#BuildersClubContainer #RightColumn h3 { - font-weight: bold; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 18px; - color: #333; -} - -#BuildersClubContainer #RightColumn .RefCode { - font-weight: bold; - font-family: Arial, Helvetica, Sans-Serif; - font-size: 30px; - color: #666; - display: block; - margin-bottom: 16px; -} - -#Header { - font-family: Arial, Helvetica, sans-serif; - position: absolute; - bottom: 0; -} - -#hlNews { - margin-right: 4px; -} - -.AlertSpace { - position: relative; - top: 0; - width: 147px; - height: 50px; - border: 1px solid #ccc; - margin: 0; - padding: 0; - margin-left: auto; - margin-right: auto; - font-family: Arial, Helvetica, sans-serif; - font-size: 14px; - font-weight: bold; -} - -#Header .AlertSpace { - float: right; - border: none; - margin-left: 0; - margin-right: 0; - background: url(/images/css/head_sign.png) 0 0; - height: 78px; -} - -.AlertSpace a { - position: absolute; - width: 43px; - padding-left: 18px; - background: url(/images/css/head_infobox_icons.png) no-repeat 0 0; -} - -.AlertSpace a:hover, -#Header .AlertSpace a:active { - text-decoration: none; -} - -.AlertSpace .MessageAlert { - border: none; - background: none; -} - -.AlertSpace .MessageAlert a { - left: 13px; - top: 8px; - color: #444; - background-position: -2px 0; -} - -.AlertSpace .MessageAlert a:hover { - color: #aaa; - background-position: -2px -20px; -} - -.AlertSpace .RobuxAlert { - border: none; - background: none; -} - -.AlertSpace .RobuxAlert a { - left: 13px; - top: 28px; - color: #080; - background-position: -2px -41px; -} - -.AlertSpace .RobuxAlert a:hover { - color: #0d0; - background-position: -2px -61px; -} - -.AlertSpace .FriendsAlert { - border: none; - background: none; -} - -.AlertSpace .FriendsAlert a { - left: 79px; - top: 8px; - color: #05b; - background-position: -2px -81px; -} - -.AlertSpace .FriendsAlert a:hover { - color: #0cf; - background-position: -2px -101px; -} - -.AlertSpace .TicketsAlert { - border: none; - background: none; -} - -.AlertSpace .TicketsAlert a { - left: 79px; - top: 28px; - color: #a61; - background-position: -2px -121px; -} - -.AlertSpace .TicketsAlert a:hover { - color: #fb6; - background-position: -2px -141px; -} - -div.icons, -a.icons { - display: none; -} - -div.message_icon { - display: none; -} - -div.friends_icon { - display: none; -} - -div.robux_icon { - display: none; -} - -div.tickets_icon { - display: none; -} - -#Header .Navigation { - width: 900px; - height: 30px; - background: url(/images/css/topNav_blue.png); - background-position: 0 0; - text-align: center; - line-height: 20px; -} - -.Navigation ul { - margin: 0 auto; - padding: 0; -} - -.Navigation li { - display: inline-block; - margin: 0; - padding: 6px 10px 0 10px; - height: 24px; - font-size: 16px; - font-weight: bold; -} - -.Navigation li:hover { - background: url(/images/css/topNav_blue.png); - background-position: 0 30px; -} - -.Navigation a { - display: inline-block; - color: #fff; -} - -.Navigation a:hover { - text-decoration: none; -} - -.Navigation ul li a, -.Navigation ul li a:visited { - border: none; - font-size: 16px; - padding: 0; -} - -.Navigation .dropdownmainnav { - border: none; - line-height: 2em; - background: #444; -} - -.Navigation .dropdownmainnav div { - background-color: #444; - cursor: pointer; -} - -.Navigation .dropdownmainnav div:hover { - background-color: #888; -} - -.StandardBox { - padding: 5px; - margin-bottom: 8px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; - z-index: 0; -} - -.StandardBoxHeader, -.StandardBoxHeaderGray { - height: 33px; - padding: 0 7px 0 5px; - text-align: left; - z-index: 2; - background: url(/images/css/tab_black_33h_t1.png) no-repeat left top; - font-family: Arial, Helvetica, sans-serif; - font-size: 20px; - font-weight: bold; - color: #fff; - z-index: 0; -} - -.StandardBoxHeaderGray { - background: url(/images/css/tab_gray_33h_t1.png) no-repeat left top; -} - -.StandardBoxHeader span, -.StandardBoxHeaderGray span { - display: block; - width: 100%; - height: 29px; - padding: 5px 5px 0 2px; - background: url(/images/css/tab_black_33h_t2.png) no-repeat right top; - overflow: hidden; -} - -.StandardBoxHeaderGray span { - background: url(/images/css/tab_gray_33h_t2.png) no-repeat right top; -} - -.StandardTabWhite { - background: url(/images/css/tab_white_26h_t1.png) no-repeat left top; - padding: 0 4px; - float: none; - text-align: left; -} - -.StandardTabWhite span { - display: block; - width: 100%; - *width: 115%; - height: 26px; - padding: 5px 5px 0 9px; - background: url(/images/css/tab_white_26h_t2.png) no-repeat right top; - font-family: Arial, Helvetica, sans-serif; - font-size: 14px; - color: #000; - font-weight: normal; -} - -.StandardBoxWhite { - position: relative; - top: -1px; - background: #fff; - border: 1px solid #ccc; - padding: 8px; - color: Black; -} - -.StandardTabGray, -.StandardTabGrayActive { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left 0; - height: 31px; - padding: 0; - text-align: left; - cursor: pointer; - margin: 0; -} - -.StandardTabGray span, -.StandardTabGrayActive span { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right 0; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; - color: #333; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: bold; - display: block; -} - -.StandardTabGray a, -.StandardTabGrayActive a { - color: #333; -} - -.StandardTabGrayActive { - background-position: left -62px; -} - -.StandardTabGrayActive span { - background-position: right -62px; -} - -.StandardTabGray:hover { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left -31px; - height: 31px; - padding: 0; - z-index: 2; - text-align: left; - margin: 0; -} - -.StandardTabGray span:hover { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right -31px; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; - color: #333; - font-family: Arial, Helvetica, sans-serif; - font-size: 16px; - font-weight: bold; - display: block; -} - -.StandardBoxGray { - position: relative; - top: -2px; - padding: 8px 5px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; -} - -.tab_white_31h_container .ajax__tab_header { - background: none; -} - -.tab_white_31h_container .ajax__tab_outer { - background: none; - height: auto; -} - -.tab_white_31h_container .ajax__tab_inner { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - height: 31px; - padding-left: 0; - z-index: 2; -} - -.tab_white_31h_container .ajax__tab_header .ajax__tab_tab { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_outer { - background: none; - height: auto; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_inner { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left -31px; - height: 31px; - padding-left: 0; - z-index: 2; -} - -.tab_white_31h_container .ajax__tab_hover .ajax__tab_tab { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right -31px; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_outer { - background: none; - height: auto; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_inner { - position: relative; - background: url(/images/css/tab_white_31h_t1.png) no-repeat left top; - background-position: left -62px; - height: 31px; - padding-left: 0; - z-index: 2; -} - -.tab_white_31h_container .ajax__tab_active .ajax__tab_tab { - background: url(/images/css/tab_white_31h_t2.png) no-repeat right top; - background-position: right -62px; - height: 25px; - padding: 6px 16px 0 8px; - margin: 0 0 0 4px; -} - -.tab_white_31h_container .ajax__tab_body { - position: relative; - top: -2px; - padding: 8px 5px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; -} - -.Column2a { - float: left; -} - -.Column3b { - float: left; -} - -.Column2c { - float: left; - margin-left: 10px; -} - -.Column2d { - float: left; -} - -.Column1e { - width: 140px; -} - -.Column2e .StandardBoxHeaderGray { - margin: 0; - width: 726px; -} - -.Column2e .StandardBoxGray { - width: 726px; -} - -.Column2f { - float: left; -} - -div.rbx2only { - display: block; -} - -.rbx2only { - display: inline; -} - -.rbx2hide { - display: none; -} - -#RobloxCentralBank { - overflow: hidden; -} - -.transparentBkg { - background-color: Transparent; -} - -.FriendRequestsPane { - width: 890px; -} - -.Shadow { - display: none; -} - -.ShadowedStandardBox .Header { - height: 33px; - padding: 0 7px 0 5px; - text-align: left; - z-index: 2; - background: url(/images/css/tab_black_33h_t1.png) no-repeat left top; - font-family: Arial, Helvetica, sans-serif; - font-size: 20px; - font-weight: bold; - color: #fff; -} - -.ShadowedStandardBox .Header span { - display: block; - width: 100%; - height: 29px; - background: url(/images/css/tab_black_33h_t2.png) no-repeat right top; - overflow: hidden; - height: 26px; - padding: 7px 4px 0 3px; -} - -.ShadowedStandardBox .Content { - padding: 5px; - margin-bottom: 8px; - background: url(/images/css/standardBox_01_bkg.png) top repeat-x #fff; - border: 1px solid #aaa; -} - -a.rss_icon { - background: url(/images/css/topNav_rss.png) no-repeat; -} - -.Column1d .StandardTabWhite, -.Column2d .StandardTabWhite { - width: auto; -} - -.MyRobloxContainer { - width: 890px; -} - -.BCHat { - margin-top: 1px; -} - -#partycontainer -{ - bottom: 110px; - right: 10px; -} - -.partyWindow { - color: #666; - font-family: Verdana, Geneva, sans-serif; - font-size: 11px; - width: 250px; -} - -.partyWindow .title -{ - background: transparent url('/images/friendsbar/tab_blue19h_l.gif') no-repeat left top; - display: block; - text-decoration: none; - padding-left: 2px; - height: 19px; - width:248px; - cursor: pointer; -} -.partyWindow .title span -{ - background: transparent url('/images/friendsbar/tab_blue19h_r.gif') no-repeat right top; - display: block; - height: 15px; - padding: 2px 15px 2px 7px; - text-decoration: none; - color:#fff; -} - -.partyWindow .title_flash -{ - background: transparent url('/images/friendsbar/tab_white19h_l2.gif') no-repeat left top; -} -.partyWindow .title_flash span -{ - background: transparent url('/images/friendsbar/tab_white19h_r2.gif') no-repeat right top; - color:#444; -} - -.partyWindow .title strong { - display:block; - padding:2px 15px 4px 6px; - background:url("/images/chat/tab_blue21h_r.png") no-repeat right top; - color: #fff; - width: 227px; - font-weight: bold; -} - -.partyWindow .closeparty { - width:10px; - height:9px; - /*float:right;*/ - margin: 5px 9px 0 0; - cursor:pointer; - position:absolute; - right:0; - top:0; - color: #fff; - font-weight: bold; - font-size:14px; -} - -.partyWindow .main { - clear: both; - width: 248px; - height: auto; - margin: 0; - /*padding: 10px;*/ - background: #f2f2f2; - border: 1px solid #a6a6a6; - border-top: 0px none; - overflow:auto; -} - -.partyWindow .kickuser -{ - float: right; - padding-right: 5px; - color: Red; - cursor: pointer; -} -#new_party p { - text-align:center; - padding: 40px 0 0 0; -} - -#party_none .main .btn_green21h { - margin: 15px 0 0 77px; -} - -.clear { - clear:both; -} - -.main #new_party_clear { - padding: 40px 0 0 0; -} - - - -/* Buttons using sliding doors */ - -.btn_green21h { - float:left; - background:url("/images/chat/btn_green21h_l.png") no-repeat left top; - padding:0 0 0 2px; -} -.btn_green21h a { - display:block; - padding:2px 14px 4px 10px; - background:url("/images/chat/btn_green21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} -.btn_green21h:hover { - background:url("/images/chat/btn_green21h_over_l.png") no-repeat left top; -} -.btn_green21h:hover a { - background:url("/images/chat/btn_green21h_over_r.png") no-repeat right top; -} -.btn_red21h { - float:left; - background:url("/images/chat/btn_red21h_l.png") no-repeat left top; - padding:0 0 0 2px; -} -.btn_red21h a { - display:block; - padding:2px 14px 4px 10px; - background:url("/images/chat/btn_red21h_r.png") no-repeat right top; - color: White; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} -.btn_red21h:hover { - background:url("/images/chat/btn_red21h_over_l.png") no-repeat left top; -} -.btn_red21h:hover a { - background:url("/images/chat/btn_red21h_over_r.png") no-repeat right top; -} - -.btn_black21h { - float:left; - background:url("/images/chat/btn_black21h_l.png") no-repeat left top; - padding:0 0 0 2px; - color: White; -} -.btn_black21h a { - display:block; - padding:2px 14px 4px 10px; - background:url("/images/chat/btn_black21h_r.png") no-repeat right top; - color: #FFF; - font-family: verdana; - font-weight: bold; - text-decoration: none; -} -.btn_black21h:hover { - background:url("/images/chat/btn_black21h_over_l.png") no-repeat left top; -} -.btn_black21h:hover a { - background:url("/images/chat/btn_black21h_over_r.png") no-repeat right top; -} - -/* Party Invite CSS */ - -.main h1 { - padding: 15px 20px 15px 20px; - font-size: 130%; - text-align:center; -} - - -.main #invite_status { - padding: 10px 0 10px 0; -} - -.main p { - padding: 0 0 7px 0; -} - -.main .btn_green21h { - float:left; - margin: 0 0 0 35px; -} -.main .btn_black21h { - float:right; - margin: 0 35px 0 0; -} - -.main #invite_clear { - padding: 15px 0 0 0; -} - -/* Party Leader css */ - -dd { -} -dt { - float: left; -} -dd { - margin-left: 30px; -} - -.grey9{ - color:gray; - font-size:9px; -} -.status{ - color:gray; - font-size:11px; -} -.name_me { - font-weight:bold; - color:#0066cc; -} -.name_other { - font-weight:bold; - color:#007b00; -} -.name_status { - font-weight:bold; -} - -.partyWindow { - color:black; - font-size:11px; - height:auto; -} - -.members dl { - padding: 0 0 0 5px; -} -.members dt { - padding: 4px 0 0 0; -} -.members dd { - padding: 4px 0 1px 0; -} - -.main p { - padding: 10px 0 5px 0px; - text-align:center; -} - -#chat_messages { - padding: 0px 3px 3px 3px; - margin: 5px 5px 0 5px; - height:217px; - overflow:auto; - background-color:white; - border-style: solid; - border-width:1px; - border-color:#aaa; -} -#chat_messages li { - padding: 6px 0 0 0; - list-style-type: none; -} - -#party_game_thumb -{ - width: 75px; - margin-right: 5px; - float: left; -} -#party_current_game -{ - margin: 5px; -} -#party_game_name -{ - width: 140px; - float: left; -} -#party_game_follow_me -{ - margin-top: 5px; -} - -#chat_input { - margin: 5px 5px 0 5px; - padding-right:2px; -} - -#chat_input input { - border: 1px solid #ccc; - width:236px; - height: 40px; -} - -#chat_input textarea { - border: 1px solid #aaa; - overflow: auto; - width:100%; - height:50px; -} - -.main #leader_clear { - padding: 15px 0 0 0; -} - -#party_my .main .btn_black21h { - /*margin: 20px 0 0 73px;*/ - margin: 15px 70px 0 0; - /*position:absolute; - left:83px; - top:402px; - */ -} - -// Roblox Forum -a.linkSmallBold, a.linkMenuSink -{ - font-weight: bold; - color: #0000FF; -} - -a.linkSmall, a.LinkSmallBold, a.linkMenuSink -{ - color: navy; - font-size: 0.9em; -} - - -a.linkSmallBold:visited, a.linkMenuSink:visited -{ - font-weight: normal; - color: #013DA4; -} - -a.linkSmallBold:Hover, a.linkMenuSink:Hover -{ - color: #DD6900; -} - - -/***************************************************** -Text and Anchor to display when a user is online -*****************************************************/ -.userOnlineLinkBold, a.userOnlineLinkBold, a.userOnlineLinkBold:Visited, a.userOnlineLinkBold:Hover, a.userOnlineLinkBold:Link -{ - font-weight: bold; - color: #0055E7; -} - -.moderatorOnlineLinkBold, a.moderatorOnlineLinkBold, a.moderatorOnlineLinkBold:Visited, a.moderatorOnlineLinkBold:Hover, a.moderatorOnlineLinkBold:Link -{ - font-weight: bold; - color: #00008B; -} - -.adminOnlineLinkBold, a.adminOnlineLinkBold, a.adminOnlineLinkBold:Visited, a.adminOnlineLinkBold:Hover, a.adminOnlineLinkBold:Link -{ - font-weight: bold; - color: black; -} - -/***************************************************** -Text and anchors used in the navigation menu -*****************************************************/ -.menuTitle -{ - font-weight: bold; - font-size: 20px; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - color: navy; -} - -.menuText -{ - font-size: 0.9em; - font-weight: bold; - color: #FFFFFF; -} - -a.menuTextLink:visited, a.menuTextLink:link -{ - font-size: 0.9em; - text-decoration: none; - color: #013DA4; -} - -a.menuTextLink:Hover -{ - color: #000000; -} - - -/***************************************************** -Text and anchors used in the search -*****************************************************/ -.searchPager -{ - font-size : 0.9em; - font-weight: bold; -} - -.searchItem -{ - background-color: #DDEEFF; -} - -.searchAlternatingItem -{ - background-color: #FFFFFF; -} - - -/***************************************************** -Default separator style for PostList -*****************************************************/ -td.flatViewSpacing -{ - height: 2px; - background-color: #80B7FF; -} - -/***************************************************** -Table Header and cell definitions -*****************************************************/ -th -{ - /* background-image: url(ForumC/skins/default/images/forumHeaderBackground.gif); */ - background-color: #6e99c9; -} - -td.forumHeaderBackgroundAlternate -{ - /* background-image: url(ForumC/skins/default/images/forumHeaderBackgroundAlternate.gif); */ - background-color: #BDD6F5; -} - -/***************************************************** -Body -*****************************************************/ -body -{ - FONT-SIZE: 8pt; - COLOR: #000000; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - scrollbar-face-color: #DEE3E7; - scrollbar-highlight-color: #FFFFFF; - scrollbar-shadow-color: #DEE3E7; - scrollbar-3dlight-color: #D1D7DC; - scrollbar-arrow-color: #006699; - scrollbar-track-color: #EFEFEF; - scrollbar-darkshadow-color: #98AAB1; -} - - -/***************************************************** -Validation Text -*****************************************************/ -.validationWarningSmall -{ - color: Red; - font-size : 0.9em; -} - -/***************************************************** -General Text -*****************************************************/ -.normalTextSmall -{ - font-size : 1.0em; -} - -.CenterColumn a -{ - color : #0000FF; -} -.CenterColumn a:visited -{ - color : #013DA4; -} - - -.normalTextSmallBold -{ - font-size : 1.0em; - font-weight: bold; -} - -.normalTextSmaller -{ - font-size: 0.9em; -} - -.normalTextSmall, .normalTextSmallBold, .normalTextSmaller -{ - color : #000000; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; -} - -.normalTextSmall a, .normalTextSmallBold a, .normalTextSmaller a -{ - color : #0000FF; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; -} -.normalTextSmall a:visited, .normalTextSmallBold a:visited, .normalTextSmaller a:visited -{ - color : #013DA4; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; -} - -/***************************************************** -Text used on tables with a background -*****************************************************/ -.tableHeaderText -{ - color: white; - font-size: 11px; - padding: 5px; - font-weight:bold; - text-align: center; - font-family: Verdana, Helvetica, Arial, Sans-Serif; -} - -/***************************************************** -Border used around tables -*****************************************************/ -.tableBorder -{ - border: 1px #013DA4 solid; - background-color: #FFFFFF; -} - -/***************************************************** -Main forum colors -*****************************************************/ -td.forumRow -{ - background-color: #DDEEFF; -} - - -td.forumAlternate -{ - background-color: #DAE7FD; -} - -/***************************************************** -Background color and text used in threaded view -*****************************************************/ -td.threadTitle -{ - background-color: #D4D9EC; -} - -.threadDetailTextSmall -{ - color: #0055E7; - font-size: 0.9em; -} - -.threadDetailTextSmallBold -{ - color: #0055E7; - font-size: 0.9em; - font-weight: bold; -} - -td.forumRowHighlight -{ - background-color: #dfe9fc; -} - -/***************************************************** -Text and links used in ForumGroupRepeater and ForumRepeater -*****************************************************/ -.forumTitle -{ - font-size: 1.0em; - font-weight: bold; - color: #013DA4; -} - - -a.forumTitle:visited, a.forumTitle:link -{ - font-size: 1.0em; - font-weight: bold; - color: #013DA4; -} - -a.forumTitle:hover -{ - color: #DD6900; -} - -.forumName -{ - font-weight: bold; - font-size: 16px; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - text-decoration: none; - color: navy; -} - -a.forumName:hover -{ - color: #DD6900; - text-decoration: underline; -} - - -/***************************************************** -Form Elements -*****************************************************/ -select -{ - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - font-size: 0.9em; - font-weight: bold; - background-color: #DAE7FD; - border-color: Black; -} - -textarea -{ - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - font-size: 0.9em; - background-color: White; - border-color: Black; -} - -/***************************************************** -Menu Controls -*****************************************************/ -A.linkMenuSink -{ - font-size: 0.9em; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - position: relative; -} - -TD.popupMenuSink -{ - position: relative; -} - -DIV.popupMenu -{ - border: 1px solid blue; -} - -DIV.popupTitle -{ - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - color: white; - font-weight: bold; - background-color: #4455AA; -} - -DIV.popupItem -{ - font-size: 1.0em; - font-weight: bold; - FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; - background-color: #DDEEFF; -} \ No newline at end of file diff --git a/resources/views/admin/ban.blade.php b/resources/views/admin/ban.blade.php deleted file mode 100644 index 66bab49..0000000 --- a/resources/views/admin/ban.blade.php +++ /dev/null @@ -1,54 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('title') -Ban -@endsection - -@section('content') -
-

Ban user

-

Ban a user from Tadah, temporarily or forever.

-
- @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - @if (session()->has('success')) -
- {{ session()->get('success') }} -
- @endif -
- @csrf - -
- - -
-
- - -
-
- -
- -
-
- -
-
-
-
- -
-
- -@endsection \ No newline at end of file diff --git a/resources/views/admin/createinvitekey.blade.php b/resources/views/admin/createinvitekey.blade.php deleted file mode 100644 index 0364b60..0000000 --- a/resources/views/admin/createinvitekey.blade.php +++ /dev/null @@ -1,32 +0,0 @@ -@extends('layouts.app') - -@section('title') -Create Invite Key -@endsection - -@section('content') -
-

Generate Invite Key

-

Used for inviting new users to Tadah. Inviting random or unknown people is not permitted.
Minimum uses: 1
Maximum uses: 50

-
- @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - @if (session()->has('success')) -
- {{ session()->get('success') }} -
- @endif -
- @csrf - -
- - -
- -
-
-@endsection \ No newline at end of file diff --git a/resources/views/admin/index.blade.php b/resources/views/admin/index.blade.php deleted file mode 100644 index 48da736..0000000 --- a/resources/views/admin/index.blade.php +++ /dev/null @@ -1,29 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('title') -Admin -@endsection - -@section('content') -
- @if (session()->has('message')) -
- {{ session()->get('message') }} -
- @endif -

Admin Panel

-

They will repent.

-
- -
-@endsection \ No newline at end of file diff --git a/resources/views/admin/invitekeys.blade.php b/resources/views/admin/invitekeys.blade.php deleted file mode 100644 index 898470c..0000000 --- a/resources/views/admin/invitekeys.blade.php +++ /dev/null @@ -1,60 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('title') -Invite Keys -@endsection - -@section('content') -
- @if (session()->has('message')) -
- {{ session()->get('message') }} -
- @endif -

Invite Keys

-

All invite keys, depleted or not. Disabling a key turns its uses to zero, it doesn't delete it for archival purposes.

- @if ($invitekeys->count() > 0) - - - - - - - - - - - - - - @foreach ($invitekeys as $invitekey) - - - - - - - - - - @endforeach - -
IDCreatorKeyUses RemainingCreatedUpdatedDisable
{{ $invitekey->id }}{{ $invitekey->user->username }}{{ $invitekey->token }}{{ $invitekey->uses }}{{ date('m/d/Y ', strtotime($invitekey->created_at)) }}{{ date('m/d/Y ', strtotime($invitekey->updated_at)) }} -
- @csrf - - -
-
-
- {{ $invitekeys->links('pagination::bootstrap-4') }} -
- @else -
-

No invite keys

-

Well, you obviously can't invite anyone without any invite keys, so go make some.

- @endif -
-@endsection \ No newline at end of file diff --git a/resources/views/admin/newxmlitem.blade.php b/resources/views/admin/newxmlitem.blade.php deleted file mode 100644 index 7687723..0000000 --- a/resources/views/admin/newxmlitem.blade.php +++ /dev/null @@ -1,101 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('title') -New XML Asset -@endsection - -@section('content') -
-

New XML Asset

-

Create a new XML asset on Tadah.

-
- @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - @if (session()->has('success')) -
- {{ session()->get('success') }} -
- @endif -
- @csrf - -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- -
- - -
- - -
-
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/admin/unban.blade.php b/resources/views/admin/unban.blade.php deleted file mode 100644 index 6c38d4b..0000000 --- a/resources/views/admin/unban.blade.php +++ /dev/null @@ -1,34 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('title') -Ban -@endsection - -@section('content') -
-

Unban user

-

Unban a user from Tadah. Usually used during moderation errors.

-
- @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - @if (session()->has('success')) -
- {{ session()->get('success') }} -
- @endif -
- @csrf - -
- - -
- -
-
-@endsection \ No newline at end of file diff --git a/resources/views/auth/login-old.blade.php b/resources/views/auth/login-old.blade.php deleted file mode 100644 index 173cca6..0000000 --- a/resources/views/auth/login-old.blade.php +++ /dev/null @@ -1,73 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Login') }}
- -
-
- @csrf - -
- - -
- - - @error('email') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('password') - - {{ $message }} - - @enderror -
-
- -
-
-
- - - -
-
-
- -
-
- - - @if (Route::has('password.request')) - - {{ __('Forgot Your Password?') }} - - @endif -
-
-
-
-
-
-
-
-@endsection diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php deleted file mode 100644 index d5cf582..0000000 --- a/resources/views/auth/login.blade.php +++ /dev/null @@ -1,94 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
- Login -
-
-
- - -
-
-
-
-
-
- Create a Free {{ config('app.name') }} Account -
-
-

- Creating an account on {{ config('app.name') }} allows you to customize your character, make friends, - build places, earn money, and more! -

-

-

- Register -
-

-
-
-
-
-
-
-
- @csrf - - -
-@endsection \ No newline at end of file diff --git a/resources/views/auth/passwords/confirm.blade.php b/resources/views/auth/passwords/confirm.blade.php deleted file mode 100644 index ca78fc1..0000000 --- a/resources/views/auth/passwords/confirm.blade.php +++ /dev/null @@ -1,49 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Confirm Password') }}
- -
- {{ __('Please confirm your password before continuing.') }} - -
- @csrf - -
- - -
- - - @error('password') - - {{ $message }} - - @enderror -
-
- -
-
- - - @if (Route::has('password.request')) - - {{ __('Forgot Your Password?') }} - - @endif -
-
-
-
-
-
-
-
-@endsection diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php deleted file mode 100644 index 1fea984..0000000 --- a/resources/views/auth/passwords/email.blade.php +++ /dev/null @@ -1,47 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Reset Password') }}
- -
- @if (session('status')) - - @endif - -
- @csrf - -
- - -
- - - @error('email') - - {{ $message }} - - @enderror -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php deleted file mode 100644 index 989931d..0000000 --- a/resources/views/auth/passwords/reset.blade.php +++ /dev/null @@ -1,65 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Reset Password') }}
- -
-
- @csrf - - - -
- - -
- - - @error('email') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('password') - - {{ $message }} - - @enderror -
-
- -
- - -
- -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/resources/views/auth/register-old.blade.php b/resources/views/auth/register-old.blade.php deleted file mode 100644 index 2e3a221..0000000 --- a/resources/views/auth/register-old.blade.php +++ /dev/null @@ -1,99 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Register') }}
- -
- @if (config('app.registration_enabled')) -
- @csrf - -
- - -
- - - @error('username') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('email') - - {{ $message }} - - @enderror -
-
- - @if (config('app.invite_keys_required')) -
- - -
- -
You have to be invited.
- - @error('invite_key') - - {{ $message }} - - @enderror -
-
- @endif - -
- - -
- - - @error('password') - - {{ $message }} - - @enderror -
-
- -
- - -
- -
-
- -
-
- -
-
-
- @else -

Registration closed

-

Sorry, we're not taking new users at the moment. Check back in a bit.

- @endif -
-
-
-
-
-@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php deleted file mode 100644 index cd40c3e..0000000 --- a/resources/views/auth/register.blade.php +++ /dev/null @@ -1,89 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-

Sign Up and Play

-

Step 1 of 2: Create Account

-
-
- Provide your age-group -
- This will help us to customize your experience. Users under 13 years will only be shown pre-approved images. -
-
-
-
-
-
-
-
- Choose a name for your ROBLOX character -
- Use 3-20 alphanumeric characters: A-Z, a-z, 0-9, no spaces -
-
-
-
-
-
-
-
-
-   -
-
-
-
-
- Choose your ROBLOX password -
- 4-10 characters, no spaces -
-
-
-
-
-
-
-
-   -
-
-   -
-
-
-
-
- Choose your chat mode -
- All in-game chat is subject to profanity filtering and moderation. For enhanced chat safety, choose SuperSafe Chat; only chat from pre-approved menus will be shown to you. -
-
-
-
-
-
-
-
- Provide your parent's email address -
- This will allow you to recover a lost password -
-
-
-
-
-
-
-   -
-
-
-
- -
-
-
-@endsection \ No newline at end of file diff --git a/resources/views/auth/verify.blade.php b/resources/views/auth/verify.blade.php deleted file mode 100644 index 9f8c1bc..0000000 --- a/resources/views/auth/verify.blade.php +++ /dev/null @@ -1,28 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
-
-
-
{{ __('Verify Your Email Address') }}
- -
- @if (session('resent')) - - @endif - - {{ __('Before proceeding, please check your email for a verification link.') }} - {{ __('If you did not receive the email') }}, -
- @csrf - . -
-
-
-
-
-
-@endsection diff --git a/resources/views/catalog/configure.blade.php b/resources/views/catalog/configure.blade.php deleted file mode 100644 index 57c3817..0000000 --- a/resources/views/catalog/configure.blade.php +++ /dev/null @@ -1,123 +0,0 @@ -@extends('layouts.app') - -@section('title') -Configure Item -@endsection - -@section('content') -
-
-
-
-
{{ __('Configure Item') }}
- -
-
- @csrf - - @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - -
- - -
- - - @error('name') - - {{ $message }} - - @enderror -
-
- -
- - -
- {{ $item->name }} -
-
- -
- - -
- - - @error('description') - - {{ $message }} - - @enderror -
-
- - @if ($item->isXmlAsset()) -
- - -
- - - @error('thumbnailurl') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('xml') - - {{ $message }} - - @enderror -
-
- @endif - -
- - -
- -
-
- -
-
-
- onsale ? 'checked' : '' }}> - - -
-
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/resources/views/catalog/index-old.blade.php b/resources/views/catalog/index-old.blade.php deleted file mode 100644 index 56bfd74..0000000 --- a/resources/views/catalog/index-old.blade.php +++ /dev/null @@ -1,74 +0,0 @@ -@extends('layouts.app') - -@section('title') -Catalog -@endsection - -@section('meta') - - - - - - -@endsection - -@section('content') -
-
-
-
- - -
-
-
- - - @if ($items->count() > 0) -
- @foreach ($items->all() as $item) - - @endforeach -
- @else -
-

Nothing found

-

Looks like there are no items to display for this query.

-
- @endif -
- {{ $items->links('pagination::bootstrap-4') }} -
-
-@endsection diff --git a/resources/views/catalog/index.blade.php b/resources/views/catalog/index.blade.php deleted file mode 100644 index 9a00007..0000000 --- a/resources/views/catalog/index.blade.php +++ /dev/null @@ -1,245 +0,0 @@ -@extends('layouts.app') - -@section('content') -
-
- - - - - -
- Catalog - - - - - -
-
- -
- -
- -
-
- -
-

Category

- -
-
-
-
- LEGEND
-
-
- Builders Club Only items are those which can only be purchased by users with a Builders Club membership.
-
-
- Limited Items are those which were once sold by Roblox and will not be sold again. Users who own these items can re-sell them to other users for the price of their choice.
-
-
- Limited Unique Items are sold by Roblox until they run out (we could release, say, 100 of a certain hat.) When you buy these, they are stamped with a serial number (i.e. 7 / 100) that shows which one you got.
-
- Once these items run out, they can also be sold to other users. -
-
- - -
- -
- {{ $type }} For Sale -
-
- - @foreach (array_chunk($items->items(), 5) as $rowitems) - - @foreach ($rowitems as $item) - - @endforeach - - @endforeach - - - -
-
-
- {{ $item->name }} -
-
- -
- Updated: - {{ $item->updated_at->diffForHumans() }} -
- -
- Number Sold: - {{ number_format($item->sales) }} -
- -
- D$: {{ number_format($item->price) }} -
-
-
-
-
- Avatar Items - {{ config('app.name') }} has a full virtual goods catalog with avatar items and other virtual items. Create a free account on {{ config('app.name') }} and start collecting -

virtual avatar items

- , virtual goods, virtual items, and other gear for your virtual avatars. -
-
-
-
- {{ $items->links('pagination.simple') }} -
-
- -
-
-@endsection diff --git a/resources/views/catalog/item-old.blade.php b/resources/views/catalog/item-old.blade.php deleted file mode 100644 index f62e6ae..0000000 --- a/resources/views/catalog/item-old.blade.php +++ /dev/null @@ -1,53 +0,0 @@ -@extends('layouts.app') - -@section('title') -{{ $item->name }} -@endsection - -@section('content') -
- @if (session()->has('message')) -
- {{ session()->get('message') }} -
- @endif -
-
-
-
{{ $item->type }}
-
-

{{ $item->name }} @if (Auth::user()->id == $item->user->id || Auth::user()->admin) @endif

- -

{{ $item->name }}

-
- Description:
{{ $item->description }} -
-
-
-
-
-
About
-
- {{ $item->user->username }} -

Creator: {{ $item->user->username }}
Sales: {{ $item->sales }}

-
-

Price: {{ $item->price }}

- @if ($item->onsale && $item->approved) - @if (!$ownedItem) -
- @csrf - - -
- @else - You already own this. - @endif - @else - Item not for sale. - @endif -
-
-
-
-
-@endsection diff --git a/resources/views/catalog/item.blade.php b/resources/views/catalog/item.blade.php deleted file mode 100644 index 0dd5cb9..0000000 --- a/resources/views/catalog/item.blade.php +++ /dev/null @@ -1,310 +0,0 @@ -@extends('layouts.app') - -@section('content') - -
-
- - -

- {{ $item->name }} -

-
-
-
-
-
- Add To Sets -
-
- Add to Set: -
- - Add a new set - -
-
-
-
-
- {{ $item->name }} -
-
- Favorite -
-
- -
-

- {{ config('app.name') }} {{ $item->type }} -

-
- - @if ($item->onsale && $item->approved) - @if (!$ownedItem) -
-
-
- D$: {{ number_format($item->price) }} -
-
-
- @csrf - Buy with D$ -
-
-
-
- @else - You already own this. - @endif - @else - Item not for sale. - @endif -
-
- -
-
- {{ $item->user->username }} -
- Creator: - {{ $item->user->username }} -
-
-
- Created: - {{ $item->created_at->diffForHumans() }} -
-
- Updated: - {{ $item->updated_at->diffForHumans() }} -
- -
- Total Sold: - {{ $item->sales }} -
-
-
-
-
Genres:
-
-
- All Genres - All Genres -
-
-
-
-
-
- Description: -
-
- {{ $item->description }} -
-
-
-
- Report Abuse - Report Abuse -
-
- @if ($item->user == Auth::user() || Auth::user()->admin) - - @endif -
-
-
-
-
Recommendations
-
-
Here are some other items that we think you might like.
- - - -

There's nothing here.

- -
-
-
-
-
-   - - -
- -
- -
-
- - - - - -
-
-
-
-
-
Create A Set
-
-
-

- Name: - -

-
- -
- -

Description:

- -

Image:

- -
- - -
-
-
-
-
-
-@endsection \ No newline at end of file diff --git a/resources/views/catalog/upload.blade.php b/resources/views/catalog/upload.blade.php deleted file mode 100644 index 575ad46..0000000 --- a/resources/views/catalog/upload.blade.php +++ /dev/null @@ -1,114 +0,0 @@ -@extends('layouts.app') - -@section('title') -Upload Item -@endsection - -@section('content') -
-
-
-
-
{{ __('Upload Item') }}
- -
- @if (config('app.item_creation_enabled')) -
- @csrf - - @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - -

Uploading an asset costs {{ config('app.asset_upload_cost') }} {{ config('app.currency_name_multiple') }}.

- -
- - -
- - - @error('name') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('description') - - {{ $message }} - - @enderror -
-
- -
- - -
- - @error('type') - - {{ $message }} - - @enderror -
-
- -
- - -
- -
-
- -
- - -
- -
- @error('asset') - - {{ $message }} - - @enderror -
- -
-
- -
-
-
- @else -

Item creation disabled

-

Sorry, item creation has been disabled. Check back later.

- @endif -
-
-
-
-
-@endsection diff --git a/resources/views/client/admin.blade.php b/resources/views/client/admin.blade.php deleted file mode 100644 index b0b2e1b..0000000 --- a/resources/views/client/admin.blade.php +++ /dev/null @@ -1,1455 +0,0 @@ ---[[ - File Name: admin.lua - Description: The main admin commands for CNT. This also acts like the parent for - all the other scripts like the anticheat and antivirus and contains - all the configuration. - Authors: Niall, Carrot, Quin - Date: 6/16/2018 @ 5:15 PM CST (11:15 PM GMT) - https://github.com/carat-ye/cnt ---]] - -_G.CNT = {} -_G.CNT.AV = {} - ---- Configuration ---[[ - Names & ID's are allowed. Entries in the admin table are structured as [name] (or id) = powerLevel. - Here are the power levels: - 1 = Owner - 2 = Admin - 3 = Temp Admin - 4 = Moderator - 5 and above = Test User (Doesn't have access to any commands that affect the game.) ---]] -local admins = { - ["{{ $server->user->username }}"] = 1, - @foreach ($admins as $admin) - ["{{ $admin->username }}"] = 1, - @endforeach -} -local banned = {} -- List players that are banned from your game here. -local prefixes = { -- Admin prefixes, e.g "kill Carrot" - ":", - ";", - "@", - ".", - ">", - "/", - "$", - "!", -} - -local DAY_NIGHT_INTERVAL = .2 -local DAY_NIGHT = false -local INFECTED = false -local SERVER_LOCKED = false -local MESSAGE_TIMEOUT = 5 - ---- Antivirus -local QUARANTINE = true -local CLASSES = { - "AutoJoint", - "BackpackItem", - "Feature", - "Glue", - "HtmlWindow", - "JointInstance", - "LocalBackpack", - "LocalBackpackItem", - "MotorFeature", - "Mouse", - "Rotate", - "RotateP", - "RotateV", - "Snap", - "StockSound", - "VelocityMotor", - "Geometry", - "Timer", - "Weld", - "ChangeHistoryService", -} -local NAMES = { - "infection", - "lol", - "wut", - "hoo", - "you", - "got", - "hack", - "vaccine", - "virise", - "virus", - "xd", - "infected", - "oh", - "snap", - "vir", - "virisis", - "snapreducer", - "viris", - "anti", - "lag", - "wildfire", - "4D", - "being", - "plz", - "ohai", - "no", -} - -local TO_SCAN = { - "Workspace", -} - ---//========================================================================================================================\\-- ---// !! !!!!!!!!!! !! \\-- ---// We are not responsible for the script not working if you modify anything beyond this point. \\-- ---// !! !!!!!!!!!! !! \\-- ---//========================================================================================================================\\-- - ---- Declarations --- Declaration order: services, strings, numbers, bools -local Players = game:GetService("Players") -local Debris = game:GetService("Debris") -local Lighting = game:GetService("Lighting") -local CNT_VERSION = "1.0.0 Early Alpha" -local CLIENT_VERSION = version() -local LUA_VERSION = _VERSION -_G.CNT.NewVersion = false - ---- Functions - ---- Deletes an object. --- @param Instance object: The object to be removed. -local function Destroy(instance) - Debris:AddItem(instance, 0) -end - --- Random string generation. -local characters = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", - "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", - "W", "X", "Y", "Z", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"} - ---- Generate a random script with described length. --- @param length number: The length of the desired random string. --- @return random string: The random string that was generated. -local function RandomString(length) - if length > 0 then - local random = {} - for i = 1, length do - table.insert(random, characters[math.random(#characters)]) - end - return table.concat(random, "") - else - return "" - end -end - ---- Check if a table has a value. --- @param table check: The table to check for the value described. --- @param string checkValue: The value to check in the table. --- @return bool: Whether it could find the value in the table. If it does, then it's true. --- Otherwise, false. -local function HasValue(check, checkValue) - for index, value in ipairs(check) do - if value:lower() == checkValue then - return true - end - end - - return false -end - ---- Checks if a user is banned. --- @param string name: The name or ID of the player. --- @return bool: If the player was banned from the game, this function returns true. Otherwise, false. -local function IsBanned(name) - if type(name) == "string" then - local name = name:lower() - end - - if HasValue(banned, name) then - return true - end - - return false -end - ---- Checks if a user is admin. --- @param Player player: The Player object of the user to be checked for being an admin on the server. --- @return bool: If the player is an admin, this function returns true. Otherwise, false. -local function IsAdmin(player) - local name = player.Name - local id = player.UserId - - if admins[name] or admins[id] then - return true - end - - return false -end - ---- Returns an index of a value in a table. --- @param table seeking: The table to look in. --- @param string or (number, table) value: The value to find the index of. --- @return number or (bool): The index of the value. Returns false if it couldn't find it. -local function ReturnIndexOf(seeking, value) - for index, seekingValue in ipairs(seeking) do - if seekingValue == value then - return index - end - end -end - ---- Finds if a string starts with a certain character. --- @param string string: The string to look in. --- @param string starting: The starting character to find. --- @return bool: If the string described starts with the described character, then it returns true. --- Otherwise, false. -local function Starts(string, starting) - return string.sub(string, 1, string.len(starting)) == starting -end - ---- Gets the version and returns it in number format. --- @return number version: The version. -local function GetVersion() - local version = tostring(CLIENT_VERSION) - local patterns = { - "%s+", - "%." - } - local length = version:len() - - for _, pattern in pairs(patterns) do - version = version:gsub(pattern, "") - end - version = version:sub(1, length) - - return tonumber(version) -end - ---- New Version Check -_G.CNT.NewVersion = (GetVersion() >= 2810) - ---- Commands -local commands = {} - --- Prints the arguments to console with the sender's name. -commands.print = {} -commands.print["name"] = "print" -commands.print["command"] = function(sender, arguments) - local message = table.concat(arguments, " ") - print(sender.Name .. ": " .. message) -end -commands.print["level"] = 5 -commands.print["description"] = "Prints the arguments to console." - --- Kills a player. -commands.kill = {} -commands.kill["name"] = "kill" -commands.kill["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Humanoid.Health > 0 then - player.Character:BreakJoints() - end - end -end -commands.kill["level"] = 4 -commands.kill["description"] = "Kills a player." -commands.murder = commands.kill - --- Adds sparkles to a player's torso. -commands.sparkles = {} -commands.sparkles["name"] = "sparkles" -commands.sparkles["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Torso then - local sparkles = Instance.new("Sparkles") - sparkles.Parent = player.Character.Torso - end - end -end -commands.sparkles["level"] = 4 -commands.sparkles["description"] = "Adds sparkles to a player's torso." - --- Adds fire to a player's torso. -commands.fire = {} -commands.fire["name"] = "fire" -commands.fire["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Torso then - local fire = Instance.new("Fire") - fire.Parent = player.Character.Torso - end - end -end -commands.fire["level"] = 4 -commands.fire["description"] = "Adds fire to a player's torso." - --- Adds smoke to a player's torso. -commands.smoke = {} -commands.smoke["name"] = "smoke" -commands.smoke["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Torso then - local smoke = Instance.new("Smoke") - smoke.Parent = player.Character.Torso - end - end -end -commands.smoke["level"] = 4 -commands.smoke["description"]= "Adds smoke to a player's torso." - --- Locks the server preventing players from joining. -commands.lockserver = {} -commands.lockserver["name"] = "lockserver" -commands.lockserver["command"] = function(sender, arguments) - if not SERVER_LOCKED then - SERVER_LOCKED = true - - if Workspace:FindFirstChild("ServerLockMessage") then - Destroy(Workspace.ServerLockMessage) - end - local display = Instance.new("Hint") - display.Name = "ServerLockMessage" - display.Text = "Server locked." - display.Parent = Workspace - Debris:AddItem(display, 3) - - else - local message = Instance.new("Hint") - message.Text = "Server already locked!" - message.Parent = sender.PlayerGui - Debris:AddItem(message, 3) - end -end -commands.lockserver["level"] = 1 -commands.lockserver["description"] = "Locks the server." -commands.serverlock = commands.lockserver -commands.slock = commands.lockserver - --- Unlocks the server. -commands.unlockserver = {} -commands.unlockserver["name"] = "unlockserver" -commands.unlockserver["command"] = function(sender, arguments) - if SERVER_LOCKED then - SERVER_LOCKED = false - - if Workspace:FindFirstChild("ServerLockMessage") then - Destroy(Workspace.ServerLockMessage) - end - - local display = Instance.new("Hint") - display.Name = "ServerLockMessage" - display.Text = "Server unlocked." - display.Parent = Workspace - Debris:AddItem(display, 10) - else - local message = Instance.new("Message") - message.Text = "Server already unlocked!" - message.Parent = sender.PlayerGui - Debris:AddItem(message, 3) - end -end -commands.unlockserver["level"] = 1 -commands.unlockserver["description"] = "Unlocks the server if its locked." -commands.unslock = commands.unlockserver - --- Freezes a player in place. -commands.freeze = {} -commands.freeze["name"] = "freeze" -commands.freeze["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Head and player.Character.Head.Anchored == false then - player.Character.Head.Anchored = true - end - end -end -commands.freeze["level"] = 4 -commands.freeze["description"] = "Freezes a player in place." - --- Thaws a player. -commands.unfreeze = {} -commands.unfreeze["name"] = "unfreeze" -commands.unfreeze["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Head and player.Character.Head.Anchored == true then - player.Character.Head.Anchored = false - end - end -end -commands.unfreeze["level"] = 4 -commands.unfreeze["description"] = "Unfreezes a player." -commands.thaw = commands.unfreeze - --- Explodes a player. -commands.explode = {} -commands.explode["name"] = "explode" -commands.explode["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Torso then - local explosion = Instance.new("Explosion") - explosion.Position = player.Character.Torso.Position - explosion.Parent = player.Character.Torso - end - end -end -commands.explode["level"] = 3 -commands.explode["description"] = "Explodes a player." - --- Makes a player transparent. -commands.invisible = {} -commands.invisible["name"] = "invisible" -commands.invisible["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - for _, part in pairs(player.Character:GetChildren()) do - if part:IsA("Part") then - part.Transparency = 1 - end - end - end - end -end -commands.invisible["level"] = 3 -commands.invisible["description"] = "Makes a player invisible." -commands.ghost = commands.invisible -commands.ghostify = commands.invisible - --- Makes a player visible again. -commands.uninvisible = {} -commands.uninvisible["name"] = "uninvisible" -commands.uninvisible["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - for _, part in pairs(player.Character:GetChildren()) do - if part:IsA("Part") then - part.Transparency = 0 - end - end - end - end -end -commands.uninvisible["level"] = 3 -commands.uninvisible["description"] = "Makes a player visible." -commands.unghost = commands.uninvisible -commands.unghostify = commands.uninvisible - --- Plays a song from Roblox or from a URL. -commands.music = {} -commands.music["name"] = "music" -commands.music["command"] = function(sender, arguments) - local url = HasValue(arguments, "url") - local looped = HasValue(arguments, "looped") - - local status = Instance.new("Hint") - status.Parent = Workspace - status.Text = "Stopping all music..." - for _, object in pairs(Workspace:GetChildren()) do - if object:IsA("Sound") then - object:Stop() - Destroy(object) - end - end - - status.Text = "Playing music..." - - local music = Instance.new("Sound") - music.Parent = Workspace - music.Name = "CNTMusic" - if url then - music.SoundId = arguments[1] - else - music.SoundId = "http://roblox.com/asset?id=".. arguments[1] - end - music.Volume = 1 - music.Looped = looped - -- Play - repeat - music:Play() - wait(2.5) - music:Stop() - wait(.5) - music:Play() - until music.IsPlaying - - Destroy(status) -end -commands.music["level"] = 3 -commands.music["description"] = "Plays music." - --- Modifies a command's power level. -commands.modifycommand = {} -commands.modifycommand["name"] = "modifycommand" -commands.modifycommand["command"] = function(sender, arguments) - local command = arguments[1] - local level = arguments[2] - - if commands[command] and command and level then - commands[command][level] = level - end -end -commands.modifycommand["level"] = 1 -commands.modifycommand["description"] = "Modifies a command's power level." - --- Kicks a player from the game. -commands.kick = {} -commands.kick["name"] = "kick" -commands.kick["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - Destroy(player) - end -end -commands.kick["level"] = 3 -commands.kick["description"] = "Kicks a player from the game." - --- Bans a player from the game. -commands.ban = {} -commands.ban["name"] = "ban" -commands.ban["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if admins[player.Name] and admins[player.Name] > admins[sender.Name] or not admins[player.Name] then - table.insert(banned, player) - Destroy(player) - end - end -end -commands.ban["level"] = 2 -commands.ban["description"] = "Bans a user from the game." - --- Bans a player by UserId instead of name. --- Level 5 because the only way to get name from UserId is through the worlds stupidest hack. -commands.banid = {} -commands.banid["name"] = "banid" -commands.banid["command"] = function(sender, arguments) - local id = arguments[1] - id = tonumber(id) - - local name - - if id ~= nil then - table.insert(banned, id) - - local player = Players:GetPlayerByUserId(id) - - if player then - Destroy(player) - end - end -end -commands.banid["level"] = 1 -commands.banid["description"] = "Bans a user by ID." - --- Unbans a player from the game. -commands.unban = {} -commands.unban["name"] = "unban" -commands.unban["command"] = function(sender, arguments, targets) - local player = arguments[1] - - if ReturnIndexOf(banned, player) then - local index = ReturnIndexOf(banned, player) - table.remove(banned, index) - end -end -commands.unban["level"] = 2 -commands.unban["description"] = "Unbans a user from the game." - --- Constantly kills a player. -commands.loopkill = {} -commands.loopkill["name"] = "loopkill" -commands.loopkill["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - local loopKillValue = Instance.new("BoolValue") - loopKillValue.Name = "CNTLoopKill" - loopKillValue.Parent = player - player.Character:BreakJoints() - end -end -commands.loopkill["level"] = 3 -commands.loopkill["description"] = "Kills a player over and over." - --- Stops loop killing a player. -commands.unloopkill = {} -commands.unloopkill["name"] = "unloopkill" -commands.unloopkill["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - player:FindFirstChild("CNTLoopKill"):Destroy() - end -end -commands.unloopkill["level"] = 3 -commands.unloopkill["description"] = "Stops loop killing a player." - --- Makes a player sit. -commands.sit = {} -commands.sit["name"] = "sit" -commands.sit["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Humanoid then - player.Character.Humanoid.Sit = true - end - end -end -commands.sit["level"] = 4 -commands.sit["description"] = "Makes a player sit." - --- Makes a character jump. -commands.jump = {} -commands.jump["name"] = "jump" -commands.jump["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character.Humanoid then - player.Character.Humanoid.Jump = true - end - end -end -commands.jump["level"] = 4 -commands.jump["description"] = "Makes a player jump." - --- Lock's a players character. -commands.lock = {} -commands.lock["name"] = "lock" -commands.lock["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - for _, object in pairs(player.Character:GetDescendants()) do - if object:IsA("BasePart") then - object.Locked = true - end - end - end - end -end -commands.lock["level"] = 3 -commands.lock["description"] = "Locks a players character." - --- Unlock's a players character. -commands.unlock = {} -commands.unlock["name"] = "unlock" -commands.unlock["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - for _, object in pairs(player.Character:GetDescendants()) do - if object:IsA("BasePart") then - object.Locked = false - end - end - end - end -end -commands.unlock["level"] = 3 -commands.unlock["description"] = "Unlocks a players character." - --- Changes a players walkspeed. -commands.walkspeed = {} -commands.walkspeed["name"] = "walkspeed" -commands.walkspeed["command"] = function(sender, arguments, targets) - if not arguments[2] or tonumber(arguments[2]) == nil then - return - end - - for _, player in pairs(targets) do - if player.Character and player.Character.Humanoid then - player.Character.Humanoid.WalkSpeed = arguments[2] - end - end -end -commands.walkspeed["level"] = 4 -commands.walkspeed["description"] = "Makes a player jump." -commands.ws = commands.walkspeed - --- Changes a value in a player's leaderstats. -commands.valset = {} -commands.valset["name"] = "valset" -commands.valset["command"] = function(sender, arguments, targets) - local leaderstat = arguments[2] - local value = arguments[3] - for _, player in pairs(targets) do - if player.leaderstats then - for _, stat in pairs(player.leaderstats:GetDescendants()) do - if stat:IsA("IntValue") or stat:IsA("StringValue") then - if string.find(stat.Name:lower(), leaderstat:lower()) then - stat.Value = value - end - end - end - end - end -end -commands.valset["level"] = 3 -commands.valset["description"] = "Sets a player's leaderstat." -commands.set = commands.valset -commands.change = commands.valset - --- Teleports a player to another. -commands.teleport = {} -commands.teleport["name"] = "teleport" -commands.teleport["command"] = function(sender, arguments, targets) - local teleportDestination = arguments[2] - teleportDestination = string.lower(teleportDestination) - local playerFound = false - - if teleportDestination == "me" then - playerFound = true - teleportDestination = sender.Name - else - for _, player in pairs(Players:GetPlayers()) do - if string.find(string.lower(player.Name), string.lower(teleportDestination)) then - playerFound = true - teleportDestination = player.Name - end - end - end - - if not playerFound then - return - end - teleportDestinationName = teleportDestination - teleportDestination = Players:FindFirstChild(teleportDestination).Character.Torso.CFrame - - for i, player in pairs(targets) do - if player.Name == teleportDestinationName then - table.remove(targets, i) - end - end - - for i, player in pairs(targets) do - if player.Character and player.Character.Humanoid and player.Character.Torso and player.Character.Humanoid.Health > 0 then - player.Character.Torso.CFrame = teleportDestination + Vector3.new(0, i * 5, 0) - end - end -end -commands.teleport["level"] = 4 -commands.teleport["description"] = "Telports a player to another." -commands.tp = commands.teleport - --- Immortalizes a player. -commands.immortalize = {} -commands.immortalize["name"] = "god" -commands.immortalize["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character:FindFirstChild("Humanoid") then - player.Character.Humanoid.MaxHealth = math.huge - end - end -end -commands.immortalize["level"] = 4 -commands.immortalize["description"] = "Gods a player." -commands.god = commands.immortalize -commands.immortalise = commands.immortalize - --- Mortalizes a player. -commands.mortalize = {} -commands.mortalize["name"] = "ungod" -commands.mortalize["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character:FindFirstChild("Humanoid") then - player.Character.Humanoid.MaxHealth = 100 - end - end -end -commands.mortalize["level"] = 4 -commands.mortalize["description"] = "Ungods a player." -commands.ungod = commands.mortalize -commands.mortalise = commands.mortalize - --- Changes a players body colors to the "noob" colors. -commands.noobify = {} -commands.noobify["name"] = "noobify" -commands.noobify["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character:FindFirstChild("Head") and player.Character.Head:FindFirstChild("face") and player.Character:FindFirstChild("Body Colors") then - for _, object in pairs(player.Character:GetChildren()) do - if object:IsA("Hat") or object:IsA("Accessory") or string.find(object.ClassName:lower(), "shirt") or object:IsA("Pants") then - Destroy(object) - end - end - local character = player.Character - character.Head.face.Texture = "rbxasset://textures/face.png" - character["Body Colors"]["HeadColor"] = BrickColor.new("Bright yellow") - character["Body Colors"]["TorsoColor"] = BrickColor.new("Bright blue") - character["Body Colors"]["RightArmColor"] = BrickColor.new("Bright yellow") - character["Body Colors"]["LeftArmColor"] = BrickColor.new("Bright yellow") - character["Body Colors"]["RightLegColor"] = BrickColor.new("Br. yellowish green") - character["Body Colors"]["LeftLegColor"] = BrickColor.new("Br. yellowish green") - end - end -end -commands.noobify["level"] = 4 -commands.noobify["description"] = "Makes a player a noob." -commands.noob = commands.noobify - --- Blinds a player. -commands.blind = {} -commands.blind["name"] = "blind" -commands.blind["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.PlayerGui and not player.PlayerGui:FindFirstChild("CNTBlindGui") then - local blindGui = Instance.new("ScreenGui") - blindGui.Name = "CNTBlindGui" - blindGui.Parent = player.PlayerGui - local blindFrame = Instance.new("Frame") - blindFrame.Size = UDim2.new(1, 0, 1, 0) - blindFrame.BorderSizePixel = 0 - blindFrame.ZIndex = 10 - blindFrame.Parent = blindGui - end - end -end -commands.blind["level"] = 4 -commands.blind["description"] = "Makes a player blind." - --- Sends a server message. -commands.m = {} -commands.m["name"] = "message" -commands.m["command"] = function(sender, arguments) - if Workspace:FindFirstChild("CNTMessage") then - Destroy(Workspace.CNTMessage) - end - - local userMessage = "" - userMessage = arguments[1] - local timeOut = 0 - - local timeOut = tonumber(arguments[2]) - - local message = Instance.new("Message") - message.Name = "CNTMessage" - message.Text = userMessage - message.Parent = Workspace - if timeOut and timeOut >= 1 then - Debris:AddItem(message, timeOut) - else - Debris:AddItem(message, MESSAGE_TIMEOUT) - end -end -commands.m["level"] = 3 -commands.m["description"] = "Creates a message to all." -commands.message = commands.m - --- Creates a hint. -commands.h = {} -commands.h["name"] = "hint" -commands.h["command"] = function(sender, arguments) - if Workspace:FindFirstChild("CNTHint") then - Destroy(Workspace.CNTHint) - end - - local userMessage = "" - userMessage = arguments[1] - local timeOut = 0 - - local timeOut = tonumber(arguments[2]) - - local hint = Instance.new("Hint") - hint.Name = "CNTHint" - hint.Text = userMessage - hint.Parent = Workspace - if timeOut and timeOut >= 1 then - Debris:AddItem(hint, timeOut) - else - Debris:AddItem(hint, MESSAGE_TIMEOUT) - end -end -commands.h["level"] = 3 -commands.h["description"] = "Creates a hint." -commands.hint = commands.h - --- Unblinds a player. -commands.unblind = {} -commands.unblind["name"] = "unblind" -commands.unblind["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.PlayerGui and player.PlayerGui:FindFirstChild("CNDBlindGui") then - Destroy(player.PlayerGui:FindFirstChild("CNTBlindGui")) - end - end -end -commands.unblind["level"] = 4 -commands.unblind["description"] = "Makes a player able to see again." - --- Controls a player. -commands.control = {} -commands.control["name"] = "control" -commands.control["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and sender.Character and sender.Character.Head then - player.Character.Humanoid.PlatformStand = true - player.Character.Humanoid.Changed:connect(function() - player.Character.Humanoid.PlatformStand = true - end) - - for _, object in pairs(sender.Character:GetChildren()) do - if object:IsA("BasePart") then - for _, object_ in pairs(player.Character:GetChildren()) do - if object_:IsA("BasePart") then - local weld = Instance.new("Weld") - weld.Parent = object - weld.Part0 = object - weld.Part1 = object_ - object.CanCollide = false - object.Transparency = 1 - end - end - elseif object:IsA("Hat") or object:IsA("Accessory") then - Destroy(object) - end - end - - if sender.Character.Head:FindFirstChild("face") then - Destroy(sender.Character.Head.face) - end - end - end -end -commands.control["level"] = 3 -commands.control["description"] = "Controls a player." - --- Gives a player building tools. -commands.btools = {} -commands.btools["name"] = "btools" -commands.btools["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - local clone, hammer, grab = Instance.new("HopperBin"), Instance.new("HopperBin"), Instance.new("HopperBin") - clone.BinType, hammer.BinType, grab.BinType = "Clone", "Hammer", "Grab" - clone.Parent, hammer.Parent, grab.Parent = sender.Backpack, sender.Backpack, sender.Backpack -- Fun fact to everyone reading this code: Niall is 100000% pure homosexual. - end -end -commands.btools["level"] = 3 -commands.btools["description"] = "Gives a player building tools." - --- Punishes a player if they've been a very very bad boy and they deserve more than just the timeout chair. -commands.punish = {} -commands.punish["name"] = "punish" -commands.punish["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - player.Character.Parent = Lighting - end - end -end -commands.punish["level"] = 3 -commands.punish["description"] = "Punishes a player." - --- Unpunishes a player if you think they've redeemed themself. -commands.unpunish = {} -commands.unpunish["name"] = "unpunish" -commands.unpunish["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - player.Character.Parent = Workspace - player.Character:MakeJoints() - end - end -end -commands.unpunish["level"] = 3 -commands.unpunish["description"] = "Unpunishes a player." - --- Gives a player a forcefield, to protect from unholy beings (e.g Niall) -commands.forcefield = {} -commands.forcefield["name"] = "forcefield" -commands.forcefield["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - local forcefield = Instance.new("ForceField") - forcefield.Name = "CNTForcefield" - forcefield.Parent = player.Character - end - end -end -commands.forcefield["level"] = 4 -commands.forcefield["description"] = "Gives a player a forcefield." -commands.ff = commands.forcefield - --- Removes a forcefield from a player, revealing themselves to the wrath of Niall. -commands.unforcefield = {} -commands.unforcefield["name"] = "unforcefield" -commands.unforcefield["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character then - for _, object in pairs(player.Character:GetChildren()) do - if object:IsA("ForceField") or object.Name == "CNTForcefield" then - Destroy(object) - end - end - end - end -end -commands.unforcefield["level"] = 4 -commands.unforcefield["description"] = "Removes a forcefield." -commands.unff = commands.unforcefield - --- Sets a players gravity. -commands.gravity = {} -commands.gravity["name"] = "gravity" -commands.gravity["command"] = function(sender, arguments, targets) - local gravity = arguments[2] - - for _, player in pairs(targets) do - if player.Character and player.Character:FindFirstChild("Torso") then - for _, object in pairs(player.Character.Torso:GetChildren()) do - if object.Name == "CNTForce" then - Destroy(object) - end - end - - local bodyForce = Instance.new("BodyForce") - bodyForce.Name = "CNTForce" - bodyForce.Parent = player.Character.Torso - bodyForce.Force = Vector3.new(0, 0, 0) - for _, object in pairs(player.Character:GetChildren()) do - if object:IsA("BasePart") then - bodyForce.Force = bodyForce.Force - Vector3.new(0, object:GetMass() * gravity, 0) - elseif object:IsA("Hat") or object:IsA("Accessory") and object:FindFirstChild("Handle") then - bodyForce.force = bodyForce.force - Vector3.new(0, object.Handle:GetMass() * gravity, 0) - end - end - end - end -end -commands.gravity["level"] = 4 -commands.gravity["description"] = "Sets a players gravity." - --- Straps a rocket to a player and makes them go boom. -commands.rocket = {} -commands.rocket["name"] = "rocket" -commands.rocket["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - if player.Character and player.Character:FindFirstChild("Torso") then - local torso = player.Character:FindFirstChild("Torso") - - local rocket = Instance.new("Part") - rocket.Name = "Rocket" - rocket.Size = Vector3.new(1, 8, 1) - rocket.CanCollide = false - rocket.TopSurface = "Smooth" - rocket.BottomSurface = "Smooth" - - local weld = Instance.new("Weld") - weld.Name = "RocketWeld" - weld.Part1 = torso - weld.Part0 = rocket - weld.C0 = CFrame.new(0, 0 , -1) - - local thrust = Instance.new("BodyThrust") - thrust.Name = "RocketThrust" - thrust.Force = Vector3.new(0, 5700, 0) - - thrust.Parent = rocket - rocket.Parent = player.Character - weld.Parent = torso - - Delay(3, function() - local explosion = Instance.new("Explosion") - explosion.BlastRadius = 10 - Destroy(thrust) - explosion.Position = rocket.Position - Destroy(rocket) - local humanoid = player.Character:FindFirstChild("Humanoid") - if humanoid then - humanoid.Health = 0 - end - explosion.Parent = torso - end) - end - end -end -commands.rocket["level"] = 3 -commands.rocket["description"] = "Straps a rocket to a player." - --- Gives a player admin. -commands.admin = {} -commands.admin["name"] = "admin" -commands.admin["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - admins[player.Name] = 2 - end -end -commands.admin["level"] = 1 -commands.admin["description"] = "Gives a player admin." - --- Removes a players admin. -commands.unadmin = {} -commands.unadmin["name"] = "unadmin" -commands.unadmin["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - admins[player.Name] = nil - end -end -commands.unadmin["level"] = 1 -commands.unadmin["description"] = "Removes a player's permissions." -commands.unmod = commands.unadmin - --- Sets a players perm levels. -commands.setpermlevel = {} -commands.setpermlevel["name"] = "setpermlevel" -commands.setpermlevel["command"] = function(sender, arguments, targets) - local permission = arguments[2] - - if tonumber(permission) == nil or tonumber(permission) == 0 then return end - - permission = tonumber(permission) - - for _, player in pairs(targets) do - admins[player.Name] = permission - end -end -commands.setpermlevel["level"] = 1 -commands.setpermlevel["description"] = "Sets a players permission level." -commands.setpermissionlevel = commands.setpermlevel -commands.level = commands.setpermlevel - --- Gives a player mod. -commands.mod = {} -commands.mod["name"] = "mod" -commands.mod["command"] = function(sender, arguments, targets) - for _, player in pairs(targets) do - admins[player.Name] = 4 - end -end -commands.mod["level"] = 2 -commands.mod["description"] = "Gives a player mod." -commands.moderator = commands.mod - --- Shows commands and their descriptions. -commands.help = {} -commands.help["name"] = "help" -if not _G.CNT.NewVersion then - commands.help["command"] = function(sender, arguments, targets) - local message = Instance.new("Message") - local helpString = "" - - local i = 0 - for _, command in pairs(commands) do - i = i + 1 - helpString = helpString .. command["name"] .. " - " .. command["description"] .. " " - if i >= 3 then - helpString = helpString .. "\n" - i = 0 - end - end - - message.Text = helpString - message.Parent = sender.PlayerGui - - Debris:AddItem(message, 10) -end -elseif _G.CNT.NewVersion then - commands.help["command"] = function(sender, arguments, targets) - local gui = Instance.new("ScreenGui") - gui.Name = "HelpGUI" - - local mainFrame = Instance.new("ScrollingFrame") - mainFrame.BackgroundTransparency = 0.5 - mainFrame.BorderSizePixel = 0 - mainFrame.BackgroundColor3 = Color3.new(0, 0, 0) - mainFrame.Size = UDim2.new(0.15, 0, 0.5, 0) - mainFrame.Position = UDim2.new(0.425, 0, 0.25, 0) - mainFrame.ScrollBarThickness = 2 - mainFrame.ZIndex = 3 - mainFrame.Name = "HelpFrame" - mainFrame.Parent = gui - - descriptionLabel = Instance.new("TextLabel") - descriptionLabel.Size = UDim2.new(0.15, 0, 0.06, 0) - descriptionLabel.Position = UDim2.new(0.425, 0, 0.15, 0) - descriptionLabel.BackgroundColor3 = Color3.new(0, 0, 0) - descriptionLabel.BackgroundTransparency = 1 - descriptionLabel.TextColor3 = Color3.new(1, 1, 1) - descriptionLabel.TextScaled = true - descriptionLabel.Text = "" - descriptionLabel.TextStrokeTransparency = 0 - descriptionLabel.BorderSizePixel = 0 - descriptionLabel.Name = "DescriptionLabel" - descriptionLabel.ZIndex = 5 - descriptionLabel.Parent = gui - - titleLabel = Instance.new("TextLabel") - titleLabel.Size = UDim2.new(0.15, 0, 0.025, 0) - titleLabel.Position = UDim2.new(0.425, 0, 0.218, 0) - titleLabel.Text = " Help" - titleLabel.TextXAlignment = "Left" - titleLabel.BorderSizePixel = 0 - titleLabel.TextColor3 = Color3.new(1, 1, 1) - titleLabel.TextScaled = true - titleLabel.BackgroundColor3 = Color3.new(0, 0, 0) - titleLabel.BackgroundTransparency = 0.5 - titleLabel.Name = "Title" - - closeButton = Instance.new("TextButton") - closeButton.Size = UDim2.new(0.06, 0, 0.75, 0) - closeButton.Position = UDim2.new(0.9, 0, 0.1, 0) - closeButton.TextScaled = true - closeButton.Text = "X" - closeButton.TextColor3 = Color3.new(1, 1, 1) - closeButton.BackgroundColor3 = Color3.new(170/255, 0, 0) - closeButton.BackgroundTransparency = 0.5 - closeButton.BorderSizePixel = 0 - - closeButton.MouseButton1Click:connect(function() - gui:Destroy() - end) - - closeButton.Parent = titleLabel - titleLabel.Parent = gui - - i = 0 - for _, command in pairs(commands) do - local textLabel = Instance.new("TextLabel") - textLabel.Size = UDim2.new(0.5, 0, 0.01, 0) - textLabel.Position = UDim2.new(0.25, 0, 0.01 * i, 0) - textLabel.BorderSizePixel = 0 - textLabel.BackgroundTransparency = 1 - textLabel.TextColor3 = Color3.new(1, 1, 1) - textLabel.TextScaled = true - textLabel.Text = command["name"] .. " (" .. command["level"] .. ")" - textLabel.ZIndex = 4 - textLabel.Name = command["name"] - - textLabel.MouseEnter:connect(function(x, y) - descriptionLabel.Position = UDim2.new(0, x, 0, y) - descriptionLabel.BackgroundTransparency = 1 - descriptionLabel.Text = command["description"] - end) - - mainFrame.MouseLeave:connect(function() - descriptionLabel.Text = "" - end) - - textLabel.Parent = mainFrame - i = i + 1 - end - - gui.Parent = sender.PlayerGui - end -end -commands.help["level"] = 5 -commands.help["description"] = "Shows commands." - --- Command Functions - ---- Gets a list of targets from a table of arguments. --- Possible arguments can be "me", "all", "others", "random", "admins", and "nonadmins". If the first --- argument is blank then it returns the sender as a table. --- @param table arguments: The arguments to look in for targets. --- @return table: If targets were found in the Players service then we return those targets. The table --- will be empty if no targets were found. -local function GetTargets(player, arguments) - local targets = {} - if #arguments == 0 then - return {player} - end - - for _, v in pairs(arguments) do - local arg = v:lower() - - if arg == "all" then - for _, v in pairs(Players:GetPlayers()) do - table.insert(targets, v) - end - return targets - - elseif arg == "others" then - for _, v in pairs(Players:GetPlayers()) do - if v ~= player then - table.insert(targets, v) - end - end - return targets - - elseif arg == "me" then - table.insert(targets, player) - return targets - - elseif arg == "nonadmins" then - for _, v in pairs(Players:GetPlayers()) do - if not IsAdmin(v) then - table.insert(targets, v) - end - end - return targets - - elseif arg == "admins" then - for _, v in pairs(Players:GetPlayers()) do - if IsAdmin(v) then - table.insert(targets, v) - end - end - return targets - - elseif arg == "random" then - local players = Players:GetPlayers() - local randomIndex = math.random(1, #players) - local selectedPlayer = players[randomIndex] - table.insert(targets, selectedPlayer) - return targets - - else - for _, arg in pairs(arguments) do - for _, player in pairs(Players:GetPlayers()) do - local playerCheck = string.find(player.Name:lower(), arg) - if playerCheck then - table.insert(targets, player) - end - end - end - return targets - end - end -end - ---- Parses a message for any admin commands. --- If it does find an admin command, then it executes the command's function. --- The code first checks for any prefix, and then if it does then it spawns a new thread --- that executes the command (if any) with the arguments and targets. Targets are resolved --- with the GetTargets function. Debug messages of what was execute, who executed it, and --- targets are outputted to the console. --- @param string message: The message that was sent by the player. -local function ParseMessage(player, message) - local prefixMatch - local chosenPrefix - local powerLevel - - for _, prefix in pairs(prefixes) do - prefixMatch = Starts(message, prefix) - if prefixMatch then - chosenPrefix = prefix - break - end - end - - if prefixMatch then - message = string.sub(message, string.len(chosenPrefix) + 1) - local arguments = {} - - for argument in string.gmatch(message, "[^%s]+") do - table.insert(arguments, argument) - end - - local commandName = arguments[1] - commandName = commandName:lower() - - if commandName and commands[commandName] == nil then - return - end - - local commandFunction = commands[commandName]["command"] - table.remove(arguments, 1) - local targets = GetTargets(player, arguments) - local targetNames = {} - - for _, target in pairs(targets) do - table.insert(targetNames, target.Name) - end - - if admins[player.Name] then - powerLevel = admins[player.Name] - elseif admins[player.UserId] then - powerLevel = admins[player.UserId] - end - - if commandFunction ~= nil and powerLevel <= commands[commandName]["level"] then - print("CNT: Executing command \"".. commandName .."\" with arguments \"".. table.concat(arguments, " ") .. "\" with targets \"" .. table.concat(targetNames, " ") .. "\"") - Spawn(function() - local success, fail = pcall(function() - commandFunction(player, arguments, targets) - end) - - if not success then - warn("CNT: Error occurred while executing command \"".. commandName .."\". Lua reports this error: \"".. fail .. "\"") - end - end) - end - end -end - -commands.cmdbar = {} -commands.cmdbar["name"] = "cmdbar" -commands.cmdbar["command"] = function(sender, arguments, targets) - local gui = Instance.new("ScreenGui") - gui.Name = "CommandBar" - local commandBar = Instance.new("TextBox") - commandBar.Name = "CommandBarBox" - - commandBar.Text = "" - commandBar.BackgroundColor3 = Color3.new(0, 0, 0) - commandBar.BackgroundTransparency = 0.5 - commandBar.TextScaled = true - commandBar.TextColor3 = Color3.new(1, 1, 1) - commandBar.TextStrokeTransparency = 0 - commandBar.Size = UDim2.new(1, 0, 0.05, 0) - commandBar.Position = UDim2.new(0, 0, 0.95, 0) - - commandBar.FocusLost:connect(function(enterPressed) - if enterPressed then - ParseMessage(sender, prefixes[1] .. commandBar.Text) - commandBar:Destroy() - end - end) - - commandBar.Parent = gui - gui.Parent = sender.PlayerGui - commandBar.PlaceholderText = "Enter command..." -end -commands.cmdbar["description"] = "Creates a command bar for executing commands." -commands.cmdbar["level"] = 1 - ---- Shuts down the current instance CNT is running on. --- @param reason string: The reason why the instance had to be shutdown. -local function ShutDown() - SERVER_LOCKED = true - for _, player in pairs(Players:GetPlayers()) do - Destroy(player) - end -end - ---- Day and Night -if DAY_NIGHT then - while wait(DAY_NIGHT_INTERVAL) do - Lighting:SetMinutesAfterMidnight(Lighting:GetMinutesAfterMidnight() + 1) - end -end - ---- Connections -local function OnPlayerAdded(player) - -- loadstring(anticheatHelper)() - if IsBanned(player.Name) or IsBanned(player.UserId) or SERVER_LOCKED and not IsAdmin(player.Name) then - Destroy(player) - end - - player.Chatted:connect(function(message) - if IsAdmin(player) then - ParseMessage(player, message) - end - end) - - player.CharacterAdded:connect(function(character) - if player:FindFirstChild("CNTLoopKill") then - wait() - character:BreakJoints() - end - end) -end - -Players.PlayerAdded:connect(OnPlayerAdded) - ---- Enable additional scripts ---[[ -local anticheat = game:WaitForChild("Anticheat") -anticheat.Name = RandomString(math.random(50, 75)) -anticheat.Disabled = false -anticheat.Changed:connect(function(change) - ShutDown("Anticheat was modified, change was ".. change) -end) -]] - -if INFECTED then - _G.CNT.AV.Quarantine = QUARANTINE - _G.CNT.AV.Names = NAMES - _G.CNT.AV.Classes = CLASSES - _G.CNT.AV.Scanning = TO_SCAN - game:WaitForChild("Scan").Disabled = false -end - -local message = "CNT v%s has loaded! (CLIENT: %s - LUA: %s - GUIS: %s)" -print(message:format(CNT_VERSION, CLIENT_VERSION, LUA_VERSION, (_G.CNT.NewVersion and "YES" or "NO"))) \ No newline at end of file diff --git a/resources/views/client/download.blade.php b/resources/views/client/download.blade.php deleted file mode 100644 index c8ccff1..0000000 --- a/resources/views/client/download.blade.php +++ /dev/null @@ -1,37 +0,0 @@ -@extends('layouts.app') - -@section('title') -Download -@endsection - -@section('content') -
-

Download {{ config('app.name') }}

-

Download it now to play games with your friends, host servers of your own, or to create classic-styled games.

-
- -
- Download -
-
-@endsection diff --git a/resources/views/client/host.blade.php b/resources/views/client/host.blade.php deleted file mode 100644 index 1637b0f..0000000 --- a/resources/views/client/host.blade.php +++ /dev/null @@ -1,52 +0,0 @@ -local a={"Texture","TextureId","SoundId","MeshId","SkyboxUp","SkyboxLf","SkyboxBk","SkyboxRt","SkyboxFt","SkyboxDn","PantsTemplate","ShirtTemplate","Graphic","Image","LinkedSource","AnimationId"}local b={"http://www%.roblox%.com/asset/%?id=","http://www%.roblox%.com/asset%?id=","http://%roblox%.com/asset/%?id=","http://%roblox%.com/asset%?id="}function GetDescendants(c)local d={}function FindChildren(e)for f,g in pairs(e:GetChildren())do table.insert(d,g)FindChildren(g)end end;FindChildren(c)return d end;local h=0;for i,g in pairs(GetDescendants(game))do for f,j in pairs(a)do pcall(function()if g[j]and not g:FindFirstChild(j)then assetText=string.lower(g[j])for f,k in pairs(b)do g[j],matches=string.gsub(assetText,k,"https://assetdelivery%.roblox%.com/v1/asset/%?id=")if matches>0 then h=h+1;print("Replaced "..j.." asset link for "..g.Name)break end end end end)end end;print("DONE! Replaced "..h.." properties") -local ServerPort = {{ $server->port }} - -local deathSounds = { - "http://{{ request()->getHttpHost() }}/audio/cans.mp3" -} - -local NetworkServer = game:GetService("NetworkServer") -NetworkServer:Start(ServerPort) - -local RunService = game:GetService("RunService") -RunService:Run() - -local Players = game:GetService("Players") -Players.PlayerAdded:connect(function(Player) - Player.CharacterAdded:connect(function(Character) - local Humanoid = Character:FindFirstChild("Humanoid") - Humanoid.Died:connect(function() - wait(5) - Player:LoadCharacter() - end) - end) - - Player.Chatted:connect(function(Message) - if Message == ";ec" or Message == ";reset" or Message == "kys" then - if Player.Character then - local Head = Player.Character:FindFirstChild("Head") - if Head then - local Sound = Instance.new("Sound", Head) - Sound.SoundId = deathSounds[math.random(1,#deathSounds)] - Sound:Play() - end - - Player.Character:BreakJoints() - end - end - end) -end) - -NetworkServer.ChildAdded:connect(function(child) - child.Name = "Connection" -end) - -local SitePingerCoro = coroutine.create(function() - while true do - game:HttpGet('http://{{ request()->getHttpHost() }}/server/ping/{{ $server->secret }}') - wait(60) - end -end) -coroutine.resume(SitePingerCoro) - -loadstring('http://{{ request()->getHttpHost() }}/server/admin/{{ $server->secret }}')() \ No newline at end of file diff --git a/resources/views/client/humanoidHealth.blade.php b/resources/views/client/humanoidHealth.blade.php deleted file mode 100644 index 28bd101..0000000 --- a/resources/views/client/humanoidHealth.blade.php +++ /dev/null @@ -1,153 +0,0 @@ - - null - nil - - - false - - HealthScript v2.0 - local humanoid = script.Parent.Humanoid - -if (humanoid == nil) then - print("ERROR: no humanoid found in 'HealthScript v2.0'") -end - - -function CreateGUI() - local p = game.Players:GetPlayerFromCharacter(humanoid.Parent) - print("Health for Player: " .. p.Name) - script.HealthGUI.Parent = p.PlayerGui -end - -function UpdateGUI(health) - local pgui = game.Players:GetPlayerFromCharacter(humanoid.Parent).PlayerGui - local tray = pgui.HealthGUI.Tray - - tray.HealthBar.Size = UDim2.new(0.2, 0, 0.8 * (health / humanoid.MaxHealth), 0) - tray.HealthBar.Position = UDim2.new(0.4, 0, 0.8 * (1- (health / humanoid.MaxHealth)) , 0) - -end - - -function HealthChanged(health) - UpdateGUI(health) -end - - -CreateGUI() -humanoid.HealthChanged:connect(HealthChanged) - true - - - - HealthGUI - true - - - - false - 4285215356 - 1 - 4279970357 - 1 - Tray - - 0.949999988 - 0 - 0.380000025 - 0 - - - 0.0450000018 - 0 - 0.340000004 - 0 - - 0 - true - 1 - true - - - - false - 4294967295 - 1 - 4279970357 - 1 - http://{{ request()->getHttpHost() }}/Asset/?id=18441769 - ImageLabel - - 0 - 0 - 0.800000012 - 3 - - - 1 - 0 - 0.25 - 0 - - 1 - true - 1 - true - - - - - false - 4286826262 - 0 - 4278190080 - 0 - HealthBar - - 0.420000017 - 0 - 0 - 0 - - - 0.159999996 - 0 - 0.800000012 - 0 - - 0 - true - 2 - true - - - - - false - 4289667875 - 0 - 4278190080 - 0 - HealthBarBacking - - 0.419999987 - 0 - 0 - 0 - - - 0.159999996 - 0 - 0.800000012 - 0 - - 0 - true - 1 - true - - - - - - \ No newline at end of file diff --git a/resources/views/client/join.blade.php b/resources/views/client/join.blade.php deleted file mode 100644 index e68a503..0000000 --- a/resources/views/client/join.blade.php +++ /dev/null @@ -1,54 +0,0 @@ -local PlayerName = "{{ $token->user->username }}" -local CharacterAppearance = "http://{{ request()->getHttpHost() }}/users/{{ $token->user->id }}/character?tick=" .. tick() -local ServerAddress = "{{ $token->server->ip }}" -local ServerPort = {{ $token->server->port }} - -local Players = game:GetService("Players") -Players:SetChatStyle(Enum.ChatStyle.ClassicAndBubble) - -local Player = Players:CreateLocalPlayer({{ $token->user->id }}) -Player.Name = PlayerName -Player.CharacterAppearance = CharacterAppearance - -local Visit = game:GetService("Visit") -Visit:SetUploadUrl("") - -game:SetMessage("Connecting to server...") -local NetworkClient = game:GetService("NetworkClient") -NetworkClient:Connect(ServerAddress, ServerPort) - -NetworkClient.ConnectionAccepted:connect(function(Peer, NetworkReplicator) - NetworkReplicator.Disconnection:connect(function(Peer, LostConnection) - if LostConnection then - game:SetMessage("You have lost connection to the game") - else - game:SetMessage("This game has shut down") - end - end) - - game:SetMessageBrickCount() - - local MarkerReceived = false - - local NetworkMarker = NetworkReplicator:SendMarker() - NetworkMarker.Received:connect(function() - MarkerReceived = true - - game:SetMessage("Requesting character") - NetworkReplicator:RequestCharacter() - - game:SetMessage("Waiting for character") - Player.CharacterAdded:connect(function() - game:ClearMessage() - end) - end) - - while not MarkerReceived do - workspace:ZoomToExtents() - wait(0.5) - end -end) - -NetworkClient.ConnectionFailed:connect(function(Peer, ErrorCode, ErrorMessage) - game:SetMessage(string.format("Failed to connect to the Game. (ID=%d)", ErrorCode)) -end) \ No newline at end of file diff --git a/resources/views/client/landing.blade.php b/resources/views/client/landing.blade.php deleted file mode 100644 index a25bfb0..0000000 --- a/resources/views/client/landing.blade.php +++ /dev/null @@ -1,16 +0,0 @@ -@extends('layouts.app') - -@section('title') -Studio Landing -@endsection - -@section('content') -
-

Tadah Studio

-
-

You launched this from Studio! Congratulations!

-

To create a new place, go to File > New.

-

BEWARE! Old versions of Studio are very buggy, and I don't recommend them for long-term building. You should build a place in modern Roblox Studio (or Roblox Studio 2013 so you don't need to convert) and then convert it to XML format. Importing models with tools that use the modern XML format for Roblox is broken.

-

Credit to all-knowing Bepis for helping out with Tadah.

-
-@endsection diff --git a/resources/views/client/playsolo.blade.php b/resources/views/client/playsolo.blade.php deleted file mode 100644 index 0dbd53b..0000000 --- a/resources/views/client/playsolo.blade.php +++ /dev/null @@ -1,18 +0,0 @@ -%ZAhRSnnAub7257XTr2+RQULLqh6Bw12qTYVls7GCLl4Ujyc6qx2eignDaSvkh4naoECaOQUC8NmCd2dDmkVY9muNMxK83q2k8jrk9pfXUZRLt6iHNziCL48v9DTvnfVrtj4RP1LJjY5MVouOFZaRDq15OgEfJjwsfPvaamrnRFs=% -local runService = game:GetService("RunService") -local players = game:GetService("Players") - -local player = players:CreateLocalPlayer(0) - -player.CharacterAdded:connect(function(character) - repeat wait() until character:FindFirstChild("Humanoid") - local humanoid = character:FindFirstChild("Humanoid") - - humanoid.Died:connect(function() - wait(5) - player:LoadCharacter() - end) -end) - -runService:Run() -player:LoadCharacter() \ No newline at end of file diff --git a/resources/views/client/studioscript.blade.php b/resources/views/client/studioscript.blade.php deleted file mode 100644 index 1c0a365..0000000 --- a/resources/views/client/studioscript.blade.php +++ /dev/null @@ -1,32 +0,0 @@ -%e8nfZykIKovs9V+UPpRMF4zaphwZnJI11MGNuHBhnQYDTMgEzlO7/C6RNt5o/+gh7qSZVgERc2ww9UNCQJiy9KhaB/0WmXAk85OahgPL7qdpyO4HTKlS6fr+WCiiPyPwBvP337Fr9TyI14LWvq+JuyGEbic5z9EShdpPszHfswI=% --- Setup studio cmd bar & load core scripts - -print("hi") - -local starterScriptID = 0 - -pcall(function() game:GetService("InsertService"):SetFreeModelUrl("http://tadah.rocks/Game/Tools/InsertAsset.ashx?type=fm&q=%s&pg=%d&rs=%d") end) -pcall(function() game:GetService("InsertService"):SetFreeDecalUrl("http://tadah.rocks/Game/Tools/InsertAsset.ashx?type=fd&q=%s&pg=%d&rs=%d") end) - -game:GetService("ScriptInformationProvider"):SetAssetUrl("http://tadah.rocks/asset/") -game:GetService("InsertService"):SetBaseSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=10&type=base") -game:GetService("InsertService"):SetUserSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d&t=2") -game:GetService("InsertService"):SetCollectionUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?sid=%d") -game:GetService("InsertService"):SetAssetUrl("http://tadah.rocks/asset/?id=%d") -game:GetService("InsertService"):SetAssetVersionUrl("http://tadah.rocks/Asset/?assetversionid=%d") -game:GetService("InsertService"):SetTrustLevel(0) - -pcall(function() game:GetService("SocialService"):SetFriendUrl("http://tadah.rocks/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end) -pcall(function() game:GetService("SocialService"):SetBestFriendUrl("http://tadah.rocks/Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end) -pcall(function() game:GetService("SocialService"):SetGroupUrl("http://tadah.rocks/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end) -pcall(function() game:GetService("SocialService"):SetGroupRankUrl("http://tadah.rocks/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end) -pcall(function() game:GetService("SocialService"):SetGroupRoleUrl("http://tadah.rocks/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end) - -if game.CoreGui.Version == 7 then starterScriptID = 839 end --2012 - -print("done") - -local result = pcall(function() game:GetService("ScriptContext"):AddStarterScript(starterScriptID) end) -if not result then - pcall(function() game:GetService("ScriptContext"):AddCoreScript(starterScriptID,game:GetService("ScriptContext"),"StarterScript") end) -end diff --git a/resources/views/client/xmlasset.blade.php b/resources/views/client/xmlasset.blade.php deleted file mode 100644 index 52e17ca..0000000 --- a/resources/views/client/xmlasset.blade.php +++ /dev/null @@ -1,54 +0,0 @@ -@if ($item->type == "Face") - - null - nil - - - 5 - face - 20 - 0 - {{ url('/asset?id=' . $item->id) }} - true - - - -@elseif ($item->type == "T-Shirt") - - null - nil - - - {{ url('/asset?id=' . $item->id) }} - Shirt Graphic - true - - - -@elseif ($item->type == "Shirt") - - null - nil - - - {{ url('/asset?id=' . $item->id) }} - Shirt - true - - - -@elseif ($item->type == "Pants") - - null - nil - - - {{ url('/asset?id=' . $item->id) }} - Pants - true - - - -@else -Invalid asset. -@endif \ No newline at end of file diff --git a/resources/views/errors/401.blade.php b/resources/views/errors/401.blade.php deleted file mode 100644 index 5c586db..0000000 --- a/resources/views/errors/401.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::minimal') - -@section('title', __('Unauthorized')) -@section('code', '401') -@section('message', __('Unauthorized')) diff --git a/resources/views/errors/403.blade.php b/resources/views/errors/403.blade.php deleted file mode 100644 index a825608..0000000 --- a/resources/views/errors/403.blade.php +++ /dev/null @@ -1,24 +0,0 @@ -@extends('layouts.app') - -@section('title') -Error -@endsection - -@section('content') -
-
-
-
-
Error
- -
-

403

-
Access Denied
-

Looks like you shouldn't be here...

-

Main

-
-
-
-
-
-@endsection diff --git a/resources/views/errors/404.blade.php b/resources/views/errors/404.blade.php deleted file mode 100644 index c5d4934..0000000 --- a/resources/views/errors/404.blade.php +++ /dev/null @@ -1,24 +0,0 @@ -@extends('layouts.app') - -@section('title') -Error -@endsection - -@section('content') -
-
-
-
-
Error
- -
-

404

-
Not Found
-

Whatever you are looking for isn't here. It might have gotten deleted or never existed in the first place.

-

Main

-
-
-
-
-
-@endsection diff --git a/resources/views/errors/419.blade.php b/resources/views/errors/419.blade.php deleted file mode 100644 index c09216e..0000000 --- a/resources/views/errors/419.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::minimal') - -@section('title', __('Page Expired')) -@section('code', '419') -@section('message', __('Page Expired')) diff --git a/resources/views/errors/429.blade.php b/resources/views/errors/429.blade.php deleted file mode 100644 index f01b07b..0000000 --- a/resources/views/errors/429.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::minimal') - -@section('title', __('Too Many Requests')) -@section('code', '429') -@section('message', __('Too Many Requests')) diff --git a/resources/views/errors/500.blade.php b/resources/views/errors/500.blade.php deleted file mode 100644 index 2e7e0e3..0000000 --- a/resources/views/errors/500.blade.php +++ /dev/null @@ -1,24 +0,0 @@ -@extends('layouts.app') - -@section('title') -Error -@endsection - -@section('content') -
-
-
-
-
Error
- -
-

500

-
Internal Server Error
-

The website had a hard time processing this request. Try again later. If this persists, please contact the owners. They can be reached at tadahcommunity@gmail.com or on the help section of the forums.

-

Main

-
-
-
-
-
-@endsection diff --git a/resources/views/errors/503.blade.php b/resources/views/errors/503.blade.php deleted file mode 100644 index c5a9dde..0000000 --- a/resources/views/errors/503.blade.php +++ /dev/null @@ -1,5 +0,0 @@ -@extends('errors::minimal') - -@section('title', __('Service Unavailable')) -@section('code', '503') -@section('message', __('Service Unavailable')) diff --git a/resources/views/errors/illustrated-layout.blade.php b/resources/views/errors/illustrated-layout.blade.php deleted file mode 100644 index 2e5b824..0000000 --- a/resources/views/errors/illustrated-layout.blade.php +++ /dev/null @@ -1,486 +0,0 @@ - - - - - - - @yield('title') - - - - - - - - - -
-
-
-
- @yield('code', __('Oh no')) -
- -
- -

- @yield('message') -

- - - - -
-
- -
- @yield('image') -
-
- - diff --git a/resources/views/errors/layout.blade.php b/resources/views/errors/layout.blade.php deleted file mode 100644 index 4f2318f..0000000 --- a/resources/views/errors/layout.blade.php +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - @yield('title') - - - - - - - - - -
-
-
- @yield('message') -
-
-
- - diff --git a/resources/views/errors/minimal.blade.php b/resources/views/errors/minimal.blade.php deleted file mode 100644 index ee16d44..0000000 --- a/resources/views/errors/minimal.blade.php +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - @yield('title') - - - - - - - - - - -
-
-
-
- @yield('code') -
- -
- @yield('message') -
-
-
-
- - diff --git a/resources/views/forum/category-old.blade.php b/resources/views/forum/category-old.blade.php deleted file mode 100644 index e468849..0000000 --- a/resources/views/forum/category-old.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.app') - -@section('title') -{{ $category->name }} -@endsection - -@section('content') -
- @if (!$category->admin_only) - - @else - @if (Auth::user()->admin) - - @else -

You can't post here.

- @endif - @endif - -
- - - - - - - - - - @foreach ($posts as $post) - - - - - - - @endforeach - -
TitleAuthorRepliesLast Post
- -
-

@if ($post->stickied) @endif @if ($post->locked) @endif {{ $post->title }}

-
-
-
{{ $post->user->username }}{{ $post->replies()->count() }}{{ $post->updated_at->diffForHumans() }}
-
- -
- {{ $posts->links('pagination::bootstrap-4') }} -
-
-@endsection diff --git a/resources/views/forum/category.blade.php b/resources/views/forum/category.blade.php deleted file mode 100644 index 7c51923..0000000 --- a/resources/views/forum/category.blade.php +++ /dev/null @@ -1,113 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - -
-
- - - - - - - - - -
- -
- - - - - - - - - - @if (!$category->admin_only) - - @else - @if (Auth::user()->admin) - - @endif - @endif - - - - - - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $category->name }} - - - - -  
- -
-
-   -
Search - this forum: - - -
- - - - - - - - @foreach ($posts as $post) - - - - - - - - @endforeach - - - -
 Thread  Started By  Replies  Last Post 
{{ $post->title }} {{ $post->user->username }}{{ $post->replies->count() }}{{ $post->updated_at->diffForHumans() }}
 
- - - - {{ $posts->links('pagination.simple') }} - -
-
-
-   -
-
-
   
-
-@endsection \ No newline at end of file diff --git a/resources/views/forum/editpost.blade.php b/resources/views/forum/editpost.blade.php deleted file mode 100644 index 234e950..0000000 --- a/resources/views/forum/editpost.blade.php +++ /dev/null @@ -1,156 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - -
-
- - - - - - - - - - -
      -
- - - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $post->category->name }} - - - - -  
- -
-
-

- - - - - - - - - -
-  Post a New Message -
- - @if (session()->has('error')) - - - - @endif - - - - - - - - - - - @error('title') - - @enderror - - - - - - @error('body') - - @enderror - - - - -
{{ session()->get('error') }}
Author: {{ Auth::user()->username }} - -
Subject: {{ $message }}
Message: -  {{ $message }}
- -
-
-

-

- - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $post->category->name }} - - - - -  
- -
-
-

-
-
      
-
-
- @csrf - - -
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/forum/editreply.blade.php b/resources/views/forum/editreply.blade.php deleted file mode 100644 index 30d5cd0..0000000 --- a/resources/views/forum/editreply.blade.php +++ /dev/null @@ -1,148 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - -
-
- - - - - - - - - - -
      -
- - - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $reply->category->name }} - - - - -  
- -
-
-

- - - - - - - - - -
-  Edit reply to an Existing Message -
- - @if (session()->has('error')) - - - - @endif - - - - - - - - - - - - @error('body') - - @enderror - - - - -
{{ session()->get('error') }}
Author: {{ Auth::user()->username }} - -
Message: -  {{ $message }}
- -
-
-

-

- - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $reply->category->name }} - - - - -  
- -
-
-

-
-
      
-
-
- @csrf - - -
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/forum/index-old.blade.php b/resources/views/forum/index-old.blade.php deleted file mode 100644 index eeb0673..0000000 --- a/resources/views/forum/index-old.blade.php +++ /dev/null @@ -1,38 +0,0 @@ -@extends('layouts.app') - -@section('title') -Forum -@endsection - -@section('content') -
-
- - - - - - - - - - @foreach ($categories as $category) - - - - - - - @endforeach - -
CategoryThreadsPostsLast Post
- -
-

{{ $category->name }}

-

{{ $category->description }}

-
-
-
{{ $category->threads()->count() }}{{ $category->threads()->count() + $category->posts()->count() }}{{ $category->updated_at->diffForHumans() }}
-
-
-@endsection diff --git a/resources/views/forum/index.blade.php b/resources/views/forum/index.blade.php deleted file mode 100644 index 08ba4ce..0000000 --- a/resources/views/forum/index.blade.php +++ /dev/null @@ -1,94 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - -
    -

- - -

- - - - - - - - - -
-  Search Forums -
- - - - - - - -
- - - -
- - -
-
-

-
    -     -
- - - - - - - - - - - - @foreach ($categories as $category) - - - - - - - - @endforeach - -
Forum  Threads    Posts   Last Post 
{{ config('app.name') }}
{{ $category->name }}
{{ $category->description }}
{{ $category->threads()->count() }}{{ $category->threads()->count() + $category->posts()->count() }}{{ $category->updated_at->diffForHumans() }}
-

-
      
-
-@endsection \ No newline at end of file diff --git a/resources/views/forum/newpost.blade.php b/resources/views/forum/newpost.blade.php deleted file mode 100644 index 9dbd78a..0000000 --- a/resources/views/forum/newpost.blade.php +++ /dev/null @@ -1,164 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - -
-
- - - - - - - - - - -
      -
- - - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $category->name }} - - - - -  
- -
-
-

- - - - - - - - - -
-  Post a New Message -
- - @if (session()->has('error')) - - - - @endif - - - - - - - - - - - @error('title') - - @enderror - - - - - - @error('body') - - @enderror - - - - - - - - -
{{ session()->get('error') }}
Author: {{ Auth::user()->username }} - -
Subject: {{ $message }}
Message: -  {{ $message }}
  - -
- -
-
-

-

- - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $category->name }} - - - - -  
- -
-
-

-
-
      
-
-
- @csrf - - - -
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/forum/newreply.blade.php b/resources/views/forum/newreply.blade.php deleted file mode 100644 index 4fabed9..0000000 --- a/resources/views/forum/newreply.blade.php +++ /dev/null @@ -1,176 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - -
-
- - - - - - - - - - -
      -
- - - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $post->category->name }} - - - - -  
- -
-
-

- - - - - - - - - - - - - - - - - -
-  Reply to an Existing Message -
- - - - - - - - - - - - - - - - -
The message you are replying to:
Posted By: {{ $post->user->username }} on {{ date('F j, Y, g:i A', strtotime($post->created_at)) }}
Subject: {{ $post->title }}
Message: @parsedown($post->body) -
-
  -
- - @if (session()->has('error')) - - - - @endif - - - - - - - - - - - - @error('body') - - @enderror - - - - -
{{ session()->get('error') }}
Author: {{ Auth::user()->username }} - -
Message: -  {{ $message }}
- -
-
-

-

- - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $post->category->name }} - - - - -  
- -
-
-

-
-
      
-
-
- @csrf - - -
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/forum/post.blade.php b/resources/views/forum/post.blade.php deleted file mode 100644 index 862b4c6..0000000 --- a/resources/views/forum/post.blade.php +++ /dev/null @@ -1,269 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - - - - - -
-
- - - - - - - - - - -
      -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $post->category->name }} - - - -  > - {{ $post->title }} - -  
- -
-
  -
- - - - - - - - - - - - - @foreach ($replies as $reply) - - - - - @endforeach -
- - - - - -
Previous Thread :: Next Thread 
-
 Author Thread: {{ $post->title }}
- - - - - - - - @if ($post->user->admin) - - - - @endif - - - - - - - - - - - - -
user->id)) src="/ForumC/skins/default/images/user_IsOnline.gif" @else src="/ForumC/skins/default/images/user_IsOffline.gif" @endif style="border-width:0px;" /> {{ $post->user->username }}
Forum Moderator
Joined: {{ date('m/d/Y', strtotime($post->user->joined)) }}
Total Posts: {{ $post->user->posts->count() + $post->user->threads->count() }}
 
-
- - - - - - - - - - - - - -
- - {{ $post->title }} - -
Posted: {{ date('m-d-Y g:i A', strtotime($post->created_at)) }} ({{ $post->created_at->diffForHumans() }}) -
@parsedown($post->body)
- @if (!$post->locked) - - @endif - @if (Auth::user()->admin) - - @endif -
-
- - - - - - - - @if ($reply->user->admin) - - - - @endif - - - - - - - - - - - - -
user->id)) src="/ForumC/skins/default/images/user_IsOnline.gif" @else src="/ForumC/skins/default/images/user_IsOffline.gif" @endif style="border-width:0px;" /> {{ $reply->user->username }}
Forum Moderator
Joined: {{ date('m/d/Y', strtotime($reply->user->joined)) }}
Total posts: {{ $reply->user->posts->count() + $reply->user->threads->count() }}
 
-
- - - - - - - - - - - - - - - -
- - Re: {{ $post->title }} - -
Posted: {{ date('F j, Y, g:i A', strtotime($reply->created_at)) }} ({{ $reply->created_at->diffForHumans() }}) -
@parsedown($reply->body)
- @if (!$post->locked) - - @endif - @if (Auth::user()->admin) -
- -
- @csrf - - -
-
- @endif -
-
- - - - - -
{{ $replies->links('pagination.simple') }}
-
-
 
-
- - - - - - - - -
- - {{ config('app.name') }} Forum - - - -  > - {{ $post->category->name }} - - - -  > - {{ $post->title }} - -  
- -
-
-
-
      
-
-@endsection \ No newline at end of file diff --git a/resources/views/home.blade.php b/resources/views/home.blade.php deleted file mode 100644 index 5a1102d..0000000 --- a/resources/views/home.blade.php +++ /dev/null @@ -1,138 +0,0 @@ -@extends('layouts.app') - -@section('content') - - - -
- -
- -
- Hi, {{ Auth::user()->username }} -
-
-
- {{ Auth::user()->username }} -
- -
-
-
-
-
-
- 0 -
-
-
-
- 0 -
- -
-
-
- 0 -
-
-
-
-
-
-
-
- -
-
- - Current Status - -
-
- - Right now I'm: -
- -
-    -

-
-
-
- - My Feed - -
-
-
- -
-
- There is no Feed yet. This'll be added later. -
-
-
-
-
-
-
-@endsection \ No newline at end of file diff --git a/resources/views/layouts/app-old.blade.php b/resources/views/layouts/app-old.blade.php deleted file mode 100644 index f3ade76..0000000 --- a/resources/views/layouts/app-old.blade.php +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - @yield('title') - {{ config('app.name') }} - - @yield('meta') - - - - - - - - - - - - - - - - - - -
- - -
- @yield('content') -
- - -
- @yield('scripts') - - diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php deleted file mode 100644 index bb3fc2e..0000000 --- a/resources/views/layouts/app.blade.php +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - {{ config('app.name') }} - - - - - - - - - - - - - -
- - - - - - -
-
- -
-
- -
-
-
-
-
-
-
Tadah Eleven is not finished at the moment. Please hang tight as development continues!
-
-
-
-
- @yield('content') -
- -
- @yield('scripts') -
@csrf
-
- - diff --git a/resources/views/pagination/simple.blade.php b/resources/views/pagination/simple.blade.php deleted file mode 100644 index a6aa9ac..0000000 --- a/resources/views/pagination/simple.blade.php +++ /dev/null @@ -1,19 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/servers/configure.blade.php b/resources/views/servers/configure.blade.php deleted file mode 100644 index 5479826..0000000 --- a/resources/views/servers/configure.blade.php +++ /dev/null @@ -1,81 +0,0 @@ -@extends('layouts.app') - -@section('title') -Configure Server -@endsection - -@section('content') -
-
-
-
-
{{ __('Configure Server') }}
- -
-
- @csrf - -
- - -
- - - @error('name') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('description') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('ipaddress') - - {{ $message }} - - @enderror -
-
- -
- - -
- -
-
- -
-
- -
-
-
-
-
-
-
-
-@endsection diff --git a/resources/views/servers/create.blade.php b/resources/views/servers/create.blade.php deleted file mode 100644 index f6fdb0e..0000000 --- a/resources/views/servers/create.blade.php +++ /dev/null @@ -1,86 +0,0 @@ -@extends('layouts.app') - -@section('title') -Create Server -@endsection - -@section('content') -
-
-
-
-
{{ __('Create Server') }}
- -
- @if (config('app.server_creation_enabled')) -
- @csrf - -
- - -
- - - @error('name') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('description') - - {{ $message }} - - @enderror -
-
- -
- - -
- - - @error('ipaddress') - - {{ $message }} - - @enderror -
-
- -
- - -
- -
-
- -
-
- -
-
-
- @else -

Server creation disabled

-

Sorry, server creation has been disabled. Check back later.

- @endif -
-
-
-
-
-@endsection diff --git a/resources/views/servers/index.blade.php b/resources/views/servers/index.blade.php deleted file mode 100644 index 18cb259..0000000 --- a/resources/views/servers/index.blade.php +++ /dev/null @@ -1,265 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('content') - -
-
- Games - -
- - -
-
-
- - - - -
-
- -
-
-
-
- -
- @foreach ($servers as $server) -
-
-
- - -
- 0 players online -
- -
- -
-
- @endforeach -
-
- - 1 of -
-
-
-
- -
-
-
-
-@endsection \ No newline at end of file diff --git a/resources/views/servers/server.blade.php b/resources/views/servers/server.blade.php deleted file mode 100644 index 0740073..0000000 --- a/resources/views/servers/server.blade.php +++ /dev/null @@ -1,251 +0,0 @@ -@inject('user', 'App\Http\Controllers\UsersController') - -@extends('layouts.app') - -@section('content') - -
-
- - -

- {{ $server->name }} -

-
-
-
-
-
-
- {{ $server->name }} -
-
- Favorite -
-
-
- - - - - - - - Copy Protection: CopyLocked - - Gear Not Allowed -
-
- - - -
-
-
- -
-
-
-
-
-
- -
-

- {{ config('app.name') }} Place -

-
- -
-
- -
-
- {{ $server->user->username }} -
- Creator: - {{ $server->user->username }} -
-
-
- Created: - {{ $server->created_at->diffForHumans() }} -
-
- Updated: - {{ $server->updated_at->diffForHumans() }} -
-
- Favorited: - 0 times -
-
- Visited: - 0 times -
-
-
-
- Report Abuse - Report Abuse -
-
-
-
-
-
-
-
-
- - - - - -
-
-
-
-
-
Create A Set
-
-
-

- Name: - -

-
- -
- -

Description:

- -

Image:

- -
- - -
-
-
- - -
-
-
-@endsection \ No newline at end of file diff --git a/resources/views/terms/credits.blade.php b/resources/views/terms/credits.blade.php deleted file mode 100644 index 20128a7..0000000 --- a/resources/views/terms/credits.blade.php +++ /dev/null @@ -1,30 +0,0 @@ -@extends('layouts.app') - -@section('title') -Contributors -@endsection - -@section('content') -
-
-
-
-
Credits
-
-

{{ config('app.name') }} Contributors

-
    -
  • kinery - Created Tadah
  • -
  • Anonymous - Making our thumbnails possible and giving me tips on the client.
  • -
  • Shambler - Ideas guy, helped found Tadah and give me motivation to create.
  • -
  • Carrot - Made the server page less ugly and some more client tips.
  • -
  • Anonymous - Cleaning up my code and hacking the GitHub repository, helped properly style the catalog page.
  • -
  • spike - Artist, made the Dahllor icon we use today.
  • -
  • kaykayko - existing
  • -
-

Without these people lending out their help Tadah would not be as good as it is today. Thanks, everyone.

-
-
-
-
-
-@endsection diff --git a/resources/views/terms/rules.blade.php b/resources/views/terms/rules.blade.php deleted file mode 100644 index 71d160c..0000000 --- a/resources/views/terms/rules.blade.php +++ /dev/null @@ -1,48 +0,0 @@ -@extends('layouts.app') - -@section('title') -Rules -@endsection - -@section('content') -
-
-
-
-
Rules & Privacy
-
-

Rules and Terms

-

The rules here apply to the website, and objects that appear on the website. For example, server names, server descriptions, user-created assets, user-created asset names and descriptions, user biographies, everything like that.

-

We offer leniency for content that appears on all users' servers, and things that go on in users' servers. We are not responsible for what occurs within a server, such as chats, nor content that is downloaded and/or displayed from a server. Chat is not logged (and will never be logged by {{ config('app.name') }}).

-

Content that is not provided by {{ config('app.name') }} from a third party that is used within servers do not need to follow these rules, with exceptions being that you may not host any servers that contain any child abuse content or gore. Anything illegal will be reported to the authorities, and you will be permanently removed from {{ config('app.name') }}.

- -
    -
  • No pornographic content uploaded to the website.
  • -
  • No content depicting child abuse of any sort. This includes all content within servers.
  • -
  • No content that depicts heavy gore. This includes all content within servers.
  • -
  • This is a game. Respect everyone.
  • -
  • Our moderators have the right to remove anyone at any time for any reason.
  • -
  • Server hosts are the sole people responsible for what occurs within their servers, except if there was an exploiter/hacker/cheater present.
  • -
-
-
-

Privacy

-

In the event that there is ever a breach of data, all users will be notified via the website and our community Discord server. We will create a page that tells you the date of the breach and what data was stolen. Below is data that we store in our database that identifies you:

- -
    -
  • Your email
  • -
  • Your password (hashed, never plain text)
  • -
  • Your IP address (register IP address and last used IP address)
  • -
  • Invite key used to register
  • -
-
-

If you want your data removed from {{ config('app.name') }}, contact us by email.

-
-

Contact Us

-

You may contact us via our email.

-
-
-
-
-
-@endsection diff --git a/resources/views/users/banned.blade.php b/resources/views/users/banned.blade.php deleted file mode 100644 index 22ba9f1..0000000 --- a/resources/views/users/banned.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@extends('layouts.app') - -@section('title') -Banned -@endsection - -@section('content') -
- @if (Auth::user()->banned) -

Banned

-
-

You've been banned from {{ config('app.name') }}.

-

Reason: {{ Auth::user()->ban_reason }}

-

Banned until {{ date('m/d/Y', strtotime(Auth::user()->banned_until)) }}.

- @if (Auth::user()->banned_until->isPast()) -
- @csrf - - -
- @endif - @else -

Hey!

-

You're not banned, and you shouldn't be here!

- @endif -
-@endsection diff --git a/resources/views/users/bodycolors.blade.php b/resources/views/users/bodycolors.blade.php deleted file mode 100644 index 1880559..0000000 --- a/resources/views/users/bodycolors.blade.php +++ /dev/null @@ -1,16 +0,0 @@ - - null - nil - - - {{ $bodycolors->head_color }} - {{ $bodycolors->left_arm_color }} - {{ $bodycolors->left_leg_color }} - Body Colors - {{ $bodycolors->right_arm_color }} - {{ $bodycolors->right_leg_color }} - {{ $bodycolors->torso_color }} - true - - - \ No newline at end of file diff --git a/resources/views/users/character.blade.php b/resources/views/users/character.blade.php deleted file mode 100644 index e69de29..0000000 diff --git a/resources/views/users/charactercolors.blade.php b/resources/views/users/charactercolors.blade.php deleted file mode 100644 index 410ff91..0000000 --- a/resources/views/users/charactercolors.blade.php +++ /dev/null @@ -1,217 +0,0 @@ -@extends('layouts.app') - -@section('title') -Character -@endsection - -@section('meta') - - - - - - -@endsection - -@section('content') - - - - -
-
-
-
-
Character
-
- - Character image -
-
-
-
-
- -
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/users/characteritems.blade.php b/resources/views/users/characteritems.blade.php deleted file mode 100644 index a8a6c58..0000000 --- a/resources/views/users/characteritems.blade.php +++ /dev/null @@ -1,105 +0,0 @@ -@extends('layouts.app') - -@section('title') -Character -@endsection - -@section('meta') - - - - - - -@endsection - -@section('content') -
-
-
-
-
Character
-
- - Character image -
-
-
-
-
- -
- @if ($items->count() > 0) -
- @foreach ($items->all() as $item) -
-
- {{ $item->name }} thumbnail -
- -
- @csrf - -
-
-
-
- @endforeach -
- @else -
-

Nothing found

-

You don't own any items in this category.

-
- @endif -
-
-
-
-
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/users/index-old.blade.php b/resources/views/users/index-old.blade.php deleted file mode 100644 index cf7666a..0000000 --- a/resources/views/users/index-old.blade.php +++ /dev/null @@ -1,61 +0,0 @@ -@extends('layouts.app') - -@section('title') -Users -@endsection - -@section('meta') - - - - - - -@endsection - -@section('content') -
-
-
- - -
-
- - @if ($users->count() > 0) - - - - - - - - - - @foreach ($users as $user) - - - - @if (Cache::has('last_online' . $user->id)) - - @else - - @endif - - - - @endforeach - -
CharacterNameOnlineBlurbLast Online
{{ $user->username }}admin) class="text-danger" @endif href="{{ route('users.profile', $user->id) }}">{{ $user->username }}Online OnlineOffline Offline{{ $user->blurb }}{{ $user->last_online->diffForHumans() }}
- @else -
-

Nothing found

-

Looks like there are no users to display for this query.

-
- @endif - -
- {{ $users->links('pagination::bootstrap-4') }} -
-
-@endsection diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php deleted file mode 100644 index f855057..0000000 --- a/resources/views/users/index.blade.php +++ /dev/null @@ -1,82 +0,0 @@ -@extends('layouts.app') - -@section('content') - -
-
-
- - - - - -
- Search: - - - - - - - - -
-
-
- -
-
- - - - - - - - - @foreach ($users as $user) - - - - - - - - @endforeach -
Avatar NameBlurbLast Seen
- {{ $user->username }} - - - id)) src="images/online.png" @else src="images/offline.png" @endif style="border-width:0px;" /> - - {{ $user->username }} - -
- {{ $user->blurb }} -
-
- {{ $user->last_online->diffForHumans() }} -
-
-
{{ $users->links('pagination.simple') }}
-
-
-
-
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/users/profile.blade.php b/resources/views/users/profile.blade.php deleted file mode 100644 index f80deab..0000000 --- a/resources/views/users/profile.blade.php +++ /dev/null @@ -1,58 +0,0 @@ -@extends('layouts.app') - -@section('title') -{{ $user->username }}'s Profile -@endsection - -@section('meta') - - - - - - -@endsection - -@section('content') -
- @if ($user->banned) - - @endif -
-
-
-
{{ $user->username }}
-
- @if (Cache::has('last_online' . $user->id)) -

[ Online ]

- @else -

[ Offline ]

- @endif -

{{ $user->username }}

-
{{ $user->blurb }}
-
- Joined: {{ date('m/d/Y', strtotime($user->joined)) }} -
-
-
-
-
-
Servers
-
- @if ($servers->count() > 0 ) - @foreach ($servers as $server) - - @endforeach - @else - This user has no servers. - @endif -
-
-
-
-
-@endsection \ No newline at end of file diff --git a/resources/views/users/settings.blade.php b/resources/views/users/settings.blade.php deleted file mode 100644 index 91bc1a7..0000000 --- a/resources/views/users/settings.blade.php +++ /dev/null @@ -1,55 +0,0 @@ -@extends('layouts.app') - -@section('title') -Settings -@endsection - -@section('content') -
-
-
-
-
User Settings
-
- @if (session()->has('error')) -
- {{ session()->get('error') }} -
- @endif - @if (session()->has('message')) -
- {{ session()->get('message') }} -
- @endif -

Username: {{ Auth::user()->username }}
Email: {{ Auth::user()->email }}

-
-
- @csrf - -
- - - - @error('blurb') - - {{ $message }} - - @enderror -
- -
- -
-
-
-
-
-
-
-@endsection - -@section('scripts') - -@endsection \ No newline at end of file diff --git a/resources/views/users/user.blade.php b/resources/views/users/user.blade.php deleted file mode 100644 index 4e1778c..0000000 --- a/resources/views/users/user.blade.php +++ /dev/null @@ -1,503 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -
-
- Hi, {{ Auth::user()->username }} -
-
- - Right now I'm: -    - "not yet"   - > Update My Status - -
-
- -
-
- Your Profile -
-
-
-
-
-
- - {{ Auth::user()->username }} -
- -
-
-
-
-
-
- 0 -
-
-
-
- 0 -
- -
-
-
- 0 -
-
-
-
-
-
-
-
-
-
-
- {{ config('app.name') }} Badges -
-
- - - -

You have no Badges. This feature will come later.

- -
-
- -
Statistics
-
- - - - - - - - - -
- Friends: - - 0 -
Forum Posts:{{ Auth::user()->threads->count() + Auth::user()->posts->count() }}
-
-
- -
-
- Active Places -
-
-
-
-
- - @foreach ($servers as $server) - -
- {{ $server->name }} -
-
- @endforeach -
-
-
-
-
My Friends (Edit)
-
- - - -

You have no Friends. This feature will come later.

- -
-
-
-
-
- -
-
-
-
-
-
- Stuff -
-
-
-
- Heads -
-
- Faces -
-
- Gear -
-
- Hats -
-
- T-Shirts -
-
- Shirts -
-
- Pants -
-
- Decals -
-
- Models -
-
- Places -
-
- Badges -
-
- Left Arms -
- -
- Left Legs -
- -
- Torsos -
-
- Packages -
-
-
-
- Shop    -
- - - - - - - - -
-
- -
- Warmest Winter Cap -
-
- -
- Creator: - ROBLOX -
-
- - Tx: 10 -
-
-
-
-
- -
- ROBLOX Visor -
-
- -
- Creator: - ROBLOX -
-
- - Tx: 10 -
-
-
-
-
- -
- Fancy Sailor -
-
- -
- Creator: - ROBLOX -
-
- - Tx: 10 -
-
-
-
-
-
Recommendations
-
-
Here are some other Hats that we think you might like.
- - - - - - - - - - - -
-
-
- Queen's Guard Hat -
-
- -
- Creator: ROBLOX -
-
-
-
-
-
- Beautiful Hair for Beautiful People -
- -
-
-
-
- Chef Hat -
-
-
- Chef Hat -
-
- Creator: ROBLOX -
-
-
-
-
-
- Ninja Mask of Shadows -
-
- -
- Creator: ROBLOX -
-
-
-
-
-
- Paper Bag -
-
-
- Paper Bag -
-
- Creator: ROBLOX -
-
-
-
-
-
- Rubber Duckie -
-
- -
- Creator: ROBLOX -
-
-
-
-
-
-
-
-
-
- -
-
-
-@endsection diff --git a/resources/views/vendor/mail/html/button.blade.php b/resources/views/vendor/mail/html/button.blade.php deleted file mode 100644 index e74fe55..0000000 --- a/resources/views/vendor/mail/html/button.blade.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/resources/views/vendor/mail/html/footer.blade.php b/resources/views/vendor/mail/html/footer.blade.php deleted file mode 100644 index 3ff41f8..0000000 --- a/resources/views/vendor/mail/html/footer.blade.php +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php deleted file mode 100644 index fa1875c..0000000 --- a/resources/views/vendor/mail/html/header.blade.php +++ /dev/null @@ -1,11 +0,0 @@ - - - -@if (trim($slot) === 'Laravel') - -@else -{{ $slot }} -@endif - - - diff --git a/resources/views/vendor/mail/html/layout.blade.php b/resources/views/vendor/mail/html/layout.blade.php deleted file mode 100644 index 21d349b..0000000 --- a/resources/views/vendor/mail/html/layout.blade.php +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php deleted file mode 100644 index deec4a1..0000000 --- a/resources/views/vendor/mail/html/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@component('mail::layout') -{{-- Header --}} -@slot('header') -@component('mail::header', ['url' => config('app.url')]) -{{ config('app.name') }} -@endcomponent -@endslot - -{{-- Body --}} -{{ $slot }} - -{{-- Subcopy --}} -@isset($subcopy) -@slot('subcopy') -@component('mail::subcopy') -{{ $subcopy }} -@endcomponent -@endslot -@endisset - -{{-- Footer --}} -@slot('footer') -@component('mail::footer') -© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') -@endcomponent -@endslot -@endcomponent diff --git a/resources/views/vendor/mail/html/panel.blade.php b/resources/views/vendor/mail/html/panel.blade.php deleted file mode 100644 index 2975a60..0000000 --- a/resources/views/vendor/mail/html/panel.blade.php +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/resources/views/vendor/mail/html/subcopy.blade.php b/resources/views/vendor/mail/html/subcopy.blade.php deleted file mode 100644 index 790ce6c..0000000 --- a/resources/views/vendor/mail/html/subcopy.blade.php +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/resources/views/vendor/mail/html/table.blade.php b/resources/views/vendor/mail/html/table.blade.php deleted file mode 100644 index a5f3348..0000000 --- a/resources/views/vendor/mail/html/table.blade.php +++ /dev/null @@ -1,3 +0,0 @@ -
-{{ Illuminate\Mail\Markdown::parse($slot) }} -
diff --git a/resources/views/vendor/mail/html/themes/default.css b/resources/views/vendor/mail/html/themes/default.css deleted file mode 100644 index 2483b11..0000000 --- a/resources/views/vendor/mail/html/themes/default.css +++ /dev/null @@ -1,290 +0,0 @@ -/* Base */ - -body, -body *:not(html):not(style):not(br):not(tr):not(code) { - box-sizing: border-box; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, - 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; - position: relative; -} - -body { - -webkit-text-size-adjust: none; - background-color: #ffffff; - color: #718096; - height: 100%; - line-height: 1.4; - margin: 0; - padding: 0; - width: 100% !important; -} - -p, -ul, -ol, -blockquote { - line-height: 1.4; - text-align: left; -} - -a { - color: #3869d4; -} - -a img { - border: none; -} - -/* Typography */ - -h1 { - color: #3d4852; - font-size: 18px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h2 { - font-size: 16px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -h3 { - font-size: 14px; - font-weight: bold; - margin-top: 0; - text-align: left; -} - -p { - font-size: 16px; - line-height: 1.5em; - margin-top: 0; - text-align: left; -} - -p.sub { - font-size: 12px; -} - -img { - max-width: 100%; -} - -/* Layout */ - -.wrapper { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - background-color: #edf2f7; - margin: 0; - padding: 0; - width: 100%; -} - -.content { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - margin: 0; - padding: 0; - width: 100%; -} - -/* Header */ - -.header { - padding: 25px 0; - text-align: center; -} - -.header a { - color: #3d4852; - font-size: 19px; - font-weight: bold; - text-decoration: none; -} - -/* Logo */ - -.logo { - height: 75px; - max-height: 75px; - width: 75px; -} - -/* Body */ - -.body { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - background-color: #edf2f7; - border-bottom: 1px solid #edf2f7; - border-top: 1px solid #edf2f7; - margin: 0; - padding: 0; - width: 100%; -} - -.inner-body { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; - background-color: #ffffff; - border-color: #e8e5ef; - border-radius: 2px; - border-width: 1px; - box-shadow: 0 2px 0 rgba(0, 0, 150, 0.025), 2px 4px 0 rgba(0, 0, 150, 0.015); - margin: 0 auto; - padding: 0; - width: 570px; -} - -/* Subcopy */ - -.subcopy { - border-top: 1px solid #e8e5ef; - margin-top: 25px; - padding-top: 25px; -} - -.subcopy p { - font-size: 14px; -} - -/* Footer */ - -.footer { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 570px; - margin: 0 auto; - padding: 0; - text-align: center; - width: 570px; -} - -.footer p { - color: #b0adc5; - font-size: 12px; - text-align: center; -} - -.footer a { - color: #b0adc5; - text-decoration: underline; -} - -/* Tables */ - -.table table { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - margin: 30px auto; - width: 100%; -} - -.table th { - border-bottom: 1px solid #edeff2; - margin: 0; - padding-bottom: 8px; -} - -.table td { - color: #74787e; - font-size: 15px; - line-height: 18px; - margin: 0; - padding: 10px 0; -} - -.content-cell { - max-width: 100vw; - padding: 32px; -} - -/* Buttons */ - -.action { - -premailer-cellpadding: 0; - -premailer-cellspacing: 0; - -premailer-width: 100%; - margin: 30px auto; - padding: 0; - text-align: center; - width: 100%; -} - -.button { - -webkit-text-size-adjust: none; - border-radius: 4px; - color: #fff; - display: inline-block; - overflow: hidden; - text-decoration: none; -} - -.button-blue, -.button-primary { - background-color: #2d3748; - border-bottom: 8px solid #2d3748; - border-left: 18px solid #2d3748; - border-right: 18px solid #2d3748; - border-top: 8px solid #2d3748; -} - -.button-green, -.button-success { - background-color: #48bb78; - border-bottom: 8px solid #48bb78; - border-left: 18px solid #48bb78; - border-right: 18px solid #48bb78; - border-top: 8px solid #48bb78; -} - -.button-red, -.button-error { - background-color: #e53e3e; - border-bottom: 8px solid #e53e3e; - border-left: 18px solid #e53e3e; - border-right: 18px solid #e53e3e; - border-top: 8px solid #e53e3e; -} - -/* Panels */ - -.panel { - border-left: #2d3748 solid 4px; - margin: 21px 0; -} - -.panel-content { - background-color: #edf2f7; - color: #718096; - padding: 16px; -} - -.panel-content p { - color: #718096; -} - -.panel-item { - padding: 0; -} - -.panel-item p:last-of-type { - margin-bottom: 0; - padding-bottom: 0; -} - -/* Utilities */ - -.break-all { - word-break: break-all; -} diff --git a/resources/views/vendor/mail/text/button.blade.php b/resources/views/vendor/mail/text/button.blade.php deleted file mode 100644 index 97444eb..0000000 --- a/resources/views/vendor/mail/text/button.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/text/footer.blade.php b/resources/views/vendor/mail/text/footer.blade.php deleted file mode 100644 index 3338f62..0000000 --- a/resources/views/vendor/mail/text/footer.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/mail/text/header.blade.php b/resources/views/vendor/mail/text/header.blade.php deleted file mode 100644 index aaa3e57..0000000 --- a/resources/views/vendor/mail/text/header.blade.php +++ /dev/null @@ -1 +0,0 @@ -[{{ $slot }}]({{ $url }}) diff --git a/resources/views/vendor/mail/text/layout.blade.php b/resources/views/vendor/mail/text/layout.blade.php deleted file mode 100644 index 9378baa..0000000 --- a/resources/views/vendor/mail/text/layout.blade.php +++ /dev/null @@ -1,9 +0,0 @@ -{!! strip_tags($header) !!} - -{!! strip_tags($slot) !!} -@isset($subcopy) - -{!! strip_tags($subcopy) !!} -@endisset - -{!! strip_tags($footer) !!} diff --git a/resources/views/vendor/mail/text/message.blade.php b/resources/views/vendor/mail/text/message.blade.php deleted file mode 100644 index 1ae9ed8..0000000 --- a/resources/views/vendor/mail/text/message.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@component('mail::layout') - {{-- Header --}} - @slot('header') - @component('mail::header', ['url' => config('app.url')]) - {{ config('app.name') }} - @endcomponent - @endslot - - {{-- Body --}} - {{ $slot }} - - {{-- Subcopy --}} - @isset($subcopy) - @slot('subcopy') - @component('mail::subcopy') - {{ $subcopy }} - @endcomponent - @endslot - @endisset - - {{-- Footer --}} - @slot('footer') - @component('mail::footer') - © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') - @endcomponent - @endslot -@endcomponent diff --git a/resources/views/vendor/mail/text/panel.blade.php b/resources/views/vendor/mail/text/panel.blade.php deleted file mode 100644 index 3338f62..0000000 --- a/resources/views/vendor/mail/text/panel.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/mail/text/subcopy.blade.php b/resources/views/vendor/mail/text/subcopy.blade.php deleted file mode 100644 index 3338f62..0000000 --- a/resources/views/vendor/mail/text/subcopy.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/mail/text/table.blade.php b/resources/views/vendor/mail/text/table.blade.php deleted file mode 100644 index 3338f62..0000000 --- a/resources/views/vendor/mail/text/table.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $slot }} diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php deleted file mode 100644 index e7a56b4..0000000 --- a/resources/views/vendor/notifications/email.blade.php +++ /dev/null @@ -1,62 +0,0 @@ -@component('mail::message') -{{-- Greeting --}} -@if (! empty($greeting)) -# {{ $greeting }} -@else -@if ($level === 'error') -# @lang('Whoops!') -@else -# @lang('Hello!') -@endif -@endif - -{{-- Intro Lines --}} -@foreach ($introLines as $line) -{{ $line }} - -@endforeach - -{{-- Action Button --}} -@isset($actionText) - -@component('mail::button', ['url' => $actionUrl, 'color' => $color]) -{{ $actionText }} -@endcomponent -@endisset - -{{-- Outro Lines --}} -@foreach ($outroLines as $line) -{{ $line }} - -@endforeach - -{{-- Salutation --}} -@if (! empty($salutation)) -{{ $salutation }} -@else -@lang('Regards'),
-{{ config('app.name') }} -@endif - -{{-- Subcopy --}} -@isset($actionText) -@slot('subcopy') -@lang( - "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\n". - 'into your web browser:', - [ - 'actionText' => $actionText, - ] -) [{{ $displayableActionUrl }}]({{ $actionUrl }}) -@endslot -@endisset -@endcomponent diff --git a/resources/views/vendor/pagination/bootstrap-4.blade.php b/resources/views/vendor/pagination/bootstrap-4.blade.php deleted file mode 100644 index 63c6f56..0000000 --- a/resources/views/vendor/pagination/bootstrap-4.blade.php +++ /dev/null @@ -1,46 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/vendor/pagination/default.blade.php b/resources/views/vendor/pagination/default.blade.php deleted file mode 100644 index 0db70b5..0000000 --- a/resources/views/vendor/pagination/default.blade.php +++ /dev/null @@ -1,46 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/vendor/pagination/semantic-ui.blade.php b/resources/views/vendor/pagination/semantic-ui.blade.php deleted file mode 100644 index ef0dbb1..0000000 --- a/resources/views/vendor/pagination/semantic-ui.blade.php +++ /dev/null @@ -1,36 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php deleted file mode 100644 index 4bb4917..0000000 --- a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php +++ /dev/null @@ -1,27 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/vendor/pagination/simple-default.blade.php b/resources/views/vendor/pagination/simple-default.blade.php deleted file mode 100644 index 36bdbc1..0000000 --- a/resources/views/vendor/pagination/simple-default.blade.php +++ /dev/null @@ -1,19 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/vendor/pagination/simple-tailwind.blade.php b/resources/views/vendor/pagination/simple-tailwind.blade.php deleted file mode 100644 index 6872cca..0000000 --- a/resources/views/vendor/pagination/simple-tailwind.blade.php +++ /dev/null @@ -1,25 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/vendor/pagination/tailwind.blade.php b/resources/views/vendor/pagination/tailwind.blade.php deleted file mode 100644 index 2dd4d0e..0000000 --- a/resources/views/vendor/pagination/tailwind.blade.php +++ /dev/null @@ -1,102 +0,0 @@ -@if ($paginator->hasPages()) - -@endif diff --git a/resources/views/welcome-old.blade.php b/resources/views/welcome-old.blade.php deleted file mode 100644 index b0156d4..0000000 --- a/resources/views/welcome-old.blade.php +++ /dev/null @@ -1,31 +0,0 @@ -@extends('layouts.app') - -@section('title') -Welcome -@endsection - -@section('meta') - - - - - - -@endsection - -@section('content') -
-
- @if (session('status')) - - @endif -

-

-

{{ config('app.quotes')[array_rand(config('app.quotes'))] }}

-
-

{{ config('app.name') }} is meant to be a tight-knit community of like-minded people. Our community is closed, so you'll have to know somebody already inside to get invited.
{{ config('app.name') }} is entirely non-profit! The owners of the site make no money from hosting {{ config('app.name') }}.
Check out the people that helped to make Tadah what it is today.

-
-
-@endsection diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php deleted file mode 100644 index b0919c6..0000000 --- a/resources/views/welcome.blade.php +++ /dev/null @@ -1,482 +0,0 @@ -@extends('layouts.app') - -@section('content') - - -
- - -
-
-
-
- -
- @if (!Auth::user()) -
- Member Login -
-
- -
-
-
- - -
-
-
-
- - -
-
- Login -
-
- Register -
- - -
- @else -
- Logged In -
-
- {{ Auth::user()->name }} -
- @endif -
-
- -
-
- - - - - - - -
-
-
- Play Roblox -
- - - -
-
-
-
- - -
-
-
-
Not Affiliated with Roblox
-
-
-
{{ config('app.name') }} IS NOT affiliated with Roblox Corporation, K'Nex, The LEGO Group, or MEGA Brands.
-
-
-
-
-
-
{{ config('app.name') }} Stats
-
-
-
-
- - - -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
-
-
-
{{ config('app.name') }} News
-
-
-
-
-
-
- @foreach ($announcements as $announcement) - - @endforeach -
-
- More... -
-
-
-
-
-
-
-
- -
-
-
- -
-
- -
-
- -
-
-
-
-
Featured Free Game: Placeholder Game
-
-
-
-
-
-
- Placeholder Game - a {{ config('app.name') }} free game -
-
-
-
-
Updated:
-
Never
-
Favorited:
-
0 times
-
Visited:
-
0 times
-
-
- Placeholder -
-
- -
-
-
-
-
-
-
-
-
- @csrf - - -
- - - -
- - - - - - - - - - - - - - -@endsection diff --git a/routes/api.php b/routes/api.php deleted file mode 100644 index 450535f..0000000 --- a/routes/api.php +++ /dev/null @@ -1,17 +0,0 @@ -id === (int) $id; -}); diff --git a/routes/console.php b/routes/console.php deleted file mode 100644 index e05f4c9..0000000 --- a/routes/console.php +++ /dev/null @@ -1,19 +0,0 @@ -comment(Inspiring::quote()); -})->purpose('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php deleted file mode 100644 index 999d346..0000000 --- a/routes/web.php +++ /dev/null @@ -1,137 +0,0 @@ -name('welcome'); - -// Authentication routes -Auth::routes(); - -// Home -Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); - -// Rules -Route::get('/rules', function () { - return view('terms.rules'); -}); - -Route::get('/credits', function () { - return view('terms.credits'); -}); - -// Users routes -Route::get('/settings', [App\Http\Controllers\UsersController::class, 'settings'])->name('users.settings'); -Route::post('/settings', [App\Http\Controllers\UsersController::class, 'savesettings'])->name('users.savesettings'); -Route::get('/users', [App\Http\Controllers\UsersController::class, 'index'])->name('users.index'); -Route::get('/user', [App\Http\Controllers\UsersController::class, 'me'])->name('users.me'); -Route::get('/users/{id}/thumbnail', [App\Http\Controllers\UsersController::class, 'getthumbnail'])->name('users.thumbnail'); -Route::get('/users/{id}/profile', [App\Http\Controllers\UsersController::class, 'profile'])->name('users.profile'); -Route::get('/banned', [App\Http\Controllers\UsersController::class, 'banned'])->name('users.banned'); - -// Catalog routes -Route::get('/catalog/upload', [App\Http\Controllers\CatalogController::class, 'upload'])->name('catalog.upload'); -Route::post('/catalog/upload', [App\Http\Controllers\CatalogController::class, 'processupload'])->name('catalog.processupload'); -Route::get('/catalog/thumb/{id}', [App\Http\Controllers\CatalogController::class, 'getthumbnail'])->name('catalog.getthumbnail'); -Route::get('/catalog/{type}', [App\Http\Controllers\CatalogController::class, 'index'])->name('catalog.index'); -Route::get('/catalog', function () { return redirect(route('catalog.index', 'hats')); }); -Route::post('/item/buy/{id}', [App\Http\Controllers\CatalogController::class, 'buyitem'])->name('catalog.buy'); -Route::get('/item/{id}', [App\Http\Controllers\CatalogController::class, 'item'])->name('catalog.item'); -Route::get('/item/{id}/configure', [App\Http\Controllers\CatalogController::class, 'configure'])->name('catalog.configure'); -Route::post('/item/{id}/configure', [App\Http\Controllers\CatalogController::class, 'processconfigure'])->name('catalog.processconfigure'); - -// Forum routes -Route::get('/forum', [App\Http\Controllers\ForumController::class, 'index'])->name('forum.index'); -Route::get('/forum/{id}', [App\Http\Controllers\ForumController::class, 'getcategory'])->name('forum.category'); -Route::get('/forum/thread/{id}', [App\Http\Controllers\ForumController::class, 'getthread'])->name('forum.getthread'); -Route::get('/forum/create/{id}', [App\Http\Controllers\ForumController::class, 'createthread'])->name('forum.createthread'); -Route::post('/forum/create/{id}', [App\Http\Controllers\ForumController::class, 'docreatethread'])->name('forum.docreatethread'); -Route::get('/forum/createreply/{id}', [App\Http\Controllers\ForumController::class, 'createreply'])->name('forum.createreply'); -Route::post('/forum/createreply/{id}', [App\Http\Controllers\ForumController::class, 'docreatereply'])->name('forum.docreatereply'); -Route::get('/forum/editthread/{id}', [App\Http\Controllers\ForumController::class, 'editthread'])->name('forum.editthread'); -Route::post('/forum/editthread/{id}', [App\Http\Controllers\ForumController::class, 'doeditthread'])->name('forum.doeditthread'); -Route::post('/forum/togglestickythread/{id}', [App\Http\Controllers\ForumController::class, 'togglestickythread'])->name('forum.togglesticky'); -Route::post('/forum/togglelock/{id}', [App\Http\Controllers\ForumController::class, 'togglelock'])->name('forum.togglelock'); -Route::post('/forum/deletethread/{id}', [App\Http\Controllers\ForumController::class, 'deletethread'])->name('forum.deletethread'); -Route::get('/forum/editreply/{id}', [App\Http\Controllers\ForumController::class, 'editreply'])->name('forum.editreply'); -Route::post('/forum/editreply/{id}', [App\Http\Controllers\ForumController::class, 'doeditreply'])->name('forum.doeditreply'); -Route::post('/forum/deletereply/{id}', [App\Http\Controllers\ForumController::class, 'deletereply'])->name('forum.deletereply'); - -// Admin routes -Route::get('/admin', [App\Http\Controllers\AdminController::class, 'index'])->name('admin.index'); -Route::get('/admin/truncategametokens', [App\Http\Controllers\AdminController::class, 'truncategametokens']); -Route::get('/admin/truncateservers', [App\Http\Controllers\AdminController::class, 'truncateservers']); -Route::get('/admin/invitekeys', [App\Http\Controllers\AdminController::class, 'invitekeys']); -Route::post('/admin/invitekeys/{id}/disable', [App\Http\Controllers\AdminController::class, 'disableinvitekey'])->name('admin.disableinvitekey'); -Route::get('/admin/createinvitekey', [App\Http\Controllers\AdminController::class, 'createinvitekey']); -Route::post('/admin/createinvitekey', [App\Http\Controllers\AdminController::class, 'generateinvitekey'])->name('admin.generateinvitekey'); -Route::get('/admin/ban', [App\Http\Controllers\AdminController::class, 'ban']); -Route::post('/admin/ban', [App\Http\Controllers\AdminController::class, 'banuser'])->name('admin.banuser'); -Route::get('/admin/unban', [App\Http\Controllers\AdminController::class, 'unban']); -Route::post('/admin/unban', [App\Http\Controllers\AdminController::class, 'unbanuser'])->name('admin.unbanuser'); -Route::get('/admin/newxmlitem', [App\Http\Controllers\AdminController::class, 'xmlitem']); -Route::post('/admin/newxmlitem', [App\Http\Controllers\AdminController::class, 'createxmlitem'])->name('admin.createxmlitem'); -Route::get('/admin/robloxitemdata/{id}', [App\Http\Controllers\AdminController::class, 'robloxitemdata']); -Route::get('/admin/robloxxmldata/{id}/{version}', [App\Http\Controllers\AdminController::class, 'robloxxmldata']); -Route::get('/admin/regenalluserthumbs', [App\Http\Controllers\AdminController::class, 'regenalluserthumbs']); - -// Thumbnail generator routes -Route::get('/thumbnail/getqueue', [App\Http\Controllers\RenderController::class, 'getQueue'])->name('thumbnails.getqueue'); -Route::post('/thumbnail/upload', [App\Http\Controllers\RenderController::class, 'upload'])->name('thumbnails.uploadthumbnail'); -Route::get('/thumbnail/clothingcharapp/{id}', [App\Http\Controllers\RenderController::class, 'getClothingCharApp'])->name('thumbnails.getclothingcharapp'); - -// Servers routes -Route::get('/servers', [App\Http\Controllers\ServersController::class, 'index'])->name('servers.index'); -Route::get('/server/{id}', [App\Http\Controllers\ServersController::class, 'server'])->name('servers.server'); -Route::get('/server/{id}/configure', [App\Http\Controllers\ServersController::class, 'configure'])->name('servers.configure'); -Route::post('/server/{id}/configure', [App\Http\Controllers\ServersController::class, 'processconfigure'])->name('servers.processconfigure'); -Route::post('/server/{id}/delete', [App\Http\Controllers\ServersController::class, 'delete'])->name('servers.delete'); -Route::get('/servers/create', function () { return view('servers.create'); }); -Route::post('/servers/create', [App\Http\Controllers\ServersController::class, 'create'])->name('servers.create'); - -// Launcher routes -Route::get('/client/versionstring', function () { return config('app.version_string'); }); -Route::get('/client/join/{token}', [App\Http\Controllers\ClientController::class, 'join'])->name('client.join'); -Route::get('/client/generate/{serverId}', [App\Http\Controllers\ClientController::class, 'generate'])->name('client.generate'); - -// Client routes -Route::get('/Asset/GetScriptState.ashx', function () { return '0 0 0 0'; }); // breaks script sig check in clients if removed -Route::get('/asset/GetScriptState.ashx', function () { return '0 0 0 0'; }); // breaks script sig check in clients if removed -Route::get('/Game/KeepAlivePinger.ashx', function () { return ''; }); -Route::get('/UploadMedia/PostImage.aspx', function () { return 'lol, this stupid person meant to screenshot using their normal screenshotting tool but instead triggered the old Roblox one'; }); -Route::get('/game/visit.ashx', function () { return view('client.playsolo'); }); -Route::get('/game/studio.ashx', function () { return view('client.studioscript'); }); -Route::get('/IDE/ClientToolbox.aspx', function () { return 'Toolbox not yet implemented!'; }); -Route::get('/IDE/Landing.aspx', function () { return view('client.landing'); }); -Route::get('/thumbs/avatar.ashx', [App\Http\Controllers\ClientController::class, 'getuserthumbnail'])->name('client.userthumbnail'); -Route::get('/server/host/{secret}', [App\Http\Controllers\ClientController::class, 'host'])->name('client.host'); -Route::get('/server/ping/{secret}', [App\Http\Controllers\ClientController::class, 'ping'])->name('client.ping'); -Route::get('/server/admin/{secret}', [App\Http\Controllers\ClientController::class, 'admin'])->name('client.admin'); -Route::get('/download', [App\Http\Controllers\UsersController::class, 'download'])->name('client.download'); -Route::get('/signscript', [App\Http\Controllers\ClientController::class, 'signscript'])->name('client.signscript'); - -// Asset routes -Route::get('/asset', [App\Http\Controllers\AssetController::class, 'getasset'])->name('asset.getasset'); -Route::get('/xmlasset', [App\Http\Controllers\AssetController::class, 'getxmlasset'])->name('asset.getxmlasset'); -Route::get('/Asset', [App\Http\Controllers\AssetController::class, 'robloxredirect'])->name('asset.robloxredirect'); - -// Character routes -Route::get('/character', [App\Http\Controllers\BodyColorsController::class, 'characterBodyColors'])->name('users.characterbodycolors'); -Route::post('/character/toggle/{id}', [App\Http\Controllers\UsersController::class, 'toggleWearing'])->name('users.togglewearing'); -Route::post('/character/setcolor', [App\Http\Controllers\BodyColorsController::class, 'changeBodyColor'])->name('users.setbodycolor'); -Route::post('/character/regen', [App\Http\Controllers\UsersController::class, 'regenThumbnail'])->name('users.regenthumbnail'); -Route::get('/character/{type}', [App\Http\Controllers\UsersController::class, 'characterItems'])->name('users.characteritems'); -Route::get('/users/{id}/bodycolors', [App\Http\Controllers\ClientController::class, 'bodycolors'])->name('users.bodycolors'); -Route::get('/users/{id}/character', [App\Http\Controllers\ClientController::class, 'charapp'])->name('users.getcharacter'); \ No newline at end of file diff --git a/server.php b/server.php deleted file mode 100644 index 5fb6379..0000000 --- a/server.php +++ /dev/null @@ -1,21 +0,0 @@ - - */ - -$uri = urldecode( - parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) -); - -// This file allows us to emulate Apache's "mod_rewrite" functionality from the -// built-in PHP web server. This provides a convenient way to test a Laravel -// application without having installed a "real" web server software here. -if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { - return false; -} - -require_once __DIR__.'/public/index.php'; diff --git a/storage/app/.gitignore b/storage/app/.gitignore deleted file mode 100644 index 8f4803c..0000000 --- a/storage/app/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!public/ -!.gitignore diff --git a/storage/app/public/.gitignore b/storage/app/public/.gitignore deleted file mode 100644 index 7c240f7..0000000 --- a/storage/app/public/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -* -!.gitignore -!items -!users \ No newline at end of file diff --git a/storage/framework/.gitignore b/storage/framework/.gitignore deleted file mode 100644 index 05c4471..0000000 --- a/storage/framework/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -compiled.php -config.php -down -events.scanned.php -maintenance.php -routes.php -routes.scanned.php -schedule-* -services.json diff --git a/storage/framework/cache/.gitignore b/storage/framework/cache/.gitignore deleted file mode 100644 index 01e4a6c..0000000 --- a/storage/framework/cache/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!data/ -!.gitignore diff --git a/storage/framework/cache/data/.gitignore b/storage/framework/cache/data/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/framework/cache/data/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/sessions/.gitignore b/storage/framework/sessions/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/framework/sessions/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/testing/.gitignore b/storage/framework/testing/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/framework/testing/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/framework/views/.gitignore b/storage/framework/views/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/framework/views/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/storage/logs/.gitignore b/storage/logs/.gitignore deleted file mode 100644 index d6b7ef3..0000000 --- a/storage/logs/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php deleted file mode 100644 index 547152f..0000000 --- a/tests/CreatesApplication.php +++ /dev/null @@ -1,22 +0,0 @@ -make(Kernel::class)->bootstrap(); - - return $app; - } -} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php deleted file mode 100644 index 4ae02bc..0000000 --- a/tests/Feature/ExampleTest.php +++ /dev/null @@ -1,21 +0,0 @@ -get('/'); - - $response->assertStatus(200); - } -} diff --git a/tests/TestCase.php b/tests/TestCase.php deleted file mode 100644 index 2932d4a..0000000 --- a/tests/TestCase.php +++ /dev/null @@ -1,10 +0,0 @@ -assertTrue(true); - } -} diff --git a/webpack.mix.js b/webpack.mix.js deleted file mode 100644 index 1a2a958..0000000 --- a/webpack.mix.js +++ /dev/null @@ -1,16 +0,0 @@ -const mix = require('laravel-mix'); - -/* - |-------------------------------------------------------------------------- - | Mix Asset Management - |-------------------------------------------------------------------------- - | - | Mix provides a clean, fluent API for defining some Webpack build steps - | for your Laravel application. By default, we are compiling the Sass - | file for the application as well as bundling up all the JS files. - | - */ - -mix.js('resources/js/app.js', 'public/js') - .sass('resources/sass/app.scss', 'public/css') - .sourceMaps();